From 518988dc652755dc1e4d1bf3c7c67fa42a5f4b72 Mon Sep 17 00:00:00 2001 From: Leonardo Pistone Date: Tue, 31 May 2016 17:49:06 +0200 Subject: [PATCH] add an option in partner balance for non-zero only This options exists in the partner balance from the account module. It was not there in the webkit module though. The naming is the same as from the odoo module. A very old commit message for the webkit report mentions this functionality but apparently it is not there. By default all partners are shown as before. This option works for both PDF and XLS reports. --- .../report/common_partner_balance_reports.py | 15 ++++++++--- .../wizard/partner_balance_wizard.py | 26 +++++++++++++------ .../wizard/partner_balance_wizard_view.xml | 2 ++ 3 files changed, 32 insertions(+), 11 deletions(-) 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..16582421 100644 --- a/account_financial_report_webkit/report/common_partner_balance_reports.py +++ b/account_financial_report_webkit/report/common_partner_balance_reports.py @@ -36,7 +36,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 +81,11 @@ 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 abs(v['balance']) > 0.0001} res[account_id] = details return res @@ -201,7 +207,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 +271,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 f93c3766..0bab0a8a 100644 --- a/account_financial_report_webkit/wizard/partner_balance_wizard.py +++ b/account_financial_report_webkit/wizard/partner_balance_wizard.py @@ -14,21 +14,31 @@ class AccountPartnerBalanceWizard(models.TransientModel): _description = "Partner Balance Report" result_selection = fields.Selection( - [('customer', 'Receivable Accounts'), - ('supplier', 'Payable Accounts'), - ('customer_supplier', 'Receivable and Payable Accounts')], - "Partner's", required=True, default='customer_supplier') + [ + ('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.") + 'res.partner', string='Filter on partner', + help="Only selected partners will be printed. " + "Leave empty to print all partners.") + + # same field in the module account + display_partner = fields.Selection( + [ + ('non-zero_balance', 'With balance is not equal to 0'), + ('all', 'All Partners') + ], 'Display Partners', default='all') @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'])[0] + vals = self.read(['result_selection', 'partner_ids', + 'display_partner'])[0] data['form'].update(vals) return data 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 @@ + +