[FIX] website_quote: invoice generation
To reproduce: - Configure an external payment provider (e.g. Ingenico) with "Authorize & capture the amount, confirm the SO and auto-validate the invoice on acquirer confirmation" - Create a quotation with a product linked to a subscription - Send the link to the customer - Click on "Accept & Pay", use the configured provider The SO is confirmed, but the invoice is not generated. By calling `action_confirm` in the callback of the transaction, we validate the SO before `form_feedback` is called. Therefore, the method `_confirm_so` will do nothing since the SO is not in state 'draft' or 'sent' anymore. The solution is to manually call `_confirm_so`instead of `action_confirm`. This is necessary to do it at this moment since we might not go through `form_feedback` (e.g. if we pay thanks to wire transfer). opw-694273
This commit is contained in:
@@ -165,8 +165,7 @@ class SaleOrder(models.Model):
|
||||
""" Payment callback: validate the order and write transaction details in chatter """
|
||||
# create draft invoice if transaction is ok
|
||||
if transaction and transaction.state == 'done':
|
||||
if self.state in ['draft', 'sent']:
|
||||
self.sudo().action_confirm()
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user