[imp] display a warning in any case when cancelling the statement. the message changes if there are some unreconciled lines

This commit is contained in:
Leonardo Pistone
2014-02-18 10:47:26 +01:00
parent d665c74fb4
commit 2134ea7ee1
4 changed files with 29 additions and 20 deletions

View File

@@ -43,7 +43,9 @@
When the user confirms or cancels the whole statement, we keep the When the user confirms or cancels the whole statement, we keep the
previous functionality, and then we change the state in all statement previous functionality, and then we change the state in all statement
lines. We also add a warning if any lines are reconciled. lines. We also add a warning if any lines are reconciled. If no lines
are reconciled, we show a generic warning because the operation could
take a long time.
When the user confirms or cancels a statement line, we update the state When the user confirms or cancels a statement line, we update the state
of the line, and if necessary we update the state of the whole of the line, and if necessary we update the state of the whole

View File

@@ -49,19 +49,19 @@ class Statement(orm.Model):
"""Check if there is any reconciliation. Return action.""" """Check if there is any reconciliation. Return action."""
st_line_obj = self.pool['account.bank.statement.line'] st_line_obj = self.pool['account.bank.statement.line']
for statement in self.browse(cr, uid, ids, context=context): for statement in self.browse(cr, uid, ids, context=context):
if st_line_obj.has_reconciliation( ctx = context.copy()
ctx['default_reconcile_warning'] = st_line_obj.has_reconciliation(
cr, cr,
uid, uid,
[line.id for line in statement.line_ids], [line.id for line in statement.line_ids],
context=context): context=context)
# ask confirmation, we have some reconciliation already
return { return {
'type': 'ir.actions.act_window', 'type': 'ir.actions.act_window',
'res_model': 'wizard.cancel.statement', 'res_model': 'wizard.cancel.statement',
'view_type': 'form', 'view_type': 'form',
'view_mode': 'form', 'view_mode': 'form',
'target': 'new', 'target': 'new',
'context': context, 'context': ctx,
} }
self.do_cancel(cr, uid, ids, context=context) self.do_cancel(cr, uid, ids, context=context)

View File

@@ -20,7 +20,7 @@
############################################################################### ###############################################################################
"""Wizard to Cancel a Statement.""" """Wizard to Cancel a Statement."""
from openerp.osv import orm from openerp.osv import orm, fields
class wizard_cancel_statement(orm.TransientModel): class wizard_cancel_statement(orm.TransientModel):
@@ -30,9 +30,14 @@ class wizard_cancel_statement(orm.TransientModel):
_name = "wizard.cancel.statement" _name = "wizard.cancel.statement"
_description = "Cancel Statement" _description = "Cancel Statement"
_columns = { _columns = {
'reconcile_warning': fields.boolean(
'Show reconcile warning',
help='This is a hidden field set with a default in the context '
'to choose between two different warning messages in the view.'
),
} }
def unreconcile(self, cr, uid, ids, context=None): def do_cancel_button(self, cr, uid, ids, context=None):
"""Proceed and cancel the statement, return Action. """Proceed and cancel the statement, return Action.
This will delete the move.line and the reconciliation. This will delete the move.line and the reconciliation.

View File

@@ -7,10 +7,12 @@
<field name="model">wizard.cancel.statement</field> <field name="model">wizard.cancel.statement</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<form string="Reconciled Entries" version="7.0"> <form string="Reconciled Entries" version="7.0">
<separator string="Unreconciliation"/> <separator string="Cancel statement"/>
<label string="Some entries are already reconciled. Do you want to unreconcile them and proceed?"/> <field name="reconcile_warning" invisible="1" />
<label attrs="{'invisible': [('reconcile_warning', '=', False)]}" string="Some entries are already reconciled. Do you want to unreconcile them and proceed?"/>
<label attrs="{'invisible': [('reconcile_warning', '=', True)]}" string="Cancelling the statement will delete the generated Journal Entries (if un posted) and could take a long time for a long statement. Do you want to proceed?"/>
<footer> <footer>
<button name="unreconcile" string="Unreconcile" type="object" class="oe_highlight"/> <button name="do_cancel_button" string="Proceed" type="object" class="oe_highlight"/>
or or
<button string="Cancel" class="oe_link" special="cancel"/> <button string="Cancel" class="oe_link" special="cancel"/>
</footer> </footer>