Up-port hide_bank_statement_balance on journal from v10
Inherit balance_check on account.bank.statement
This commit is contained in:
@@ -83,7 +83,7 @@ class AccountInvoice(models.Model):
|
|||||||
# top of the screen
|
# top of the screen
|
||||||
# That's why we have to cut the name_get() when it's too long
|
# That's why we have to cut the name_get() when it's too long
|
||||||
def name_get(self):
|
def name_get(self):
|
||||||
old_res = super(AccountInvoice, self).name_get()
|
old_res = super().name_get()
|
||||||
res = []
|
res = []
|
||||||
for old_re in old_res:
|
for old_re in old_res:
|
||||||
name = old_re[1]
|
name = old_re[1]
|
||||||
@@ -103,9 +103,8 @@ class AccountInvoice(models.Model):
|
|||||||
# 2) the 'name' field of the account.move.line is used in the overdue
|
# 2) the 'name' field of the account.move.line is used in the overdue
|
||||||
# letter, and '/' is not meaningful for our customer !
|
# letter, and '/' is not meaningful for our customer !
|
||||||
# TODO mig to v12
|
# TODO mig to v12
|
||||||
# @api.multi
|
|
||||||
# def action_move_create(self):
|
# def action_move_create(self):
|
||||||
# res = super(AccountInvoice, self).action_move_create()
|
# res = super().action_move_create()
|
||||||
# for inv in self:
|
# for inv in self:
|
||||||
# self._cr.execute(
|
# self._cr.execute(
|
||||||
# "UPDATE account_move_line SET name= "
|
# "UPDATE account_move_line SET name= "
|
||||||
@@ -216,7 +215,15 @@ class AccountInvoiceLine(models.Model):
|
|||||||
class AccountJournal(models.Model):
|
class AccountJournal(models.Model):
|
||||||
_inherit = 'account.journal'
|
_inherit = 'account.journal'
|
||||||
|
|
||||||
@api.multi
|
hide_bank_statement_balance = fields.Boolean(
|
||||||
|
string='Hide Bank Statement Balance',
|
||||||
|
help="You may want to enable this option when your bank "
|
||||||
|
"journal is generated from a bank statement file that "
|
||||||
|
"doesn't handle start/end balance (QIF for instance) and "
|
||||||
|
"you don't want to enter the start/end balance manually: it "
|
||||||
|
"will prevent the display of wrong information in the accounting "
|
||||||
|
"dashboard and on bank statements.")
|
||||||
|
|
||||||
@api.depends(
|
@api.depends(
|
||||||
'name', 'currency_id', 'company_id', 'company_id.currency_id', 'code')
|
'name', 'currency_id', 'company_id', 'company_id.currency_id', 'code')
|
||||||
def name_get(self):
|
def name_get(self):
|
||||||
@@ -262,7 +269,6 @@ class AccountJournal(models.Model):
|
|||||||
class AccountAccount(models.Model):
|
class AccountAccount(models.Model):
|
||||||
_inherit = 'account.account'
|
_inherit = 'account.account'
|
||||||
|
|
||||||
@api.multi
|
|
||||||
@api.depends('name', 'code')
|
@api.depends('name', 'code')
|
||||||
def name_get(self):
|
def name_get(self):
|
||||||
if self._context.get('account_account_show_code_only'):
|
if self._context.get('account_account_show_code_only'):
|
||||||
@@ -271,7 +277,7 @@ class AccountAccount(models.Model):
|
|||||||
res.append((record.id, record.code))
|
res.append((record.id, record.code))
|
||||||
return res
|
return res
|
||||||
else:
|
else:
|
||||||
return super(AccountAccount, self).name_get()
|
return super().name_get()
|
||||||
|
|
||||||
# https://github.com/odoo/odoo/issues/23040
|
# https://github.com/odoo/odoo/issues/23040
|
||||||
# TODO mig to v12
|
# TODO mig to v12
|
||||||
@@ -354,7 +360,6 @@ class AccountAccount(models.Model):
|
|||||||
class AccountAnalyticAccount(models.Model):
|
class AccountAnalyticAccount(models.Model):
|
||||||
_inherit = 'account.analytic.account'
|
_inherit = 'account.analytic.account'
|
||||||
|
|
||||||
@api.multi
|
|
||||||
def name_get(self):
|
def name_get(self):
|
||||||
if self._context.get('analytic_account_show_code_only'):
|
if self._context.get('analytic_account_show_code_only'):
|
||||||
res = []
|
res = []
|
||||||
@@ -362,7 +367,7 @@ class AccountAnalyticAccount(models.Model):
|
|||||||
res.append((record.id, record.code or record.name))
|
res.append((record.id, record.code or record.name))
|
||||||
return res
|
return res
|
||||||
else:
|
else:
|
||||||
return super(AccountAnalyticAccount, self).name_get()
|
return super().name_get()
|
||||||
|
|
||||||
_sql_constraints = [(
|
_sql_constraints = [(
|
||||||
'code_company_unique',
|
'code_company_unique',
|
||||||
@@ -509,8 +514,9 @@ class AccountBankStatement(models.Model):
|
|||||||
end_date = fields.Date(
|
end_date = fields.Date(
|
||||||
compute='_compute_dates', string='End Date', readonly=True,
|
compute='_compute_dates', string='End Date', readonly=True,
|
||||||
store=True)
|
store=True)
|
||||||
|
hide_bank_statement_balance = fields.Boolean(
|
||||||
|
related='journal_id.hide_bank_statement_balance', readonly=True)
|
||||||
|
|
||||||
@api.multi
|
|
||||||
@api.depends('line_ids.date')
|
@api.depends('line_ids.date')
|
||||||
def _compute_dates(self):
|
def _compute_dates(self):
|
||||||
for st in self:
|
for st in self:
|
||||||
@@ -518,7 +524,14 @@ class AccountBankStatement(models.Model):
|
|||||||
st.start_date = dates and min(dates) or False
|
st.start_date = dates and min(dates) or False
|
||||||
st.end_date = dates and max(dates) or False
|
st.end_date = dates and max(dates) or False
|
||||||
|
|
||||||
@api.multi
|
def _balance_check(self):
|
||||||
|
for stmt in self:
|
||||||
|
if stmt.hide_bank_statement_balance:
|
||||||
|
continue
|
||||||
|
else:
|
||||||
|
super(AccountBankStatement, stmt)._balance_check()
|
||||||
|
return True
|
||||||
|
|
||||||
@api.depends('name', 'start_date', 'end_date')
|
@api.depends('name', 'start_date', 'end_date')
|
||||||
def name_get(self):
|
def name_get(self):
|
||||||
res = []
|
res = []
|
||||||
@@ -556,15 +569,14 @@ class AccountBankStatementLine(models.Model):
|
|||||||
# search_reconciliation_proposition=False, context=None):
|
# search_reconciliation_proposition=False, context=None):
|
||||||
# # Make variable name shorted for PEP8 !
|
# # Make variable name shorted for PEP8 !
|
||||||
# search_rec_prop = search_reconciliation_proposition
|
# search_rec_prop = search_reconciliation_proposition
|
||||||
# return super(AccountBankStatementLine, self).\
|
# return super().\
|
||||||
# get_data_for_reconciliations(
|
# get_data_for_reconciliations(
|
||||||
# cr, uid, ids, excluded_ids=excluded_ids,
|
# cr, uid, ids, excluded_ids=excluded_ids,
|
||||||
# search_reconciliation_proposition=search_rec_prop,
|
# search_reconciliation_proposition=search_rec_prop,
|
||||||
# context=context)
|
# context=context)
|
||||||
|
|
||||||
def _prepare_reconciliation_move(self, move_ref):
|
def _prepare_reconciliation_move(self, move_ref):
|
||||||
vals = super(AccountBankStatementLine, self).\
|
vals = super()._prepare_reconciliation_move(move_ref)
|
||||||
_prepare_reconciliation_move(move_ref)
|
|
||||||
# By default, ref contains the name of the statement + name of the
|
# By default, ref contains the name of the statement + name of the
|
||||||
# statement line. It causes 2 problems:
|
# statement line. It causes 2 problems:
|
||||||
# 1) The 'ref' field is too big
|
# 1) The 'ref' field is too big
|
||||||
@@ -669,8 +681,7 @@ class AccountReconciliation(models.AbstractModel):
|
|||||||
# bank statement
|
# bank statement
|
||||||
@api.model
|
@api.model
|
||||||
def _domain_move_lines(self, search_str):
|
def _domain_move_lines(self, search_str):
|
||||||
str_domain = super(AccountReconciliation, self)._domain_move_lines(
|
str_domain = super()._domain_move_lines(search_str)
|
||||||
search_str)
|
|
||||||
account_code_domain = [('account_id.code', '=ilike', search_str + '%')]
|
account_code_domain = [('account_id.code', '=ilike', search_str + '%')]
|
||||||
str_domain = expression.OR([str_domain, account_code_domain])
|
str_domain = expression.OR([str_domain, account_code_domain])
|
||||||
return str_domain
|
return str_domain
|
||||||
|
|||||||
@@ -409,6 +409,31 @@ module -->
|
|||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
<record id="view_account_journal_form" model="ir.ui.view">
|
||||||
|
<field name="name">usability.account.journal.form</field>
|
||||||
|
<field name="model">account.journal</field>
|
||||||
|
<field name="inherit_id" ref="account.view_account_journal_form"/>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<field name="bank_statements_source" position="after">
|
||||||
|
<field name="hide_bank_statement_balance" groups="account.group_account_user"/>
|
||||||
|
</field>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="account_journal_dashboard_kanban_view" model="ir.ui.view">
|
||||||
|
<field name="name">usability.account.journal.dashboard</field>
|
||||||
|
<field name="model">account.journal</field>
|
||||||
|
<field name="inherit_id" ref="account.account_journal_dashboard_kanban_view"/>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<field name="kanban_dashboard" position="after">
|
||||||
|
<field name="hide_bank_statement_balance"/>
|
||||||
|
</field>
|
||||||
|
<xpath expr="//div[@name='latest_statement']/.." position="attributes">
|
||||||
|
<attribute name="t-if">dashboard.last_balance != dashboard.account_balance && !record.hide_bank_statement_balance.raw_value</attribute>
|
||||||
|
</xpath>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
<record id="view_account_journal_tree" model="ir.ui.view">
|
<record id="view_account_journal_tree" model="ir.ui.view">
|
||||||
<field name="name">usability.account.journal.tree</field>
|
<field name="name">usability.account.journal.tree</field>
|
||||||
<field name="model">account.journal</field>
|
<field name="model">account.journal</field>
|
||||||
@@ -447,10 +472,26 @@ module -->
|
|||||||
<field name="date" position="after">
|
<field name="date" position="after">
|
||||||
<field name="start_date"/>
|
<field name="start_date"/>
|
||||||
<field name="end_date"/>
|
<field name="end_date"/>
|
||||||
|
<field name="hide_bank_statement_balance" invisible="1"/>
|
||||||
</field>
|
</field>
|
||||||
<field name="date" position="attributes">
|
<field name="date" position="attributes">
|
||||||
<attribute name="invisible">1</attribute>
|
<attribute name="invisible">1</attribute>
|
||||||
</field>
|
</field>
|
||||||
|
<label for="balance_start" position="attributes">
|
||||||
|
<attribute name="attrs">{'invisible': [('hide_bank_statement_balance', '=', True)]}</attribute>
|
||||||
|
</label>
|
||||||
|
<label for="balance_end_real" position="attributes">
|
||||||
|
<attribute name="attrs">{'invisible': [('hide_bank_statement_balance', '=', True)]}</attribute>
|
||||||
|
</label>
|
||||||
|
<xpath expr="//field[@name='balance_start']/.." position="attributes">
|
||||||
|
<attribute name="attrs">{'invisible': [('hide_bank_statement_balance', '=', True)]}</attribute>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr="//field[@name='balance_end_real']/.." position="attributes">
|
||||||
|
<attribute name="attrs">{'invisible': [('hide_bank_statement_balance', '=', True)]}</attribute>
|
||||||
|
</xpath>
|
||||||
|
<group name="sale_total" position="attributes">
|
||||||
|
<attribute name="attrs">{'invisible': [('hide_bank_statement_balance', '=', True)]}</attribute>
|
||||||
|
</group>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user