diff --git a/fusion_claims/controllers/portal.py b/fusion_claims/controllers/portal.py index 8030f54..0f3c858 100644 --- a/fusion_claims/controllers/portal.py +++ b/fusion_claims/controllers/portal.py @@ -5,7 +5,7 @@ import binascii -from odoo import fields, _ +from odoo import fields, http, _ from odoo.exceptions import AccessError, MissingError from odoo.http import request from odoo.addons.sale.controllers.portal import CustomerPortal @@ -27,6 +27,42 @@ class FusionCustomerPortal(CustomerPortal): return order_sudo.x_fc_client_portion_total or 0 return order_sudo.amount_total + # ------------------------------------------------------------------ + # View Details: render ADP landscape report for ADP orders + # ------------------------------------------------------------------ + @http.route() + def portal_order_page( + self, order_id, report_type=None, access_token=None, + message=False, download=False, payment_amount=None, + amount_selection=None, **kw + ): + if report_type in ('html', 'pdf', 'text'): + try: + order_sudo = self._document_check_access( + 'sale.order', order_id, access_token=access_token, + ) + except (AccessError, MissingError): + return request.redirect('/my') + + if self._is_adp_order(order_sudo): + return self._show_report( + model=order_sudo, + report_type=report_type, + report_ref='fusion_claims.action_report_saleorder_landscape', + download=download, + ) + + return super().portal_order_page( + order_id, + report_type=report_type, + access_token=access_token, + message=message, + download=download, + payment_amount=payment_amount, + amount_selection=amount_selection, + **kw, + ) + # ------------------------------------------------------------------ # Payment amount overrides # ------------------------------------------------------------------ @@ -65,6 +101,7 @@ class FusionCustomerPortal(CustomerPortal): # ------------------------------------------------------------------ # Signature: attach ADP report instead of default Odoo quotation # ------------------------------------------------------------------ + @http.route() def portal_quote_accept(self, order_id, access_token=None, name=None, signature=None): access_token = access_token or request.httprequest.args.get('access_token') try: