Add Unreconcile wizard and disable write on reconciliation
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user