fix: wrong buying amount if delivered and billed qty varies
(cherry picked from commit b8da0d9334)
This commit is contained in:
@@ -669,20 +669,20 @@ class GrossProfitGenerator(object):
|
|||||||
elif row.sales_order and row.so_detail:
|
elif row.sales_order and row.so_detail:
|
||||||
incoming_amount = self.get_buying_amount_from_so_dn(row.sales_order, row.so_detail, item_code)
|
incoming_amount = self.get_buying_amount_from_so_dn(row.sales_order, row.so_detail, item_code)
|
||||||
if incoming_amount:
|
if incoming_amount:
|
||||||
return incoming_amount
|
return flt(row.qty) * incoming_amount
|
||||||
else:
|
else:
|
||||||
return flt(row.qty) * self.get_average_buying_rate(row, item_code)
|
return flt(row.qty) * self.get_average_buying_rate(row, item_code)
|
||||||
|
|
||||||
return flt(row.qty) * self.get_average_buying_rate(row, item_code)
|
return flt(row.qty) * self.get_average_buying_rate(row, item_code)
|
||||||
|
|
||||||
def get_buying_amount_from_so_dn(self, sales_order, so_detail, item_code):
|
def get_buying_amount_from_so_dn(self, sales_order, so_detail, item_code):
|
||||||
from frappe.query_builder.functions import Sum
|
from frappe.query_builder.functions import Avg
|
||||||
|
|
||||||
delivery_note_item = frappe.qb.DocType("Delivery Note Item")
|
delivery_note_item = frappe.qb.DocType("Delivery Note Item")
|
||||||
|
|
||||||
query = (
|
query = (
|
||||||
frappe.qb.from_(delivery_note_item)
|
frappe.qb.from_(delivery_note_item)
|
||||||
.select(Sum(delivery_note_item.incoming_rate * delivery_note_item.stock_qty))
|
.select(Avg(delivery_note_item.incoming_rate))
|
||||||
.where(delivery_note_item.docstatus == 1)
|
.where(delivery_note_item.docstatus == 1)
|
||||||
.where(delivery_note_item.item_code == item_code)
|
.where(delivery_note_item.item_code == item_code)
|
||||||
.where(delivery_note_item.against_sales_order == sales_order)
|
.where(delivery_note_item.against_sales_order == sales_order)
|
||||||
|
|||||||
Reference in New Issue
Block a user