summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortbe-odoo <tbe@odoo.com>2017-10-26 12:59:04 +0200
committerNicolas Martinelli <nim@odoo.com>2017-10-27 11:45:50 +0200
commite51fa63bdaba8184559a730a76d5d50d0073a059 (patch)
tree0e200c0ac6565e7912c3c705e59bef5a1395725b
parent7c639be4aadce20bf6662ab347470fadf9afd99f (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.py12
-rw-r--r--addons/website_quote/models/sale_order.py11
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: