Skip to content

Commit bdc3c17

Browse files
Nishka GosaliaNishka Gosalia
authored andcommitted
fix: handling payment entry and request for closed orders
1 parent d3ffe4b commit bdc3c17

File tree

3 files changed

+17
-1
lines changed

3 files changed

+17
-1
lines changed

erpnext/accounts/doctype/payment_entry/payment_entry.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2824,6 +2824,8 @@ def get_reference_details(
28242824
party_field = "customer" if reference_doctype == "Sales Order" else "supplier"
28252825
party = ref_doc.get(party_field)
28262826
account = get_party_account(party_type, party, ref_doc.company)
2827+
if reference_doctype in ["Sales Order"]:
2828+
total_amount, outstanding_amount = ref_doc.get_sales_order_amounts()
28272829
else:
28282830
# Get the exchange rate based on the posting date of the ref doc.
28292831
exchange_rate = get_exchange_rate(party_account_currency, company_currency, ref_doc.posting_date)
@@ -2874,6 +2876,8 @@ def get_payment_entry(
28742876
party_amount, dt, party_account_currency, doc
28752877
)
28762878

2879+
if dt == "Sales Order":
2880+
grand_total, outstanding_amount = doc.get_sales_order_amounts()
28772881
# bank or cash
28782882
bank = get_bank_cash_account(doc, bank_account)
28792883

erpnext/accounts/doctype/payment_request/payment_request.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -687,7 +687,10 @@ def get_amount(ref_doc, payment_account=None):
687687
if ref_doc.party_account_currency != ref_doc.currency:
688688
advance_amount = flt(flt(ref_doc.advance_paid) / ref_doc.conversion_rate)
689689

690-
grand_total = (flt(ref_doc.rounded_total) or flt(ref_doc.grand_total)) - advance_amount
690+
if dt == "Sales Order":
691+
grand_total = ref_doc.get_sales_order_amounts()[0] - advance_amount
692+
else:
693+
grand_total = (flt(ref_doc.rounded_total) or flt(ref_doc.grand_total)) - advance_amount
691694

692695
elif dt in ["Sales Invoice", "Purchase Invoice"]:
693696
if (

erpnext/selling/doctype/sales_order/sales_order.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -824,6 +824,15 @@ def has_unreserved_stock(self) -> bool:
824824

825825
return False
826826

827+
def get_sales_order_amounts(self):
828+
for item in self.get("items"):
829+
if item.is_closed == 1:
830+
self.grand_total -= item.amount
831+
self.base_grand_total -= item.base_amount
832+
833+
self.outstanding_amount = self.grand_total - self.advance_paid
834+
return self.grand_total, self.outstanding_amount
835+
827836
@frappe.whitelist()
828837
def create_stock_reservation_entries(
829838
self,

0 commit comments

Comments
 (0)