From 3691a500ebde0367d51f0bb18d2b7a060df0bd50 Mon Sep 17 00:00:00 2001 From: ljain112 Date: Tue, 27 Aug 2024 16:53:34 +0530 Subject: [PATCH] fix: `default_advance_account` field in Process Payment Reconciliation (cherry picked from commit 143209f91a201c58004408cd04812aefa49e9f94) # Conflicts: # erpnext/accounts/doctype/process_payment_reconciliation/process_payment_reconciliation.json # erpnext/accounts/doctype/process_payment_reconciliation/process_payment_reconciliation.py --- .../process_payment_reconciliation.js | 20 ++++++++++++- .../process_payment_reconciliation.json | 18 ++++++++++- .../process_payment_reconciliation.py | 30 +++++++++++++++++++ 3 files changed, 66 insertions(+), 2 deletions(-) diff --git a/erpnext/accounts/doctype/process_payment_reconciliation/process_payment_reconciliation.js b/erpnext/accounts/doctype/process_payment_reconciliation/process_payment_reconciliation.js index 0f52a4d998e..9c0a14bd177 100644 --- a/erpnext/accounts/doctype/process_payment_reconciliation/process_payment_reconciliation.js +++ b/erpnext/accounts/doctype/process_payment_reconciliation/process_payment_reconciliation.js @@ -20,6 +20,17 @@ frappe.ui.form.on("Process Payment Reconciliation", { }, }; }); + + frm.set_query("default_advance_account", function (doc) { + return { + filters: { + company: doc.company, + is_group: 0, + account_type: doc.party_type == "Customer" ? "Receivable" : "Payable", + root_type: doc.party_type == "Customer" ? "Liability" : "Asset", + }, + }; + }); frm.set_query("cost_center", function (doc) { return { filters: { @@ -102,6 +113,7 @@ frappe.ui.form.on("Process Payment Reconciliation", { company(frm) { frm.set_value("party", ""); frm.set_value("receivable_payable_account", ""); + frm.set_value("default_advance_account", ""); }, party_type(frm) { frm.set_value("party", ""); @@ -109,6 +121,7 @@ frappe.ui.form.on("Process Payment Reconciliation", { party(frm) { frm.set_value("receivable_payable_account", ""); + frm.set_value("default_advance_account", ""); if (!frm.doc.receivable_payable_account && frm.doc.party_type && frm.doc.party) { return frappe.call({ method: "erpnext.accounts.party.get_party_account", @@ -119,7 +132,12 @@ frappe.ui.form.on("Process Payment Reconciliation", { }, callback: (r) => { if (!r.exc && r.message) { - frm.set_value("receivable_payable_account", r.message); + if (typeof r.message === "string") { + frm.set_value("receivable_payable_account", r.message); + } else if (Array.isArray(r.message)) { + frm.set_value("receivable_payable_account", r.message[0]); + frm.set_value("default_advance_account", r.message[1]); + } } frm.refresh(); }, diff --git a/erpnext/accounts/doctype/process_payment_reconciliation/process_payment_reconciliation.json b/erpnext/accounts/doctype/process_payment_reconciliation/process_payment_reconciliation.json index 1a1ab4d800e..b0584dd4c4d 100644 --- a/erpnext/accounts/doctype/process_payment_reconciliation/process_payment_reconciliation.json +++ b/erpnext/accounts/doctype/process_payment_reconciliation/process_payment_reconciliation.json @@ -13,6 +13,7 @@ "column_break_io6c", "party", "receivable_payable_account", + "default_advance_account", "filter_section", "from_invoice_date", "to_invoice_date", @@ -141,12 +142,27 @@ { "fieldname": "section_break_a8yx", "fieldtype": "Section Break" + }, + { + "depends_on": "eval:doc.party", + "description": "Only 'Payment Entries' made against this advance account are supported.", + "documentation_url": "https://docs.erpnext.com/docs/user/manual/en/advance-in-separate-party-account", + "fieldname": "default_advance_account", + "fieldtype": "Link", + "label": "Default Advance Account", + "mandatory_depends_on": "doc.party_type", + "options": "Account", + "reqd": 1 } ], "index_web_pages_for_search": 1, "is_submittable": 1, "links": [], +<<<<<<< HEAD "modified": "2023-08-11 10:56:51.699137", +======= + "modified": "2024-08-27 14:48:56.715320", +>>>>>>> 143209f91a (fix: `default_advance_account` field in Process Payment Reconciliation) "modified_by": "Administrator", "module": "Accounts", "name": "Process Payment Reconciliation", @@ -180,4 +196,4 @@ "sort_order": "DESC", "states": [], "title_field": "company" -} \ No newline at end of file +} diff --git a/erpnext/accounts/doctype/process_payment_reconciliation/process_payment_reconciliation.py b/erpnext/accounts/doctype/process_payment_reconciliation/process_payment_reconciliation.py index b1419020f0f..e92d8ed9d30 100644 --- a/erpnext/accounts/doctype/process_payment_reconciliation/process_payment_reconciliation.py +++ b/erpnext/accounts/doctype/process_payment_reconciliation/process_payment_reconciliation.py @@ -11,6 +11,35 @@ from frappe.utils.scheduler import is_scheduler_inactive class ProcessPaymentReconciliation(Document): +<<<<<<< HEAD +======= + # begin: auto-generated types + # This code is auto-generated. Do not modify anything in this block. + + from typing import TYPE_CHECKING + + if TYPE_CHECKING: + from frappe.types import DF + + amended_from: DF.Link | None + bank_cash_account: DF.Link | None + company: DF.Link + cost_center: DF.Link | None + default_advance_account: DF.Link + error_log: DF.LongText | None + from_invoice_date: DF.Date | None + from_payment_date: DF.Date | None + party: DF.DynamicLink + party_type: DF.Link + receivable_payable_account: DF.Link + status: DF.Literal[ + "", "Queued", "Running", "Paused", "Completed", "Partially Reconciled", "Failed", "Cancelled" + ] + to_invoice_date: DF.Date | None + to_payment_date: DF.Date | None + # end: auto-generated types + +>>>>>>> 143209f91a (fix: `default_advance_account` field in Process Payment Reconciliation) def validate(self): self.validate_receivable_payable_account() self.validate_bank_cash_account() @@ -76,6 +105,7 @@ def get_pr_instance(doc: str): "party_type", "party", "receivable_payable_account", + "default_advance_account", "from_invoice_date", "to_invoice_date", "from_payment_date",