45 lines
1.3 KiB
Python
45 lines
1.3 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Copyright 2026 Nexa Systems Inc.
|
|
# License OPL-1 (Odoo Proprietary License v1.0)
|
|
|
|
import logging
|
|
|
|
from odoo import api, models
|
|
|
|
_logger = logging.getLogger(__name__)
|
|
|
|
|
|
class AccountMove(models.Model):
|
|
_inherit = 'account.move'
|
|
|
|
@api.model
|
|
def _contact_iap_extract(self, pathinfo, params):
|
|
ICP = self.env['ir.config_parameter'].sudo()
|
|
service = self.env['fusion.digitize.service']
|
|
|
|
api_key = service._get_api_key()
|
|
if not api_key:
|
|
return super()._contact_iap_extract(pathinfo, params)
|
|
|
|
vendor_bills_enabled = ICP.get_param(
|
|
'fusion_digitize.enable_vendor_bills', 'True',
|
|
) == 'True'
|
|
customer_invoices_enabled = ICP.get_param(
|
|
'fusion_digitize.enable_customer_invoices', 'True',
|
|
) == 'True'
|
|
|
|
if not vendor_bills_enabled and not customer_invoices_enabled:
|
|
return super()._contact_iap_extract(pathinfo, params)
|
|
|
|
if pathinfo == 'parse':
|
|
_logger.info("Fusion Digitize: intercepting invoice parse request")
|
|
return service._handle_parse(params, 'invoice')
|
|
|
|
if pathinfo == 'get_result':
|
|
return service._handle_get_result(params)
|
|
|
|
if pathinfo == 'validate':
|
|
return {'status': 'success'}
|
|
|
|
return super()._contact_iap_extract(pathinfo, params)
|