[FIX] website_sale_digital: allow download without reconciliation
TLDR: after installation accounting app, invoices paid online get status "In Payment" until reconciliation; this commit allows to download digital content without waiting reconciliation which may take days or week Steps: * Install Accounting app * Install website_sale_digital * Create Digital product (Product Type: Service + use Digital Files smart button to upload a file) * Setup payment acquirer (e.g. Paypal) * Buy digital product online and pay * Open the Sale Order in Portal Before: * No "Downloads" button near to product name After * User can download files after purchasing Notes * In Odoo 13.0 it worked via "post_at" option, which is removed in Odoo 14. See https://github.com/odoo/odoo/commit/caeb782841fc5a7ad71a196e2c9ee67644ef9074: > - Remove the post_at bank reconciliation feature. The "paid" state will be set on the invoices only if reconciled with a journal entry involving the journal's liquidity account. > With invoicing, the payment will do that so the "in_payment" state should never be shown up. > With accounting, only the statement lines have the power to move an invoice to the "paid" state. --- opw-2353064 closes odoo/odoo#59959 X-original-commit: 103abd3284cea1723adc0e4b90e57961a4fac2a0 Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
This commit is contained in:
@@ -36,7 +36,7 @@ class WebsiteSaleDigital(CustomerPortal):
|
||||
if not 'sale_order' in response.qcontext:
|
||||
return response
|
||||
order = response.qcontext['sale_order']
|
||||
invoiced_lines = request.env['account.move.line'].sudo().search([('move_id', 'in', order.invoice_ids.ids), ('move_id.payment_state', '=', 'paid')])
|
||||
invoiced_lines = request.env['account.move.line'].sudo().search([('move_id', 'in', order.invoice_ids.ids), ('move_id.payment_state', 'in', ['paid', 'in_payment'])])
|
||||
products = invoiced_lines.mapped('product_id') | order.order_line.filtered(lambda r: not r.price_subtotal).mapped('product_id')
|
||||
if not order.amount_total:
|
||||
# in that case, we should add all download links to the products
|
||||
|
||||
@@ -14,7 +14,7 @@ class AccountInvoiceLine(models.Model):
|
||||
# Get paid invoices
|
||||
purchases = self.sudo().search_read(
|
||||
domain=[
|
||||
('move_id.payment_state', '=', 'paid'),
|
||||
('move_id.payment_state', 'in', ['paid', 'in_payment']),
|
||||
('move_id.partner_id', '=', partner.id),
|
||||
('product_id', '!=', False),
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user