Browse Source

[FIX] Fix bug with invoices aged exactly of 30 or 60 days

Those invoices were in 2 different table (e.g. 30-60 and 60+ for a 60 days invoice)
pull/9/head
Agathe Mollé 10 years ago
parent
commit
9b897ef71b
  1. 32
      account_partner_aged_statement_webkit/report/partner_aged_statement.mako
  2. 38
      account_partner_aged_statement_webkit/report/partner_aged_statement_report.py
  3. 16
      account_partner_aged_statement_webkit/tests/test_aged_statement.py

32
account_partner_aged_statement_webkit/report/partner_aged_statement.mako

@ -59,9 +59,9 @@
<table class="basic_table" style="width: 100%;">
<tr>
<th>${_('Current')}</th>
<th>${_('30-60')}</th>
<th>${_('60-90')}</th>
<th>${_('90-120')}</th>
<th>${_('31-60')}</th>
<th>${_('61-90')}</th>
<th>${_('91-120')}</th>
<th>${_('+120')}</th>
<th>${_('Total')}</th>
<th>${_('Currency')}</th>
@ -69,10 +69,10 @@
%for l in get_balance(partner, company):
<tr>
<td>${ l['current'] }</td>
<td>${ l['3060'] }</td>
<td>${ l['6090'] }</td>
<td>${ l['90120'] }</td>
<td>${ l['120'] }</td>
<td>${ l['3160'] }</td>
<td>${ l['6190'] }</td>
<td>${ l['91120'] }</td>
<td>${ l['121'] }</td>
<td>${ l['total'] }</td>
<td>${ l['currency_name']}</td>
</tr>
@ -120,9 +120,9 @@
%endif ## if getLinesCurrent(partner, company)
<div class="title">${_('List of overdue invoices')}</div>
%if getLines3060(partner, company):
%if getLines3160(partner, company):
<br/>
<div class="total">${_('30-60')}</div>
<div class="total">${_('31-60')}</div>
<table class="basic_table" style="width: 100%;">
<tr>
<th>${_('Date')}</th>
@ -134,7 +134,7 @@
<th>${_('Total')}</th>
<th>${_('Currency')}</th>
</tr>
%for line in getLines3060(partner, company):
%for line in getLines3160(partner, company):
<tr>
<td>${ formatLang(line['date_original'], date=True) }</td>
<td>${ line['name'] }</td>
@ -145,10 +145,10 @@
<td style="text-align: right;">${ formatLang(line['amount_unreconciled']) }</td>
<td>${ line['currency_name'] }</td>
</tr>
%endfor ## for line in getLines3060(partner, company)
%endfor ## for line in getLines3160(partner, company)
</table>
%endif ## if getLines3060(partner, company)
%if getLines60(partner, company):
%endif ## if getLines3160(partner, company)
%if getLines61(partner, company):
<br/>
<div class="total">${_('+60')}</div>
<table class="basic_table" style="width: 100%;">
@ -162,7 +162,7 @@
<th>${_('Total')}</th>
<th>${_('Currency')}</th>
</tr>
%for line in getLines60(partner, company):
%for line in getLines61(partner, company):
<tr>
<td>${ formatLang(line['date_original'], date=True) }</td>
<td>${ line['name'] }</td>
@ -173,9 +173,9 @@
<td style="text-align: right;">${ formatLang(line['amount_unreconciled']) }</td>
<td>${ line['currency_name'] }</td>
</tr>
%endfor ## for line in getLines60(partner, company)
%endfor ## for line in getLines61(partner, company)
</table>
%endif ## if getLines60(partner)
%endif ## if getLines61(partner)
%if getLinesRefunds(partner, company):
<br/>

38
account_partner_aged_statement_webkit/report/partner_aged_statement_report.py

@ -49,8 +49,8 @@ class PartnerAgedTrialReport(aged_trial_report):
self.localcontext.update({
'message': self._message,
'getLinesCurrent': self._lines_get_current,
'getLines3060': self._lines_get_30_60,
'getLines60': self._lines_get_60,
'getLines3160': self._lines_get_31_60,
'getLines61': self._lines_get_61,
'getLinesRefunds': self._lines_get_refunds,
'show_message': True,
'get_current_invoice_lines': self._get_current_invoice_lines,
@ -96,10 +96,10 @@ class PartnerAgedTrialReport(aged_trial_report):
res[currency_name] = {
'current': 0,
'30': 0,
'3060': 0,
'6090': 0,
'90120': 0,
'120': 0,
'3160': 0,
'6190': 0,
'91120': 0,
'121': 0,
'total': 0,
'currency_name': currency_name,
}
@ -114,17 +114,17 @@ class PartnerAgedTrialReport(aged_trial_report):
):
current_dict['current'] += amount
elif line['date_original'] > date_60:
current_dict['3060'] += amount
elif line['date_original'] >= date_60:
current_dict['3160'] += amount
elif line['date_original'] > date_90:
current_dict['6090'] += amount
elif line['date_original'] >= date_90:
current_dict['6190'] += amount
elif line['date_original'] > date_120:
current_dict['90120'] += amount
elif line['date_original'] >= date_120:
current_dict['91120'] += amount
else:
current_dict['120'] += amount
current_dict['121'] += amount
current_dict['total'] += amount
@ -203,10 +203,10 @@ class PartnerAgedTrialReport(aged_trial_report):
print movelines
return movelines
def _lines_get_30_60(self, partner, company):
def _lines_get_31_60(self, partner, company):
today = self.today
start = today - relativedelta(days=30)
stop = start - relativedelta(days=30)
start = today - relativedelta(days=31)
stop = today - relativedelta(days=60)
today = today.strftime(DEFAULT_SERVER_DATE_FORMAT)
start = start.strftime(DEFAULT_SERVER_DATE_FORMAT)
@ -217,14 +217,14 @@ class PartnerAgedTrialReport(aged_trial_report):
line for line in movelines
if ((
line['date_original'] and
stop < line['date_original'] <= start
stop <= line['date_original'] <= start
) and line['type'] in ['in_invoice', 'out_invoice'])
]
return movelines
def _lines_get_60(self, partner, company):
def _lines_get_61(self, partner, company):
today = self.today
start = today - relativedelta(days=60)
start = today - relativedelta(days=61)
today = today.strftime(DEFAULT_SERVER_DATE_FORMAT)
start = start.strftime(DEFAULT_SERVER_DATE_FORMAT)

16
account_partner_aged_statement_webkit/tests/test_aged_statement.py

@ -137,10 +137,10 @@ class test_aged_statement(common.TransactionCase):
self.assertEqual(len(balance), 1)
self.assertEqual(balance[0]['current'], 400)
self.assertEqual(balance[0]['3060'], 150)
self.assertEqual(balance[0]['6090'], 200)
self.assertEqual(balance[0]['90120'], 250)
self.assertEqual(balance[0]['120'], 500)
self.assertEqual(balance[0]['3160'], 150)
self.assertEqual(balance[0]['6190'], 200)
self.assertEqual(balance[0]['91120'], 250)
self.assertEqual(balance[0]['121'], 500)
self.assertEqual(balance[0]['total'], 400 + 150 + 200 + 250 + 500)
def compare_vals(self, line, vals):
@ -165,8 +165,8 @@ class test_aged_statement(common.TransactionCase):
'amount_unreconciled': 100,
})
def test_line_get_30_60(self):
lines = self.report._lines_get_30_60(self.partner, self.company)
def test_line_get_31_60(self):
lines = self.report._lines_get_31_60(self.partner, self.company)
self.compare_vals(lines[0], {
'date_original': self.date2,
@ -174,9 +174,9 @@ class test_aged_statement(common.TransactionCase):
'amount_unreconciled': 150,
})
def test_line_get_60(self):
def test_line_get_61(self):
lines = sorted(
self.report._lines_get_60(self.partner, self.company),
self.report._lines_get_61(self.partner, self.company),
key=lambda l: l['date_original'])
self.compare_vals(lines[0], {

Loading…
Cancel
Save