From 0715040eab1645a1b9c4ca15ed112bb59b0ef88a Mon Sep 17 00:00:00 2001 From: mpanarin Date: Thu, 19 Jul 2018 16:31:35 +0300 Subject: [PATCH 1/2] [ADD] 10.0 account_financial_report_qweb: filter on journals On General Ledger --- .../report/general_ledger.py | 55 ++++++++++++++++--- .../wizard/general_ledger_wizard.py | 5 ++ .../wizard/general_ledger_wizard_view.xml | 5 +- 3 files changed, 57 insertions(+), 8 deletions(-) diff --git a/account_financial_report_qweb/report/general_ledger.py b/account_financial_report_qweb/report/general_ledger.py index f633f4d7..813e6758 100644 --- a/account_financial_report_qweb/report/general_ledger.py +++ b/account_financial_report_qweb/report/general_ledger.py @@ -33,6 +33,7 @@ class GeneralLedgerReport(models.TransientModel): company_id = fields.Many2one(comodel_name='res.company') filter_account_ids = fields.Many2many(comodel_name='account.account') filter_partner_ids = fields.Many2many(comodel_name='res.partner') + filter_journal_ids = fields.Many2many(comodel_name='account.journal') filter_cost_center_ids = fields.Many2many( comodel_name='account.analytic.account' ) @@ -1103,6 +1104,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 @@ -1137,6 +1143,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 @@ -1160,7 +1170,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_qweb_account ra INNER JOIN @@ -1193,7 +1204,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_qweb_move_line @@ -1203,6 +1214,7 @@ INSERT INTO create_date, date, account, + journal, label, debit, credit, @@ -1214,6 +1226,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, @@ -1227,12 +1240,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 """ @@ -1249,6 +1271,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 @@ -1288,8 +1314,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 def _get_unaffected_earnings_account_sub_subquery_sum_final(self): @@ -1325,10 +1356,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): @@ -1405,6 +1442,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_qweb/wizard/general_ledger_wizard.py b/account_financial_report_qweb/wizard/general_ledger_wizard.py index 3d0cf627..aed2a915 100644 --- a/account_financial_report_qweb/wizard/general_ledger_wizard.py +++ b/account_financial_report_qweb/wizard/general_ledger_wizard.py @@ -51,6 +51,10 @@ class GeneralLedgerReportWizard(models.TransientModel): comodel_name='res.partner', string='Filter partners', ) + 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', @@ -154,6 +158,7 @@ class GeneralLedgerReportWizard(models.TransientModel): 'company_id': self.company_id.id, 'filter_account_ids': [(6, 0, self.account_ids.ids)], 'filter_partner_ids': [(6, 0, self.partner_ids.ids)], + 'filter_journal_ids': [(6, 0, self.partner_ids.ids)], 'filter_cost_center_ids': [(6, 0, self.cost_center_ids.ids)], 'centralize': self.centralize, 'fy_start_date': self.fy_start_date, diff --git a/account_financial_report_qweb/wizard/general_ledger_wizard_view.xml b/account_financial_report_qweb/wizard/general_ledger_wizard_view.xml index 0cd28e4a..73cc7569 100644 --- a/account_financial_report_qweb/wizard/general_ledger_wizard_view.xml +++ b/account_financial_report_qweb/wizard/general_ledger_wizard_view.xml @@ -31,12 +31,15 @@