fix: debit credit not equal in purchase transactions for multi currency (backport #54456) (#54563)

fix: debit credit not equal in purchase transactions for multi currency (#54456)

(cherry picked from commit 601581d6f8)

Co-authored-by: Mihir Kandoi <kandoimihir@gmail.com>
This commit is contained in:
mergify[bot]
2026-04-27 15:14:58 +00:00
committed by GitHub
parent 4dff436104
commit 78b2e45cb9
2 changed files with 19 additions and 2 deletions

View File

@@ -364,7 +364,17 @@ class BuyingController(SubcontractingController):
get_conversion_factor(item.item_code, item.uom).get("conversion_factor") or 1.0 get_conversion_factor(item.item_code, item.uom).get("conversion_factor") or 1.0
) )
net_rate = item.qty * item.base_net_rate net_rate = (
flt(
(item.base_net_amount / item.received_qty) * item.qty,
item.precision("base_net_amount"),
)
if item.received_qty
and frappe.get_single_value(
"Buying Settings", "bill_for_rejected_quantity_in_purchase_invoice"
)
else item.base_net_amount
)
if item.sales_incoming_rate: # for internal transfer if item.sales_incoming_rate: # for internal transfer
net_rate = item.qty * item.sales_incoming_rate net_rate = item.qty * item.sales_incoming_rate

View File

@@ -510,7 +510,14 @@ class PurchaseReceipt(BuyingController):
else flt(item.net_amount, item.precision("net_amount")) else flt(item.net_amount, item.precision("net_amount"))
) )
outgoing_amount = item.qty * item.base_net_rate outgoing_amount = (
flt((item.base_net_amount / item.received_qty) * item.qty, item.precision("base_net_amount"))
if item.received_qty
and frappe.get_single_value(
"Buying Settings", "bill_for_rejected_quantity_in_purchase_invoice"
)
else item.base_net_amount
)
if self.is_internal_transfer() and item.valuation_rate: if self.is_internal_transfer() and item.valuation_rate:
outgoing_amount = abs(get_stock_value_difference(self.name, item.name, item.from_warehouse)) outgoing_amount = abs(get_stock_value_difference(self.name, item.name, item.from_warehouse))
credit_amount = outgoing_amount credit_amount = outgoing_amount