Reworks the March of Dimes workflow to match reality: the OT does their own disability assessment and provides the VOD letter; our accessibility specialist then visits to produce the proposal/drawings/quote; and the application can be submitted by us (internal), the client, or the authorizer themselves. The old workflow flattened all this into one assessment state with a dead-end funding_denied and no document tracking. Data model (13 new sale.order fields): - 5 new document binaries + filenames: VOD letter, Application Form (filled), Notice of Assessment, Property Tax, Proposal Document - x_fc_mod_submitted_by Selection (internal/client/authorizer) - x_fc_mod_handoff_date, x_fc_mod_vod_requested_date - x_fc_mod_accessibility_specialist_id (m2o res.partner — internal or external) - x_fc_mod_previous_status_before_hold (for proper resume) - x_fc_mod_funding_denial_reason (captured via wizard) Settings (4 res.company fields + res_config_settings mirrors): - x_fc_mod_application_form (blank) + filename - x_fc_mod_vod_form (blank) + filename - x_fc_mod_followup_assignee_mode (office_contact / sales_rep) - x_fc_mod_followup_office_contact_id res.partner: added 'accessibility_specialist' to x_fc_contact_type. State machine: - New state handoff_to_client between quote_submitted and awaiting_funding, used for paths B/C (client or authorizer submits themselves) - Fixed action_mod_on_hold to save x_fc_mod_previous_status_before_hold - Fixed action_mod_resume to restore previous status (was hardcoded to in_production, losing context for cases held earlier) 4 new wizards: - mod_submission_path_wizard — chooses submitted_by, auto-fires VOD request email on first switch to 'internal' - mod_funding_denied_wizard — captures denial category + reason - mod_resubmit_wizard — revises + resubmits denied cases (with optional doc clearing) - mod_submission_confirmed_wizard — records client/authorizer confirmed submission, advances to awaiting_funding 8 new action methods: - action_mod_set_submission_path, action_mod_request_vod, action_mod_handoff_to_client (validates docs, fires handoff email), action_mod_confirmed_submission, action_mod_resubmit_from_denied, action_mod_cancel_from_denied, action_mod_reopen_cancelled - action_mod_funding_denied now opens the denial wizard 3 new email methods + 2 existing fixes: - _send_mod_vod_request_email — auto-attaches blank VOD form from company settings, sent to authorizer when we are handling submission - _send_mod_handoff_email — two templates (client vs authorizer), attaches proposal + drawing + blank MOD Application Form - _mod_company_attachment helper for building attachments from company Binary - Fixed _send_mod_assessment_completed_email to include authorizer - Fixed _send_mod_pod_submitted_email to include client New cron: - _cron_mod_handoff_followup (daily 09:00) — creates mail.activity for office to confirm MOD submission. Assignee via company setting (office contact or sales rep). Uses existing rolling-window cap (2/month per order). Views: - sale_order form: new status-bar buttons (set path, request VOD, handoff, confirm, resubmit, cancel, reopen), new document section in MOD Documents tab with submission-path tracking, denial details, hold history - res_config_settings: new MOD blank forms upload + assignee config Deployed to odoo-westin (westin-v19) and odoo-mobility (mobility). Pre-deploy FK cleanup from earlier session means mobility updated cleanly without workaround. HTTP 200 on both, cron verified active, all new fields present.
186 lines
7.8 KiB
Python
186 lines
7.8 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.3',
|
|
'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/mod_submission_path_wizard_views.xml',
|
|
'wizard/mod_funding_denied_wizard_views.xml',
|
|
'wizard/mod_resubmit_wizard_views.xml',
|
|
'wizard/mod_submission_confirmed_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',
|
|
}
|