Files
Odoo-Modules/fusion_claims/__manifest__.py
gsinghpal 8b2cbd9085 fusion_claims: ADP workflow recovery actions + email gap fixes
Workflow (from the FigJam ADP board):
- 9 new ADP action methods to wire up the orphan states that the board
  showed had no entry or no exit path: put_on_hold, withdraw, mark_denied,
  mark_rejected, mark_needs_correction, cancel, reopen_cancelled,
  reopen_expired, resubmit_from_denied.
- 12-month auto-expire cron (_cron_adp_expire_approved) configurable via
  fusion_claims.adp_approval_expiry_months, runs daily at 03:00.
- 3 new recovery buttons in the ADP form view (Reopen cancelled, Reopen
  expired, Resubmit from denied) in both the primary status bar and the
  secondary details panel.

Email (from the 2026-04 email audit):
- 6 new ADP stage email methods via a shared _adp_send_stage_email helper:
  assessment_scheduled, assessment_completed, application_received, accepted,
  cancelled, expired. Each has a matching dispatch entry in write().
- _send_rejection_email now includes the client (was authorizer-only).
- _send_accepted_email excludes the authorizer per the new rule: "Accepted"
  is a passive intermediate state with no authorizer action required.
- _send_ready_for_delivery_email excludes the authorizer: operational
  scheduling, not delivery confirmation. Authorizers are notified at
  case_closed when the product is actually delivered.
- action_adp_put_on_hold and action_adp_withdraw now fire their matching
  email methods so direct action-method calls get the same notifications
  as the status_change_reason_wizard path.

Authorizer notification rule (locked in for this update):
  Send to authorizer ONLY for initial involvement (assessment/submit/
  resubmit), delivery confirmation (case_closed), and problem states
  (rejected, denied, needs_correction, withdrawn, on_hold, cancelled,
  expired). Skip for billing, payment, ready_delivery scheduling, and
  passive intermediates (accepted).

Scope: ADP + ADP/ODSP only. MOD workflow emails reverted and deferred
to a separate update.

Deployed to odoo-westin (westin-v19) and odoo-mobility (mobility).
Pre-existing stock_route_warehouse FK orphans on mobility worked around
by verifying fusion_claims transaction committed before container restart.
2026-04-09 06:06:33 -04:00

182 lines
7.6 KiB
Python

# -*- coding: utf-8 -*-
# Copyright 2024-2025 Nexa Systems Inc.
# License OPL-1 (Odoo Proprietary License v1.0)
# Part of the Fusion Claim Assistant product family.
{
'name': 'Fusion Claims',
'version': '19.0.8.0.2',
'category': 'Sales',
'summary': 'Complete ADP Claims Management with Dashboard, Sales Integration, Billing Automation, and Two-Stage Verification.',
'description': """
Fusion Claims
=============
Part of the Fusion Claim Assistant product family by Nexa Systems Inc.
Fusion Claims is a comprehensive standalone application for managing ADP (Assistive Devices Program)
claims in Odoo. It provides its own sales management views, dashboard, claim workflow management,
automatic calculation of ADP and client portions, and professional PDF reports.
Key Features:
-------------
• Standalone application with its own menu and views
• Dashboard for claims overview and KPIs
• Integrated sales management (custom views separate from standard Sales app)
• Complete ADP claim workflow (Quotation → Ready for Submission → Application Submitted →
Application Approved → Ready to Bill → Billed to ADP → Case Closed)
• Automatic ADP/Client portion calculations with deductions (PCT/AMT)
• Support for multiple client types (REG=75%/25%, ODS/OWP/ACS=100%/0%)
• Split invoicing (Client Invoice + ADP Invoice)
• ADP Device Codes reference from Mobility Manual (JSON/CSV import)
• Device Approval Verification wizard - confirm which devices were approved by ADP
• Approval status tracking on order lines and invoices with visual indicators
• Professional PDF reports in Portrait and Landscape orientations
• ADP claim export to TXT format for billing
• Kanban board for ADP claim status tracking
• Field mapping for existing Odoo Studio fields
• Data persistence - fields survive module uninstall
Sales Management:
-----------------
• Custom quotation and order views with ADP fields
• ADP portion and client portion columns
• Serial number tracking per line item
• Device placement (Left/Right/N/A)
• Client type selection and automatic calculations
Claim Fields:
-------------
• Claim Number, Client Reference 1 & 2
• ADP Delivery Date, Service Start/End Dates
• Authorizer tracking
• Deduction Type (Percentage or Amount)
Report Features:
----------------
• Company logo and multi-store addresses
• Billing and delivery address boxes
• Authorizer and sales rep information
• Per-line ADP portion, client portion, taxes, and totals
• ADP device codes from products
• Serial numbers section
• Customizable payment terms
• Optional refund policy page
Copyright © 2024-2025 Nexa Systems Inc. All rights reserved.
""",
'author': 'Nexa Systems Inc.',
'website': 'https://www.nexasystems.ca',
'maintainer': 'Nexa Systems Inc.',
'support': 'support@nexasystems.ca',
'license': 'OPL-1',
'price': 0.00,
'currency': 'CAD',
'depends': [
'base',
'sale',
'sale_management',
'sale_margin',
'purchase',
'account',
'sales_team',
'stock',
'calendar',
'ai',
'fusion_ringcentral',
'fusion_tasks',
],
'external_dependencies': {
'python': ['pdf2image', 'PIL'],
},
'data': [
'security/security.xml',
'security/ir.model.access.csv',
'data/ir_config_parameter_data.xml',
'data/pdf_template_data.xml',
'data/mail_activity_type_data.xml',
'data/ir_cron_data.xml',
'data/ir_actions_server_data.xml',
'data/product_labor_data.xml',
'wizard/status_change_reason_wizard_views.xml',
'views/res_company_views.xml',
'views/res_config_settings_views.xml',
'views/sale_order_views.xml',
'views/account_move_views.xml',
'views/account_journal_views.xml',
'wizard/adp_export_wizard_views.xml',
'wizard/device_import_wizard_views.xml',
'wizard/device_approval_wizard_views.xml',
'wizard/submission_verification_wizard_views.xml',
'wizard/account_payment_register_views.xml',
'wizard/case_close_verification_wizard_views.xml',
'wizard/schedule_assessment_wizard_views.xml',
'wizard/assessment_completed_wizard_views.xml',
'wizard/application_received_wizard_views.xml',
'wizard/ready_for_submission_wizard_views.xml',
'wizard/ready_to_bill_wizard_views.xml',
'wizard/field_mapping_config_wizard_views.xml',
'wizard/ready_for_delivery_wizard_views.xml',
'wizard/send_to_mod_wizard_views.xml',
'wizard/mod_awaiting_funding_wizard_views.xml',
'wizard/mod_funding_approved_wizard_views.xml',
'wizard/mod_pca_received_wizard_views.xml',
'wizard/odsp_sa_mobility_wizard_views.xml',
'wizard/odsp_discretionary_wizard_views.xml',
'wizard/odsp_submit_to_odsp_wizard_views.xml',
'wizard/odsp_pre_approved_wizard_views.xml',
'wizard/odsp_ready_delivery_wizard_views.xml',
'wizard/send_page11_wizard_views.xml',
'wizard/adp_import_wizard_views.xml',
'views/res_partner_views.xml',
'views/pdf_template_inherit_views.xml',
'views/dashboard_views.xml',
'views/client_profile_views.xml',
'wizard/xml_import_wizard_views.xml',
'views/adp_export_record_views.xml',
'views/adp_claims_views.xml',
'views/submission_history_views.xml',
'views/product_template_adp_views.xml',
'views/page11_sign_request_views.xml',
'views/technician_task_views.xml',
'report/report_actions.xml',
'report/report_templates.xml',
'report/sale_report_portrait.xml',
'report/sale_report_landscape.xml',
'report/invoice_report_portrait.xml',
'report/invoice_report_landscape.xml',
'report/report_proof_of_delivery.xml',
'report/report_proof_of_delivery_standard.xml',
'report/report_proof_of_pickup.xml',
'report/report_approved_items.xml',
'report/report_grab_bar_waiver.xml',
'report/report_accessibility_contract.xml',
'report/report_mod_quotation.xml',
'report/report_mod_invoice.xml',
'data/mail_template_data.xml',
'data/ai_agent_data.xml',
],
'assets': {
'web.assets_backend': [
'fusion_claims/static/src/scss/fusion_claims.scss',
'fusion_claims/static/src/js/document_preview.js',
'fusion_claims/static/src/js/preview_button_widget.js',
'fusion_claims/static/src/js/status_selection_filter.js',
'fusion_claims/static/src/js/gallery_preview.js',
'fusion_claims/static/src/js/tax_totals_patch.js',
'fusion_claims/static/src/js/google_address_autocomplete.js',
'fusion_claims/static/src/js/calendar_store_hours.js',
'fusion_claims/static/src/js/attachment_image_compress.js',
'fusion_claims/static/src/js/debug_required_fields.js',
'fusion_claims/static/src/xml/document_preview.xml',
],
},
'images': ['static/description/icon.png'],
'installable': True,
'auto_install': False,
'application': True,
'post_init_hook': '_load_adp_device_codes',
}