refactor: post to GL and Payment Ledger on advance as liability

(cherry picked from commit 78ab11f9914725266eb8cf8b98dd81a5f544d79d)
This commit is contained in:
ruthra kumar 2023-09-20 13:05:04 +05:30 committed by Mergify
parent bb8ac94adc
commit aaef9d68c0

View File

@ -472,6 +472,8 @@ def reconcile_against_document(args, skip_ref_details_update_for_pe=False): # n
# cancel advance entry # cancel advance entry
doc = frappe.get_doc(voucher_type, voucher_no) doc = frappe.get_doc(voucher_type, voucher_no)
frappe.flags.ignore_party_validation = True frappe.flags.ignore_party_validation = True
if not (voucher_type == "Payment Entry" and doc.book_advance_payments_in_separate_party_account):
_delete_pl_entries(voucher_type, voucher_no) _delete_pl_entries(voucher_type, voucher_no)
for entry in entries: for entry in entries:
@ -494,6 +496,11 @@ def reconcile_against_document(args, skip_ref_details_update_for_pe=False): # n
doc.save(ignore_permissions=True) doc.save(ignore_permissions=True)
# re-submit advance entry # re-submit advance entry
doc = frappe.get_doc(entry.voucher_type, entry.voucher_no) doc = frappe.get_doc(entry.voucher_type, entry.voucher_no)
if voucher_type == "Payment Entry" and doc.book_advance_payments_in_separate_party_account:
# both ledgers must be posted to for `Advance as Liability`
doc.make_gl_entries()
else:
gl_map = doc.build_gl_map() gl_map = doc.build_gl_map()
create_payment_ledger_entry(gl_map, update_outstanding="No", cancel=0, adv_adj=1) create_payment_ledger_entry(gl_map, update_outstanding="No", cancel=0, adv_adj=1)
@ -502,8 +509,6 @@ def reconcile_against_document(args, skip_ref_details_update_for_pe=False): # n
update_voucher_outstanding( update_voucher_outstanding(
entry.against_voucher_type, entry.against_voucher, entry.account, entry.party_type, entry.party entry.against_voucher_type, entry.against_voucher, entry.account, entry.party_type, entry.party
) )
if voucher_type == "Payment Entry":
doc.make_advance_gl_entries(entry.against_voucher_type, entry.against_voucher)
frappe.flags.ignore_party_validation = False frappe.flags.ignore_party_validation = False