diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.py b/erpnext/accounts/doctype/journal_entry/journal_entry.py index 24b82b29cb6496bf228ebbe1aa1b8fcd613734ff..f3d85535479f2bef349b569ac6ab11f88cb72894 100644 --- a/erpnext/accounts/doctype/journal_entry/journal_entry.py +++ b/erpnext/accounts/doctype/journal_entry/journal_entry.py @@ -197,7 +197,7 @@ class JournalEntry(AccountsController): self.update_asset_value() self.update_inter_company_jv() self.update_invoice_discounting() - self.update_unreconciled_amount() # @dokos + self.update_unreconciled_amount() # @dokos self.update_booked_depreciation() def on_update_after_submit(self): @@ -244,6 +244,20 @@ class JournalEntry(AccountsController): if d.reference_type in frappe.get_hooks("advance_payment_doctypes"): advance_paid.setdefault(d.reference_type, []).append(d.reference_name) + # @dokos + if d.reference_name and d.reference_type == "Sales Invoice": # @dokos + for so in frappe.get_all( + "Sales Invoice Item", + filters={ + "parenttype": "Sales Invoice", + "parent": d.reference_name, + "sales_order": ("is", "set"), + }, + pluck="sales_order", + ): + frappe.get_doc("Sales Order", so, for_update=True).set_total_advance_paid() + # @dokos + for voucher_type, order_list in advance_paid.items(): for voucher_no in list(set(order_list)): frappe.get_doc(voucher_type, voucher_no).set_total_advance_paid() diff --git a/erpnext/controllers/accounts_controller.py b/erpnext/controllers/accounts_controller.py index af8bfc1378a74a4d0a1a5ab3aeffce2900556665..03345272c0740b1a30c658c4ff8c2dba77ac80f3 100644 --- a/erpnext/controllers/accounts_controller.py +++ b/erpnext/controllers/accounts_controller.py @@ -1927,7 +1927,9 @@ class AccountsController(TransactionBase): .select(si.name) .left_join(sii) .on(sii.parent == si.name) - .where((si.is_down_payment_invoice == 1) & (sii.sales_order == self.name)) + .where( + (si.is_down_payment_invoice == 1) & (sii.sales_order == self.name) & (si.docstatus == 1) + ) .run(as_list=True) )