From a5e8f227015f229356edb5630507eb6b3ce22d89 Mon Sep 17 00:00:00 2001 From: Damien Bouvy Date: Tue, 16 Feb 2016 09:32:28 +0100 Subject: [PATCH] [FIX] payment_ogone: s2s response should generate payment method Ogone responses comes from direct s2s calls or form feedback; not necessarily in that order. The behaviour of the system should be the same in both cases. This commit add payment_methode creation when a s2s response contains the necessary information, juste like the form feedback methods. Ideally these methods should be merged to share the same code, this will be done in master (v10). --- addons/payment_ogone/models/ogone.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/addons/payment_ogone/models/ogone.py b/addons/payment_ogone/models/ogone.py index 0a07315467f..53db91d5e34 100644 --- a/addons/payment_ogone/models/ogone.py +++ b/addons/payment_ogone/models/ogone.py @@ -264,7 +264,7 @@ class PaymentTxOgone(osv.Model): 'acquirer_id': tx.acquirer_id.id, 'acquirer_ref': alias }) - tx.partner_reference = alias + tx.write({'payment_method_id': ref}) return tx @@ -294,7 +294,7 @@ class PaymentTxOgone(osv.Model): 'date_validate': datetime.datetime.strptime(data['TRXDATE'], '%m/%d/%y').strftime(DEFAULT_SERVER_DATE_FORMAT), 'acquirer_reference': data['PAYID'], } - if data.get('ALIAS') and tx.partner_id and tx.type == 'form_save': + if data.get('ALIAS') and tx.partner_id and tx.type == 'form_save' and not tx.payment_method_id: pm_id = self.pool['payment.method'].create(cr, uid, { 'partner_id': tx.partner_id.id, 'acquirer_id': tx.acquirer_id.id, @@ -399,6 +399,14 @@ class PaymentTxOgone(osv.Model): 'date_validate': datetime.date.today().strftime(DEFAULT_SERVER_DATE_FORMAT), 'acquirer_reference': tree.get('PAYID'), }) + if tree.get('ALIAS') and tx.partner_id and tx.type == 'form_save' and not tx.payment_method_id: + pm = tx.env['payment.method'].create({ + 'partner_id': tx.partner_id.id, + 'acquirer_id': tx.acquirer_id.id, + 'acquirer_ref': tree.get('ALIAS'), + 'name': tree.get('CARDNO'), + }) + tx.write({'payment_method_id': pm.id}) if tx.callback_eval: safe_eval(tx.callback_eval, {'self': tx}) return True