diff --git a/account_financial_report_webkit/report/common_partner_balance_reports.py b/account_financial_report_webkit/report/common_partner_balance_reports.py
index 87755388..b9e93865 100644
--- a/account_financial_report_webkit/report/common_partner_balance_reports.py
+++ b/account_financial_report_webkit/report/common_partner_balance_reports.py
@@ -23,6 +23,8 @@
from collections import defaultdict
from operator import add
+from openerp.tools.float_utils import float_is_zero
+
from .common_balance_reports import CommonBalanceReportHeaderWebkit
from .common_partner_reports import CommonPartnersReportHeaderWebkit
@@ -36,7 +38,8 @@ class CommonPartnerBalanceReportHeaderWebkit(CommonBalanceReportHeaderWebkit,
def _get_account_partners_details(self, account_by_ids, main_filter,
target_move, start, stop,
initial_balance_mode,
- partner_filter_ids=False):
+ partner_filter_ids=False,
+ display_partner='all'):
res = {}
filter_from = False
if main_filter in ('filter_period', 'filter_no', 'filter_opening'):
@@ -80,6 +83,13 @@ class CommonPartnerBalanceReportHeaderWebkit(CommonBalanceReportHeaderWebkit,
get('init_balance', 0.0) + \
details[partner_id].get('debit', 0.0) - \
details[partner_id].get('credit', 0.0)
+
+ if display_partner == 'non-zero_balance':
+ details = {
+ k: v
+ for k, v in details.iteritems()
+ if not float_is_zero(v['balance'], precision_digits=5)
+ }
res[account_id] = details
return res
@@ -201,7 +211,9 @@ class CommonPartnerBalanceReportHeaderWebkit(CommonBalanceReportHeaderWebkit,
partner_details_by_ids = self._get_account_partners_details(
accounts_by_ids, details_filter,
target_move, start, stop, initial_balance_mode,
- partner_filter_ids=partner_filter_ids)
+ partner_filter_ids=partner_filter_ids,
+ display_partner=data['form']['display_partner']
+ )
for account_id in account_ids:
accounts_details_by_ids[account_id][
@@ -263,7 +275,8 @@ class CommonPartnerBalanceReportHeaderWebkit(CommonBalanceReportHeaderWebkit,
partner_details_by_ids = self._get_account_partners_details(
accounts_by_ids, main_filter, target_move, start, stop,
- initial_balance_mode, partner_filter_ids=partner_ids)
+ initial_balance_mode, partner_filter_ids=partner_ids,
+ display_partner=data['form']['display_partner'])
comparison_params = []
comp_accounts_by_ids = []
diff --git a/account_financial_report_webkit/wizard/partner_balance_wizard.py b/account_financial_report_webkit/wizard/partner_balance_wizard.py
index 36bbe420..cec955b8 100644
--- a/account_financial_report_webkit/wizard/partner_balance_wizard.py
+++ b/account_financial_report_webkit/wizard/partner_balance_wizard.py
@@ -1,28 +1,11 @@
-# -*- encoding: utf-8 -*-
-##############################################################################
-#
-# Author: Guewen Baconnier
-# Copyright Camptocamp SA 2011
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
+# -*- coding: utf-8 -*-
+# Author: Guewen Baconnier, Leonardo Pistone
+# © 2011-2016 Camptocamp
-from openerp.osv import fields, orm
+from openerp import fields, models, api
-class AccountPartnerBalanceWizard(orm.TransientModel):
+class AccountPartnerBalanceWizard(models.TransientModel):
"""Will launch partner balance report and pass required args"""
@@ -30,34 +13,39 @@ class AccountPartnerBalanceWizard(orm.TransientModel):
_name = "partner.balance.webkit"
_description = "Partner Balance Report"
- _columns = {
- 'result_selection': fields.selection(
- [('customer', 'Receivable Accounts'),
- ('supplier', 'Payable Accounts'),
- ('customer_supplier', 'Receivable and Payable Accounts')],
- "Partner's", required=True),
- 'partner_ids': fields.many2many(
- 'res.partner', string='Filter on partner',
- help="Only selected partners will be printed. \
- Leave empty to print all partners."),
- }
+ result_selection = fields.Selection(
+ [
+ ('customer', 'Receivable Accounts'),
+ ('supplier', 'Payable Accounts'),
+ ('customer_supplier', 'Receivable and Payable Accounts')
+ ],
+ "Partner's", required=True, default='customer_supplier')
+ partner_ids = fields.Many2many(
+ 'res.partner', string='Filter on partner',
+ help="Only selected partners will be printed. "
+ "Leave empty to print all partners.")
- _defaults = {
- 'result_selection': 'customer_supplier',
- }
+ # same field in the module account
+ display_partner = fields.Selection(
+ [
+ ('non-zero_balance', 'With non-zero balance'),
+ ('all', 'All Partners')
+ ], 'Display Partners', default='all')
- def pre_print_report(self, cr, uid, ids, data, context=None):
- data = super(AccountPartnerBalanceWizard, self).\
- pre_print_report(cr, uid, ids, data, context)
- vals = self.read(cr, uid, ids,
- ['result_selection', 'partner_ids'],
- context=context)[0]
+ @api.multi
+ def pre_print_report(self, data):
+ self.ensure_one()
+
+ data = super(AccountPartnerBalanceWizard, self).pre_print_report(data)
+ vals = self.read(['result_selection', 'partner_ids',
+ 'display_partner'])[0]
data['form'].update(vals)
return data
- def _print_report(self, cursor, uid, ids, data, context=None):
+ @api.multi
+ def _print_report(self, data):
# we update form with display account value
- data = self.pre_print_report(cursor, uid, ids, data, context=context)
+ data = self.pre_print_report(data)
return {'type': 'ir.actions.report.xml',
'report_name': 'account.account_report_partner_balance_webkit',
diff --git a/account_financial_report_webkit/wizard/partner_balance_wizard_view.xml b/account_financial_report_webkit/wizard/partner_balance_wizard_view.xml
index dad8811a..e7b9e2b0 100644
--- a/account_financial_report_webkit/wizard/partner_balance_wizard_view.xml
+++ b/account_financial_report_webkit/wizard/partner_balance_wizard_view.xml
@@ -22,6 +22,8 @@
+
+