Merge pull request #23666 from marination/payment-reco-mandatory-check

fix: Payment Reconciliation client side validations
This commit is contained in:
Marica 2020-10-16 18:06:16 +05:30 committed by GitHub
commit 569e218aa0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 33 additions and 26 deletions

View File

@ -37,6 +37,11 @@ frappe.ui.form.on("Payment Reconciliation Payment", {
erpnext.accounts.PaymentReconciliationController = frappe.ui.form.Controller.extend({ erpnext.accounts.PaymentReconciliationController = frappe.ui.form.Controller.extend({
onload: function() { onload: function() {
var me = this; var me = this;
this.frm.set_query("party", function() {
check_mandatory(me.frm);
});
this.frm.set_query("party_type", function() { this.frm.set_query("party_type", function() {
return { return {
"filters": { "filters": {
@ -46,37 +51,39 @@ erpnext.accounts.PaymentReconciliationController = frappe.ui.form.Controller.ext
}); });
this.frm.set_query('receivable_payable_account', function() { this.frm.set_query('receivable_payable_account', function() {
if(!me.frm.doc.company || !me.frm.doc.party_type) { check_mandatory(me.frm);
frappe.msgprint(__("Please select Company and Party Type first")); return {
} else { filters: {
return{ "company": me.frm.doc.company,
filters: { "is_group": 0,
"company": me.frm.doc.company, "account_type": frappe.boot.party_account_types[me.frm.doc.party_type]
"is_group": 0, }
"account_type": frappe.boot.party_account_types[me.frm.doc.party_type] };
}
};
}
}); });
this.frm.set_query('bank_cash_account', function() { this.frm.set_query('bank_cash_account', function() {
if(!me.frm.doc.company) { check_mandatory(me.frm, true);
frappe.msgprint(__("Please select Company first")); return {
} else { filters:[
return{ ['Account', 'company', '=', me.frm.doc.company],
filters:[ ['Account', 'is_group', '=', 0],
['Account', 'company', '=', me.frm.doc.company], ['Account', 'account_type', 'in', ['Bank', 'Cash']]
['Account', 'is_group', '=', 0], ]
['Account', 'account_type', 'in', ['Bank', 'Cash']] };
]
};
}
}); });
this.frm.set_value('party_type', ''); this.frm.set_value('party_type', '');
this.frm.set_value('party', ''); this.frm.set_value('party', '');
this.frm.set_value('receivable_payable_account', ''); this.frm.set_value('receivable_payable_account', '');
var check_mandatory = (frm, only_company=false) => {
var title = __("Mandatory");
if (only_company && !frm.doc.company) {
frappe.throw({message: __("Please Select a Company First"), title: title});
} else if (!frm.doc.company || !frm.doc.party_type) {
frappe.throw({message: __("Please Select Both Company and Party Type First"), title: title});
}
};
}, },
refresh: function() { refresh: function() {
@ -90,7 +97,7 @@ erpnext.accounts.PaymentReconciliationController = frappe.ui.form.Controller.ext
party: function() { party: function() {
var me = this var me = this
if(!me.frm.doc.receivable_payable_account && me.frm.doc.party_type && me.frm.doc.party) { if (!me.frm.doc.receivable_payable_account && me.frm.doc.party_type && me.frm.doc.party) {
return frappe.call({ return frappe.call({
method: "erpnext.accounts.party.get_party_account", method: "erpnext.accounts.party.get_party_account",
args: { args: {
@ -99,7 +106,7 @@ erpnext.accounts.PaymentReconciliationController = frappe.ui.form.Controller.ext
party: me.frm.doc.party party: me.frm.doc.party
}, },
callback: function(r) { callback: function(r) {
if(!r.exc && r.message) { if (!r.exc && r.message) {
me.frm.set_value("receivable_payable_account", r.message); me.frm.set_value("receivable_payable_account", r.message);
} }
} }

View File

@ -203,7 +203,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): def get_party_account(party_type, party, 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),