Browse Source

[ADD] domain field for additional filtering

pull/749/head
Joan Sisquella 4 years ago
committed by João Marques
parent
commit
d734d92e05
  1. 9
      account_financial_report/report/general_ledger.py
  2. 12
      account_financial_report/wizard/general_ledger_wizard.py
  3. 7
      account_financial_report/wizard/general_ledger_wizard_view.xml

9
account_financial_report/report/general_ledger.py

@ -182,6 +182,7 @@ class GeneralLedgerReport(models.AbstractModel):
fy_start_date, fy_start_date,
analytic_tag_ids, analytic_tag_ids,
cost_center_ids, cost_center_ids,
extra_domain,
): ):
base_domain = [] base_domain = []
if company_id: if company_id:
@ -194,6 +195,8 @@ class GeneralLedgerReport(models.AbstractModel):
base_domain += [("analytic_tag_ids", "in", analytic_tag_ids)] base_domain += [("analytic_tag_ids", "in", analytic_tag_ids)]
if cost_center_ids: if cost_center_ids:
base_domain += [("analytic_account_id", "in", 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( initial_domain_bs = self._get_initial_balances_bs_ml_domain(
account_ids, company_id, date_from, base_domain account_ids, company_id, date_from, base_domain
) )
@ -439,6 +442,7 @@ class GeneralLedgerReport(models.AbstractModel):
partners_ids, partners_ids,
analytic_tag_ids, analytic_tag_ids,
cost_center_ids, cost_center_ids,
extra_domain,
): ):
domain = self._get_period_domain( domain = self._get_period_domain(
account_ids, account_ids,
@ -450,6 +454,8 @@ class GeneralLedgerReport(models.AbstractModel):
analytic_tag_ids, analytic_tag_ids,
cost_center_ids, cost_center_ids,
) )
if extra_domain:
domain += extra_domain
ml_fields = [ ml_fields = [
"id", "id",
"name", "name",
@ -774,6 +780,7 @@ class GeneralLedgerReport(models.AbstractModel):
only_posted_moves = data["only_posted_moves"] only_posted_moves = data["only_posted_moves"]
unaffected_earnings_account = data["unaffected_earnings_account"] unaffected_earnings_account = data["unaffected_earnings_account"]
fy_start_date = data["fy_start_date"] fy_start_date = data["fy_start_date"]
extra_domain = data["domain"]
gen_ld_data, partners_data, partners_ids = self._get_initial_balance_data( gen_ld_data, partners_data, partners_ids = self._get_initial_balance_data(
account_ids, account_ids,
partner_ids, partner_ids,
@ -785,6 +792,7 @@ class GeneralLedgerReport(models.AbstractModel):
fy_start_date, fy_start_date,
analytic_tag_ids, analytic_tag_ids,
cost_center_ids, cost_center_ids,
extra_domain,
) )
centralize = data["centralize"] centralize = data["centralize"]
( (
@ -809,6 +817,7 @@ class GeneralLedgerReport(models.AbstractModel):
partners_ids, partners_ids,
analytic_tag_ids, analytic_tag_ids,
cost_center_ids, cost_center_ids,
extra_domain,
) )
general_ledger = self._create_general_ledger( general_ledger = self._create_general_ledger(
gen_ld_data, gen_ld_data,

12
account_financial_report/wizard/general_ledger_wizard.py

@ -8,6 +8,7 @@
import time import time
from ast import literal_eval
from odoo import _, api, fields, models from odoo import _, api, fields, models
from odoo.exceptions import ValidationError 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_partner_details = fields.Boolean(string="Show Partner Details", default=True,)
show_cost_center = fields.Boolean(string="Show Analytic Account", 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") @api.onchange("account_code_from", "account_code_to")
def on_change_account_range(self): def on_change_account_range(self):
@ -311,6 +322,7 @@ class GeneralLedgerReportWizard(models.TransientModel):
"fy_start_date": self.fy_start_date, "fy_start_date": self.fy_start_date,
"unaffected_earnings_account": self.unaffected_earnings_account.id, "unaffected_earnings_account": self.unaffected_earnings_account.id,
"account_financial_report_lang": self.env.lang, "account_financial_report_lang": self.env.lang,
"domain": self._get_account_move_lines_domain(),
} }
def _export(self, report_type): def _export(self, report_type):

7
account_financial_report/wizard/general_ledger_wizard_view.xml

@ -93,6 +93,13 @@
options="{'no_create': True}" options="{'no_create': True}"
/> />
</page> </page>
<page string="Additional Filtering">
<field
name="domain"
widget="domain"
options="{'model': 'account.move.line', 'in_dialog': True}"
/>
</page>
</notebook> </notebook>
</div> </div>
<div <div

Loading…
Cancel
Save