Merge pull request #45630 from ruthra-kumar/remove_acc_balance_field_from_payment_entry

refactor: remove redundant balance fields from Payment Entry
This commit is contained in:
ruthra kumar
2025-02-17 10:58:02 +05:30
committed by GitHub
3 changed files with 7 additions and 122 deletions

View File

@@ -374,7 +374,6 @@ frappe.ui.form.on("Payment Entry", {
frm.set_df_property("total_allocated_amount", "options", currency_field); frm.set_df_property("total_allocated_amount", "options", currency_field);
frm.set_df_property("unallocated_amount", "options", currency_field); frm.set_df_property("unallocated_amount", "options", currency_field);
frm.set_df_property("total_taxes_and_charges", "options", currency_field); frm.set_df_property("total_taxes_and_charges", "options", currency_field);
frm.set_df_property("party_balance", "options", currency_field);
frm.set_currency_labels( frm.set_currency_labels(
["total_amount", "outstanding_amount", "allocated_amount"], ["total_amount", "outstanding_amount", "allocated_amount"],
@@ -422,15 +421,7 @@ frappe.ui.form.on("Payment Entry", {
if (frm.doc.payment_type == "Internal Transfer") { if (frm.doc.payment_type == "Internal Transfer") {
$.each( $.each(
[ ["party", "party_type", "paid_from", "paid_to", "references", "total_allocated_amount"],
"party",
"party_type",
"party_balance",
"paid_from",
"paid_to",
"references",
"total_allocated_amount",
],
function (i, field) { function (i, field) {
frm.set_value(field, null); frm.set_value(field, null);
} }
@@ -478,13 +469,10 @@ frappe.ui.form.on("Payment Entry", {
$.each( $.each(
[ [
"party", "party",
"party_balance",
"paid_from", "paid_from",
"paid_to", "paid_to",
"paid_from_account_currency", "paid_from_account_currency",
"paid_from_account_balance",
"paid_to_account_currency", "paid_to_account_currency",
"paid_to_account_balance",
"references", "references",
"total_allocated_amount", "total_allocated_amount",
], ],
@@ -529,17 +517,14 @@ frappe.ui.form.on("Payment Entry", {
"paid_from_account_currency", "paid_from_account_currency",
r.message.party_account_currency r.message.party_account_currency
); );
frm.set_value("paid_from_account_balance", r.message.account_balance);
} else if (frm.doc.payment_type == "Pay") { } else if (frm.doc.payment_type == "Pay") {
frm.set_value("paid_to", r.message.party_account); frm.set_value("paid_to", r.message.party_account);
frm.set_value( frm.set_value(
"paid_to_account_currency", "paid_to_account_currency",
r.message.party_account_currency r.message.party_account_currency
); );
frm.set_value("paid_to_account_balance", r.message.account_balance);
} }
}, },
() => frm.set_value("party_balance", r.message.party_balance),
() => frm.set_value("party_name", r.message.party_name), () => frm.set_value("party_name", r.message.party_name),
() => frm.clear_table("references"), () => frm.clear_table("references"),
() => frm.events.hide_unhide_fields(frm), () => frm.events.hide_unhide_fields(frm),
@@ -591,7 +576,6 @@ frappe.ui.form.on("Payment Entry", {
frm, frm,
frm.doc.paid_from, frm.doc.paid_from,
"paid_from_account_currency", "paid_from_account_currency",
"paid_from_account_balance",
function (frm) { function (frm) {
if (frm.doc.payment_type == "Pay") { if (frm.doc.payment_type == "Pay") {
frm.events.paid_amount(frm); frm.events.paid_amount(frm);
@@ -607,7 +591,6 @@ frappe.ui.form.on("Payment Entry", {
frm, frm,
frm.doc.paid_to, frm.doc.paid_to,
"paid_to_account_currency", "paid_to_account_currency",
"paid_to_account_balance",
function (frm) { function (frm) {
if (frm.doc.payment_type == "Receive") { if (frm.doc.payment_type == "Receive") {
if (frm.doc.paid_from_account_currency == frm.doc.paid_to_account_currency) { if (frm.doc.paid_from_account_currency == frm.doc.paid_to_account_currency) {
@@ -623,13 +606,7 @@ frappe.ui.form.on("Payment Entry", {
); );
}, },
set_account_currency_and_balance: function ( set_account_currency_and_balance: function (frm, account, currency_field, callback_function) {
frm,
account,
currency_field,
balance_field,
callback_function
) {
var company_currency = frappe.get_doc(":Company", frm.doc.company).default_currency; var company_currency = frappe.get_doc(":Company", frm.doc.company).default_currency;
if (frm.doc.posting_date && account) { if (frm.doc.posting_date && account) {
frappe.call({ frappe.call({
@@ -644,8 +621,6 @@ frappe.ui.form.on("Payment Entry", {
frappe.run_serially([ frappe.run_serially([
() => frm.set_value(currency_field, r.message["account_currency"]), () => frm.set_value(currency_field, r.message["account_currency"]),
() => { () => {
frm.set_value(balance_field, r.message["account_balance"]);
if ( if (
frm.doc.payment_type == "Receive" && frm.doc.payment_type == "Receive" &&
currency_field == "paid_to_account_currency" currency_field == "paid_to_account_currency"
@@ -1684,37 +1659,6 @@ frappe.ui.form.on("Payment Entry", {
return current_tax_amount; return current_tax_amount;
}, },
cost_center: function (frm) {
if (frm.doc.posting_date && (frm.doc.paid_from || frm.doc.paid_to)) {
return frappe.call({
method: "erpnext.accounts.doctype.payment_entry.payment_entry.get_party_and_account_balance",
args: {
company: frm.doc.company,
date: frm.doc.posting_date,
paid_from: frm.doc.paid_from,
paid_to: frm.doc.paid_to,
ptype: frm.doc.party_type,
pty: frm.doc.party,
cost_center: frm.doc.cost_center,
},
callback: function (r, rt) {
if (r.message) {
frappe.run_serially([
() => {
frm.set_value(
"paid_from_account_balance",
r.message.paid_from_account_balance
);
frm.set_value("paid_to_account_balance", r.message.paid_to_account_balance);
frm.set_value("party_balance", r.message.party_balance);
},
]);
}
},
});
}
},
after_save: function (frm) { after_save: function (frm) {
const { matched_payment_requests } = frappe.last_response; const { matched_payment_requests } = frappe.last_response;
if (!matched_payment_requests) return; if (!matched_payment_requests) return;

View File

@@ -28,16 +28,13 @@
"contact_person", "contact_person",
"contact_email", "contact_email",
"payment_accounts_section", "payment_accounts_section",
"party_balance",
"paid_from", "paid_from",
"paid_from_account_type", "paid_from_account_type",
"paid_from_account_currency", "paid_from_account_currency",
"paid_from_account_balance",
"column_break_18", "column_break_18",
"paid_to", "paid_to",
"paid_to_account_type", "paid_to_account_type",
"paid_to_account_currency", "paid_to_account_currency",
"paid_to_account_balance",
"payment_amounts_section", "payment_amounts_section",
"paid_amount", "paid_amount",
"paid_amount_after_tax", "paid_amount_after_tax",
@@ -223,16 +220,6 @@
"fieldtype": "Section Break", "fieldtype": "Section Break",
"label": "Accounts" "label": "Accounts"
}, },
{
"allow_on_submit": 1,
"depends_on": "party",
"fieldname": "party_balance",
"fieldtype": "Currency",
"label": "Party Balance",
"no_copy": 1,
"print_hide": 1,
"read_only": 1
},
{ {
"bold": 1, "bold": 1,
"depends_on": "eval:(in_list([\"Internal Transfer\", \"Pay\"], doc.payment_type) || doc.party)", "depends_on": "eval:(in_list([\"Internal Transfer\", \"Pay\"], doc.payment_type) || doc.party)",
@@ -254,16 +241,6 @@
"read_only": 1, "read_only": 1,
"reqd": 1 "reqd": 1
}, },
{
"allow_on_submit": 1,
"depends_on": "paid_from",
"fieldname": "paid_from_account_balance",
"fieldtype": "Currency",
"label": "Account Balance (From)",
"options": "paid_from_account_currency",
"print_hide": 1,
"read_only": 1
},
{ {
"fieldname": "column_break_18", "fieldname": "column_break_18",
"fieldtype": "Column Break" "fieldtype": "Column Break"
@@ -288,16 +265,6 @@
"read_only": 1, "read_only": 1,
"reqd": 1 "reqd": 1
}, },
{
"allow_on_submit": 1,
"depends_on": "paid_to",
"fieldname": "paid_to_account_balance",
"fieldtype": "Currency",
"label": "Account Balance (To)",
"options": "paid_to_account_currency",
"print_hide": 1,
"read_only": 1
},
{ {
"depends_on": "eval:(doc.paid_to && doc.paid_from)", "depends_on": "eval:(doc.paid_to && doc.paid_from)",
"fieldname": "payment_amounts_section", "fieldname": "payment_amounts_section",
@@ -810,7 +777,7 @@
"table_fieldname": "payment_entries" "table_fieldname": "payment_entries"
} }
], ],
"modified": "2025-01-31 17:27:28.555246", "modified": "2025-01-31 11:24:58.076393",
"modified_by": "Administrator", "modified_by": "Administrator",
"module": "Accounts", "module": "Accounts",
"name": "Payment Entry", "name": "Payment Entry",
@@ -856,4 +823,4 @@
"states": [], "states": [],
"title_field": "title", "title_field": "title",
"track_changes": 1 "track_changes": 1
} }

View File

@@ -108,15 +108,12 @@ class PaymentEntry(AccountsController):
paid_amount: DF.Currency paid_amount: DF.Currency
paid_amount_after_tax: DF.Currency paid_amount_after_tax: DF.Currency
paid_from: DF.Link paid_from: DF.Link
paid_from_account_balance: DF.Currency
paid_from_account_currency: DF.Link paid_from_account_currency: DF.Link
paid_from_account_type: DF.Data | None paid_from_account_type: DF.Data | None
paid_to: DF.Link paid_to: DF.Link
paid_to_account_balance: DF.Currency
paid_to_account_currency: DF.Link paid_to_account_currency: DF.Link
paid_to_account_type: DF.Data | None paid_to_account_type: DF.Data | None
party: DF.DynamicLink | None party: DF.DynamicLink | None
party_balance: DF.Currency
party_bank_account: DF.Link | None party_bank_account: DF.Link | None
party_name: DF.Data | None party_name: DF.Data | None
party_type: DF.Link | None party_type: DF.Link | None
@@ -506,7 +503,6 @@ class PaymentEntry(AccountsController):
if self.payment_type == "Internal Transfer": if self.payment_type == "Internal Transfer":
for field in ( for field in (
"party", "party",
"party_balance",
"total_allocated_amount", "total_allocated_amount",
"base_total_allocated_amount", "base_total_allocated_amount",
"unallocated_amount", "unallocated_amount",
@@ -534,25 +530,19 @@ class PaymentEntry(AccountsController):
) )
else: else:
complete_contact_details(self) complete_contact_details(self)
if not self.party_balance:
self.party_balance = get_balance_on(
party_type=self.party_type, party=self.party, date=self.posting_date, company=self.company
)
if not self.party_account: if not self.party_account:
party_account = get_party_account(self.party_type, self.party, self.company) party_account = get_party_account(self.party_type, self.party, self.company)
self.set(self.party_account_field, party_account) self.set(self.party_account_field, party_account)
self.party_account = party_account self.party_account = party_account
if self.paid_from and not self.paid_from_account_currency and not self.paid_from_account_balance: if self.paid_from and not self.paid_from_account_currency:
acc = get_account_details(self.paid_from, self.posting_date, self.cost_center) acc = get_account_details(self.paid_from, self.posting_date, self.cost_center)
self.paid_from_account_currency = acc.account_currency self.paid_from_account_currency = acc.account_currency
self.paid_from_account_balance = acc.account_balance
if self.paid_to and not self.paid_to_account_currency and not self.paid_to_account_balance: if self.paid_to and not self.paid_to_account_currency:
acc = get_account_details(self.paid_to, self.posting_date, self.cost_center) acc = get_account_details(self.paid_to, self.posting_date, self.cost_center)
self.paid_to_account_currency = acc.account_currency self.paid_to_account_currency = acc.account_currency
self.paid_to_account_balance = acc.account_balance
self.party_account_currency = ( self.party_account_currency = (
self.paid_from_account_currency self.paid_from_account_currency
@@ -2721,9 +2711,7 @@ def get_party_details(company, party_type, party, date, cost_center=None):
account_balance = get_balance_on(party_account, date, cost_center=cost_center) account_balance = get_balance_on(party_account, date, cost_center=cost_center)
_party_name = "title" if party_type == "Shareholder" else party_type.lower() + "_name" _party_name = "title" if party_type == "Shareholder" else party_type.lower() + "_name"
party_name = frappe.db.get_value(party_type, party, _party_name) party_name = frappe.db.get_value(party_type, party, _party_name)
party_balance = get_balance_on(
party_type=party_type, party=party, company=company, cost_center=cost_center
)
if party_type in ["Customer", "Supplier"]: if party_type in ["Customer", "Supplier"]:
party_bank_account = get_party_bank_account(party_type, party) party_bank_account = get_party_bank_account(party_type, party)
bank_account = get_default_company_bank_account(company, party_type, party) bank_account = get_default_company_bank_account(company, party_type, party)
@@ -2732,7 +2720,6 @@ def get_party_details(company, party_type, party, date, cost_center=None):
"party_account": party_account, "party_account": party_account,
"party_name": party_name, "party_name": party_name,
"party_account_currency": account_currency, "party_account_currency": account_currency,
"party_balance": party_balance,
"account_balance": account_balance, "account_balance": account_balance,
"party_bank_account": party_bank_account, "party_bank_account": party_bank_account,
"bank_account": bank_account, "bank_account": bank_account,
@@ -3558,19 +3545,6 @@ def get_paid_amount(dt, dn, party_type, party, account, due_date):
return paid_amount[0][0] if paid_amount else 0 return paid_amount[0][0] if paid_amount else 0
@frappe.whitelist()
def get_party_and_account_balance(
company, date, paid_from=None, paid_to=None, ptype=None, pty=None, cost_center=None
):
return frappe._dict(
{
"party_balance": get_balance_on(party_type=ptype, party=pty, cost_center=cost_center),
"paid_from_account_balance": get_balance_on(paid_from, date, cost_center=cost_center),
"paid_to_account_balance": get_balance_on(paid_to, date=date, cost_center=cost_center),
}
)
@frappe.whitelist() @frappe.whitelist()
def make_payment_order(source_name, target_doc=None): def make_payment_order(source_name, target_doc=None):
from frappe.model.mapper import get_mapped_doc from frappe.model.mapper import get_mapped_doc