From 4f1b4370b316dd68ff39e690b580647346559516 Mon Sep 17 00:00:00 2001 From: "Adrien Peiffer (ACSONE)" Date: Fri, 6 Mar 2015 13:03:34 +0100 Subject: [PATCH] [IMP][account_banking_payment_transfer] Move the creation of partner move line out of action_sent method --- .../model/account_payment.py | 41 +++++++++++-------- 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/account_banking_payment_transfer/model/account_payment.py b/account_banking_payment_transfer/model/account_payment.py index daeb1874b..00f6ae8d3 100644 --- a/account_banking_payment_transfer/model/account_payment.py +++ b/account_banking_payment_transfer/model/account_payment.py @@ -197,6 +197,28 @@ class PaymentOrder(models.Model): """This function is designed to be inherited""" return + @api.model + def _create_move_line_partner_account(self, line, move, labels): + """This method is designed to be inherited in a custom module""" + + # 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( + line, move, labels) + partner_move_line = aml_obj.create(partner_ml_vals) + + # register the payment/debit move line + # 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) + @api.one def action_sent(self): """ @@ -206,7 +228,6 @@ class PaymentOrder(models.Model): """ am_obj = self.env['account.move'] aml_obj = self.env['account.move.line'] - pl_obj = self.env['payment.line'] labels = { 'payment': _('Payment order'), 'debit': _('Direct debit order'), @@ -237,24 +258,8 @@ class PaymentOrder(models.Model): move = am_obj.create(mvals) total_amount = 0 for line in lines: - # TODO: take multicurrency into account - - # create the payment/debit counterpart move line - # on the partner account - partner_ml_vals = self._prepare_move_line_partner_account( - line, move, labels) - partner_move_line = aml_obj.create(partner_ml_vals) total_amount += line.amount - - # register the payment/debit move line - # 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) - + self._create_move_line_partner_account(line, move, labels) # create the payment/debit move line on the transfer account trf_ml_vals = self._prepare_move_line_transfer_account( total_amount, move, lines, labels)