Add Unreconcile wizard and disable write on reconciliation

This commit is contained in:
Cédric Krier
2008-03-20 10:50:37 +01:00
parent b340765caa
commit 91c7973491
2 changed files with 74 additions and 3 deletions
+51 -3
View File
@@ -207,9 +207,9 @@ class Reconciliation(OSV):
def __init__(self):
super(Reconciliation, self).__init__()
self._constraints += [
('check_lines', 'You can not create reconciliation \n' \
'where lines are not balanced, not valid, \n' \
'not in the same account, not in account to reconcile!',
('check_lines', 'You can not create reconciliation ' \
'where lines are not balanced, nor valid, ' \
'nor in the same account, nor in account to reconcile!',
['lines']),
]
@@ -226,6 +226,9 @@ class Reconciliation(OSV):
cursor)
return res
def write(self, cursor, user, ids, vals, context=None):
raise ExceptORM('UserError', 'You can not modify a reconciliation!')
def check_lines(self, cursor, user, ids):
currency_obj = self.pool.get('account.currency')
for reconciliation in self.browse(cursor, user, ids):
@@ -1006,6 +1009,51 @@ class ReconcileLines(Wizard):
ReconcileLines()
class UnreconcileLinesInit(WizardOSV):
'Unreconcile Lines Init'
_name = 'account.move.unreconcile_lines.init'
UnreconcileLinesInit()
class UnreconcileLines(Wizard):
'Unreconcile Lines'
_name = 'account.move.unreconcile_lines'
states = {
'init': {
'result': {
'type': 'form',
'object': 'account.move.unreconcile_lines.init',
'state': [
('end', 'Cancel', 'gtk-cancel'),
('unreconcile', 'Unreconcile', 'gtk-ok', True),
],
},
},
'unreconcile': {
'actions': ['_unreconcile'],
'result': {
'type': 'state',
'state': 'end',
},
},
}
def _unreconcile(self, cursor, user, data, context=None):
line_obj = self.pool.get('account.move.line')
reconciliation_obj = self.pool.get('account.move.reconciliation')
lines = line_obj.browse(cursor, user, data['ids'], context=context)
reconciliation_ids = [x.reconciliation.id for x in lines \
if x.reconciliation]
if reconciliation_ids:
reconciliation_obj.unlink(cursor, user, reconciliation_ids,
context=context)
return {}
UnreconcileLines()
class OpenReconcileLinesInit(WizardOSV):
_name = 'account.move.open_reconcile_lines.init'
account = fields.Many2One('account.account', 'Account', required=True,
+23
View File
@@ -299,6 +299,29 @@
<field name="model">account.move.line,0</field>
<field name="action" ref="act_reconcile_lines"/>
</record>
<record model="ir.ui.view" id="unreconcile_lines_init_view_form">
<field name="model">account.move.unreconcile_lines.init</field>
<field name="type">form</field>
<field name="arch" type="xml">
<![CDATA[
<form string="Unreconcile" col="2">
<image name="gtk-dialog-info"/>
<label string="If you unreconcile lines, the workflows, on those lines, will not be canceled."/>
</form>
]]>
</field>
</record>
<record model="ir.action.wizard" id="act_unreconcile_lines">
<field name="name">Unreconcile Lines</field>
<field name="wiz_name">account.move.unreconcile_lines</field>
</record>
<record model="ir.action.keyword" id="act_unreconcile_lines_keyword">
<field name="keyword">form_action</field>
<field name="model">account.move.line,0</field>
<field name="action" ref="act_unreconcile_lines"/>
</record>
<record model="ir.action.wizard" id="act_open_reconcile_lines">
<field name="name">Open Reconcile Lines</field>
<field name="wiz_name">account.move.open_reconcile_lines</field>