Initial commit

This commit is contained in:
gsinghpal
2026-02-22 01:22:18 -05:00
commit 5200d5baf0
2394 changed files with 386834 additions and 0 deletions

View File

@@ -0,0 +1,537 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2024-2025 Nexa Systems Inc.
License OPL-1 (Odoo Proprietary License v1.0)
Part of the Fusion Claim Assistant product family.
-->
<odoo>
<!-- Add Fusion Central Settings as a new app block -->
<record id="res_config_settings_view_form_fusion_claims" model="ir.ui.view">
<field name="name">res.config.settings.view.form.fusion.central</field>
<field name="model">res.config.settings</field>
<field name="inherit_id" ref="base.res_config_settings_view_form"/>
<field name="arch" type="xml">
<xpath expr="//form" position="inside">
<app data-string="Fusion Claims" string="Fusion Claims" name="fusion_claims">
<h2>ADP Billing</h2>
<div class="row mt-4 o_settings_container">
<!-- ADP Vendor Code -->
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_right_pane">
<span class="o_form_label">ADP Vendor Code</span>
<div class="text-muted">Your ADP vendor/location code for claim submissions</div>
<div class="mt-2">
<field name="fc_vendor_code" placeholder="e.g., 1234567"/>
</div>
</div>
</div>
</div>
<h2>ADP Posting Schedule</h2>
<div class="row mt-4 o_settings_container">
<!-- Posting Schedule Configuration -->
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_right_pane">
<span class="o_form_label">Posting Cycle</span>
<div class="text-muted">Configure the bi-weekly ADP posting schedule</div>
<div class="mt-2">
<div class="row mb-2">
<label for="fc_adp_posting_base_date" class="col-5 col-form-label">Base Posting Date</label>
<div class="col-7">
<field name="fc_adp_posting_base_date"/>
</div>
</div>
<div class="row mb-2">
<label for="fc_adp_posting_frequency_days" class="col-5 col-form-label">Frequency (Days)</label>
<div class="col-7">
<field name="fc_adp_posting_frequency_days"/>
</div>
</div>
</div>
<div class="alert alert-info mt-3" role="alert">
<strong>Schedule Info:</strong>
<ul class="mb-0 mt-1">
<li>Submission Deadline: Wednesday 6 PM before posting day</li>
<li>Payment Processed: Posting day + 7 days</li>
<li>Payment Received: Posting day + ~10 days</li>
</ul>
</div>
</div>
</div>
<!-- Reminder Recipients -->
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_right_pane">
<span class="o_form_label">Automatic Reminders</span>
<div class="text-muted">Configure who receives ADP billing reminders</div>
<div class="mt-2">
<div class="row mb-2">
<label for="fc_adp_billing_reminder_user_id" class="col-12 col-form-label">
Billing Deadline Person
</label>
<div class="col-12">
<field name="fc_adp_billing_reminder_user_id"
domain="[('share', '=', False)]"
placeholder="Select user for billing reminders..."/>
<div class="text-muted small">Reminded on Monday to complete billing by Wednesday 6 PM</div>
</div>
</div>
<div class="row mt-3">
<label for="fc_adp_correction_reminder_user_ids" class="col-12 col-form-label">
Correction Alert Recipients
</label>
<div class="col-12">
<field name="fc_adp_correction_reminder_user_ids"
widget="many2many_tags"
domain="[('share', '=', False)]"
placeholder="Select users for correction alerts..."/>
<div class="text-muted small">Notified when invoices need correction/resubmission</div>
</div>
</div>
</div>
</div>
</div>
</div>
<h2>Email Notifications</h2>
<div class="row mt-4 o_settings_container">
<!-- Enable/Disable Notifications -->
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_left_pane">
<field name="fc_enable_email_notifications"/>
</div>
<div class="o_setting_right_pane">
<label for="fc_enable_email_notifications"/>
<div class="text-muted">
Send automated email notifications when ADP workflow status changes
(assessment completed, application submitted, approved, denied, case closed, etc.)
</div>
</div>
</div>
<!-- Office CC Emails -->
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_right_pane">
<span class="o_form_label">Office Notification Recipients</span>
<div class="text-muted">
These contacts will receive a copy (CC) of all automated ADP notifications
so the office staff can stay in the loop.
</div>
<div class="mt-2">
<field name="fc_office_notification_ids"
widget="many2many_tags"
domain="[('user_ids.share', '=', False)]"
options="{'no_create': True}"/>
</div>
</div>
</div>
<!-- Application Reminder Days -->
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_right_pane">
<span class="o_form_label">Application Reminders</span>
<div class="text-muted">
Automated reminders to therapist to submit the ADP application.
</div>
<div class="mt-2 row">
<div class="col-4">
<field name="fc_application_reminder_days"/>
</div>
<div class="col-8 pt-2 text-muted">days after assessment (first reminder)</div>
</div>
<div class="mt-2 row">
<div class="col-4">
<field name="fc_application_reminder_2_days"/>
</div>
<div class="col-8 pt-2 text-muted">days after first reminder (second reminder)</div>
</div>
</div>
</div>
</div>
<!-- Workflow Lock Settings -->
<h2 class="mt-4">Workflow Settings</h2>
<div class="row mt-4 o_settings_container">
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_left_pane">
<field name="fc_allow_sale_type_override"/>
</div>
<div class="o_setting_right_pane">
<label for="fc_allow_sale_type_override"/>
<div class="text-muted">
Allow changing Sale Type even after application is submitted.
Use this for cases where additional benefits (ODSP, etc.) are discovered.
</div>
</div>
</div>
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_left_pane">
<field name="fc_allow_document_lock_override"/>
</div>
<div class="o_setting_right_pane">
<label for="fc_allow_document_lock_override"/>
<div class="text-muted">
Allow users in the "Document Lock Override" group to edit locked documents
on old cases. Turn this OFF once all legacy cases are processed.
</div>
</div>
</div>
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_right_pane">
<span class="o_form_label">Designated Vendor Signer</span>
<div class="text-muted">
The user who signs Page 12 on behalf of the company.
</div>
<div class="mt-2">
<field name="fc_designated_vendor_signer"
domain="[('share', '=', False)]"/>
</div>
</div>
</div>
</div>
<h2>External APIs</h2>
<div class="row mt-4 o_settings_container">
<!-- Google Maps API Key -->
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_right_pane">
<span class="o_form_label">Google Maps API</span>
<div class="text-muted">
API key for Google Maps Places autocomplete in address fields (accessibility assessments, etc.)
</div>
<div class="mt-2">
<field name="fc_google_maps_api_key" placeholder="Enter your Google Maps API Key" password="True"/>
</div>
<div class="alert alert-info mt-2" role="alert">
<i class="fa fa-info-circle"/> Enable the "Places API" in your Google Cloud Console for address autocomplete.
</div>
</div>
</div>
</div>
<h2>AI Client Intelligence</h2>
<div class="row mt-4 o_settings_container">
<!-- AI API Key -->
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_right_pane">
<span class="o_form_label">AI API Key</span>
<div class="text-muted">
OpenAI API key for Client Intelligence chat and AI analysis features.
</div>
<div class="mt-2">
<field name="fc_ai_api_key" placeholder="sk-..." password="True"/>
</div>
</div>
</div>
<!-- AI Model -->
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_right_pane">
<span class="o_form_label">AI Model</span>
<div class="text-muted">
Which AI model to use for client intelligence queries.
</div>
<div class="mt-2">
<field name="fc_ai_model"/>
</div>
</div>
</div>
<!-- Auto XML Parse -->
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_left_pane">
<field name="fc_auto_parse_xml"/>
</div>
<div class="o_setting_right_pane">
<label for="fc_auto_parse_xml"/>
<div class="text-muted">
Automatically parse ADP XML files when uploaded to sale orders
and create/update client profiles.
</div>
</div>
</div>
</div>
<h2>Technician Management</h2>
<div class="row mt-4 o_settings_container">
<!-- Store Hours -->
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_right_pane">
<span class="o_form_label">Store / Scheduling Hours</span>
<div class="text-muted">
Operating hours for technician task scheduling. Tasks can only be booked
within these hours. Calendar view is also restricted to this range.
</div>
<div class="mt-2 d-flex align-items-center gap-2">
<field name="fc_store_open_hour" widget="float_time" style="max-width: 100px;"/>
<span>to</span>
<field name="fc_store_close_hour" widget="float_time" style="max-width: 100px;"/>
</div>
</div>
</div>
<!-- Distance Matrix Toggle -->
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_left_pane">
<field name="fc_google_distance_matrix_enabled"/>
</div>
<div class="o_setting_right_pane">
<label for="fc_google_distance_matrix_enabled"/>
<div class="text-muted">
Calculate travel time between technician tasks using Google Distance Matrix API.
Requires Google Maps API key above with Distance Matrix API enabled.
</div>
</div>
</div>
<!-- Start Address (Company Default / Fallback) -->
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_right_pane">
<span class="o_form_label">Default HQ / Fallback Address</span>
<div class="text-muted">
Company default start location used when a technician has no personal
start address set. Each technician can set their own start location
in their user profile or from the portal.
</div>
<div class="mt-2">
<field name="fc_technician_start_address" placeholder="e.g. 123 Main St, Brampton, ON"/>
</div>
</div>
</div>
<!-- Location History Retention -->
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_right_pane">
<span class="o_form_label">Location History Retention</span>
<div class="text-muted">
How many days to keep technician GPS location history before automatic cleanup.
</div>
<div class="mt-2 d-flex align-items-center gap-2">
<field name="fc_location_retention_days" placeholder="30" style="max-width: 80px;"/>
<span class="text-muted">days</span>
</div>
<div class="text-muted small mt-1">
Leave empty = 30 days. Enter 0 = delete at end of each day. 1+ = keep that many days.
</div>
</div>
</div>
</div>
<h2>Push Notifications</h2>
<div class="row mt-4 o_settings_container">
<!-- Push Enable -->
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_left_pane">
<field name="fc_push_enabled"/>
</div>
<div class="o_setting_right_pane">
<label for="fc_push_enabled"/>
<div class="text-muted">
Send web push notifications to technicians about upcoming tasks.
Requires VAPID keys (auto-generated on first save if empty).
</div>
</div>
</div>
<!-- Advance Minutes -->
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_right_pane">
<span class="o_form_label">Notification Advance Time</span>
<div class="text-muted">
Send push notification this many minutes before a scheduled task.
</div>
<div class="mt-2">
<field name="fc_push_advance_minutes"/> minutes
</div>
</div>
</div>
<!-- VAPID Public Key -->
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_right_pane">
<span class="o_form_label">VAPID Public Key</span>
<div class="mt-2">
<field name="fc_vapid_public_key" placeholder="Auto-generated"/>
</div>
</div>
</div>
<!-- VAPID Private Key -->
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_right_pane">
<span class="o_form_label">VAPID Private Key</span>
<div class="mt-2">
<field name="fc_vapid_private_key" password="True" placeholder="Auto-generated"/>
</div>
</div>
</div>
</div>
<h2>March of Dimes</h2>
<div class="row mt-4 o_settings_container">
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_right_pane">
<span class="o_form_label">Default MOD Email</span>
<div class="text-muted">
Email used for sending initial quotations and documents to March of Dimes.
</div>
<div class="mt-2">
<field name="fc_mod_default_email" placeholder="hvmp@marchofdimes.ca"/>
</div>
</div>
</div>
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_right_pane">
<span class="o_form_label">March of Dimes Vendor Code</span>
<div class="text-muted">
Your vendor code assigned by March of Dimes.
</div>
<div class="mt-2">
<field name="fc_mod_vendor_code" placeholder="e.g. TRD0001234"/>
</div>
</div>
</div>
</div>
<h2>Twilio SMS</h2>
<div class="row mt-4 o_settings_container">
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_left_pane">
<field name="fc_twilio_enabled"/>
</div>
<div class="o_setting_right_pane">
<label for="fc_twilio_enabled"/>
<div class="text-muted">
Send SMS confirmations for assessment bookings and key status updates via Twilio.
</div>
</div>
</div>
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_right_pane">
<span class="o_form_label">Twilio Phone Number</span>
<div class="mt-2">
<field name="fc_twilio_phone_number" placeholder="+1234567890"/>
</div>
</div>
</div>
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_right_pane">
<span class="o_form_label">Account SID</span>
<div class="mt-2">
<field name="fc_twilio_account_sid" password="True"/>
</div>
</div>
</div>
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_right_pane">
<span class="o_form_label">Auth Token</span>
<div class="mt-2">
<field name="fc_twilio_auth_token" password="True"/>
</div>
</div>
</div>
</div>
<h2>March of Dimes Follow-Up</h2>
<div class="row mt-4 o_settings_container">
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_right_pane">
<span class="o_form_label">Follow-up Interval</span>
<div class="text-muted">
Days between follow-up reminders for MOD cases awaiting funding.
</div>
<div class="mt-2">
<field name="fc_mod_followup_interval_days"/> days
</div>
</div>
</div>
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_right_pane">
<span class="o_form_label">Auto-Email Escalation Delay</span>
<div class="text-muted">
Days after a follow-up activity is overdue before sending an automatic email to the client.
</div>
<div class="mt-2">
<field name="fc_mod_followup_escalation_days"/> days
</div>
</div>
</div>
</div>
<!-- ============================================================= -->
<!-- ODSP CONFIGURATION -->
<!-- ============================================================= -->
<h2>ODSP Configuration</h2>
<div class="row mt16 o_settings_container">
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_right_pane">
<span class="o_form_label">SA Mobility Email</span>
<div class="text-muted">
Email address for SA Mobility submissions (can be changed if the government email changes).
</div>
<div class="mt-2">
<field name="fc_sa_mobility_email" placeholder="samobility@ontario.ca"/>
</div>
</div>
</div>
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_right_pane">
<span class="o_form_label">SA Mobility Phone</span>
<div class="text-muted">
SA Mobility phone number for reference.
</div>
<div class="mt-2">
<field name="fc_sa_mobility_phone" placeholder="1-888-222-5099"/>
</div>
</div>
</div>
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_right_pane">
<span class="o_form_label">Default ODSP Office</span>
<div class="text-muted">
Default ODSP office contact for new ODSP cases.
</div>
<div class="mt-2">
<field name="fc_odsp_default_office_id"/>
</div>
</div>
</div>
</div>
<!-- Hidden fields for field mappings (still needed for ir.config_parameter storage) -->
<div class="d-none">
<field name="fc_field_sale_type"/>
<field name="fc_field_so_client_type"/>
<field name="fc_field_so_authorizer"/>
<field name="fc_field_invoice_type"/>
<field name="fc_field_inv_client_type"/>
<field name="fc_field_inv_authorizer"/>
<field name="fc_field_product_code"/>
<field name="fc_field_sol_serial"/>
<field name="fc_field_aml_serial"/>
<field name="fc_field_so_claim_number"/>
<field name="fc_field_so_client_ref_1"/>
<field name="fc_field_so_client_ref_2"/>
<field name="fc_field_so_delivery_date"/>
<field name="fc_field_so_adp_status"/>
<field name="fc_field_so_service_start"/>
<field name="fc_field_so_service_end"/>
<field name="fc_field_inv_claim_number"/>
<field name="fc_field_inv_client_ref_1"/>
<field name="fc_field_inv_client_ref_2"/>
<field name="fc_field_inv_delivery_date"/>
<field name="fc_field_inv_service_start"/>
<field name="fc_field_inv_service_end"/>
<field name="fc_field_sol_placement"/>
<field name="fc_field_aml_placement"/>
<field name="fc_field_product_adp_price"/>
<field name="fc_field_so_primary_serial"/>
<field name="fc_field_inv_primary_serial"/>
</div>
</app>
</xpath>
</field>
</record>
</odoo>