[ADD] 11.0 account_financial_report: add filter by journals
To general ledger
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user