[IMP] account: support for partial reconciliation in aged partner balance
When computing the aged partner balance, the partial reconciliation was not handled correctly. The reconciled amount should be removed from the original remaining amount instead of displaying two entries in the journal. eg: if invocie of 1000 in period 1 and payment of 300 in period 2, should only display +700 in period 1 instead of two entries
This commit is contained in:
parent
b6a7402fdb
commit
abe5c803a0
|
@ -159,7 +159,7 @@ class aged_trial_report(report_sxw.rml_parse, common_report_header):
|
|||
dates_query += ' < %s)'
|
||||
args_list += (form[str(i)]['stop'],)
|
||||
args_list += (self.date_from,)
|
||||
self.cr.execute('''SELECT l.partner_id, SUM(l.debit-l.credit)
|
||||
self.cr.execute('''SELECT l.partner_id, SUM(l.debit-l.credit), l.reconcile_partial_id
|
||||
FROM account_move_line AS l, account_account, account_move am
|
||||
WHERE (l.account_id = account_account.id) AND (l.move_id=am.id)
|
||||
AND (am.state IN %s)
|
||||
|
@ -171,12 +171,24 @@ class aged_trial_report(report_sxw.rml_parse, common_report_header):
|
|||
AND account_account.active
|
||||
AND ''' + dates_query + '''
|
||||
AND (l.date <= %s)
|
||||
GROUP BY l.partner_id''', args_list)
|
||||
t = self.cr.fetchall()
|
||||
d = {}
|
||||
for i in t:
|
||||
d[i[0]] = i[1]
|
||||
history.append(d)
|
||||
GROUP BY l.partner_id, l.reconcile_partial_id''', args_list)
|
||||
partners_partial = self.cr.fetchall()
|
||||
partners_amount = dict((i[0],0) for i in partners_partial)
|
||||
for partner_info in partners_partial:
|
||||
if partner_info[2]:
|
||||
# in case of partial reconciliation, we want to keep the left amount in the oldest period
|
||||
self.cr.execute('''SELECT MIN(COALESCE(date_maturity,date)) FROM account_move_line WHERE reconcile_partial_id = %s''', (partner_info[2],))
|
||||
date = self.cr.fetchall()
|
||||
if date and args_list[-3] <= date[0][0] <= args_list[-2]:
|
||||
# partial reconcilation
|
||||
self.cr.execute('''SELECT SUM(l.debit-l.credit)
|
||||
FROM account_move_line AS l
|
||||
WHERE l.reconcile_partial_id = %s''', (partner_info[2],))
|
||||
unreconciled_amount = self.cr.fetchall()
|
||||
partners_amount[partner_info[0]] += unreconciled_amount[0][0]
|
||||
else:
|
||||
partners_amount[partner_info[0]] += partner_info[1]
|
||||
history.append(partners_amount)
|
||||
|
||||
for partner in partners:
|
||||
values = {}
|
||||
|
|
Loading…
Reference in New Issue