diff --git a/addons/payment/models/payment_acquirer.py b/addons/payment/models/payment_acquirer.py index 3f7e45f8888..2e4512cdbd3 100644 --- a/addons/payment/models/payment_acquirer.py +++ b/addons/payment/models/payment_acquirer.py @@ -2,6 +2,7 @@ import logging +import openerp from openerp.osv import osv, fields from openerp.tools import float_round, float_repr from openerp.tools.translate import _ @@ -457,7 +458,7 @@ class PaymentTransaction(osv.Model): def get_next_reference(self, cr, uid, reference, context=None): ref_suffix = 1 init_ref = reference - while self.pool['payment.transaction'].search_count(cr, uid, [('reference', '=', reference)], context=context): + while self.pool['payment.transaction'].search_count(cr, openerp.SUPERUSER_ID, [('reference', '=', reference)], context=context): reference = init_ref + '-' + str(ref_suffix) ref_suffix += 1 return reference diff --git a/addons/website_sale/controllers/main.py b/addons/website_sale/controllers/main.py index b50836ee065..cb6a416c068 100644 --- a/addons/website_sale/controllers/main.py +++ b/addons/website_sale/controllers/main.py @@ -730,12 +730,11 @@ class website_sale(http.Controller): tx = request.website.sale_get_transaction() if tx: tx_id = tx.id - if tx.reference != order.name: + if tx.sale_order_id.id != order.id or tx.state in ['error', 'cancel'] or tx.acquirer_id.id != acquirer_id: tx = False tx_id = False elif tx.state == 'draft': # button cliked but no more info -> rewrite on tx or create a new one ? tx.write({ - 'acquirer_id': acquirer_id, 'amount': order.amount_total, }) if not tx: