[FIX] account_voucher & account_move_line: while we have partial payment and we cancel one payment it also unlink the reconcile/partial reconcile tag from other payment entries also
bzr revid: ado@tinyerp.com-20140410095132-wx29csixtxsf6gdv
This commit is contained in:
commit
d50a5c7efc
|
@ -1023,10 +1023,16 @@ class account_move_line(osv.osv):
|
||||||
part_rec_ids = [rec['reconcile_partial_id'][0] for rec in part_recs]
|
part_rec_ids = [rec['reconcile_partial_id'][0] for rec in part_recs]
|
||||||
unlink_ids += rec_ids
|
unlink_ids += rec_ids
|
||||||
unlink_ids += part_rec_ids
|
unlink_ids += part_rec_ids
|
||||||
|
all_moves = obj_move_line.search(cr, uid, ['|',('reconcile_id', 'in', unlink_ids),('reconcile_partial_id', 'in', unlink_ids)])
|
||||||
|
for move in move_ids:
|
||||||
|
if move in all_moves:
|
||||||
|
all_moves.remove(move)
|
||||||
if unlink_ids:
|
if unlink_ids:
|
||||||
if opening_reconciliation:
|
if opening_reconciliation:
|
||||||
obj_move_rec.write(cr, uid, unlink_ids, {'opening_reconciliation': False})
|
obj_move_rec.write(cr, uid, unlink_ids, {'opening_reconciliation': False})
|
||||||
obj_move_rec.unlink(cr, uid, unlink_ids)
|
obj_move_rec.unlink(cr, uid, unlink_ids)
|
||||||
|
if all_moves:
|
||||||
|
obj_move_line.reconcile_partial(cr, uid, all_moves, 'auto',context=context)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def unlink(self, cr, uid, ids, context=None, check=True):
|
def unlink(self, cr, uid, ids, context=None, check=True):
|
||||||
|
|
|
@ -951,19 +951,15 @@ class account_voucher(osv.osv):
|
||||||
def cancel_voucher(self, cr, uid, ids, context=None):
|
def cancel_voucher(self, cr, uid, ids, context=None):
|
||||||
reconcile_pool = self.pool.get('account.move.reconcile')
|
reconcile_pool = self.pool.get('account.move.reconcile')
|
||||||
move_pool = self.pool.get('account.move')
|
move_pool = self.pool.get('account.move')
|
||||||
|
move_line_pool = self.pool.get('account.move.line')
|
||||||
for voucher in self.browse(cr, uid, ids, context=context):
|
for voucher in self.browse(cr, uid, ids, context=context):
|
||||||
# refresh to make sure you don't unlink an already removed move
|
|
||||||
voucher.refresh()
|
|
||||||
recs = []
|
|
||||||
for line in voucher.move_ids:
|
for line in voucher.move_ids:
|
||||||
if line.reconcile_id:
|
if line.reconcile_id:
|
||||||
recs += [line.reconcile_id.id]
|
move_lines = [move_line.id for move_line in line.reconcile_id.line_id]
|
||||||
if line.reconcile_partial_id:
|
move_lines.remove(line.id)
|
||||||
recs += [line.reconcile_partial_id.id]
|
reconcile_pool.unlink(cr, uid, [line.reconcile_id.id])
|
||||||
|
if len(move_lines) >= 2:
|
||||||
reconcile_pool.unlink(cr, uid, recs)
|
move_line_pool.reconcile_partial(cr, uid, move_lines, 'auto',context=context)
|
||||||
|
|
||||||
if voucher.move_id:
|
if voucher.move_id:
|
||||||
move_pool.button_cancel(cr, uid, [voucher.move_id.id])
|
move_pool.button_cancel(cr, uid, [voucher.move_id.id])
|
||||||
move_pool.unlink(cr, uid, [voucher.move_id.id])
|
move_pool.unlink(cr, uid, [voucher.move_id.id])
|
||||||
|
|
Loading…
Reference in New Issue