diff --git a/account_financial_report/report/general_ledger.py b/account_financial_report/report/general_ledger.py index bffe2886..e8951ae7 100644 --- a/account_financial_report/report/general_ledger.py +++ b/account_financial_report/report/general_ledger.py @@ -182,6 +182,7 @@ class GeneralLedgerReport(models.AbstractModel): fy_start_date, analytic_tag_ids, cost_center_ids, + extra_domain, ): base_domain = [] if company_id: @@ -194,6 +195,8 @@ class GeneralLedgerReport(models.AbstractModel): base_domain += [("analytic_tag_ids", "in", analytic_tag_ids)] if cost_center_ids: base_domain += [("analytic_account_id", "in", cost_center_ids)] + if extra_domain: + base_domain += extra_domain initial_domain_bs = self._get_initial_balances_bs_ml_domain( account_ids, company_id, date_from, base_domain ) @@ -439,6 +442,7 @@ class GeneralLedgerReport(models.AbstractModel): partners_ids, analytic_tag_ids, cost_center_ids, + extra_domain, ): domain = self._get_period_domain( account_ids, @@ -450,6 +454,8 @@ class GeneralLedgerReport(models.AbstractModel): analytic_tag_ids, cost_center_ids, ) + if extra_domain: + domain += extra_domain ml_fields = [ "id", "name", @@ -774,6 +780,7 @@ class GeneralLedgerReport(models.AbstractModel): only_posted_moves = data["only_posted_moves"] unaffected_earnings_account = data["unaffected_earnings_account"] fy_start_date = data["fy_start_date"] + extra_domain = data["domain"] gen_ld_data, partners_data, partners_ids = self._get_initial_balance_data( account_ids, partner_ids, @@ -785,6 +792,7 @@ class GeneralLedgerReport(models.AbstractModel): fy_start_date, analytic_tag_ids, cost_center_ids, + extra_domain, ) centralize = data["centralize"] ( @@ -809,6 +817,7 @@ class GeneralLedgerReport(models.AbstractModel): partners_ids, analytic_tag_ids, cost_center_ids, + extra_domain, ) general_ledger = self._create_general_ledger( gen_ld_data, diff --git a/account_financial_report/wizard/general_ledger_wizard.py b/account_financial_report/wizard/general_ledger_wizard.py index ddf7ea6a..a09c6c34 100644 --- a/account_financial_report/wizard/general_ledger_wizard.py +++ b/account_financial_report/wizard/general_ledger_wizard.py @@ -8,6 +8,7 @@ import time +from ast import literal_eval from odoo import _, api, fields, models from odoo.exceptions import ValidationError @@ -87,6 +88,16 @@ class GeneralLedgerReportWizard(models.TransientModel): ) show_partner_details = fields.Boolean(string="Show Partner Details", default=True,) show_cost_center = fields.Boolean(string="Show Analytic Account", default=True,) + domain = fields.Char( + string="Journal Items Domain", + default=[], + help="This domain will be used to select specific domain for Journal " "Items", + ) + + @api.multi + def _get_account_move_lines_domain(self): + domain = literal_eval(self.domain) if self.domain else [] + return domain @api.onchange("account_code_from", "account_code_to") def on_change_account_range(self): @@ -311,6 +322,7 @@ class GeneralLedgerReportWizard(models.TransientModel): "fy_start_date": self.fy_start_date, "unaffected_earnings_account": self.unaffected_earnings_account.id, "account_financial_report_lang": self.env.lang, + "domain": self._get_account_move_lines_domain(), } def _export(self, report_type): diff --git a/account_financial_report/wizard/general_ledger_wizard_view.xml b/account_financial_report/wizard/general_ledger_wizard_view.xml index 44453051..9b7c68db 100644 --- a/account_financial_report/wizard/general_ledger_wizard_view.xml +++ b/account_financial_report/wizard/general_ledger_wizard_view.xml @@ -93,6 +93,13 @@ options="{'no_create': True}" /> + + +