Payment reco auto allocation and maintain same order of records (#12963)
* Automatically allocate amount after selecting invoice against a payment entry * codacy fixes
This commit is contained in:
parent
103c4e9b92
commit
cc98d40ff7
@ -3,9 +3,26 @@
|
|||||||
|
|
||||||
frappe.provide("erpnext.accounts");
|
frappe.provide("erpnext.accounts");
|
||||||
|
|
||||||
|
frappe.ui.form.on("Payment Reconciliation Payment", {
|
||||||
|
invoice_number: function(frm, cdt, cdn) {
|
||||||
|
var row = locals[cdt][cdn];
|
||||||
|
if(row.invoice_number) {
|
||||||
|
var parts = row.invoice_number.split(' | ');
|
||||||
|
var invoice_type = parts[0];
|
||||||
|
var invoice_number = parts[1];
|
||||||
|
|
||||||
|
var invoice_amount = frm.doc.invoices.filter(function(d) {
|
||||||
|
return d.invoice_type === invoice_type && d.invoice_number === invoice_number;
|
||||||
|
})[0].outstanding_amount;
|
||||||
|
|
||||||
|
frappe.model.set_value(cdt, cdn, "allocated_amount", Math.min(invoice_amount, row.amount));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
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_type", function() {
|
this.frm.set_query("party_type", function() {
|
||||||
return{
|
return{
|
||||||
query: "erpnext.setup.doctype.party_type.party_type.get_party_type"
|
query: "erpnext.setup.doctype.party_type.party_type.get_party_type"
|
||||||
|
@ -55,6 +55,7 @@ class PaymentReconciliation(Document):
|
|||||||
THEN 1=1
|
THEN 1=1
|
||||||
ELSE {bank_account_condition}
|
ELSE {bank_account_condition}
|
||||||
END)
|
END)
|
||||||
|
order by t1.posting_date
|
||||||
""".format(**{
|
""".format(**{
|
||||||
"dr_or_cr": dr_or_cr,
|
"dr_or_cr": dr_or_cr,
|
||||||
"bank_account_condition": bank_account_condition,
|
"bank_account_condition": bank_account_condition,
|
||||||
|
@ -883,6 +883,7 @@ def get_advance_payment_entries(party_type, party, party_account,
|
|||||||
t1.name = t2.parent and t1.{0} = %s and t1.payment_type = %s
|
t1.name = t2.parent and t1.{0} = %s and t1.payment_type = %s
|
||||||
and t1.party_type = %s and t1.party = %s and t1.docstatus = 1
|
and t1.party_type = %s and t1.party = %s and t1.docstatus = 1
|
||||||
and t2.reference_doctype = %s {1}
|
and t2.reference_doctype = %s {1}
|
||||||
|
order by t1.posting_date
|
||||||
""".format(party_account_field, reference_condition),
|
""".format(party_account_field, reference_condition),
|
||||||
[party_account, payment_type, party_type, party, order_doctype] + order_list, as_dict=1)
|
[party_account, payment_type, party_type, party, order_doctype] + order_list, as_dict=1)
|
||||||
|
|
||||||
@ -894,6 +895,7 @@ def get_advance_payment_entries(party_type, party, party_account,
|
|||||||
where
|
where
|
||||||
{0} = %s and party_type = %s and party = %s and payment_type = %s
|
{0} = %s and party_type = %s and party = %s and payment_type = %s
|
||||||
and docstatus = 1 and unallocated_amount > 0
|
and docstatus = 1 and unallocated_amount > 0
|
||||||
|
order by posting_date
|
||||||
""".format(party_account_field), (party_account, party_type, party, payment_type), as_dict=1)
|
""".format(party_account_field), (party_account, party_type, party, payment_type), as_dict=1)
|
||||||
|
|
||||||
return list(payment_entries_against_order) + list(unallocated_payment_entries)
|
return list(payment_entries_against_order) + list(unallocated_payment_entries)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user