[IMP][account_banking_payment_transfer] Move the creation of partner move line out of action_sent method

This commit is contained in:
Adrien Peiffer (ACSONE)
2015-03-06 13:03:34 +01:00
parent 3469dc8f5b
commit 4f1b4370b3

View File

@@ -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)