From 3cbe770a75271cc8491e588c2a2d3a1302ebb769 Mon Sep 17 00:00:00 2001 From: "Adrien Peiffer (ACSONE)" Date: Mon, 22 Jun 2015 16:15:07 +0200 Subject: [PATCH] [IMP][account_banking_payment_transfer] Use Standard method to reconcile parners move line --- .../model/account_payment.py | 13 ++++++---- .../model/payment_line.py | 24 ++----------------- 2 files changed, 10 insertions(+), 27 deletions(-) diff --git a/account_banking_payment_transfer/model/account_payment.py b/account_banking_payment_transfer/model/account_payment.py index b08253c36..fbb60142c 100644 --- a/account_banking_payment_transfer/model/account_payment.py +++ b/account_banking_payment_transfer/model/account_payment.py @@ -205,7 +205,6 @@ class PaymentOrder(models.Model): # TODO: take multicurrency into account aml_obj = self.env['account.move.line'] - pl_obj = self.env['payment.line'] # create the payment/debit counterpart move line # on the partner account partner_ml_vals = self._prepare_move_line_partner_account( @@ -216,10 +215,13 @@ class PaymentOrder(models.Model): # on the payment line and call reconciliation on it line.write({'transit_move_line_id': partner_move_line.id}) - if line.move_line_id: - pl_obj.debit_reconcile(line.id) - else: - self.action_sent_no_move_line_hook(line) + def _reconcile_payment_lines(self, payment_lines): + pl_obj = self.env['payment.line'] + for line in payment_lines: + if line.move_line_id: + pl_obj.debit_reconcile(line.id) + else: + self.action_sent_no_move_line_hook(line) @api.one def action_sent(self): @@ -267,6 +269,7 @@ class PaymentOrder(models.Model): trf_ml_vals = self._prepare_move_line_transfer_account( total_amount, move, lines, labels) aml_obj.create(trf_ml_vals) + self._reconcile_payment_lines(lines) # post account move move.post() diff --git a/account_banking_payment_transfer/model/payment_line.py b/account_banking_payment_transfer/model/payment_line.py index a0116ace2..2393506a3 100644 --- a/account_banking_payment_transfer/model/payment_line.py +++ b/account_banking_payment_transfer/model/payment_line.py @@ -129,7 +129,6 @@ class PaymentLine(orm.Model): if isinstance(payment_line_id, (list, tuple)): payment_line_id = payment_line_id[0] - reconcile_obj = self.pool.get('account.move.reconcile') move_line_obj = self.pool.get('account.move.line') payment_line = self.browse(cr, uid, payment_line_id, context=context) @@ -160,28 +159,9 @@ class PaymentLine(orm.Model): cr, uid, transit_move_line.company_id.currency_id, total) line_ids = [transit_move_line.id, torec_move_line.id] - if torec_move_line.reconcile_partial_id: - line_ids = [ - x.id for x in - torec_move_line.reconcile_partial_id.line_partial_ids - ] + [transit_move_line.id] + move_line_obj.reconcile_partial(cr, uid, line_ids, type='manual', + context=context) - total = move_line_obj.get_balance(cr, uid, line_ids) - vals = { - 'type': 'auto', - 'line_id': is_zero(total) and [(6, 0, line_ids)] or [(6, 0, [])], - 'line_partial_ids': (is_zero(total) and - [(6, 0, [])] or - [(6, 0, line_ids)]), - } - - if torec_move_line.reconcile_partial_id: - reconcile_obj.write( - cr, uid, [torec_move_line.reconcile_partial_id.id], - vals, context=context) - else: - reconcile_obj.create( - cr, uid, vals, context=context) for line_id in line_ids: workflow.trg_trigger( uid, 'account.move.line', line_id, cr)