Merge pull request #28363 from deepeshgarg007/default_party_account
fix: Default party account getting overriden in invoices
This commit is contained in:
commit
829f92f10a
@ -592,8 +592,17 @@ frappe.ui.form.on("Purchase Invoice", {
|
|||||||
erpnext.accounts.dimensions.update_dimension(frm, frm.doctype);
|
erpnext.accounts.dimensions.update_dimension(frm, frm.doctype);
|
||||||
|
|
||||||
if (frm.doc.company) {
|
if (frm.doc.company) {
|
||||||
frappe.db.get_value('Company', frm.doc.company, 'default_payable_account', (r) => {
|
frappe.call({
|
||||||
frm.set_value('credit_to', r.default_payable_account);
|
method:
|
||||||
|
"erpnext.accounts.party.get_party_account",
|
||||||
|
args: {
|
||||||
|
party_type: 'Supplier',
|
||||||
|
party: frm.doc.supplier,
|
||||||
|
company: frm.doc.company
|
||||||
|
},
|
||||||
|
callback: (response) => {
|
||||||
|
if (response) frm.set_value("credit_to", response.message);
|
||||||
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -15,8 +15,17 @@ erpnext.accounts.SalesInvoiceController = class SalesInvoiceController extends e
|
|||||||
|
|
||||||
let me = this;
|
let me = this;
|
||||||
if (this.frm.doc.company) {
|
if (this.frm.doc.company) {
|
||||||
frappe.db.get_value('Company', this.frm.doc.company, 'default_receivable_account', (r) => {
|
frappe.call({
|
||||||
me.frm.set_value('debit_to', r.default_receivable_account);
|
method:
|
||||||
|
"erpnext.accounts.party.get_party_account",
|
||||||
|
args: {
|
||||||
|
party_type: 'Customer',
|
||||||
|
party: this.frm.doc.customer,
|
||||||
|
company: this.frm.doc.company
|
||||||
|
},
|
||||||
|
callback: (response) => {
|
||||||
|
if (response) me.frm.set_value("debit_to", response.message);
|
||||||
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -219,7 +219,7 @@ def set_account_and_due_date(party, account, party_type, company, posting_date,
|
|||||||
return out
|
return out
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def get_party_account(party_type, party, company=None):
|
def get_party_account(party_type, party=None, company=None):
|
||||||
"""Returns the account for the given `party`.
|
"""Returns the account for the given `party`.
|
||||||
Will first search in party (Customer / Supplier) record, if not found,
|
Will first search in party (Customer / Supplier) record, if not found,
|
||||||
will search in group (Customer Group / Supplier Group),
|
will search in group (Customer Group / Supplier Group),
|
||||||
@ -227,8 +227,11 @@ def get_party_account(party_type, party, company=None):
|
|||||||
if not company:
|
if not company:
|
||||||
frappe.throw(_("Please select a Company"))
|
frappe.throw(_("Please select a Company"))
|
||||||
|
|
||||||
if not party:
|
if not party and party_type in ['Customer', 'Supplier']:
|
||||||
return
|
default_account_name = "default_receivable_account" \
|
||||||
|
if party_type=="Customer" else "default_payable_account"
|
||||||
|
|
||||||
|
return frappe.get_cached_value('Company', company, default_account_name)
|
||||||
|
|
||||||
account = frappe.db.get_value("Party Account",
|
account = frappe.db.get_value("Party Account",
|
||||||
{"parenttype": party_type, "parent": party, "company": company}, "account")
|
{"parenttype": party_type, "parent": party, "company": company}, "account")
|
||||||
|
@ -1402,8 +1402,8 @@ class AccountsController(TransactionBase):
|
|||||||
grand_total -= self.get("total_advance")
|
grand_total -= self.get("total_advance")
|
||||||
base_grand_total = flt(grand_total * self.get("conversion_rate"), self.precision("base_grand_total"))
|
base_grand_total = flt(grand_total * self.get("conversion_rate"), self.precision("base_grand_total"))
|
||||||
|
|
||||||
if flt(total, self.precision("grand_total")) != flt(grand_total, self.precision("grand_total")) or \
|
if flt(total, self.precision("grand_total")) - flt(grand_total, self.precision("grand_total")) > 0.1 or \
|
||||||
flt(base_total, self.precision("base_grand_total")) != flt(base_grand_total, self.precision("base_grand_total")):
|
flt(base_total, self.precision("base_grand_total")) - flt(base_grand_total, self.precision("base_grand_total")) > 0.1:
|
||||||
frappe.throw(_("Total Payment Amount in Payment Schedule must be equal to Grand / Rounded Total"))
|
frappe.throw(_("Total Payment Amount in Payment Schedule must be equal to Grand / Rounded Total"))
|
||||||
|
|
||||||
def is_rounded_total_disabled(self):
|
def is_rounded_total_disabled(self):
|
||||||
|
Loading…
Reference in New Issue
Block a user