Browse Source

[ADD] domain field for additional filtering

pull/660/head
Joan Sisquella 4 years ago
parent
commit
8cf7e95056
  1. 14
      account_financial_report/report/general_ledger.py
  2. 15
      account_financial_report/wizard/general_ledger_wizard.py
  3. 3
      account_financial_report/wizard/general_ledger_wizard_view.xml

14
account_financial_report/report/general_ledger.py

@ -162,7 +162,7 @@ class GeneralLedgerReport(models.AbstractModel):
def _get_initial_balance_data(
self, account_ids, partner_ids, company_id, date_from,
foreign_currency, only_posted_moves, unaffected_earnings_account,
fy_start_date, analytic_tag_ids, cost_center_ids):
fy_start_date, analytic_tag_ids, cost_center_ids, extra_domain):
base_domain = []
if company_id:
base_domain += [('company_id', '=', company_id)]
@ -174,6 +174,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
)
@ -393,11 +395,14 @@ class GeneralLedgerReport(models.AbstractModel):
def _get_period_ml_data(
self, account_ids, partner_ids, company_id, foreign_currency,
only_posted_moves, date_from, date_to, partners_data,
gen_ld_data, partners_ids, analytic_tag_ids, cost_center_ids):
gen_ld_data, partners_ids, analytic_tag_ids, cost_center_ids,
extra_domain):
domain = self._get_period_domain(account_ids, partner_ids,
company_id, only_posted_moves,
date_to, date_from,
analytic_tag_ids, cost_center_ids)
if extra_domain:
domain += extra_domain
ml_fields = [
'id', 'name', 'date', 'move_id', 'journal_id', 'account_id',
'partner_id', 'debit', 'credit', 'balance', 'currency_id',
@ -675,12 +680,13 @@ 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, company_id, date_from,
foreign_currency, only_posted_moves,
unaffected_earnings_account, fy_start_date, analytic_tag_ids,
cost_center_ids)
cost_center_ids, extra_domain)
centralize = data['centralize']
gen_ld_data, accounts_data, partners_data, journals_data, \
full_reconcile_data, taxes_data, \
@ -689,7 +695,7 @@ class GeneralLedgerReport(models.AbstractModel):
account_ids, partner_ids, company_id, foreign_currency,
only_posted_moves, date_from, date_to,
partners_data, gen_ld_data, partners_ids,
analytic_tag_ids, cost_center_ids)
analytic_tag_ids, cost_center_ids, extra_domain)
general_ledger = self._create_general_ledger(
gen_ld_data, accounts_data,
show_partner_details, rec_after_date_to_ids, hide_account_at_0

15
account_financial_report/wizard/general_ledger_wizard.py

@ -10,6 +10,7 @@
from odoo import api, fields, models, _
from odoo.exceptions import ValidationError
from ast import literal_eval
import time
@ -103,6 +104,19 @@ class GeneralLedgerReportWizard(models.TransientModel):
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):
@ -301,6 +315,7 @@ class GeneralLedgerReportWizard(models.TransientModel):
'centralize': self.centralize,
'fy_start_date': self.fy_start_date,
'unaffected_earnings_account': self.unaffected_earnings_account.id,
'domain': self._get_account_move_lines_domain()
}
def _export(self, report_type):

3
account_financial_report/wizard/general_ledger_wizard_view.xml

@ -70,6 +70,9 @@
<page string="Filter analytic tags">
<field name="analytic_tag_ids" widget="many2many_tags" nolabel="1" options="{'no_create': True}"/>
</page>
<page string="Additional Filtering">
<field name="domain" widget="domain" options="{'model': 'account.move.line', 'in_dialog': True}"/>
</page>
</notebook>
</div>
<div attrs="{'invisible': [('not_only_one_unaffected_earnings_account', '=', False)]}">

Loading…
Cancel
Save