fix: last purchase rate in item prices report (#23506)

* fix: last purchase rate in item prices report

* fix: last purchase rate in item prices report

* fix: last purchase rate in item prices report

* chore: fetch last purchase rate from update stock purchase invoices
This commit is contained in:
Saqib 2020-10-12 17:09:09 +05:30 committed by GitHub
parent ebbe285872
commit ebb0a6266a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -77,38 +77,33 @@ def get_price_list():
return item_rate_map return item_rate_map
def get_last_purchase_rate(): def get_last_purchase_rate():
item_last_purchase_rate_map = {} item_last_purchase_rate_map = {}
query = """select * from (select query = """select * from (
result.item_code, (select
result.base_rate po_item.item_code,
from ( po.transaction_date as posting_date,
(select po_item.base_rate
po_item.item_code, from `tabPurchase Order` po, `tabPurchase Order Item` po_item
po_item.item_name, where po.name = po_item.parent and po.docstatus = 1)
po.transaction_date as posting_date, union
po_item.base_price_list_rate, (select
po_item.discount_percentage, pr_item.item_code,
po_item.base_rate pr.posting_date,
from `tabPurchase Order` po, `tabPurchase Order Item` po_item pr_item.base_rate
where po.name = po_item.parent and po.docstatus = 1) from `tabPurchase Receipt` pr, `tabPurchase Receipt Item` pr_item
union where pr.name = pr_item.parent and pr.docstatus = 1)
(select union
pr_item.item_code, (select
pr_item.item_name, pi_item.item_code,
pr.posting_date, pi.posting_date,
pr_item.base_price_list_rate, pi_item.base_rate
pr_item.discount_percentage, from `tabPurchase Invoice` pi, `tabPurchase Invoice Item` pi_item
pr_item.base_rate where pi.name = pi_item.parent and pi.docstatus = 1 and pi.update_stock = 1)
from `tabPurchase Receipt` pr, `tabPurchase Receipt Item` pr_item ) result order by result.item_code asc, result.posting_date asc"""
where pr.name = pr_item.parent and pr.docstatus = 1)
) result
order by result.item_code asc, result.posting_date desc) result_wrapper
group by item_code"""
for d in frappe.db.sql(query, as_dict=1): for d in frappe.db.sql(query, as_dict=1):
item_last_purchase_rate_map.setdefault(d.item_code, d.base_rate) item_last_purchase_rate_map[d.item_code] = d.base_rate
return item_last_purchase_rate_map return item_last_purchase_rate_map