diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.py b/erpnext/accounts/doctype/journal_entry/journal_entry.py index 145118957bb1..df6d60d091d2 100644 --- a/erpnext/accounts/doctype/journal_entry/journal_entry.py +++ b/erpnext/accounts/doctype/journal_entry/journal_entry.py @@ -800,9 +800,7 @@ def set_total_amount(self, amt, currency): self.total_amount_in_words = money_in_words(amt, currency) - def make_gl_entries(self, cancel=0, adv_adj=0): - from erpnext.accounts.general_ledger import make_gl_entries - + def build_gl_map(self, cancel=0): gl_map = [] for d in self.get("accounts"): if d.debit or d.credit: @@ -838,7 +836,18 @@ def make_gl_entries(self, cancel=0, adv_adj=0): item=d, ) ) + return gl_map + + def make_payment_ledger_entries(self, cancel=0): + from erpnext.accounts.utils import create_payment_ledger_entry + + gl_map = self.build_gl_map(cancel) + create_payment_ledger_entry(gl_map, cancel) + + def make_gl_entries(self, cancel=0, adv_adj=0): + from erpnext.accounts.general_ledger import make_gl_entries + gl_map = self.build_gl_map(cancel) if self.voucher_type in ("Deferred Revenue", "Deferred Expense"): update_outstanding = "No" else: diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.py b/erpnext/accounts/doctype/payment_entry/payment_entry.py index 1262e36f5b7f..67a3e8a9e255 100644 --- a/erpnext/accounts/doctype/payment_entry/payment_entry.py +++ b/erpnext/accounts/doctype/payment_entry/payment_entry.py @@ -23,7 +23,12 @@ ) from erpnext.accounts.general_ledger import make_gl_entries, process_gl_map from erpnext.accounts.party import get_party_account -from erpnext.accounts.utils import get_account_currency, get_balance_on, get_outstanding_invoices +from erpnext.accounts.utils import ( + create_payment_ledger_entry, + get_account_currency, + get_balance_on, + get_outstanding_invoices, +) from erpnext.controllers.accounts_controller import ( AccountsController, get_supplier_block_status, @@ -785,7 +790,7 @@ def set_remarks(self): self.set("remarks", "\n".join(remarks)) - def make_gl_entries(self, cancel=0, adv_adj=0): + def build_gl_map(self): if self.payment_type in ("Receive", "Pay") and not self.get("party_account_field"): self.setup_party_account_field() @@ -794,7 +799,16 @@ def make_gl_entries(self, cancel=0, adv_adj=0): self.add_bank_gl_entries(gl_entries) self.add_deductions_gl_entries(gl_entries) self.add_tax_gl_entries(gl_entries) + return gl_entries + def make_payment_ledger_entries(self, cancel=0): + # used only on reconciliation + gl_entries = self.build_gl_map() + gl_entries = process_gl_map(gl_entries) + create_payment_ledger_entry(gl_entries, cancel) + + def make_gl_entries(self, cancel=0, adv_adj=0): + gl_entries = self.build_gl_map() gl_entries = process_gl_map(gl_entries) make_gl_entries(gl_entries, cancel=cancel, adv_adj=adv_adj) diff --git a/erpnext/accounts/utils.py b/erpnext/accounts/utils.py index 28637b483077..29e70b9a833e 100644 --- a/erpnext/accounts/utils.py +++ b/erpnext/accounts/utils.py @@ -425,7 +425,7 @@ def reconcile_against_document(args): # cancel advance entry doc = frappe.get_doc(voucher_type, voucher_no) frappe.flags.ignore_party_validation = True - doc.make_gl_entries(cancel=1, adv_adj=1) + doc.make_payment_ledger_entries(cancel=1) for entry in entries: check_if_advance_entry_modified(entry) @@ -440,7 +440,7 @@ def reconcile_against_document(args): doc.save(ignore_permissions=True) # re-submit advance entry doc = frappe.get_doc(entry.voucher_type, entry.voucher_no) - doc.make_gl_entries(cancel=0, adv_adj=1) + doc.make_payment_ledger_entries(cancel=0) frappe.flags.ignore_party_validation = False if entry.voucher_type in ("Payment Entry", "Journal Entry"):