fix: incorrect paid amount in accounts receivable summary report

This commit is contained in:
Rohit Waghchaure 2019-03-25 15:37:25 +05:30
parent 794b6b6c0d
commit 4ed7d035cb
2 changed files with 12 additions and 5 deletions

View File

@ -573,13 +573,17 @@ def get_party_shipping_address(doctype, name):
else: else:
return '' return ''
def get_partywise_advanced_payment_amount(party_type="Customer"): def get_partywise_advanced_payment_amount(party_type, posting_date = None):
cond = "1=1"
if posting_date:
cond = "posting_date <= '{0}'".format(posting_date)
data = frappe.db.sql(""" SELECT party, sum({0}) as amount data = frappe.db.sql(""" SELECT party, sum({0}) as amount
FROM `tabGL Entry` FROM `tabGL Entry`
WHERE WHERE
party_type = %s and against_voucher is null party_type = %s and against_voucher is null
GROUP BY party""" and {1} GROUP BY party"""
.format(("credit") if party_type == "Customer" else "debit") , party_type) .format(("credit") if party_type == "Customer" else "debit", cond) , party_type)
if data: if data:
return frappe._dict(data) return frappe._dict(data)

View File

@ -136,7 +136,8 @@ class AccountsReceivableSummary(ReceivablePayableReport):
partywise_total = self.get_partywise_total(party_naming_by, args) partywise_total = self.get_partywise_total(party_naming_by, args)
partywise_advance_amount = get_partywise_advanced_payment_amount(args.get("party_type")) or {} partywise_advance_amount = get_partywise_advanced_payment_amount(args.get("party_type"),
self.filters.get("report_date")) or {}
for party, party_dict in iteritems(partywise_total): for party, party_dict in iteritems(partywise_total):
row = [party] row = [party]
@ -144,7 +145,9 @@ class AccountsReceivableSummary(ReceivablePayableReport):
row += [self.get_party_name(args.get("party_type"), party)] row += [self.get_party_name(args.get("party_type"), party)]
row += [partywise_advance_amount.get(party, 0)] row += [partywise_advance_amount.get(party, 0)]
paid_amt = flt(party_dict.paid_amt - partywise_advance_amount.get(party, 0))
if party_dict.paid_amt > 0:
paid_amt = flt(party_dict.paid_amt - partywise_advance_amount.get(party, 0))
row += [ row += [
party_dict.invoiced_amt, paid_amt, party_dict.credit_amt, party_dict.outstanding_amt, party_dict.invoiced_amt, paid_amt, party_dict.credit_amt, party_dict.outstanding_amt,