diff options
| author | tbe-odoo <tbe@odoo.com> | 2017-10-26 12:59:04 +0200 |
|---|---|---|
| committer | Nicolas Martinelli <nim@odoo.com> | 2017-10-27 11:45:50 +0200 |
| commit | e51fa63bdaba8184559a730a76d5d50d0073a059 (patch) | |
| tree | 0e200c0ac6565e7912c3c705e59bef5a1395725b | |
| parent | 7c639be4aadce20bf6662ab347470fadf9afd99f (diff) | |
[FIX] website_quote: Do not generate invoices twice
- When paying with stripe an error occurs because of a callback generating the invoice for the SO which is called now automatically by the payment system
| -rw-r--r-- | addons/website_quote/controllers/main.py | 12 | ||||
| -rw-r--r-- | addons/website_quote/models/sale_order.py | 11 |
2 files changed, 2 insertions, 21 deletions
diff --git a/addons/website_quote/controllers/main.py b/addons/website_quote/controllers/main.py index d7fbb50547f..e29d6be9cbf 100644 --- a/addons/website_quote/controllers/main.py +++ b/addons/website_quote/controllers/main.py @@ -186,11 +186,7 @@ class sale_quote(http.Controller): token = request.env['payment.token'].sudo() # currently no support of payment tokens tx = request.env['payment.transaction'].sudo().search([('reference', '=', order.name)], limit=1) tx_type = order._get_payment_type() - tx = tx._check_or_create_sale_tx(order, acquirer, payment_token=token, tx_type=tx_type, add_tx_values={ - 'callback_model_id': request.env['ir.model'].sudo().search([('model', '=', order._name)], limit=1).id, - 'callback_res_id': order.id, - 'callback_method': '_confirm_online_quote', - }) + tx = tx._check_or_create_sale_tx(order, acquirer, payment_token=token, tx_type=tx_type) request.session['quote_%s_transaction_id' % order.id] = tx.id return tx.render_sale_button(order, '/quote/%s/%s' % (order_id, access_token) if access_token else '/quote/%s' % order_id, @@ -222,11 +218,7 @@ class sale_quote(http.Controller): # set the transaction type to server2server tx_type = 'server2server' # check if the transaction exists, if not then it create one - tx = tx._check_or_create_sale_tx(order, token.acquirer_id, payment_token=token, tx_type=tx_type, add_tx_values={ - 'callback_model_id': request.env['ir.model'].sudo().search([('model', '=', order._name)], limit=1).id, - 'callback_res_id': order.id, - 'callback_method': '_confirm_online_quote', - }) + tx = tx._check_or_create_sale_tx(order, token.acquirer_id, payment_token=token, tx_type=tx_type) # set the transaction id into the session request.session['quote_%s_transaction_id' % order_id] = tx.id # proceed to the payment diff --git a/addons/website_quote/models/sale_order.py b/addons/website_quote/models/sale_order.py index 1ef01d517a3..8bd8ff04f63 100644 --- a/addons/website_quote/models/sale_order.py +++ b/addons/website_quote/models/sale_order.py @@ -202,17 +202,6 @@ class SaleOrder(models.Model): return super(SaleOrder, self).get_portal_confirmation_action() @api.multi - def _confirm_online_quote(self, transaction): - """ Payment callback: validate the order and write transaction details in chatter """ - # create draft invoice if transaction is ok - if transaction and transaction.state == 'done': - transaction._confirm_so() - message = _('Order paid by %s. Transaction: %s. Amount: %s.') % (transaction.partner_id.name, transaction.acquirer_reference, transaction.amount) - self.message_post(body=message) - return True - return False - - @api.multi def action_confirm(self): res = super(SaleOrder, self).action_confirm() for order in self: |
