fix: Update payment schedule based on payment terms
This commit is contained in:
parent
d5b97d6996
commit
a0fd97f2ac
@ -319,7 +319,7 @@ class PaymentEntry(AccountsController):
|
|||||||
invoice_payment_amount_map.setdefault(key, 0.0)
|
invoice_payment_amount_map.setdefault(key, 0.0)
|
||||||
invoice_payment_amount_map[key] += reference.allocated_amount
|
invoice_payment_amount_map[key] += reference.allocated_amount
|
||||||
|
|
||||||
if not invoice_paid_amount_map.get(reference.reference_name):
|
if not invoice_paid_amount_map.get(key):
|
||||||
payment_schedule = frappe.get_all('Payment Schedule', filters={'parent': reference.reference_name},
|
payment_schedule = frappe.get_all('Payment Schedule', filters={'parent': reference.reference_name},
|
||||||
fields=['paid_amount', 'payment_amount', 'payment_term'])
|
fields=['paid_amount', 'payment_amount', 'payment_term'])
|
||||||
for term in payment_schedule:
|
for term in payment_schedule:
|
||||||
@ -332,10 +332,12 @@ class PaymentEntry(AccountsController):
|
|||||||
frappe.db.sql(""" UPDATE `tabPayment Schedule` SET paid_amount = `paid_amount` - %s
|
frappe.db.sql(""" UPDATE `tabPayment Schedule` SET paid_amount = `paid_amount` - %s
|
||||||
WHERE parent = %s and payment_term = %s""", (amount, key[1], key[0]))
|
WHERE parent = %s and payment_term = %s""", (amount, key[1], key[0]))
|
||||||
else:
|
else:
|
||||||
outstanding = invoice_paid_amount_map.get(key)['outstanding']
|
outstanding = flt(invoice_paid_amount_map.get(key, {}).get('outstanding'))
|
||||||
|
|
||||||
if amount > outstanding:
|
if amount > outstanding:
|
||||||
frappe.throw(_('Cannot allocate more than {0} against payment term {1}').format(outstanding, key[0]))
|
frappe.throw(_('Cannot allocate more than {0} against payment term {1}').format(outstanding, key[0]))
|
||||||
|
|
||||||
|
if amount and outstanding:
|
||||||
frappe.db.sql(""" UPDATE `tabPayment Schedule` SET paid_amount = `paid_amount` + %s
|
frappe.db.sql(""" UPDATE `tabPayment Schedule` SET paid_amount = `paid_amount` + %s
|
||||||
WHERE parent = %s and payment_term = %s""", (amount, key[1], key[0]))
|
WHERE parent = %s and payment_term = %s""", (amount, key[1], key[0]))
|
||||||
|
|
||||||
@ -1091,6 +1093,10 @@ def get_payment_entry(dt, dn, party_amount=None, bank_account=None, bank_amount=
|
|||||||
def get_reference_as_per_payment_terms(payment_schedule, dt, dn, doc, grand_total, outstanding_amount):
|
def get_reference_as_per_payment_terms(payment_schedule, dt, dn, doc, grand_total, outstanding_amount):
|
||||||
references = []
|
references = []
|
||||||
for payment_term in payment_schedule:
|
for payment_term in payment_schedule:
|
||||||
|
payment_term_outstanding = flt(payment_term.payment_amount - payment_term.paid_amount,
|
||||||
|
payment_term.precision('payment_amount'))
|
||||||
|
|
||||||
|
if payment_term_outstanding:
|
||||||
references.append({
|
references.append({
|
||||||
'reference_doctype': dt,
|
'reference_doctype': dt,
|
||||||
'reference_name': dn,
|
'reference_name': dn,
|
||||||
@ -1099,8 +1105,7 @@ def get_reference_as_per_payment_terms(payment_schedule, dt, dn, doc, grand_tota
|
|||||||
'total_amount': grand_total,
|
'total_amount': grand_total,
|
||||||
'outstanding_amount': outstanding_amount,
|
'outstanding_amount': outstanding_amount,
|
||||||
'payment_term': payment_term.payment_term,
|
'payment_term': payment_term.payment_term,
|
||||||
'allocated_amount': flt(payment_term.payment_amount - payment_term.paid_amount,
|
'allocated_amount': payment_term_outstanding
|
||||||
payment_term.precision('payment_amount'))
|
|
||||||
})
|
})
|
||||||
|
|
||||||
return references
|
return references
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user