Merge pull request #48310 from rohitwaghchaure/fixed-support-40224

fix: accounting entries for standalone credit notes
This commit is contained in:
rohitwaghchaure
2025-06-30 09:38:37 +05:30
committed by GitHub
2 changed files with 14 additions and 12 deletions

View File

@@ -1338,17 +1338,12 @@ class PurchaseInvoice(BuyingController):
warehouse_debit_amount = stock_amount warehouse_debit_amount = stock_amount
elif self.is_return and self.update_stock and self.is_internal_supplier and warehouse_debit_amount: elif self.is_return and self.update_stock and (self.is_internal_supplier or not self.return_against):
net_rate = item.base_net_amount net_rate = 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
stock_amount = ( stock_amount = net_rate + item.item_tax_amount + flt(item.landed_cost_voucher_amount)
net_rate
+ item.item_tax_amount
+ flt(item.landed_cost_voucher_amount)
+ flt(item.get("amount_difference_with_purchase_invoice"))
)
if flt(stock_amount, net_amt_precision) != flt(warehouse_debit_amount, net_amt_precision): if flt(stock_amount, net_amt_precision) != flt(warehouse_debit_amount, net_amt_precision):
cost_of_goods_sold_account = self.get_company_default("default_expense_account") cost_of_goods_sold_account = self.get_company_default("default_expense_account")

View File

@@ -1258,12 +1258,19 @@ class update_entries_after:
def update_rate_on_purchase_receipt(self, sle, outgoing_rate): def update_rate_on_purchase_receipt(self, sle, outgoing_rate):
if frappe.db.exists(sle.voucher_type + " Item", sle.voucher_detail_no): if frappe.db.exists(sle.voucher_type + " Item", sle.voucher_detail_no):
if sle.voucher_type in ["Purchase Receipt", "Purchase Invoice"] and frappe.get_cached_value( if sle.voucher_type in ["Purchase Receipt", "Purchase Invoice"]:
sle.voucher_type, sle.voucher_no, "is_internal_supplier" details = frappe.get_cached_value(
): sle.voucher_type,
frappe.db.set_value( sle.voucher_no,
f"{sle.voucher_type} Item", sle.voucher_detail_no, "valuation_rate", sle.outgoing_rate ["is_internal_supplier", "is_return", "return_against"],
as_dict=True,
) )
if details.is_internal_supplier or (details.is_return and not details.return_against):
rate = outgoing_rate if details.is_return else sle.outgoing_rate
frappe.db.set_value(
f"{sle.voucher_type} Item", sle.voucher_detail_no, "valuation_rate", rate
)
else: else:
frappe.db.set_value( frappe.db.set_value(
"Purchase Receipt Item Supplied", sle.voucher_detail_no, "rate", outgoing_rate "Purchase Receipt Item Supplied", sle.voucher_detail_no, "rate", outgoing_rate