mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-31 10:49:09 +00:00
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:
@@ -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;
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user