From 5e6eb42abfedb4b79abdb4bc3b737fdbdd040c4d Mon Sep 17 00:00:00 2001 From: mpanarin Date: Thu, 19 Jul 2018 12:31:22 +0300 Subject: [PATCH] [ADD] 11.0 account_financial_report: add filter by journals To general ledger --- .../report/general_ledger.py | 58 ++++++++++++++++--- .../wizard/general_ledger_wizard.py | 13 +++-- .../wizard/general_ledger_wizard_view.xml | 4 +- 3 files changed, 63 insertions(+), 12 deletions(-) diff --git a/account_financial_report/report/general_ledger.py b/account_financial_report/report/general_ledger.py index 00911bd0..4d953cdf 100644 --- a/account_financial_report/report/general_ledger.py +++ b/account_financial_report/report/general_ledger.py @@ -36,6 +36,9 @@ class GeneralLedgerReport(models.TransientModel): filter_cost_center_ids = fields.Many2many( comodel_name='account.analytic.account' ) + filter_journal_ids = fields.Many2many( + comodel_name='account.journal', + ) centralize = fields.Boolean() # Flag fields, used for report display @@ -1104,6 +1107,11 @@ AND AND rp.partner_id IS NULL """ + if self.filter_journal_ids: + query_inject_move_line += """ +AND + j.id IN %s + """ if is_account_line: query_inject_move_line += """ ORDER BY @@ -1138,6 +1146,10 @@ ORDER BY self.date_from, self.date_to, ) + if self.filter_journal_ids: + query_inject_move_line_params += (tuple( + self.filter_journal_ids.ids, + ),) self.env.cr.execute( query_inject_move_line, query_inject_move_line_params @@ -1161,7 +1173,8 @@ WITH SUM(ml.debit) AS debit, SUM(ml.credit) AS credit, SUM(ml.balance) AS balance, - ml.currency_id AS currency_id + ml.currency_id AS currency_id, + ml.journal_id as journal_id FROM report_general_ledger_account ra INNER JOIN @@ -1194,7 +1207,7 @@ WITH """ query_inject_move_line_centralized += """ GROUP BY - ra.id, ml.account_id, a.code, 2, ml.currency_id + ra.id, ml.account_id, a.code, 2, ml.currency_id, ml.journal_id ) INSERT INTO report_general_ledger_move_line @@ -1204,6 +1217,7 @@ INSERT INTO create_date, date, account, + journal, label, debit, credit, @@ -1215,6 +1229,7 @@ SELECT NOW() AS create_date, ml.date, a.code AS account, + j.code AS journal, '""" + _('Centralized Entries') + """' AS label, ml.debit AS debit, ml.credit AS credit, @@ -1228,12 +1243,21 @@ INNER JOIN move_lines ml ON ra.account_id = ml.account_id INNER JOIN account_account a ON ml.account_id = a.id +INNER JOIN + account_journal j ON ml.journal_id = j.id LEFT JOIN res_currency c ON ml.currency_id = c.id WHERE ra.report_id = %s AND (a.centralized IS NOT NULL AND a.centralized = TRUE) + """ + if self.filter_journal_ids: + query_inject_move_line_centralized += """ +AND + j.id in %s + """ + query_inject_move_line_centralized += """ ORDER BY a.code, ml.date """ @@ -1250,6 +1274,10 @@ ORDER BY self.env.uid, self.id, ) + if self.filter_journal_ids: + query_inject_move_line_centralized_params += (tuple( + self.filter_journal_ids.ids, + ),) self.env.cr.execute( query_inject_move_line_centralized, query_inject_move_line_centralized_params @@ -1289,7 +1317,13 @@ ORDER BY sub_subquery_sum_amounts += """ WHERE a.company_id = %(company_id)s - AND a.id IN %(unaffected_earnings_account_ids)s + AND + a.id IN %(unaffected_earnings_account_ids)s + """ + if self.filter_journal_ids: + sub_subquery_sum_amounts += """ + AND + ml.journal_id in %(filter_journal_ids)s """ return sub_subquery_sum_amounts @@ -1326,10 +1360,16 @@ ORDER BY AND aa.id IN %(cost_center_ids)s """ sub_subquery_sum_amounts += """ - WHERE - a.company_id = %(company_id)s - AND a.id IN %(unaffected_earnings_account_ids)s - """ + WHERE + a.company_id = %(company_id)s + AND + a.id IN %(unaffected_earnings_account_ids)s + """ + if self.filter_journal_ids: + sub_subquery_sum_amounts += """ + AND + ml.journal_id in %(filter_journal_ids)s + """ return sub_subquery_sum_amounts def _inject_unaffected_earnings_account_values(self): @@ -1406,6 +1446,10 @@ ORDER BY query_inject_account_params['report_id'] = self.id query_inject_account_params['user_id'] = self.env.uid + if self.filter_journal_ids: + query_inject_account_params['filter_journal_ids'] = (tuple( + self.filter_journal_ids.ids, + ),) # Fetch the profit and loss accounts query_unaffected_earnings_account_ids = """ SELECT a.id diff --git a/account_financial_report/wizard/general_ledger_wizard.py b/account_financial_report/wizard/general_ledger_wizard.py index 5eafba0d..02ff8ffb 100644 --- a/account_financial_report/wizard/general_ledger_wizard.py +++ b/account_financial_report/wizard/general_ledger_wizard.py @@ -54,6 +54,10 @@ class GeneralLedgerReportWizard(models.TransientModel): comodel_name='res.partner', string='Filter partners', ) + account_journal_ids = fields.Many2many( + comodel_name='account.journal', + string='Filter journals', + ) cost_center_ids = fields.Many2many( comodel_name='account.analytic.account', string='Filter cost centers', @@ -122,8 +126,8 @@ class GeneralLedgerReportWizard(models.TransientModel): self.ensure_one() action = self.env.ref( 'account_financial_report.action_report_general_ledger') - vals = action.read()[0] - context1 = vals.get('context', {}) + action_data = action.read()[0] + context1 = action_data.get('context', {}) if isinstance(context1, pycompat.string_types): context1 = safe_eval(context1) model = self.env['report_general_ledger'] @@ -131,8 +135,8 @@ class GeneralLedgerReportWizard(models.TransientModel): report.compute_data_for_report() context1['active_id'] = report.id context1['active_ids'] = report.ids - vals['context'] = context1 - return vals + action_data['context'] = context1 + return action_data @api.multi def button_export_pdf(self): @@ -158,6 +162,7 @@ class GeneralLedgerReportWizard(models.TransientModel): 'filter_account_ids': [(6, 0, self.account_ids.ids)], 'filter_partner_ids': [(6, 0, self.partner_ids.ids)], 'filter_cost_center_ids': [(6, 0, self.cost_center_ids.ids)], + 'filter_journal_ids': [(6, 0, self.account_journal_ids.ids)], 'centralize': self.centralize, 'fy_start_date': self.fy_start_date, } diff --git a/account_financial_report/wizard/general_ledger_wizard_view.xml b/account_financial_report/wizard/general_ledger_wizard_view.xml index b1aba05d..d4506490 100644 --- a/account_financial_report/wizard/general_ledger_wizard_view.xml +++ b/account_financial_report/wizard/general_ledger_wizard_view.xml @@ -30,13 +30,15 @@