summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpvy <pvy@odoo.com>2016-07-04 17:25:21 +0200
committerqdp-odoo <qdp@odoo.com>2016-07-04 17:27:42 +0200
commit33161884eef3cf633c66b0db886c190138ab9fc7 (patch)
treedac8268e097697800c011e39b74ff6ae85528f0b
parentb1c922d2d12069659b1dc314507feca27b7cd674 (diff)
[IMP] account reports: improved _get_partner_move_lines() used in aged partner balance report to add the unfolding feature.
The method now also sends back the lines used, their right amount and the period they should be in.
-rw-r--r--addons/account/report/account_aged_partner_balance.py17
1 files changed, 14 insertions, 3 deletions
diff --git a/addons/account/report/account_aged_partner_balance.py b/addons/account/report/account_aged_partner_balance.py
index 9743366d950..9aaeafe5e9c 100644
--- a/addons/account/report/account_aged_partner_balance.py
+++ b/addons/account/report/account_aged_partner_balance.py
@@ -61,8 +61,9 @@ class ReportAgedPartnerBalance(models.AbstractModel):
# Build a string like (1,2,3) for easy use in SQL query
partner_ids = [partner['partner_id'] for partner in partners if partner['partner_id']]
+ lines = dict([(partner['partner_id'], []) for partner in partners if partner['partner_id']])
if not partner_ids:
- return [], []
+ return [], [], []
# This dictionary will store the not due amount of all partners
undue_amounts = {}
@@ -92,6 +93,11 @@ class ReportAgedPartnerBalance(models.AbstractModel):
if partial_line.create_date[:10] <= date_from:
line_amount -= partial_line.amount
undue_amounts[partner_id] += line_amount
+ lines[partner_id].append({
+ 'line': line,
+ 'amount': line_amount,
+ 'period': 6,
+ })
# Use one query per period and store results in history (a list variable)
# Each history will contain: history[1] = {'<partner_id>': <partner_debit-credit>}
@@ -139,6 +145,11 @@ class ReportAgedPartnerBalance(models.AbstractModel):
line_amount -= partial_line.amount
partners_amount[partner_id] += line_amount
+ lines[partner_id].append({
+ 'line': line,
+ 'amount': line_amount,
+ 'period': i,
+ })
history.append(partners_amount)
for partner in partners:
@@ -177,7 +188,7 @@ class ReportAgedPartnerBalance(models.AbstractModel):
if at_least_one_amount:
res.append(values)
- return res, total
+ return res, total, lines
@api.multi
def render_html(self, data):
@@ -195,7 +206,7 @@ class ReportAgedPartnerBalance(models.AbstractModel):
else:
account_type = ['payable', 'receivable']
- movelines, total = self._get_partner_move_lines(account_type, date_from, target_move, data['form']['period_length'])
+ movelines, total, dummy = self._get_partner_move_lines(account_type, date_from, target_move, data['form']['period_length'])
docargs = {
'doc_ids': self.ids,
'doc_model': model,