[IMP] account_financial_report_webkit: Allow to select account level on trial balance
parent
6939163548
commit
bbfdc4429e
|
@ -230,8 +230,8 @@ class CommonBalanceReportHeaderWebkit(CommonReportHeaderWebkit):
|
||||||
return start_period, stop_period, start, stop
|
return start_period, stop_period, start, stop
|
||||||
|
|
||||||
def compute_balance_data(self, data, filter_report_type=None):
|
def compute_balance_data(self, data, filter_report_type=None):
|
||||||
new_ids = data['form']['account_ids'] or data[
|
new_ids = (data['form']['account_ids'] or
|
||||||
'form']['chart_account_id']
|
[data['form']['chart_account_id']])
|
||||||
max_comparison = self._get_form_param(
|
max_comparison = self._get_form_param(
|
||||||
'max_comparison', data, default=0)
|
'max_comparison', data, default=0)
|
||||||
main_filter = self._get_form_param('filter', data, default='filter_no')
|
main_filter = self._get_form_param('filter', data, default='filter_no')
|
||||||
|
@ -259,10 +259,14 @@ class CommonBalanceReportHeaderWebkit(CommonReportHeaderWebkit):
|
||||||
start) or False
|
start) or False
|
||||||
|
|
||||||
# Retrieving accounts
|
# Retrieving accounts
|
||||||
|
ctx = {}
|
||||||
|
if data['form'].get('account_level'):
|
||||||
|
# Filter by account level
|
||||||
|
ctx['account_level'] = int(data['form']['account_level'])
|
||||||
account_ids = self.get_all_accounts(
|
account_ids = self.get_all_accounts(
|
||||||
new_ids, only_type=filter_report_type)
|
new_ids, only_type=filter_report_type, context=ctx)
|
||||||
|
|
||||||
# get details for each accounts, total of debit / credit / balance
|
# get details for each account, total of debit / credit / balance
|
||||||
accounts_by_ids = self._get_account_details(
|
accounts_by_ids = self._get_account_details(
|
||||||
account_ids, target_move, fiscalyear, main_filter, start, stop,
|
account_ids, target_move, fiscalyear, main_filter, start, stop,
|
||||||
initial_balance_mode)
|
initial_balance_mode)
|
||||||
|
|
|
@ -195,8 +195,15 @@ class CommonReportHeaderWebkit(common_report_header):
|
||||||
acc_obj = self.pool.get('account.account')
|
acc_obj = self.pool.get('account.account')
|
||||||
for account_id in account_ids:
|
for account_id in account_ids:
|
||||||
accounts.append(account_id)
|
accounts.append(account_id)
|
||||||
accounts += acc_obj._get_children_and_consol(
|
children_acc_ids = acc_obj._get_children_and_consol(
|
||||||
self.cursor, self.uid, account_id, context=context)
|
self.cursor, self.uid, account_id, context=context)
|
||||||
|
if context.get('account_level'):
|
||||||
|
domain = [('level', '<=', context['account_level']),
|
||||||
|
('id', 'in', children_acc_ids)]
|
||||||
|
accounts += self.pool['account.account'].search(
|
||||||
|
self.cursor, self.uid, domain)
|
||||||
|
else:
|
||||||
|
accounts += children_acc_ids
|
||||||
res_ids = list(set(accounts))
|
res_ids = list(set(accounts))
|
||||||
res_ids = self.sort_accounts_with_structure(
|
res_ids = self.sort_accounts_with_structure(
|
||||||
account_ids, res_ids, context=context)
|
account_ids, res_ids, context=context)
|
||||||
|
|
|
@ -96,6 +96,11 @@ class AccountBalanceCommonWizard(orm.TransientModel):
|
||||||
help='Filter by date: no opening balance will be displayed. '
|
help='Filter by date: no opening balance will be displayed. '
|
||||||
'(opening balance can only be computed based on period to be \
|
'(opening balance can only be computed based on period to be \
|
||||||
correct).'),
|
correct).'),
|
||||||
|
# Set statically because of the impossibility of changing the selection
|
||||||
|
# field when changing chart_account_id
|
||||||
|
'account_level': fields.selection(
|
||||||
|
[('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5'),
|
||||||
|
('6', '6')], string="Account level"),
|
||||||
}
|
}
|
||||||
|
|
||||||
for index in range(COMPARISON_LEVEL):
|
for index in range(COMPARISON_LEVEL):
|
||||||
|
@ -394,7 +399,7 @@ class AccountBalanceCommonWizard(orm.TransientModel):
|
||||||
# will be used to attach the report on the main account
|
# will be used to attach the report on the main account
|
||||||
data['ids'] = [data['form']['chart_account_id']]
|
data['ids'] = [data['form']['chart_account_id']]
|
||||||
|
|
||||||
fields_to_read = ['account_ids', ]
|
fields_to_read = ['account_ids', 'account_level']
|
||||||
fields_to_read += self.DYNAMIC_FIELDS
|
fields_to_read += self.DYNAMIC_FIELDS
|
||||||
vals = self.read(cr, uid, ids, fields_to_read, context=context)[0]
|
vals = self.read(cr, uid, ids, fields_to_read, context=context)[0]
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,9 @@
|
||||||
<page name="filters" position="after">
|
<page name="filters" position="after">
|
||||||
<page string="Accounts Filters" name="accounts">
|
<page string="Accounts Filters" name="accounts">
|
||||||
<separator string="Print only" colspan="4"/>
|
<separator string="Print only" colspan="4"/>
|
||||||
|
<group>
|
||||||
|
<field name="account_level"/>
|
||||||
|
</group>
|
||||||
<field name="account_ids" colspan="4" nolabel="1" domain="[('type', '=', 'view')]">
|
<field name="account_ids" colspan="4" nolabel="1" domain="[('type', '=', 'view')]">
|
||||||
<tree>
|
<tree>
|
||||||
<field name="code"/>
|
<field name="code"/>
|
||||||
|
|
Loading…
Reference in New Issue