def cancel_voucher(self, cr, uid, ids, context=None):
reconcile_pool = self.pool.get('account.move.reconcile')
move_pool = self.pool.get('account.move')
++ wf_service = netsvc.LocalService("workflow")
for voucher in self.browse(cr, uid, ids, context=context):
recs = []
for line in voucher.move_ids:
if line.reconcile_id:
- recs += [line.reconcile_id.id]
- if line.reconcile_partial_id:
- recs += [line.reconcile_partial_id.id]
-
- reconcile_pool.unlink(cr, uid, recs)
-
- recs = [rec.id for rec in line.reconcile_id.line_id]
- recs.remove(line.id)
++ invoice_id = [rec_line.invoice.id for rec_line in line.reconcile_id.line_id if rec_line.invoice]
++ recs.append(line.reconcile_id.id)
++ move_lines = [move_line.id for move_line in line.reconcile_id.line_id]
++ move_lines.remove(line.id)
+ partial_ids = reconcile_pool.create(cr, uid, {
+ 'type': 'auto',
+ 'line_id': False,
- 'line_partial_ids': [(6, 0, recs)]})
- self.pool.get('account.move.line').write(cr, uid, [line.id], {
- 'reconcile_id': False,
- 'reconcile_partial_id': False
- }, update_check=False)
++ 'line_partial_ids': [(6, 0, move_lines)]})
+
- self.pool.get('account.move.line').write(cr, uid, recs, {
++ self.pool.get('account.move.line').write(cr, uid, move_lines, {
+ 'reconcile_id': False,
+ 'reconcile_partial_id': partial_ids
+ }, update_check=False)
++ elif line.reconcile_partial_id:
++ invoice_id = [rec_line.invoice.id for rec_line in line.reconcile_partial_id.line_partial_ids if rec_line.invoice]
+ if recs:
+ reconcile_pool.unlink(cr, uid, recs)
if voucher.move_id:
move_pool.button_cancel(cr, uid, [voucher.move_id.id])
move_pool.unlink(cr, uid, [voucher.move_id.id])
'state':'cancel',
'move_id':False,
}
++ wf_service.trg_validate(uid, 'account.invoice', invoice_id[0], 'open_test', cr)
self.write(cr, uid, ids, res)
return True