From acd3fc455e65d8bffb89ef79473667a2b448ebb0 Mon Sep 17 00:00:00 2001 From: gsinghpal Date: Mon, 9 Mar 2026 15:21:22 -0400 Subject: [PATCH] changes --- .DS_Store | Bin 0 -> 10244 bytes dropdown-toggle.*New Assessment | 6 + "equipment_type=[^\"]*" | 230 ++ fusion_accounts/static/description/icon.png | Bin 14697 -> 50984 bytes fusion_authorizer_portal/__manifest__.py | 2 + .../controllers/__init__.py | 3 +- .../controllers/portal_main.py | 26 + .../controllers/portal_page11_sign.py | 206 ++ .../models/res_partner.py | 2 +- .../static/src/js/technician_location.js | 68 +- fusion_authorizer_portal/utils/pdf_filler.py | 50 +- .../views/portal_page11_sign_templates.xml | 413 +++ .../views/portal_technician_templates.xml | 2 +- fusion_claims/__manifest__.py | 8 +- .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 524 bytes .../__pycache__/__manifest__.cpython-312.pyc | Bin 0 -> 7299 bytes .../device_codes/adp_mobility_manual.json | 510 ++- fusion_claims/data/ir_actions_server_data.xml | 28 +- .../data/ir_config_parameter_data.xml | 26 - fusion_claims/data/ir_cron_data.xml | 55 +- fusion_claims/data/mail_template_data.xml | 98 +- fusion_claims/models/__init__.py | 8 +- .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 1285 bytes .../__pycache__/account_move.cpython-312.pyc | Bin 0 -> 49579 bytes .../account_move_line.cpython-312.pyc | Bin 0 -> 8221 bytes .../account_payment.cpython-312.pyc | Bin 0 -> 847 bytes ...ccount_payment_method_line.cpython-312.pyc | Bin 0 -> 726 bytes .../adp_application_data.cpython-312.pyc | Bin 0 -> 43659 bytes .../adp_posting_schedule.cpython-312.pyc | Bin 0 -> 11026 bytes .../__pycache__/ai_agent_ext.cpython-312.pyc | Bin 0 -> 7798 bytes .../__pycache__/client_chat.cpython-312.pyc | Bin 0 -> 16368 bytes .../client_profile.cpython-312.pyc | Bin 0 -> 13267 bytes .../__pycache__/dashboard.cpython-312.pyc | Bin 0 -> 9093 bytes .../fusion_adp_device_code.cpython-312.pyc | Bin 0 -> 17391 bytes .../fusion_central_config.cpython-312.pyc | Bin 0 -> 7021 bytes .../fusion_loaner_checkout.cpython-312.pyc | Bin 0 -> 35004 bytes .../fusion_loaner_history.cpython-312.pyc | Bin 0 -> 3899 bytes .../__pycache__/ltc_cleanup.cpython-312.pyc | Bin 0 -> 7791 bytes .../__pycache__/ltc_facility.cpython-312.pyc | Bin 0 -> 12610 bytes .../ltc_form_submission.cpython-312.pyc | Bin 0 -> 3204 bytes .../__pycache__/ltc_repair.cpython-312.pyc | Bin 0 -> 14088 bytes .../page11_sign_request.cpython-312.pyc | Bin 0 -> 19370 bytes .../product_product.cpython-312.pyc | Bin 0 -> 6446 bytes .../product_template.cpython-312.pyc | Bin 0 -> 5762 bytes .../push_subscription.cpython-312.pyc | Bin 0 -> 2381 bytes .../__pycache__/res_company.cpython-312.pyc | Bin 0 -> 2646 bytes .../res_config_settings.cpython-312.pyc | Bin 0 -> 23262 bytes .../__pycache__/res_partner.cpython-312.pyc | Bin 0 -> 2874 bytes .../__pycache__/sale_order.cpython-312.pyc | Bin 0 -> 319805 bytes .../sale_order_line.cpython-312.pyc | Bin 0 -> 13472 bytes .../submission_history.cpython-312.pyc | Bin 0 -> 8247 bytes .../__pycache__/task_sync.cpython-312.pyc | Bin 0 -> 33981 bytes .../technician_location.cpython-312.pyc | Bin 0 -> 5759 bytes .../technician_task.cpython-312.pyc | Bin 0 -> 33913 bytes .../technician_task_new.cpython-312.pyc | Bin 0 -> 33917 bytes .../__pycache__/xml_parser.cpython-312.pyc | Bin 0 -> 49771 bytes .../models/fusion_adp_device_code.py | 18 + fusion_claims/models/page11_sign_request.py | 389 +++ fusion_claims/models/res_config_settings.py | 70 - fusion_claims/models/res_partner.py | 70 - fusion_claims/models/sale_order.py | 254 +- fusion_claims/models/technician_task.py | 2649 ++------------- .../cleanup_demo_pool.cpython-312.pyc | Bin 0 -> 7341 bytes ...import_adp_mobility_manual.cpython-312.pyc | Bin 0 -> 7784 bytes .../import_demo_pool.cpython-312.pyc | Bin 0 -> 11265 bytes fusion_claims/security/ir.model.access.csv | 18 +- fusion_claims/security/security.xml | 83 - .../static/src/css/fusion_task_map_view.scss | 69 + .../static/src/js/fusion_task_map_view.js | 69 +- .../static/src/xml/fusion_task_map_view.xml | 16 + fusion_claims/views/account_move_views.xml | 68 +- fusion_claims/views/adp_claims_views.xml | 781 ++++- fusion_claims/views/fusion_loaner_views.xml | 2 +- .../views/page11_sign_request_views.xml | 89 + .../views/res_config_settings_views.xml | 131 - fusion_claims/views/sale_order_views.xml | 60 +- fusion_claims/views/technician_task_views.xml | 565 +--- fusion_claims/wizard/__init__.py | 3 +- .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 1527 bytes .../account_payment_register.cpython-312.pyc | Bin 0 -> 3863 bytes .../adp_export_wizard.cpython-312.pyc | Bin 0 -> 23312 bytes ...pplication_received_wizard.cpython-312.pyc | Bin 0 -> 8906 bytes ...ssessment_completed_wizard.cpython-312.pyc | Bin 0 -> 11304 bytes ..._close_verification_wizard.cpython-312.pyc | Bin 0 -> 9130 bytes .../device_approval_wizard.cpython-312.pyc | Bin 0 -> 26029 bytes .../device_import_wizard.cpython-312.pyc | Bin 0 -> 7642 bytes ...ield_mapping_config_wizard.cpython-312.pyc | Bin 0 -> 13676 bytes .../loaner_checkout_wizard.cpython-312.pyc | Bin 0 -> 8238 bytes .../loaner_return_wizard.cpython-312.pyc | Bin 0 -> 4495 bytes ...tc_repair_create_so_wizard.cpython-312.pyc | Bin 0 -> 2239 bytes ...od_awaiting_funding_wizard.cpython-312.pyc | Bin 0 -> 3024 bytes ...od_funding_approved_wizard.cpython-312.pyc | Bin 0 -> 4632 bytes .../mod_pca_received_wizard.cpython-312.pyc | Bin 0 -> 14848 bytes .../odsp_discretionary_wizard.cpython-312.pyc | Bin 0 -> 17890 bytes .../odsp_pre_approved_wizard.cpython-312.pyc | Bin 0 -> 3406 bytes ...odsp_ready_delivery_wizard.cpython-312.pyc | Bin 0 -> 10624 bytes .../odsp_sa_mobility_wizard.cpython-312.pyc | Bin 0 -> 30544 bytes ...odsp_submit_to_odsp_wizard.cpython-312.pyc | Bin 0 -> 9733 bytes .../ready_for_delivery_wizard.cpython-312.pyc | Bin 0 -> 9795 bytes ...eady_for_submission_wizard.cpython-312.pyc | Bin 0 -> 9139 bytes .../ready_to_bill_wizard.cpython-312.pyc | Bin 0 -> 6861 bytes .../sale_advance_payment_inv.cpython-312.pyc | Bin 0 -> 5546 bytes ...schedule_assessment_wizard.cpython-312.pyc | Bin 0 -> 9625 bytes .../send_page11_wizard.cpython-312.pyc | Bin 0 -> 4644 bytes .../send_to_mod_wizard.cpython-312.pyc | Bin 0 -> 16216 bytes ...tatus_change_reason_wizard.cpython-312.pyc | Bin 0 -> 14517 bytes ...ission_verification_wizard.cpython-312.pyc | Bin 0 -> 15747 bytes .../xml_import_wizard.cpython-312.pyc | Bin 0 -> 4490 bytes .../wizard/application_received_wizard.py | 72 +- .../application_received_wizard_views.xml | 30 +- fusion_claims/wizard/send_page11_wizard.py | 92 + .../wizard/send_page11_wizard_views.xml | 39 + .../wizard/status_change_reason_wizard.py | 141 +- .../status_change_reason_wizard_views.xml | 22 +- fusion_claims_backup_20260306_151113.tar.gz | Bin 0 -> 2160591 bytes fusion_clock/controllers/clock_api.py | 7 +- fusion_clock/models/clock_location.py | 44 +- fusion_clock/models/clock_report.py | 78 +- fusion_clock/models/hr_attendance.py | 67 +- fusion_clock/static/src/css/portal_clock.css | 34 +- .../static/src/js/fusion_clock_portal.js | 43 +- .../static/src/js/fusion_clock_systray.js | 38 +- fusion_faxes/models/fusion_fax.py | 398 ++- .../data/poynt_receipt_email_template.xml | 2 +- fusion_poynt/wizard/poynt_payment_wizard.py | 5 +- fusion_poynt/wizard/poynt_refund_wizard.py | 5 +- fusion_quotations/__init__.py | 4 + fusion_quotations/__manifest__.py | 61 + fusion_quotations/controllers/__init__.py | 4 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 203 bytes .../portal_quotation.cpython-312.pyc | Bin 0 -> 13172 bytes .../__pycache__/quotation_api.cpython-312.pyc | Bin 0 -> 10965 bytes .../controllers/portal_quotation.py | 536 +++ .../controllers/quotation_api.py | 388 +++ .../data/equipment_type_data.xml | 45 + fusion_quotations/data/section_seed_data.xml | 414 +++ .../data/upcharge_rules_data.xml | 83 + fusion_quotations/models/__init__.py | 14 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 349 bytes .../__pycache__/sale_order.cpython-312.pyc | Bin 0 -> 644 bytes .../__pycache__/wc_assessment.cpython-312.pyc | Bin 0 -> 28624 bytes .../wc_assessment_line.cpython-312.pyc | Bin 0 -> 5138 bytes .../__pycache__/wc_section.cpython-312.pyc | Bin 0 -> 4513 bytes .../wc_section_option.cpython-312.pyc | Bin 0 -> 3238 bytes .../wc_upcharge_rule.cpython-312.pyc | Bin 0 -> 4130 bytes fusion_quotations/models/equipment_type.py | 23 + fusion_quotations/models/sale_order.py | 11 + fusion_quotations/models/wc_assessment.py | 849 +++++ .../models/wc_assessment_line.py | 97 + fusion_quotations/models/wc_config_flow.py | 539 +++ .../models/wc_config_flow_connection.py | 28 + .../models/wc_config_flow_node.py | 127 + .../models/wc_config_flow_node_option.py | 51 + .../models/wc_config_flow_step.py | 47 + fusion_quotations/models/wc_section.py | 454 +++ fusion_quotations/models/wc_section_option.py | 78 + fusion_quotations/models/wc_upcharge_rule.py | 109 + .../security/ir.model.access.csv | 30 + fusion_quotations/security/security.xml | 37 + fusion_quotations/static/description/icon.png | Bin 0 -> 46059 bytes .../static/src/css/quotation_form.css | 410 +++ .../js/flow_designer/flow_designer_action.js | 705 ++++ .../static/src/js/quotation_form.js | 1072 ++++++ .../static/src/scss/flow_designer.scss | 227 ++ .../src/xml/flow_designer_templates.xml | 415 +++ .../views/equipment_type_views.xml | 73 + fusion_quotations/views/menus.xml | 62 + .../views/portal_quotation_templates.xml | 990 ++++++ .../views/wc_assessment_views.xml | 496 +++ .../views/wc_config_flow_views.xml | 159 + fusion_quotations/views/wc_section_views.xml | 146 + .../views/wc_upcharge_rule_views.xml | 109 + fusion_rental/controllers/main.py | 30 +- fusion_rental/data/ir_cron_data.xml | 6 +- fusion_rental/data/mail_template_data.xml | 35 +- fusion_rental/models/res_config_settings.py | 7 + fusion_rental/models/sale_order.py | 199 +- fusion_rental/models/sale_order_line.py | 39 +- .../report/report_rental_agreement.xml | 4 +- .../views/res_config_settings_views.xml | 10 + fusion_rental/wizard/rental_return_wizard.py | 12 + fusion_ringcentral/data/ir_cron_data.xml | 20 +- fusion_ringcentral/models/rc_call_history.py | 2 +- fusion_ringcentral/models/rc_config.py | 67 +- fusion_so_to_po/.DS_Store | Bin 0 -> 8196 bytes fusion_so_to_po/__init__.py | 4 + fusion_so_to_po/__manifest__.py | 26 + fusion_so_to_po/models/__init__.py | 3 + fusion_so_to_po/models/fusion_so_to_po.py | 218 ++ fusion_so_to_po/security/ir.model.access.csv | 4 + fusion_so_to_po/static/.DS_Store | Bin 0 -> 6148 bytes fusion_so_to_po/static/description/icon.png | Bin 0 -> 39783 bytes .../views/fusion_so_to_po_views.xml | 55 + fusion_so_to_po/wizard/__init__.py | 4 + .../wizard/fusion_match_sale_order_wiz.py | 54 + .../wizard/fusion_match_sale_order_wiz.xml | 43 + .../wizard/fusion_purchase_order_wiz.py | 191 ++ .../wizard/fusion_purchase_order_wiz.xml | 57 + fusion_tasks/__init__.py | 36 + fusion_tasks/__manifest__.py | 38 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 157 bytes .../__pycache__/__manifest__.cpython-312.pyc | Bin 0 -> 994 bytes .../data/ir_config_parameter_data.xml | 50 + fusion_tasks/data/ir_cron_data.xml | 78 + fusion_tasks/models/__init__.py | 13 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 479 bytes .../email_builder_mixin.cpython-312.pyc | Bin 0 -> 8873 bytes .../push_subscription.cpython-312.pyc | Bin 0 -> 2380 bytes .../__pycache__/res_company.cpython-312.pyc | Bin 0 -> 638 bytes .../res_config_settings.cpython-312.pyc | Bin 0 -> 3004 bytes .../__pycache__/res_partner.cpython-312.pyc | Bin 0 -> 3535 bytes .../__pycache__/res_users.cpython-312.pyc | Bin 0 -> 1070 bytes .../__pycache__/task_sync.cpython-312.pyc | Bin 0 -> 33980 bytes .../technician_location.cpython-312.pyc | Bin 0 -> 5758 bytes .../technician_task.cpython-312.pyc | Bin 0 -> 135813 bytes .../models/email_builder_mixin.py | 55 +- .../models/push_subscription.py | 0 fusion_tasks/models/res_company.py | 14 + fusion_tasks/models/res_config_settings.py | 73 + fusion_tasks/models/res_partner.py | 79 + .../models/res_users.py | 4 +- .../models/task_sync.py | 120 +- .../models/technician_location.py | 0 fusion_tasks/models/technician_task.py | 2952 +++++++++++++++++ fusion_tasks/security/ir.model.access.csv | 12 + fusion_tasks/security/security.xml | 103 + fusion_tasks/static/description/icon.png | Bin 0 -> 43989 bytes .../static/src/css/fusion_task_map_view.scss | 480 +++ .../static/src/js/fusion_task_map_view.js | 1197 +++++++ .../static/src/xml/fusion_task_map_view.xml | 250 ++ .../views/res_config_settings_views.xml | 156 + .../views/task_sync_views.xml | 4 +- .../views/technician_location_views.xml | 17 +- fusion_tasks/views/technician_task_views.xml | 507 +++ fusion_templates/__init__.py | 2 + fusion_templates/__manifest__.py | 22 + fusion_templates/models/__init__.py | 1 + fusion_templates/models/sale_order.py | 19 + fusion_templates/security/ir.model.access.csv | 2 + fusion_templates/views/sale_order_views.xml | 14 + fusion_templates/wizard/__init__.py | 1 + .../wizard/save_as_template_wizard.py | 88 + .../wizard/save_as_template_wizard_views.xml | 24 + 243 files changed, 20459 insertions(+), 4197 deletions(-) create mode 100644 .DS_Store create mode 100644 dropdown-toggle.*New Assessment create mode 100644 "equipment_type=[^\"]*" create mode 100644 fusion_authorizer_portal/controllers/portal_page11_sign.py create mode 100644 fusion_authorizer_portal/views/portal_page11_sign_templates.xml create mode 100644 fusion_claims/__pycache__/__init__.cpython-312.pyc create mode 100644 fusion_claims/__pycache__/__manifest__.cpython-312.pyc create mode 100644 fusion_claims/models/__pycache__/__init__.cpython-312.pyc create mode 100644 fusion_claims/models/__pycache__/account_move.cpython-312.pyc create mode 100644 fusion_claims/models/__pycache__/account_move_line.cpython-312.pyc create mode 100644 fusion_claims/models/__pycache__/account_payment.cpython-312.pyc create mode 100644 fusion_claims/models/__pycache__/account_payment_method_line.cpython-312.pyc create mode 100644 fusion_claims/models/__pycache__/adp_application_data.cpython-312.pyc create mode 100644 fusion_claims/models/__pycache__/adp_posting_schedule.cpython-312.pyc create mode 100644 fusion_claims/models/__pycache__/ai_agent_ext.cpython-312.pyc create mode 100644 fusion_claims/models/__pycache__/client_chat.cpython-312.pyc create mode 100644 fusion_claims/models/__pycache__/client_profile.cpython-312.pyc create mode 100644 fusion_claims/models/__pycache__/dashboard.cpython-312.pyc create mode 100644 fusion_claims/models/__pycache__/fusion_adp_device_code.cpython-312.pyc create mode 100644 fusion_claims/models/__pycache__/fusion_central_config.cpython-312.pyc create mode 100644 fusion_claims/models/__pycache__/fusion_loaner_checkout.cpython-312.pyc create mode 100644 fusion_claims/models/__pycache__/fusion_loaner_history.cpython-312.pyc create mode 100644 fusion_claims/models/__pycache__/ltc_cleanup.cpython-312.pyc create mode 100644 fusion_claims/models/__pycache__/ltc_facility.cpython-312.pyc create mode 100644 fusion_claims/models/__pycache__/ltc_form_submission.cpython-312.pyc create mode 100644 fusion_claims/models/__pycache__/ltc_repair.cpython-312.pyc create mode 100644 fusion_claims/models/__pycache__/page11_sign_request.cpython-312.pyc create mode 100644 fusion_claims/models/__pycache__/product_product.cpython-312.pyc create mode 100644 fusion_claims/models/__pycache__/product_template.cpython-312.pyc create mode 100644 fusion_claims/models/__pycache__/push_subscription.cpython-312.pyc create mode 100644 fusion_claims/models/__pycache__/res_company.cpython-312.pyc create mode 100644 fusion_claims/models/__pycache__/res_config_settings.cpython-312.pyc create mode 100644 fusion_claims/models/__pycache__/res_partner.cpython-312.pyc create mode 100644 fusion_claims/models/__pycache__/sale_order.cpython-312.pyc create mode 100644 fusion_claims/models/__pycache__/sale_order_line.cpython-312.pyc create mode 100644 fusion_claims/models/__pycache__/submission_history.cpython-312.pyc create mode 100644 fusion_claims/models/__pycache__/task_sync.cpython-312.pyc create mode 100644 fusion_claims/models/__pycache__/technician_location.cpython-312.pyc create mode 100644 fusion_claims/models/__pycache__/technician_task.cpython-312.pyc create mode 100644 fusion_claims/models/__pycache__/technician_task_new.cpython-312.pyc create mode 100644 fusion_claims/models/__pycache__/xml_parser.cpython-312.pyc create mode 100644 fusion_claims/models/page11_sign_request.py create mode 100644 fusion_claims/scripts/__pycache__/cleanup_demo_pool.cpython-312.pyc create mode 100644 fusion_claims/scripts/__pycache__/import_adp_mobility_manual.cpython-312.pyc create mode 100644 fusion_claims/scripts/__pycache__/import_demo_pool.cpython-312.pyc create mode 100644 fusion_claims/views/page11_sign_request_views.xml create mode 100644 fusion_claims/wizard/__pycache__/__init__.cpython-312.pyc create mode 100644 fusion_claims/wizard/__pycache__/account_payment_register.cpython-312.pyc create mode 100644 fusion_claims/wizard/__pycache__/adp_export_wizard.cpython-312.pyc create mode 100644 fusion_claims/wizard/__pycache__/application_received_wizard.cpython-312.pyc create mode 100644 fusion_claims/wizard/__pycache__/assessment_completed_wizard.cpython-312.pyc create mode 100644 fusion_claims/wizard/__pycache__/case_close_verification_wizard.cpython-312.pyc create mode 100644 fusion_claims/wizard/__pycache__/device_approval_wizard.cpython-312.pyc create mode 100644 fusion_claims/wizard/__pycache__/device_import_wizard.cpython-312.pyc create mode 100644 fusion_claims/wizard/__pycache__/field_mapping_config_wizard.cpython-312.pyc create mode 100644 fusion_claims/wizard/__pycache__/loaner_checkout_wizard.cpython-312.pyc create mode 100644 fusion_claims/wizard/__pycache__/loaner_return_wizard.cpython-312.pyc create mode 100644 fusion_claims/wizard/__pycache__/ltc_repair_create_so_wizard.cpython-312.pyc create mode 100644 fusion_claims/wizard/__pycache__/mod_awaiting_funding_wizard.cpython-312.pyc create mode 100644 fusion_claims/wizard/__pycache__/mod_funding_approved_wizard.cpython-312.pyc create mode 100644 fusion_claims/wizard/__pycache__/mod_pca_received_wizard.cpython-312.pyc create mode 100644 fusion_claims/wizard/__pycache__/odsp_discretionary_wizard.cpython-312.pyc create mode 100644 fusion_claims/wizard/__pycache__/odsp_pre_approved_wizard.cpython-312.pyc create mode 100644 fusion_claims/wizard/__pycache__/odsp_ready_delivery_wizard.cpython-312.pyc create mode 100644 fusion_claims/wizard/__pycache__/odsp_sa_mobility_wizard.cpython-312.pyc create mode 100644 fusion_claims/wizard/__pycache__/odsp_submit_to_odsp_wizard.cpython-312.pyc create mode 100644 fusion_claims/wizard/__pycache__/ready_for_delivery_wizard.cpython-312.pyc create mode 100644 fusion_claims/wizard/__pycache__/ready_for_submission_wizard.cpython-312.pyc create mode 100644 fusion_claims/wizard/__pycache__/ready_to_bill_wizard.cpython-312.pyc create mode 100644 fusion_claims/wizard/__pycache__/sale_advance_payment_inv.cpython-312.pyc create mode 100644 fusion_claims/wizard/__pycache__/schedule_assessment_wizard.cpython-312.pyc create mode 100644 fusion_claims/wizard/__pycache__/send_page11_wizard.cpython-312.pyc create mode 100644 fusion_claims/wizard/__pycache__/send_to_mod_wizard.cpython-312.pyc create mode 100644 fusion_claims/wizard/__pycache__/status_change_reason_wizard.cpython-312.pyc create mode 100644 fusion_claims/wizard/__pycache__/submission_verification_wizard.cpython-312.pyc create mode 100644 fusion_claims/wizard/__pycache__/xml_import_wizard.cpython-312.pyc create mode 100644 fusion_claims/wizard/send_page11_wizard.py create mode 100644 fusion_claims/wizard/send_page11_wizard_views.xml create mode 100644 fusion_claims_backup_20260306_151113.tar.gz create mode 100644 fusion_quotations/__init__.py create mode 100644 fusion_quotations/__manifest__.py create mode 100644 fusion_quotations/controllers/__init__.py create mode 100644 fusion_quotations/controllers/__pycache__/__init__.cpython-312.pyc create mode 100644 fusion_quotations/controllers/__pycache__/portal_quotation.cpython-312.pyc create mode 100644 fusion_quotations/controllers/__pycache__/quotation_api.cpython-312.pyc create mode 100644 fusion_quotations/controllers/portal_quotation.py create mode 100644 fusion_quotations/controllers/quotation_api.py create mode 100644 fusion_quotations/data/equipment_type_data.xml create mode 100644 fusion_quotations/data/section_seed_data.xml create mode 100644 fusion_quotations/data/upcharge_rules_data.xml create mode 100644 fusion_quotations/models/__init__.py create mode 100644 fusion_quotations/models/__pycache__/__init__.cpython-312.pyc create mode 100644 fusion_quotations/models/__pycache__/sale_order.cpython-312.pyc create mode 100644 fusion_quotations/models/__pycache__/wc_assessment.cpython-312.pyc create mode 100644 fusion_quotations/models/__pycache__/wc_assessment_line.cpython-312.pyc create mode 100644 fusion_quotations/models/__pycache__/wc_section.cpython-312.pyc create mode 100644 fusion_quotations/models/__pycache__/wc_section_option.cpython-312.pyc create mode 100644 fusion_quotations/models/__pycache__/wc_upcharge_rule.cpython-312.pyc create mode 100644 fusion_quotations/models/equipment_type.py create mode 100644 fusion_quotations/models/sale_order.py create mode 100644 fusion_quotations/models/wc_assessment.py create mode 100644 fusion_quotations/models/wc_assessment_line.py create mode 100644 fusion_quotations/models/wc_config_flow.py create mode 100644 fusion_quotations/models/wc_config_flow_connection.py create mode 100644 fusion_quotations/models/wc_config_flow_node.py create mode 100644 fusion_quotations/models/wc_config_flow_node_option.py create mode 100644 fusion_quotations/models/wc_config_flow_step.py create mode 100644 fusion_quotations/models/wc_section.py create mode 100644 fusion_quotations/models/wc_section_option.py create mode 100644 fusion_quotations/models/wc_upcharge_rule.py create mode 100644 fusion_quotations/security/ir.model.access.csv create mode 100644 fusion_quotations/security/security.xml create mode 100644 fusion_quotations/static/description/icon.png create mode 100644 fusion_quotations/static/src/css/quotation_form.css create mode 100644 fusion_quotations/static/src/js/flow_designer/flow_designer_action.js create mode 100644 fusion_quotations/static/src/js/quotation_form.js create mode 100644 fusion_quotations/static/src/scss/flow_designer.scss create mode 100644 fusion_quotations/static/src/xml/flow_designer_templates.xml create mode 100644 fusion_quotations/views/equipment_type_views.xml create mode 100644 fusion_quotations/views/menus.xml create mode 100644 fusion_quotations/views/portal_quotation_templates.xml create mode 100644 fusion_quotations/views/wc_assessment_views.xml create mode 100644 fusion_quotations/views/wc_config_flow_views.xml create mode 100644 fusion_quotations/views/wc_section_views.xml create mode 100644 fusion_quotations/views/wc_upcharge_rule_views.xml create mode 100644 fusion_so_to_po/.DS_Store create mode 100644 fusion_so_to_po/__init__.py create mode 100644 fusion_so_to_po/__manifest__.py create mode 100644 fusion_so_to_po/models/__init__.py create mode 100644 fusion_so_to_po/models/fusion_so_to_po.py create mode 100644 fusion_so_to_po/security/ir.model.access.csv create mode 100644 fusion_so_to_po/static/.DS_Store create mode 100644 fusion_so_to_po/static/description/icon.png create mode 100644 fusion_so_to_po/views/fusion_so_to_po_views.xml create mode 100644 fusion_so_to_po/wizard/__init__.py create mode 100644 fusion_so_to_po/wizard/fusion_match_sale_order_wiz.py create mode 100644 fusion_so_to_po/wizard/fusion_match_sale_order_wiz.xml create mode 100644 fusion_so_to_po/wizard/fusion_purchase_order_wiz.py create mode 100644 fusion_so_to_po/wizard/fusion_purchase_order_wiz.xml create mode 100644 fusion_tasks/__init__.py create mode 100644 fusion_tasks/__manifest__.py create mode 100644 fusion_tasks/__pycache__/__init__.cpython-312.pyc create mode 100644 fusion_tasks/__pycache__/__manifest__.cpython-312.pyc create mode 100644 fusion_tasks/data/ir_config_parameter_data.xml create mode 100644 fusion_tasks/data/ir_cron_data.xml create mode 100644 fusion_tasks/models/__init__.py create mode 100644 fusion_tasks/models/__pycache__/__init__.cpython-312.pyc create mode 100644 fusion_tasks/models/__pycache__/email_builder_mixin.cpython-312.pyc create mode 100644 fusion_tasks/models/__pycache__/push_subscription.cpython-312.pyc create mode 100644 fusion_tasks/models/__pycache__/res_company.cpython-312.pyc create mode 100644 fusion_tasks/models/__pycache__/res_config_settings.cpython-312.pyc create mode 100644 fusion_tasks/models/__pycache__/res_partner.cpython-312.pyc create mode 100644 fusion_tasks/models/__pycache__/res_users.cpython-312.pyc create mode 100644 fusion_tasks/models/__pycache__/task_sync.cpython-312.pyc create mode 100644 fusion_tasks/models/__pycache__/technician_location.cpython-312.pyc create mode 100644 fusion_tasks/models/__pycache__/technician_task.cpython-312.pyc rename {fusion_claims => fusion_tasks}/models/email_builder_mixin.py (81%) rename {fusion_claims => fusion_tasks}/models/push_subscription.py (100%) create mode 100644 fusion_tasks/models/res_company.py create mode 100644 fusion_tasks/models/res_config_settings.py create mode 100644 fusion_tasks/models/res_partner.py rename {fusion_claims => fusion_tasks}/models/res_users.py (94%) rename {fusion_claims => fusion_tasks}/models/task_sync.py (83%) rename {fusion_claims => fusion_tasks}/models/technician_location.py (100%) create mode 100644 fusion_tasks/models/technician_task.py create mode 100644 fusion_tasks/security/ir.model.access.csv create mode 100644 fusion_tasks/security/security.xml create mode 100644 fusion_tasks/static/description/icon.png create mode 100644 fusion_tasks/static/src/css/fusion_task_map_view.scss create mode 100644 fusion_tasks/static/src/js/fusion_task_map_view.js create mode 100644 fusion_tasks/static/src/xml/fusion_task_map_view.xml create mode 100644 fusion_tasks/views/res_config_settings_views.xml rename {fusion_claims => fusion_tasks}/views/task_sync_views.xml (97%) rename {fusion_claims => fusion_tasks}/views/technician_location_views.xml (88%) create mode 100644 fusion_tasks/views/technician_task_views.xml create mode 100644 fusion_templates/__init__.py create mode 100644 fusion_templates/__manifest__.py create mode 100644 fusion_templates/models/__init__.py create mode 100644 fusion_templates/models/sale_order.py create mode 100644 fusion_templates/security/ir.model.access.csv create mode 100644 fusion_templates/views/sale_order_views.xml create mode 100644 fusion_templates/wizard/__init__.py create mode 100644 fusion_templates/wizard/save_as_template_wizard.py create mode 100644 fusion_templates/wizard/save_as_template_wizard_views.xml diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..07d3e0e7559ce44d6f073f3848d5c642f2223eb2 GIT binary patch literal 10244 zcmeHM&2QX96o0b~bVI&&lT8{zk*wr`)U;$Fd_)}BZVM>lkSH6KL`l2#dYz4l<5_HP zwn-F}KL9RVxN+eRK;p;={s4O93KDn3g>(CRW2doaL(^O$Bs?qojmPtT^WN{xr}BZi37@!sI-kd;^-M>0|;5vh}iTNd#NMX1)HXQ=8VDv`|Y83P#uy$npF zXac8olYFvL=l3n@P=NEiBoFVmP~#C!_Q9ent%fTb(Bq+2#dYh6O2`ovarSqhXHtV) z)UV^oq&B1l>Efp&{HP&}^&m);Nc`%`78i&f*=aij`;oL`st2VFf7m9rZX1^Q!0W;$ zA3qa_A?<6J-)NXc`Z&RfLAT+P1)Dlbo2_c45pp>Vp`;;H(XvH5u*QSE2CXW~c6IL* z%ikqf9zi^k(P5NROU`0AsXf`F-GTSp@Wcl@2QfEo^&E24(q1X9lXycKo&}aoAnoe0 z7R+c;bMOpJ$&931R6IUU?>W6w3@3OS*V^Nl@%Ji@K6}59J`v#Vk(IW9&`VQDy5%19 zLm+9~Ggm3SqGrKq-`)aaXN)lBEQK(vA+*8uK5Umfy3$rNZz)~fYK}2`8>aQRzlkps zyy+44W6pZ|hTdGLYl-|iw`Td$ zb(dw}gpTyqH&yGQy}RgbNwmloEVcPnaL@Jw$R3@wb<_7vuVq*F@4IHhc9*=W3`4oQ z=D-WKTs2v1o0j9XWiIp)kegk$&zZ z^smQwu@C_==Y)Q*=6kO6TByk=*R&zIhvDR?CHh4MCr?Mo!CBJKx)|6EwQ=C-kcTNR zwmnOlnwpY0`b5!%o};EzUQ8Om=-oQ-H1$_vsFyIY@Pck)5#zrg+G<*CVyU!%R9DNA zLei!Tp4^i-Q!k1Wx4~1IHifE5EQvXJK}>C0Q_DaaZx?>;z=DYJ1k-er%CtbYXbx8y z*F4L#&x-#f-gU(2LU_PD;C|DKn|qLm$uPLF!G0IL%vbih$hGjp7A&pH%T7wShzK^( zzoJMgmgBsQW!nKlS3^J~QwWCIibfkzZokQ`0)v-(M(yB|%QY%%En^^K;8Gb7eRpejvG-D^ zgR@%Bq0qqf5EmytMI1*`9ZPWIDqOBU$K!!N$E$-A%I5eTC*&)!JdPwvkS_htfYS}2 R%+CMnOGkG8|DT=zp907z!1MqB literal 0 HcmV?d00001 diff --git a/dropdown-toggle.*New Assessment b/dropdown-toggle.*New Assessment new file mode 100644 index 00000000..0294d88e --- /dev/null +++ b/dropdown-toggle.*New Assessment @@ -0,0 +1,6 @@ +# Netscape HTTP Cookie File +# https://curl.se/docs/http-cookies.html +# This file was generated by libcurl! Edit at your own risk. + +localhost FALSE / FALSE 1804532345 frontend_lang en_CA +#HttpOnly_localhost FALSE / FALSE 1773601137 session_id 70Wf5yZpnwpU0Izf5wBSbiWNk7UjsoGB1737H73bWDK16z05MJP0SJnNN-NhOfw8GbW6a-d_-y0opbJwcgbq diff --git "a/equipment_type=[^\"]*" "b/equipment_type=[^\"]*" new file mode 100644 index 00000000..0c0c2f49 --- /dev/null +++ "b/equipment_type=[^\"]*" @@ -0,0 +1,230 @@ + + + + + + + + + Internal Server Error + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+

500: Internal Server Error

+
+
+ +
+ +
+
+

+ QWeb +

+
+
+

+ The error occurred while rendering the template fusion_quotations.portal_quotation_list + and evaluating the following expression: <t t-out="dict(a._fields[\'equipment_type\'].selection).get(a.equipment_type, a.equipment_type or \'\')"/> +

+
Error while rendering the template:
+    ValueError: dictionary update sequence element #0 has length 1; 2 is required
+    Template: fusion_quotations.portal_quotation_list
+    Reference: 13488
+    Path: /t/t/div/t[2]/table/tbody/t/tr/td[3]/t
+    Element: <t t-out="dict(a._fields[\'equipment_type\'].selection).get(a.equipment_type, a.equipment_type or \'\')"/>
+    From: (13488, '/t/t', '<t t-call="portal.portal_layout"/>')
+          (13488, '/t/t/div/t[2]/table/tbody/t/tr/td[3]/t', '<t t-out="dict(a._fields[\\\'equipment_type\\\'].selection).get(a.equipment_type, a.equipment_type or \\\'\\\')"/>')
+
+
+
+
+

+ Traceback +

+
+
+
Traceback (most recent call last):
+  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_qweb.py", line 753, in _render_iterall
+    for item in frame.iterator:
+  File "<13488>", line 152, in template_fusion_quotations_portal_quotation_list_13488_t_call_0
+ValueError: dictionary update sequence element #0 has length 1; 2 is required
+
+The above exception was the direct cause of the following exception:
+
+Traceback (most recent call last):
+  File "/usr/lib/python3/dist-packages/odoo/http.py", line 2275, in _serve_db
+    return service_model.retrying(serve_func, env=self.env)
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  File "/usr/lib/python3/dist-packages/odoo/service/model.py", line 184, in retrying
+    result = func()
+             ^^^^^^
+  File "/usr/lib/python3/dist-packages/odoo/http.py", line 2330, in _serve_ir_http
+    response = self.dispatcher.dispatch(rule.endpoint, args)
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  File "/usr/lib/python3/dist-packages/odoo/http.py", line 2452, in dispatch
+    return self.request.registry['ir.http']._dispatch(endpoint)
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_http.py", line 357, in _dispatch
+    result.flatten()
+  File "/usr/lib/python3/dist-packages/odoo/tools/facade.py", line 83, in wrap_func
+    func(self._wrapped__, *args, **kwargs)
+  File "/usr/lib/python3/dist-packages/odoo/http.py", line 1546, in flatten
+    self.response.append(self.render())
+                         ^^^^^^^^^^^^^
+  File "/usr/lib/python3/dist-packages/odoo/http.py", line 1538, in render
+    return request.env["ir.ui.view"]._render_template(self.template, self.qcontext)
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  File "/usr/lib/python3/dist-packages/odoo/addons/website/models/ir_ui_view.py", line 456, in _render_template
+    return super()._render_template(template, values=values)
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_ui_view.py", line 2531, in _render_template
+    return self.env['ir.qweb']._render(template, values)
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  File "/mnt/enterprise-addons/web_studio/models/ir_qweb.py", line 14, in _render
+    return super()._render(template, values, **options)
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_qweb.py", line 725, in _render
+    return Markup(''.join(iterator))
+                  ^^^^^^^^^^^^^^^^^
+  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_qweb.py", line 753, in _render_iterall
+    for item in frame.iterator:
+  File "<13488>", line 264, in template_fusion_quotations_portal_quotation_list_13488
+  File "<13488>", line 250, in template_fusion_quotations_portal_quotation_list_13488_content
+  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_qweb.py", line 616, in __str__
+    self.html = ''.join(self.irQweb._render_iterall(
+                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_qweb.py", line 847, in _render_iterall
+    raise QWebError(qweb_error_info) from error
+odoo.addons.base.models.ir_qweb.QWebError: Error while rendering the template:
+    ValueError: dictionary update sequence element #0 has length 1; 2 is required
+    Template: fusion_quotations.portal_quotation_list
+    Reference: 13488
+    Path: /t/t/div/t[2]/table/tbody/t/tr/td[3]/t
+    Element: <t t-out="dict(a._fields[\'equipment_type\'].selection).get(a.equipment_type, a.equipment_type or \'\')"/>
+    From: (13488, '/t/t', '<t t-call="portal.portal_layout"/>')
+          (13488, '/t/t/div/t[2]/table/tbody/t/tr/td[3]/t', '<t t-out="dict(a._fields[\\\'equipment_type\\\'].selection).get(a.equipment_type, a.equipment_type or \\\'\\\')"/>')
+
+
+
+
+
+
+
+ + \ No newline at end of file diff --git a/fusion_accounts/static/description/icon.png b/fusion_accounts/static/description/icon.png index 71436f5eafe473c667aee001338aacd97112fa97..49b0890402907f980f11294e99e150aad9c7b34a 100644 GIT binary patch literal 50984 zcmbrl2Q=Kx_b{$3R_`^sBwF<7od_a2(N8$5<+2lh01(+E2B$1#o~^fDnfU7as=~oBQ*z;1c|mKEdX1{gb!B=K21?!NcZh z@&1kP8V~pj|0%Zo&yOAU`$Ok{Qf#kjL^uF!iKw`kC~o@Sd0Z?7oWg&~#Y9DM3;(8g zbAy9}SNJ!@KcmL~k31H{2_>Yy!Y0ICS{A-II22$1e7Ko{6t{422n=0K%%SGGkL4U7 z9>QQph`p0=fQQ$gRyYdE0bXDSHzz2ky_2)6ry}o8O9wBftD_>XnWV0$u9v!#i>p?U zkCSnbo{2+{n}e()ud)(}LVz5WfQJ(l%o*U}?&&KRpve0dT{&$2Pq7Fu7Rkr)shrV+ zhyS2pAw^ynDAY?%M8x0UU)Wzl7~*Vuah^DF{LDm;HsSAo6GR-Ch4)w7-CVR_$Me|6bC+5&uJM{{M@Tqr<<%$ji^i{Vx%9bP#cJ zck*!Zg#HmCv44cf(LoOC3Uzn-w+N}aL;qWZu(~1V4)%0b=4PgSCRGzntFU;Bew-KTtIZ$i?IlKv^|^erdaKTDXBpyU4pd z?bWLV|02&;t?e6nVgE4ct*&^Tkc5Opzdh?K$Hxrqv+njfv!ORurn3@?ii$7EruzEF zWp|j1s#Y2$k;YI6cr!ZN2KP8ckYcxA~bX(tfcfMeDY5Z*;0iBmx*{N1PcZPT_rv6 z>;OO5(`PqHR$qs#gRm+SoNvPZ>CO-u+=Jt|4{!d$PQ& zW)>`{`g;C@Z1YQr18BIiygo1JxFXgK-B8%MBTPpSLRuOb9{;1TL!DXaHBnen>YR#p zrw1QJBQY@a%CBH!`ZS;l*$`y)Dcr;S17vG{f8L7iRW*hEv)#Ei(qk}(@)%d_=za}b zc9CnS`xno(PqOFGkk%0QFDo3*GnETbtGbPAex$;jGtLTRUcan~oM-A0vi?HhXyaaL zYZdFm@k!gmpT1d!W+7y!<+RmjOq`<)EF@QMMfcVyObEmA>AU=kzIMD8*{czIP52Wd zOy0O)h$#+FS~_G1x2>LC-s)Cjf5wNaykl{7Lotk`luJ+S`w_TopfvCR9N#2yA4FWTwS8Z@bMO zT)hCb7etC2N^qY_tJ0p6o5aq<{)os9e+4k%5T>liGo?1UsyIA}t$eJ7<-#%8fvQt` z0(2hIdsusX@pMh?WTbpZSw_dq-`+-uHP0a;x~?K7x=!G%yRPz-$G0-Z!B;XOjpy)z zr3%uU25E#GeO_2_;0U*+19v>OV^r-JP|-A#?(~b1FX$`y&^g-22%ut)`7v*ajGHC! zShFU(sDwO;n;H5Zi#}I55AL7yq+G|c!u^HUK`p~@SHm#hR=q>e*~?i8ftye$np`Hv zYbVcw3zK8fwNqfxzf)jJ9RJj;YeCl33*blR=WavKniZ)BO~esFg#8>NyC48u(WFyG zT94+=W+imyuf})k6w(qfiSzdR30_=n^dVXgOnJK^?swrcKH`cM zo#+=J3$J>Eq|Qw>$XpFs(OD){*?ZOa_jx{b-q#B5OT8^tmXM5=-rpj3G zx*qa`+`Yht%RT2wk4J$`N?}&F@c8!IWfi+Qo+!_#(3GL6Wq7a)-%^#SN`!hJ9IFAOOoKM-Q$dsA{Uk#e${L}jZ* z-7R&Od7WWzBevrUFE+VEB7myAYV*2qB5`WxEG!S%?dcvxC5Jen$QPa-&J_uK?kOa# zdHbGn@+Kc7=;xnVAASK(Ets-P7GC11z1tqF#znhNzTZ5-quicISr#nCvIS^6yO$#|fEm4-maOn=yga!{UeU9=h6X zYK;Sh+}Wy&f5rV$QX`UoxCWl&Q^c@&M1+>(I~;krwBn}dNp<$S63QqJ;;gPR&(|^v z{-8#^tz2{{jBE-@1GJ>8P&fhQGYt7C#eB}6Puo3jykin)vNQPr9TJbm)%f&X3A5-d zsdXx#+8$=F(L0fmDD|-bWYa;cYAxUNd@dpll52_gAcy);Xp9LnO?}8FVK6oT-W(T4 zDSRN4N)e3rD;@+717BGYeDtm=v5dFevDB!?t?$>x&xv>AWUO~;WGHp;QE%cttqwwM zKZ{^{2Ww)s8}-7+uz_Q)ij%#Vx|EfOiwZnrbhht7oYRs>?BR^G^XfzJtoSGD1oX|p zE|Rvlj)Ytg&u-omw=Jj!ZT2g|YucuJM?L%0e`YQwJ^Yw!U_T>MPx3@xU}f^Lz|y3y zaNLpcBfD-oYG_Qz;Gq%8Wn4lj9Olmak;Q^=(E3hhH_7;;aREHJXH~bNQY@8Om*WbP zeyu%<>1=W3$4ozb23}=i!?4xFUS&YN0xBp{hLMQ=sgfo_Uw_I^+&esR`$i+e^lMbR zmnzf&)KHROIP>uj1L|W@fga4TUX=f1c&tOhRVks1m895id-)-cNRwG9sfWu zLxge+r>X- z^ER_xP$D&F#+g>;PGe@WdfSp1vS==BTXAQ5LZ!|%48^Y-x!1}|s{ydw+vRWSL>Tizhj)FtgZ_vDg_7ykL@G2EvTZL=62B=y)+}$4c;~Ntkz;W)USh$xXmt*rg5D6D4N1b(&T@fE)Z~`$* zfRXT`g1QvWesCmYY_1VDm+K=VT7yT?T)gt6vnVjri^&fF=I!J-u#;Qwhdv@~CWhh3 zZM*|sIK47S=n#m?XXJ}keEvc7O=pT)U(z2jj$>xVEIg(=1@e@ow(^hn%q;sIB=<`r zAeSOdw#Rp5E&}Z14()Zlg~F74q3Fb1;!?OvNF>|~#NOekrX&}nwDg!SBG!R~vs;M6 zD36qrJaYk|!pmJKLRF88mbw$GA4F7;C(|@_Ub8G9Om} zNm>f?YzJo(uNa`zlGBn44VD=fPj|8!QlBc9FuMLiy<=x~IM5f#Hz2fdsPQH3v8H9v zZA|I3jsN)lEG;gASKc1=*_eNYsFsJED_>OAWRyx1L&vY1mVt83&GPtH<(hZ=d|7&QQnszXah`ndw6G-~ zo*X>`pQbc(CPsuM^l{{|`DOB{@J3Z@B9ER_+pyY;M(U{t-~}~)M@$f7Ob;pvhA*FO zKbdK;d(rIugUYWGzbV|v39W=Fo+AIS_FArWUSz$v#!QIG7H{35+WW0T4e`|CK4+*2 z`|YL`)pw*y&7gQklSESdSrXW)T7`Rqnz__#x{XA;u|pb^c(m*03nP?N25yJ1RP(v} zmoLKpu=BHzBq&9E$>eexnEsuLs9EDT$A!lWs~2Ui^Eey3WaO-GKa`S7mDpath&L}e za4NJVA1}(0SWc+U*90?KE1IVk7OOE~z5!*aV-<5hu-?JXdlX%CIot^8WC}b8GJU@1 z=fklDpVpMPwJT`$y`NUo+E14~bc=&|QIwSz?S*HG)e^)dJ$?2oXtz`Jpn7+ay+i|$aB%~DwYDdwxO@|Ld~$MN?lp#tsLhST)Pm68|3t42L5 zssnEZL-xxnsa9e1@A7KY$kfNJH*P>0vg7f=w3IyG8EGMUJsN0^0VEt2`yYz*OK1D zLg(@EyHWZP?3eax&*x!X%IT677HND8yK3|Lp;rJ+lycJ1K!#|$sEG;C_lTPm$&9)E zLL}9$f(~3`(&_oU-OyOjdA12hc*dX-3E%TLy}5i<9E0`ztX?i z8KR3#eE5xX_tRa}@^%;-jhL!$Cc@*zsOLXa@+{FG+%ePC;9fHU247m2r!+Zz zd@*i}+9HsIxgX_nUc#OPt9B_4zO8ZXN$c*9> zfK8NQmn^0DL!0>0wcmnN`=zubcHiIN^|3_Cwzw%(_0g8fTM2gv8QkmW&zc|F+_H~O z2DY#U==eK#LS9912-lAc%*+B>@}KcOW0aHs?g6~Q%>p^px2$Ak4x-9bt8EOosjKKsm4AjjGrU^Xc z2N0l`+hr4%3OL+96M$>J&6}mNwz7L64tsZkroc*rbXlvco?_ssq!#lZrm=r5uA}wmU1+sT7uNl9`JV7X&4STdeWYCt z>eoM&P&s&Td{iqMW{eMqFoJo1#YXIi<3dW{J3O}>s1C0@CE?)#Cd19h7Wg-mbUR z*nbD*Q$poL0CLt5c67LkulmmHqes~9AlP{X$NQ6@MjGg2np{Z?DQH-zE;)8@MJaHT zo9%nt-Og&VMgIzf&9I#&n+l4O^RQR+V~5P77O9_8I$2P59j#faqkUmgqLf!dMmvGS z&_}v59lRF36uvUz;#B@RG4Q) zt*`2O2ko*V%;Z`C@&q<9idHeRtOHgEPs0*l<2kxw=n1(!lfGS++48c6TvHt_%DmoOH! zc(ZC5EtOrK!9+7G7U*^x=rQ?^{hXX8m9m)7oHdNRyUc}6|HOx9^HkJ$;Xt&tr_CBClqdRutL0n6dEkYiQIe%-%U`OJsH7pudy;`jH(1r+7R+pPKW}$+l zKJ}f~^vlQND92HHK(;zO;#sMs`FgI}us>^VsHoKvEsQI2+}9$Y9ypk&5N%DeT-6=m zn_dm_YYUCGKNB)j=u=}KfY4^m-A4H*z;~Fz>)U|iXztywvy`dju{ypl?!Vyeq>Zn6 zK?i13o&3tAa?4>!o5_~V*Fii`4>Rj~yk{OaPPVuif*zaOA_*Xq?+zxD7otKYw9{~=SxqfK1#f?&kCo3KYKWUYq(zYf<%TB-)ImZsTCGEBz1tS4X(E(ncSA#Nv;Nqx*1#sT%G%BMOqYFN$B<$DHcC?* zm72o6L+@NN;z_bVj1l9;h&`;9+G8;3op?3=aN-MiG&58rxQ>m?<%jj%$j9jXhCl_d zQKQo6!m9&?Ro}T`4fraB{5M*ZV)=-{TkE{8?J_SI|0}c6>ETYRl`XS-d9x3h=BO~t zPw3CM$1Ga_7ccKJtiKv*S2Zkg{a#2=-i`r(w;ZjitpPn$B#k|nCUiX7xY!D-J+XJy}eH%H>UYB`}s;u!EIbe zI(h|4)Gt2l)P^tihN|7+Em#itJto_&Hd_ey zZfar0n$TsTy6=giSesu&Jd$5+R8mK_m{f&0bz<O*6okSAm3@}Mx?5io7&3XKzWrObrqqF0+FYV*2kU3%28RN}*Ir~aw zx@^Oy&gc8ThHl$reM%m41T7!ErEis5yt|>iJGzV`UAH*3a}^LeO0y)9Hv-LFhBiY} z4rJe~2SgP}Vr~zqB3Bb@71HS3v@lxWgZaBaa)oNe*d|~ z`V+cci!fM^)~=zRzo%AfQU)V`i|@ylS>)ByDGMLP!#)S6v!HvKg-H@oV%6_QsQky? zDnO3&PjB|^WWU^*p~G0YZV{;WxS-*jZzrAd=gBQ3f%_drPjNf9?f?($BW@+(JY&SW z$`-q|dvUZB+$!afaJX~H7hcyWERSCJS|`D(Uy!}!gZo~debt#l9v5&pC5}p{%bA@e zYiW2CIifH5qNDIPX625|k)B+jhEmPZUqOKVe4 zZN|uqMnes*v$E0`LXzm@rzi&|%l!|ID5% z#*-%fG=GWw?ae#R@VZyH*2$u`YH`^>DtoPWGgiyR1N4%9lq^n;Z7!^E&r7ar&VO~* z|8!IK&4F^R6bZ@h?l-No7Dn8UUz~yV(uz7TWdJVRO;P$*F?%-R&L{N?nAaL|N6QUo z?<#Yozk)KBx1MRpxuM2{a;@11bl`*1Utd|)Gz`9;8<$_d7rZ1rWga&D3kUOc>ZH6g z%z*IX)Ay$+r|Og+zW&A?1nO$To%ONer-!$$V3N_#Sw%v!m|uKz?JzP{ z`g{6zuQ8VdvcHUT$(Sv*>wfRz*9ov(l(4Kk>EiOXC-XqCWz)sf!>l>AkFV#<(d=Nu z^eo2p>Wcf5Oa0ky)zXcZuZ0F`wRrtcXfnC2-ww@|)*q8(a_2drJ>AYc%0ABTe7s`mKyd~a0YAOP=+5ks0zp;;+$Veihmcsp*W)HG_BNi~bJK;|%J(6P)| zbZW1>6H4~ph^?%1lnPw%;rI5-?qKuAmSvjU8du^GvKA-bVU3BE>@$I)){quKE4PlP z3)|WxC}SrLx&B!R`q2HKMXh%*KOz|fOQci1K17%b|5%sA+&l9#!C2c%HJT*wPP(l3 zOEw)IvK$MGSqbgK+CFMI!~3R7)$&@KR@T-mgMNIxtCtGjETytR_TIwnKHVV~TRHg6 zG3mC%sJH}{3#r5C+x6x4Zr0xSijP@NBG^CyysR0b@(AcWo3e3a@fEFctO>mjgAM3M zM`(i|2R568JXl;-97O3RwEpTU}nhZ~v*JU971wG3|cL!$%IN1mY31{z8r z!*sLl2;-G4?PR+3dkrnW%KKVg83=jvJ89~)WFjikOW~emvb7bgUmgp@ZyEQ?wFWTlkJei2w7S51xfMedkWUTN&-U*CYP z40!q9NQ3YiK;)6t6ioz}wT+`?;*`UiaI&50J8i&+6zEwW46>NTmEMcVhQ9=6KUjUm>=eO5t;DbQHl^-PChFG8<+Ty@tG(gA0x-vbiK5BgRzey$Jn; z%V|ak%n*Twj0RazmGeeg^q{Z32iK-vKjT{i0m1&0>c)O>NGk;_c|1q2itE?nUAYUb zO{GA*i+1BMUIBkVft{HHT{pCR9;Aot#lergjv*;Tj1*F=VoGK;HsHO|j@2@C@)VOmnRU6K*M_Y5v5zy1o``inxQK2gEXe^pJ(-@aEz zgxLaE$xGL@vaSJl(4)re@kL$b-|<4W04UBlmz12yeC9|h7Ox-k;t9-`bXb&m;mIV^ zb~5MUj4S}Wl+wDw#A3R_WIvNs$I`l%?;Dt@NqX_C=*%@-eSOTvnq3~M zN%`kn+0_rSd&b}Q_9V!6n2*v#h-eo#7DYB z5g!-Z!TkHDQr{v1h+&e>SwDYeYRD18AQq8&QPybjN=%8daL0!{OIio&9$UA7s=QpA z#jkof)^cBPe(DQGcpN0!HJI^Zj`-v8!%V$I4e;X)h_0|+7NzA&)g2?x4l~y)+|ifk z>iHV1iOLvj!~(z|e5m8ywn^Ii?Z?kwD>Hgh2|r|7uy4c_j(JAyL!L{?-D%bt%Sm|Y zG)@n=e#V4g@3HG(FN(Z8v*dd|t`-)i3 zTzj>-wJ&NDs!nDVc3^g|W9rwm=g72(m4|;OhjA&Uq?lp{%JyTnx_dw23?AqyhS?R4 zo^8*B4_1}}Z++}6xZ@o1`Hg;{{9+hr^z`NdEdR#ZF&??| zZkp(ZYL+V|X^Y8{aq`aoTz}i|8V9X6&N;I-GmEj+?SV@X%r(P6W!D? zVRO4IK|aG>3y%Yp)|U3LH>xDKZ-dc}eY;Ja1?X9ZBL_LT@%Ji$QVH9-LZ)ruJ86>= zog9FDGEzwbpLPNA#)13n&lov(`JGim5c5U(G7Qy}J*^?AH2lD7Abd0JYKAXfU6e(V zQ1S^BrsJ=y)*Zkwz(N1#L|#nSGdO!yvX$8SPTyvGdjPw~{n<>8U{2|J?HzefmWWUF zCOIdBC|~O$c3BU$s`9@f;#{+0=y_6nm~B5U|DGFJQlE~WxM(R_mSHzB4m13z3he3u3oKFLe(fpE=ca(`3Sfv$%+fXsNh=^!`!mBM zhdt^pUI?c*>0L-c&E}?9l19Np9n_a3|+4gbdQyqOyC_^vS)+}GPW{!t) ztR*ZOU}dtW{>o$nt)cILEk9;6125c@ywJ@}57)N`lmcDDTYOq7tJu6MLihE|&dkf) zK<}pg!oGjy4jUc{30saC1NB4*`58i9&L)|Kw##6k>c4N zMiyp;aGq*F-e zF7$fW1gR~P{SH>XOwf&!`~yG@qXMAdwN0+RpvbPrdO~5b zWnh$Y7`sY@CP7h@ts{vlHLBZ&8_u&P5^OxIIbVFcZG-&NOPhl@06_UumB{VS-%|Gu zPP0~25rYRYuVC$nAO19FTNF8s8NMS2lWKxzQ7-sPv}@GIn>4%WEJ+6W&t*a^K2iw$ z_A^MCx25ESuop!S1W?0h26{J7b6ov9(+t{dIjWrr!8_S?>@<%<{9q(ABk8K1f}n7+ zG`D+PjOzZXoD(Ml_p7V{n~lP} zOUaUK@sLjR94mM8Qg}u~`3BLl=?Qd~td2SN*Zy9)ma<0=;YK44b z`yo#NtWSLt;;6Kvl&Eu2Dl$AM;TkySz7g$HYdEk7Gj}pXyC^SP?*d z42V%Yk|JJ+Uf=B5-gw>pS+9B&8nr=i-=x7JAQ;sOqW5t_@?+>-Khl2@cOtvE$ZmbD z$14auoTFfAT}4s#MvHpw>Ur*_%>rOv4>kSOk+b*gvJhBPCQaC4%2e}%N2Gq(vOCOj zXlm5l@B4?Y>K`DUc^-}hAKm9{He?5R)#w+{=4QTM>qZ^B`3WLZ&HM{OO2Gp2%&95p z(V!Qa&dR?JTFu(Rb!<7|7oQKQ9#>c6%r0$+R5Z#(S_70UDdYvVO$meXqV(+apKYqE zYMRBHn2_k<_16T=7ni|H{OLNn!94!x3l>`@2PzWk0K8yT$IPjTV(d$B+%onhX5U-_ z0|;5!uvE=*;oSN(=So9Lv9R9MrGDlQIsoM&kh@A z0oGS>)<^nCk9kINHLdJdl~{!r)^G#^A=?Uz$rgsY!?kypmMMXOwCXToACe%AXNoh{ zWJj6({f7{Dgk>|}j1k{IWX2gevU5TH3-^l9gOQNprOF(E9l^9E_-(%q=T{bS_Ga+dHQ94>GC#;{w(M@4XmlM!yb0z(o~rQ4nepnJ%Q_Vmen6b zLSq!$@GGhqOWHRmNLvW^rip5ns{suAcd#ev=Mjt#P2Z~U3S`)sMc8P7c~dR7J$o7q zGD4ED;RYP){>!wACDty=@Y2s6sz+*Kj%JY{22q=-Ha?y9?8p2@+v#wypMf{m!C_Bt|nTNy76XyLbYF2vqreECvG(0TxN z@aWn+5%ZESAk6!O>bkQp4|IJ=Qgj=Qqw$?ZfEN35k?K%wLk)>*dl`{mc&C%Jr{tL` zW6h>!^#LP!OaHJNV+msJwe;^5sa()W09RR|+56f%Un<6pBJOk)g}X)TxMK)z<Vv zZMl|g$z~AYk}kJGlI`ITO{72fS};F`X7^=_PEjlKsXD{9(tF~fOGi?F$VYvf;n~a_ z`w^10-4OVoB#;%h_q=8-R(Od;J7={U&(pit%V)@=i=|khApf#;=YaiIwB>pFBL#gh zW1clTBAySV2znAL9lKj2MHc*$490>;f|oTo54h|QS+HGk*5yg#DeIf>!C3u$ei^nu z$4N2Bu}hT{X|w3mQ^hWI``vnmij2x6NZDLidRtsrBv&i+`<$7OOZTn1j!2f@D{nVE zJqP!6r9uNftR#EueqP`A^m z?x@$Z5pu4jsGlH2X)zZW5WA|`9txSUpbKWarum%^Vmww6 zVeO3!eP7-EllNEDASDK?a z3hB1ytXT3$%B-$4Z+YcyZcyJfkD84Wxhz4Of+>zssEGbGZrPr4U5A-RLb9Uw&dJ=( zVHy6HymK<}^P(I3C3TmN_f z8|0n^VXx4YeHnF2ZLYxZq7gULTLbECTSW@S2FWFjmWb8R-`XQ+PK<~JLU?qt*m1;j zWHPk;H})Oy-91}<54SkQDz>;?0F-RGZddFUc(f-~!qzu_xoy=~vv+4P(c!+DYc6}< zESbEah5~J~Y_y`Gpvy~Wq0W!V&5T36rSmXD(*R>Pe%YPjw9xGQvAZ799s)~GxGokW zb8GC>`UsHe=o1s^cY)H&_`k3tnTFz;LfU zLS@niCUNJHUek$&75Lxgwv;@Ju@=sVFB2JP{6xj4e-kG6d)TSL+mTv6e9rKwi zk9}cei%x?cs`jg(zNC-7!jE6o%9ODqBv8wRgMxb>7)D0ycn3B*KS$uqp-E%6ua9Vi zMH!HoMj$$H-3WkMj z!lpu!!0gg&s#=}21A2Y{)H1D`DopCiDl^mn`vQ8sVSS5|$o=}F7hk%&7hj5`;CC@V z-WxkM>eH(GAskVKlp5Ndl*av2){Y}epqS8@cTEr5GW51FnpKti@408SGr8G>#`oBP zO_Oj^zkGFl{gSNHxo8jzrs|zlj57Uh)Tj|L%ojY8lNiCik5xr#sBgQcXGStLy`b+= z0P~u*$AsO9WLG{v*4J23d~E5sphO~&4V`0;ER^wk0+FhE%sAV%Br z`suk46sFG7Qqz&P`0kE>O!iQqJtK&A7DVoIgn!#zJ^vTq(p{t*qe`f&J>f;pM1JnB zZO2^r*g`6DSb41@^1`L_A)b7BmmVl|7dcA@C6p&!z`kC+YG@hQKc*JQgN{$J4av{n z?JI%8lA`aiPBgUqE*2eK|2)4Qg1aKi&Y@rZqJHoCB###a^&4fVz8SqCsA=n}y3&#$ zccxevu4exMKo&a{=GZ}ay0()FCGHfL#IfK7We-hA$e$WI71dH7#^zB4K>c6AC&6rH ztYy>#v}D-rHpW^VT%+X(ucNY|jH7cRIka1*0w8uY+npGuRw$KQxG1ah{(&jZ?THlr?QE)AA!n(TBK<$y-v!csl zrb~NtI}1M4k;-COph^8Uy4%Z}VWXp=!yTn&fnI{Pwe2GW+)DsxAW(#IahdBfg!tHO z2;Tb~o|EL;eiuc&*1t6b&xm6&28!V4(XDBr+Y2+43D|x8!Hc%yjhArlc7^`ua5FI! z?fs|74CF$_{Sc3Ha%34((j$j(++O{+atoe!t|BL$8Pba13>P{p;VikH%En!OLw9Dy z6;?V+Qv{lhajp((AjLFS1v8Sq4~Gw4W8;H@soSR@4j2AJ?(KW%PTgH}gdgGpcuw?A zi7xLdBNA{5+So2AI;Wf>jz&%-yxOk5_d}L{A69vET=bYHF5AjgGif)~-wv+tQqmQN zw-bbNYT(wTRWQjjcznAfv3%v%i}LR4 zid5`QyRWeu$`z@F*O9!o>%n|T7NGp)@MqUOngNjwR-7ph1@J^c@tKYdBa)HoSSChM z)nQ~Z;{l3RawhL%i$R`I-lOU*=dBGRV94B?b2&&~tNMtQ^WZZ|yuju+Sq^<+-^fq7 zW31zED7;TJV?lUr_bhPs<>~wV3k9AiD8^iFVRphR=i>Z!$kBv5hgO4a@^);9cJ?7S z#H4dX?JP_k*4bIqQVv|Z?VPm_t50mrxChBfgnFuvo1NNg}!fZZr)*o0nc$_a5GdwxAGRkDH(iBaw=hQl~ zW9oO^gW$4}ZLgT-7U-MUr43`&l)bv#(W2r4xs9Em%p;Qf-TCfj)G+8#Y*7_{-?iV+ zWE(%m$XnQadqX66Fxxfc@mbJU!Fy2Nrjy$0Yk0dej{7DXuw{;{_Jegf8w8-by@?B_ z4iEEd!0B7Zq6j}goxT*B->+8e0yA&N%2ge$p4OWFP%+1+?y5%&$CHnCx$rUOk?e5u;9y_Ue zxmX(qiMEr}`z6S{N$1gcE5|E^jBwGuZ)tgS^TL#xNTT^g;4RPV-LxDPX-BnCSGD(t zCnp;%0+-}5U;O7LE_1FXsZbwoqvph#TBfFyY1Gd~2|Xgi)cuW)7{MHTz9(GvGWzp( ziA>4ZUt}QW*-SpC@kY<8PD~MFh#rq9WjD6~T3$79P~Rn2*YsC73(sIp8QcBTq$W)6 z>pgPN9q|Nxqlu&GY&JZpn;AeI^3qKwg4V^qy$h7>QU-!ZSwr!tc$2VFfLO5soa2~3 z=G^%jG5Tzg%YCQrxnOeTSB$=9cK~396;YN(h4z|z<8qk|n%1|*3B`1qyr>+pBx_(0 zLvjFpz7OkkM|6k+B$-Z=x~YbkVidaN92r2Itj(jX|K&K19yJ;hn}!sJ(*jN zjX2q8c(gVPAs0nW+A)pVm4QRT8G1T+<>VuCm$q)}@5npyX3k6rf#=lyThiGB-(8o4 z!jKfTHM5^dJmRs*fnpRsw)(GGHv}qNO z$*QTzNY&QToiQWn%KYWJ==S6#XTzRi|5*dqp`(#S;)gE82rjfObd}KpO6_Pt)JLg8Isi5X7-lmNTcYb)vP`}|&EjKd43h!i1yh^%|i z$bqv@;@5X3P7S?OZmRuC6XAL@y*Fqo+eYXaksoTdUvpxmVHc0SGBZZaJ?Oi+x8XtR z?5rX8E>+CzCTJHnG(qk7ed1!!2ZpEMnw8nSUP3N*Wn#ynhV=?xh*HBCeHvqdEhgz4 zLd#p~l-?P6qwnep%=Po5c|UqbtBF>9dpU=Fxv5t!saH7t z`Y9%MdTI8_ZR9POPtvwD-tL4L@SO7%epE^-LH=pmV}>8fgnehVw*h%{zm0J26Z;q2 zGsM)NxgX61QJ9k}o>$QY9a|C8VA{^B;-t@Yw%dO$ZSNG`M!jvRQ@GmXl6L`D&rxCj zRlw_F9#?;Dck<@PW!A1;KCe`;%;o`Hg;o#5PaDu_(gg1jv0ohWU+|WX8UP5&7n$zOb!i? zzej=^7X|N5pImkr~t5qRqKjfcE5QRl7*c*9_;LizFtToNU;dktm+mL~H{C zDGdQI;sCshTO_Db0~@^jrFC1%DLwFxAl}VXrx3#|^rL>5USv zZiB#&w`ylsc+;G|OV{ST*jwGjO-T%9fXj3N-*)%y_S{R)FzOO2bVsIi$(Ms-q{pVv zBZA|&62jf$$25RrHV9$&il-9%rt)z$Uj>sbOs<>?d$Ozk?e=|w{6o*xxz}kRtAJ|| zugTC@pvMMrcCnkp>0NnQ{>F5F5I->;7sr5#vd;b?HPF`{e-=VXA#0lrI08UDXg*pp zQPy1fB_P>UcYaQi$@{|UT28hbEWb?+!^7oVBnYkq#~Gs=5WM(O-|c64#gR91TJ8Kj zEXQFqm}ug)6$6|626>$#Z1`MXnCIs)ZL;Om*fi|iu=a^Krt>v=Gs@}=KWgNx-oC0P zCz!yfvq9i<74C;(E1k zI1iv&VC#(sa%^H2dmyo6Z$4EaJPUkX?7PY;HlAWfq(oEhp_V`6(&tIge3yCu_#vrc z`(rw}6Rtv$h6w9*%ojUeZUfrBn?$N`(KOQ)W$~&8$P;ha;8u00s2`_UAP;aIdeNodx)y~t_!+Wo)R#qidwwVS> z-$zjO=;pjW;U1_Ad|?p7ssU<4QmT#`L{vlf9q*b->(}D39YCpe7jNjklH!A+VzQJi zfVV?-o<)Vm5+CP_&rc*l-4@!eH~EoR|9tfT)=7FT5PjuKj~Xs&Wj)Sg7}=I_Y*1<0 zjAOs-@ta3C^o2sUbzF7X-cz;LXBFG(_@uO?suceEanV&@A6cWExReoDGGo&PZ?9{B zcig-?uPu30B(9;unisb#T?dI2)@^tNnj9sBqTjR=cnaN*_9XQoMJ8DBL}WeWo{x4a zl*jRZO66td{5%DnmLtvPLwwl$@&QddX?j;ALIUzY^#mLL;zV~`4LEKWtg_3>y&@-R z4Xm=ZC<(UxY0lGi{pq8}lcrhIFrQ=sO!P-^Z)=`^&&-S~QWfGe8ZMlsqaLN$n5iG+ zISRz1$(l}*Z3fXaKC=xr;pa{0nV*XapX-^7w)5Z>S?HWE1!*KQfXkYi4PsM)%?5c- zbVuI?zngZ@-CXM#D)ll3v~l&-yVkP>>DW02jyyFh@DAfkQ8<>vY#oELq~E9YoN!B0QrDY=%Q9?JNVtnXYYx3Ga@1$l++vBoe!I5)WgkX(srN&hmrTt}6V-7`;j~k8 zDNK2tK*mb_*Xhe?#lzy6eAOGSqP-p)RXmHI+`le?10GAksp5g|A&OK#X;CfbBxOC2 z%9;TrDLw!FnAL6JYr+bN%Hn>%u8i~iO(W8KWuv?AWSj5K60Qwwz5n2z*NV(Cof6{o zx06!@G~y`}Hq-c+A~RTkQ_M>sVq-<`qr}^9WCaZZDuzKWC$8d%c2>C)>u0#ZX4J>q zQtE+qErJ(Ib9F9xrgONwl*>X`C+0=x)@5N45!LDJ-r@V3AvM@C&L^3yiy*JQV;e9q zh*KoeQ->V)nlIyl`uCViXQ}kvHr@(NPJswzB^GzQ>etPcuEeVF~bPLJI z#S!6&4o6n2kxf}8_+Ryt-DJy@P=%eyFWj^=Iq!boYU{RBr?m?=SA6t}bMibt5>5!V z9UJEOc|x*KbDFzAg}oR&s)luuBj2wd_rty@T8tKb4kmv#*74hK{bYTCA{*L;=OZay zHY|F2RcTChsQMInN4l)AxY(8{nTq#5O)alQG#Y1V{Ckr5sZFTdlePUwMuZZjO$aZZ z92Y9@{9Y;C|4F2Eo0c>A#WZ=R=i3H|cpm6rigRLxrAQ=hhY8V=c5&%TK9#9%=`)R% zSi8cWLBd;_%z%;BD6K?W%ECAt2b|q+ho1tTlALarN;t?UVda>nUC9;K7QQQdr<;7udw_&Wjk; zr|ecx0%2m@xR+{6?^_l6ej^43{`Fee$LfW`pHeI*~eG>Fb zcR(O-UKMv9;Nl{&ZR?5ikN(MNBG2V>S&Zhqzx&;jQ|Gz|V_&&qcW(s)&Q^{|V##ZW z_Dj~BxNb#2)|@VaQ{}YpA1eOdsB9)eJc|j{aJEJ5Io)k18;l)*l0*9LM@U&)*<=_V zuryWkZk)YROYg8v4v(8G%~a8q8Xmh9o4Ya#oGJYdJhsz8>JLI`tQAL%0g4~`)1;SH zKw|j+3lc%?zWsh7g04$~)fr*J@7m83p6~7s&%f>q?Y>+H9T9K>dnYT{)thU2DK^EZ zZFjXS(pfsYe7&88@|y+HNB`BJo&Wfv-_CCIWIAU{U45kp`?8MS!U2bsoF-E*RHRn$wb?Zo^y;3-ee0%N1HnE( zj#NgddDXmJ33_=PhURVzbSpPUox%9 z9`J0}dC>apaOi+=cj%L2g1w6x?0v1nc;@V@P1{}Nu(L3Jy-G!X6Fq>^qDVI&m;2gb zAAB}=r!Tp;zm$+&IiwJNO&9++H}(wv$Hv!#5%wTK4!bRFXykhjtHwYl|2_eo3SnQ` z$wxRfWe=xaU=XTOt3Z>k{g*yXPghT#DA-NmyDlS@ZdKK!at%YC%9>@$qA)jiM!1Jq zLry_=fcjHIq5d>Z1|_kIe)cBjlEnFfF~d|UDpKYn<^#L5BvMX)ycNj<=xTMyW(S4fBu^Pxq3~O z4qd$#bea0yvUhoTGM?KL;+r9G#?%>bGaI-nbo7QGmyUBTjSxe2TacqpqD~cNZG8X$ zAOJ~3K~$jI=LaF^X%8Q+Dl0ylY8Zk(4?*{&pg-T!7utND4eb%`_9E<- zdHb>^hw`>|z`bYDO}A0L-Y$HKVf!Zox6`-%`K7wKY_O&*boUKCgHCPj6+xD=xOF1r z4e4=B01v8lJuyc|M_(qwzO=I+tbaF_FNrPUG#MH}m#zg2=SR}(dQx0na`ZYw^2eMu z?H(z_A?$)W=BAy)*%8F??@>;rpL3 ze1ERH2Rzed9<+Qb1loPQn1XI{_J&}$Xs$6Yzx9@d^2$vy?^&Elhp_kGzpg?s+R!89AL}uMU(+*CAZyp_Y-p`0)7P3XF+9#mf>hrL=o0Kp zI`{}X`z_)sQY*RY>}t@a>k2C~D(RBx6LFxVsSUO`<#}G0W~6VFP?ajMbKg`TC)IYc zv{n>s23-cZg`1xohM<%1eG~#5|G>*=OzMy`#Y0^|JcjQHFnXMy@N4So7`}I7`TC3R zM?<^5ISBg_5%!#hom~OD(%IisZz?f7mzoeR5BqsLJe*JfskQ zZTDcW+}Fbi==@q4&<`qG6NIWBa)MZakT31ZM1Wt?(N{P+b}LtvrQ>cayn(0~!pSu~ zIj$}`52s7p4L276r%B;dot%Q6%s?*;WZiEzLv}~AjynQZ5X!crmL)2d(H;QuVoS)m z!g#o!kDym2!20Yk{x|K|G8+XQ^$hBjPg9_MzopRb0b%c9wbpK3kvAP=L4fbSj{gut z_74Vb%4T=f4!L5`*VvMGru}AJkKn_bF<)PeAv|qTQIQ(l4SnxXCkeH$lUzNgO8`^1 z09ew+AC~n9;xGA}t~V^K1`OfvYLm6%$-Pg&^DVt;A*V|TfjbM)(QSdAB7%-#eSx1P z=oW4+gZu=#`ccv)H(bnX9|Qb3MG_ zwa>HA*%|B>p?qJdP$!3dxkZt#r);fV>FnlCy0yZ47`neVV8hLKhpzplE~hm*q$>Q{ z?%{7E?EhGcA^a)~;SqQOJ%w2Q@#ECmo)0%kkfPjT5q9G2i#zzjx(^aK%-8E~=iC8p zhIS>nrYFMHA(w?!_4<@A$l2*4*n(=bvCX7{Wi_I{?~ZzTOT2S2}ysI_YF#yjpWjzqR~(gSNn*`>u#W+alEOE8+Gz{bEvL_oPr+5936kI_GGm1`p2Ha z|8{b>$ki$AUFJfocjrSJguD%L_pg^whiAa6RpgghxqDBwKKXvD`L_mcLT6v^Pj94s zIjzwlRpHn62>i>cZb9Fz>JbbpdISj)#4A;_>JhcNfv;Og340Ib>cq_#idsZmy^|j- zdt*Ld6q{dPyQl^yh9Q?!Ph7n?PM9^rpMR>YW%zCqslc6OppvgR6j z>ufh!bB&@$o`0kNdg#@EP5E2>bAJ)L(;nB5Lip9)LlV}DuC4}nQ)CP7$1y=jBDwm4 z&H?nzAm}5)p4rw5w)9(6XIxZ`xw@wKM)Hl87xW_)7R|m?L}v|&f6_pXS*x5yOKAL=#61}?}6)Q(VJ*@^Cl1Jw3dY(y<4y7 z9#pWVXDGUQAisiaC{f53;EjF%VJ8UnNrHv%3p$&%unU3RTR1UoPuHxZetKzeP> zxiBX`6_(ef9;RJ#mC2kHPu?MBz&dpE z_4zOMS@Q?+E;iqpycrHDgkRM?bl8gSfda{eNeC|iyj%tP2hro6AeN%5XLkxPt8*ZI zL&qgO!|IEo^Fg;jZ>&hIX#OY1nhv6DQ zdk)-)x%;}Y^yb;!{Go;v!XxM_*Y%8mW!-}~(uvlnWWX+$>2XXD(j;L0c_1u8SI_EX z7J)sjjW=xidO=+c=IT}HRcYjUns@jvZE&eh>5Z`e2dYvD>;gOUEm`L1`1O1r=I9N$ zd7a74Nij~;VGQ4|1(EksL%`#0Kpyu%kWN$4;5vz2(Gb zPx0E6V^EtVhVRLiM?q20ed&gk21E8^3doOO_&u!PdhMY!t=Vxc}SqS3ru z?&bvaI&^gM`FB@hgg%3Pgx|Gqz|}?ApFzDybM~bc&fd-j>}0*YOP^&zxBlz!<2BCo z#@XHck%qJrY;~8gsq1^rC!q7ox(7q!vYrSY*JPkNL5Ny_U}toc!;YZ0#}K~v{5nl? zIT#jIuOipetWS-VnrA?l>I1czz?CQS7LZd%#~k~*KkH*}FfX@u^SVQ10vHALh0&H9 zRxHAG%(*Y(L~=cvt(`aI#X)LhaO0qx*4f>m_4_gK+SjB&CtrSBBI}bE zf$x*Ucj>>*GS6AlaBy2B9LeTx7?wluno@fbqfo;f5pyR($yl1}9?rrmq zwnkwmJKo+7hgZK^Xj*HR=k4Y~U5?PX-zsST)r#TthS}Zxu?(p&x4cWh2g|yJe7Ce) z2rTIqEaY?x29q8F{0E&Rni@gS+*}5_^l@4Tzxq7?^I*)W-uhGD(*}nrd`D;Jv?+U` zIuq(muAaoUni9|pLR3Ll&C6w=-#_GxpgTa_smbbvH>v~--6P@N(Mc?Xmxt{ZZf*%V z6^8G11opyMVa!-R;kOMH<&;9$U+5hKuY8tnvDPj%*0ldRhwp@tcldhQ*><0;{JnU` z>~8*;hLo=_=@J~js(S>29>f#Cmx#)FNHqla!%iOfw;|XBcBWMF*eM8I-A7pQVKQHq zT*4a{8T*jy$!)G?U^?%;DrG9@(?my4vIM;_wBfv58L~@meuxNxKkSN7hO^_L)GF-g zE2aRl#7M!3qwhloK;I~!(se9c(#W(y!c@}hVqM9 z+pKB5eTmSa&vN{DIX!fsg{y1xd;*`)VP0DgZ=KUMq-c5fFbew;8SJ)X3-U*qAZ$$% z($_OP2SJJmd8!Qd#89m`;cxpcjQB z=uXVlO`tatvL6z45VapCg>&<4fF4J`UXS7Xy*(}%=7)-~OQ73^Tyk{bdJKGfI!fsM zi6>85Vjl!{sZjUAn<41#8PK*bfqe_Rpx-|_2E*|ftF5OLbh0b$dNkbIHv;Y-nS?)= zU`PT!W z<-0N0+d1rbmfaz{oBvqDw6@+Y=-owKga5f0oqb`~U||u0rPRYt08N=7ngaX6E^^QV z%tCjMf7OS(;ClvcuDwIwz@u5Zy5#70?qvTFbMq@SSC?G9jO-^zs7{ZD`lCb5A-k%Z zDA9)8&F0QZj1M$qG}0at;X=-y=n zy(AWPFAWvnIn$9Qi%wA%*&qq!AU#e#@f5IfZHs$v6_l< zx`b|AdEyNC!$T z>>M&_N!Kt7&>NC1z#nFUSbz|d>bk9oK$;AaI|M*{I|N)3g&ke}H6MP_TXB#VdHEDZ z$#hA!nYudrqxj0iHDDyJp2$(qF@&$XFwGitTW+ojx-)`44DKBqiNHqD(_*YZCwtAW zM!*ldhoh^LpT)@~FQ#drUx|hvE=6Pb9s`+CLALj)+lE{qZjL$r-DkS_w-@h7^Lvth zzJuOtR|Gz*OYrfW?h%mPHJGync($mfOa@JzAPC6mo!DA=LlHtoryvTtl@Rvmm%W9p z!`AY~Rkd#9dYa|Bx~U~ro7{&kv6UrKSLe!;>4`CQM;sc@%MU6*7a_mD4?*9DuD+Wr zwRwxK9wTdviDkvNf&{pCWEutihaE0(|D*?VbvfV)$R*J4UycR=CkEr8`9jwZJcK`V zYFek9DDJr)e(+3JuPk;q>~8+w9+InPcM1P%c9#$#y9)`GgV|%(2h*cW5G3y=z%Nw! z9&`R+ny1ILvs65OE%r5EKC5Rmob@?z7>)CHOp_Xp0 z0=cAn#MSeo1wVIx{(sueYpScGn|q?0d;aiTckf>8ZrGR9eu^O#<`#Ai%~{qh5;D64 zap>@%lsE}keO>wehnXNUItNm4Gcb%_pz<>WcG4`P1f8mVpb+)4H>~ZKQ?FgD9YU_9 zS@yt7$4m)TiBq8_1L{i>I12hTe^tHFl0CBvIzS17|7ciF1-4tXA}G1-Rqz2;SW!D^;*I1g5Ax3sv)^wT08&t z=<0VCb`2%43$}oMP&IXeAdVf2;Nt(y0GCf1U0A1Fy!bOpMYr+g)4I-w!_)TeL0A8^ z{JNUWkn;3zFNQzOS0?MADg|@(WWN4-Fxz_C6v&k!`(C-w)pt3<{lk-NbiNT+Pk{TU zy+zPn;fHM)!k_U$S0_1qva3gJ5jhvXnIwp_g-Wr}*($$&J+M7L#mcV-vsNrF6*Wwj{$nP{cj1qkzB@_}W4 z$*e0+*L+2;rFpu#boxwrQW#WY_+FC8)fYrS-7z-=+_8yOb}27cfWAl6E*Gf37)Xn9 z7LZfLLEY6z_+j^G3OUjDyGCOOAAyb@YYDgoQBWlb?672zqCdKQ}=Q0N&Jz zg1}7LTZuyx*G|Tdv$|MM67lWO)m1>p-xDHV_JsxSCVqE4`U-u2K4^}u)KUWtUmCv< z44A7I$8&Wj$5GJf_ETkxYhxk%9+`HN>N|$zyD>tz6e7YNW4VMzHmqC>gYS2YMA*^M zw<7Gh_^}|a;g%^6Dt9Mg#b+T^mgSolKsTM7!{YJd><~8g7 zLWgvKX?CmdKc;sKI=7%pIB`%uy)$vrCIbJEl3*wQPb@+n$-sp)ba1uFfPk*1NObii zboDg@mMInr17ZF{u} zJedHz(ak-_u&cJad2<>jSML<)C_$dqIao*&VSgAk1i141nVm^dE|7vwM8fopPKw{b z&!Z{SGQiCeqF%*lphwi-_s!ndeBYo^npNw|~7x7hG}COJy}mr|ORhZmK6lv%?j3Ltnzm+c z8*($~WUU;3_tFYtqDQxYcXvDDdZCD zBwv?D0P@K|sqokQg{ap^(JsW0(lh0GaxKkpsm z02yRUZh+v5Gzj4qcOqiQrAopOKCPh%!+GP6~g4ocT2V!9 zZr)7-I=cFTF7O~LoE5}4xVhNX)o^caR|ff9A_9Cbc(7TIuHMJyZFnl-j_a!?>M`X!pXoi&f`bGRHJ$v6fd#=8<{KGBkT-bmRuj*p; zIAj-`T-MFI*~(n+FY1ASCShLQM*?~V1^r=;0q&BpeQpoCW_N>o3ze9!r|@o`&fHuC z`NKS>2f68-6`egKKzqN;%aNb6vnzG;e@e5tdQ<(_kuB0;U^AnIfbL4J059%-xekGZ z=1DxnVv!JDfSv4{5b7j(aRhpEJ>4yHP2HQ~^LeJ4;Oh6*dHZqe2;5ybo0Ate%Dz-C zH04QyrtsRl{qrbBSmNl1^8(4087 z8NnqYP?NBHP%|S19bXFx(QWrjWon?crZzA^a$S8N@%cPcO>p(oQ$8+-VDEqp7;dlZ zVtu>;I4R`BmB~DLH(CMrFwaEua^~b2cF>8d=O*!xcejI1G_yN~{)se%f0&o%1UXeM z!k(RGg`Iuj(blxt?7W__sgBa-wh8ml179%?9f7Vs09{=UbaxWqFSc_KbrJ-85~>^P z>l{EgqB5EoY#l>dV?8})5{vvzeX`YBQyLh-R8My}rA`99RM|5()kd1&>Xzl-^#pYF zdn1E9UXJDJt=Km9}TU31IYVtZz1;sp-ZbboKt|>H`o+K_vy> zqs{>#?%jleZjuUN?vJ58ft}2`%Ra^~&RkCqhPnn?jrmL#&~)Q3cK3Y3YQIghA^_HW z$K54Ri$iu#oP4poliM_}8$8&ogKztu@ zZ#mEj$bAuV;{GIW*HftNGS(A7*KsE5=$hO5dI@if&*#}_{KEON+EpJ^G_So|CVCZ2 z9u{eVwco>C0=B1aF3rmqc5{SW&|FgH8tc09ZEGt2jf&>xHqdACn%)EMuZd$Je6Aem zsTks?!u`#uoP{`lPO_4mTWJXY&uM}i_HSaEFt}L?0o_7CccuO=A9YIP%1L&oo zBfz@4Y+!C6hVQAE%S%BQOOLLeT;B}(I{Gwn4$ma$FB{hksFbn+UeK+zz8W>g^85U* zR?EsRaDSO(l)a=OyBP9J7QWwG zI6=-pPlNkg(ySbY_UP*8AUlPwE-D>`|7SFttG7t`0K?_N{vuZwt1mBioj`FCI)MRA z8N@mQHZQ$IebCj3q{qe5A?W6MCNR{|?@4KrLKjp$8-sE}Sevr8c6rm9!xfXVpi0te zu1v@xE+tiCfz>}?xZKTy!Wb#&-JL2P;(FwMrxo}=5`JdGD|bqwKm^o2ii(pD14$r}#OY|d2L39jZ^>t9SHQ$kQcs5*}zczI_Q&x`( z=5Yf~3vBO; z`zgufJWE6Pe@3$n$~8;*w9hN12L#MM=<0pgmP!CtdQ5u1r|R9r=mfX6uA|6w8<}s{ z*0IAa7XLVlxt}3Um^d>tx^-q^ZMPo#gUl z-{s@#YB^n91L+Jd#?^>xK+ocDg`J;vs+6+6U4^7|S1YAt0dez6No$}|@>+N)Y5}~| zV?4Kdl-dd_e#B6^8^8SY@gcuAuZLrq>zwZJU_&AsjN6uGhn!BIp{wVlK+!w}+#$KS z;N}A8Qwi)n;oj;5d|bK{~v+C1LUlp{q6z3!VO({$p5%vuj!f(YCAv@JJktIV zbP5(zy(DyXJ-q_)-{|P zuuttib<&%d&-OuAPs0#CT?DtMlItMEodj`pGv?n3Jlw7%?f~R&i)1m>O@hQ)x(IR( zf6vut_#D-1*p{Ky2IP`(-AZA%X${?0)GddX6jRXEXK>NFB#R~UM~=F>CxtN%qwF$} z3!sy#x0&6ch?cmDoZO~VJk}fTt%^hU?jZr)+pY=NVJrw|pl?iZfShUrh208U(uu2| zy1mZal75*=VSlEZ;Oc1&O+))P&4AP|zP9rn!)(9YJymI(8l_qnN7`xCPKf)o*v_s}c6@j&44g*CcN!oY)KQE{Q?d z(;Wb}X?-%>%}T-$9{3-ZSB|h(VV7Q@e0?7j`e%RGKT$ZMEz@*?c*=`-2Szws6G(^i;aN zzupLUru(qGTySy$atb<;58PdzfUu`YAg7KF_p?&q-a3RmuMZwio9JPGE0K z>HPY$+Jx{u-b?>oVjUCc8yL8hCMFEy5l)d(-N;kWDWo34?tv_tI%cw6^Vhy(d~RNK z*rr!%kI24WbLbZ0;#`%qb>JvF^p#Uq!%KlP;U$FqIlmduFkqbZ*hp{dgE?J+I(v!p zau<-#w3oP&LK#-eE`nSriotDBW-x<&vIKHL~a!dcXuCAa$_@su7_BJ)Kkd; zF1nwKtBucBOM6paTi=X7hrb|t%mn&Hu01k0wBER#;5Bf)m4clvkr;ZsT`nRM$`V&s zO@%T(vmh`r-Ex0o7w*p79?qak^YXbRfLthwnc;&l>S^e1gWLu>3E@o`!Ykko=Hz!o zAv<$)UgPk-X@Lm4nGM8=AV?zQ5Y^Kl0v`!v1VF!PR4G=?$7X z$q{4sf~SF*1s-t+mG2#@xS_-k+UE z=3n>ysxu}xtKNhiP^15P3jw*RL=Ld`&VmYwOQEb{D!ine24$7gp`3CGx2k`L<>8c{ z;7(=__aVExyj;3qMO4dPG!H}gEy<3M3zcu#7{V`)r-N@!ZZ3d69yJzWpP|N_JXsd> z`)i4_CtED*)8O8kq*J$-utAej*q^;7IANrhp-prxZ9!~p3M5CM)F7Nm=Jj zhVKD0;6()eW&deV#%~t6KiarqVocb8#*Ek_dQ^ljdB< zPUguslMp@>f$r%DxBxlPI3KwE3qIGZFgxh$B%rTJhN9I;R@j&h57#B<6=oZ1k@uMi3bPaJ67b7~&7qF|l4?4< zj4Gp;!3|8-S{{t;0=K3!S9cwgbL=FocK5T3Swk zl5B~~8ylJ^#AXrjB@qeTBl+i(1Kg8NKq8K8BWr3O#nv!=NnZb-S^LgkO3d>FCV`UUL@f=1$`Pkubc_>gT`BT4^df)#&(6NOU`n^>=>>JXt12K@|w*$oZG=2+^C*o*+LLuENi4tjDteJzv=o`pI340svyb-G2ppqjzW%!snw z8~GDl8{5-4WG_ixE`?kuikXPdu{4&sx)^ey@@-=(I=>nUF&`(OJ2<%jIRzax+7~;H zSh%+~#SSXfl}C?g(iR=RXwp|gqPMDfncLJeoH}* z5MXa$qM#c^GPx1y5aKXLkMOd08p88Y)p9MlPC-yaO|3P$rU9Qvm@ z+j{fo?ocp6_(`SWATI{=DI(A(^`dj;_f~5~wd`WhQ|O#|;Up!3?d=+J9`svd{NT>~ zct_Y*+J%7QHrWE})1hdY(Zt?HayhC}*#GV(gzpiR^X(^Ve*zJ7H_b2IF%rC}=n#m#Z~wBL%v8 zKN-n@U%meZsH9m!Lw5!`Q-z=zP)0QuBDJaL>Rq_2!+XN*$vxPQFu0pao8HSVcW%zt zvKLP135C;D7<>0zIKDIyZjTp1F5~96M*G37QDm!tI|~w6=)TGs^rGcv z4)?8GRvO$}ZZ^;_St;z#L=)UF9K-kMnkES2K@XQGjKEIj+A)kbAjAe2fQ#>oMbN`N zfLHu~Jb|5bMltwWBfWIJ#pm!8-xc%R%Bp|OUeQ=&L2=oEG@et=E{v^&Kh=wUL?^Auzuof5kGY7yj5>3hV7?RCcF)owT` z?{MR(+o93KTx%l&`rr*v1L3XF-&rof?}K@I=xhpiIkg?~^2F5x=D=$aV=Nbj_O#v{ z+5@f;*r%0nlwEFBnzYPyf;Ze<5Y5-Iiy#*j!xYX8!SLK$-p#3_^CGa1Qee)`U>5+V zT5hJgv((Jt*80avbp9oxFupWr{~Mb*YRVeaIm#SVxm%u8d9^fCZ;OsB)EnVOK-|MXm)58LZa$@>98=Ne7Q z0~ALb-D{9MU>k;a%bK;9hWjL{GRgLs*?A zf!vdjeUkIaG@&@=?y`6WdzJ`vz5?#vY7^X^6hNocWZis}NF(sRkqq{`t5O^wzq^d7 zXbHlOdW5hSEiswtSB=76y1e!8YC^6aT1_`T%FB!}y9Ql=J+7{i!mQ(^7j5Z&12T%Q zr;l~_TvRep3ku~G<|vNdS3_e7tE!+np1B9zJkQ!_(pDgOdX0ey z@c@a6gMQ#fsH9tpEoh(|JtbqHgb$lJWq_h=bzq?F_p}QZQQoA)q#?7gt6VMfK>t{bG7@>qa^AL7~ zSq%BzrA!p|Wz5;{EHI_h4+_Kh(s}m3rwKLV;nfY@!)q7_Sez@s#Y(8}2)kHX1U&*l z58)px54jV-4sg3uh?j9gDO;^5XgCfXec%Qe z$-plXc}&&RRTSuQA+w!S0pTyBo(peBjkcT_=*?Xp(gUsz>IpYT3(HX5<>nqhE?u-T zHGnQ!p+zu~(pEB8UbG+{;r4M4Ij@4@JnVDgn5!=}I|xCCJBz8aTe;O~P_)Q23^uX# z#ibQ=e|-}iJ*bAZVQ6*jg)jst81r-jsURujBMPU_eTX9TlFD`Lpk zCc*tRsI@6jI4cqgM*7G=ZU?>KXI=#M;Y$3QSafp{>`NHvMT-&kMP{yOkTD3 zaG8_}Pv`7;M{hhMe{$2gdkN&0CJ6Z})3!mqFt`|Os9^~EFa>rXF${JAavt=e#U|qB+?_=x3#`h3dkal#ZZGP~7Aurq zf9@}BLiiq1O&1eUBMCv$Sx^X-R9YvI!8sDDYZ}-=PpEIAU} z2(GTZ98#72toM^OAvgbJYlFr!w*S_2)=mPr^_6K`q3H|+ee@O@rjwC(S=ilxUvtn# zsH|N~bMx|Ha~xn7R55fGJQq9T5Q(Qfx z%g3vEdGg$D#9mu%p!hfIq9pG!*8&BWft;tLR`Bv_g>Dz#afL?dhW(MuxjTCmV ziUXhgO%?NU1~ma)tWf)YMZCXE@H{S7mu9&&pgVV^zc*az+lvBUFphWi#|hb`kc;Na z?=Fg`;k#35>*{0-!S!%!jEcc7g3*=m`eUshMs91E>sfFKNy)gmy}E+8eh$!K{3hU*DD z=&^N;PGEZ~&pQYWM_y-ebzRVtpS}>b&)PAi+5CM3aLX$QxFAyJ?uE`wie?z>V)4)q zVse5VA5$%34V1?`-KH?fKB|HZ{@L7|>Dkci>C(zTn5A?I~-5Qg&O!x-d?dB6$i3rsfM&NN#8Sc1<# z-*lyLwxKKi2ng(@({F!z6I?y0ns!pSS26+pQ4j(pl`B9aF@zUDkH-Cy0$yTO*IL4B zm_c1lJMhWQod0sw9Ji(3D>L)YHJiJexH#8zMm|tY&xbn0H$g1~w$>0Hc3I%%!Dodw z>!3o^Jg5*cmnod7Je3{#is7^2g|JL$7CFgssJFs;vtJLm)R%|7FM-{g!S2Z@dogZK zMMl`isi0_?-d@^jTdZQH&R#Sx9^v+r580)V4`I475FbA}goNq{e3Ap?cc`l~*zaQp zaDP$K9}gELtLaC9VSMQz-JjcpE2{=o*N28xH$xDDgaRrV;GH@E%&lWd2;VRXB5E7x z-<1Shx6falf-RB85?(zCf~#sXpX|)}9I^52on4z}?tx}Aw{gv8<>Qu#gzmM6A?QOl zI%|joeyMo)iL+NsSb&hDb4Sj#E5cb-@G)h=7Q&ASLoB!Yb>jrkuVk>C{q_XDmi zpq#2{>699A_0U>+2*BHcH5}zhhavmiG76}!v4+$zLSR)*zOqb8xhFVtmY+A7vukS0 z#fPBztZkO&vk`KlIr$jIZw0cTMHX~V!5_*7oc;EAH+lJl5@S z+ztzZ!dY4b-RuB4)jSgv&NXsHb4?almIn7TjY}b`e^v5%uu#4D&!Cc)2`%*LJ-XRQj z7a_X?p!tJT?wy<4*oNBHS3g;NP!dV6jEJ=eqbBw>p0crrsV|3#oIC4n!1IKCGdvDeXku>vKx#m660Tp&gr7)jg@tfX!GcxTLC7q01o z-9NQhv=8A%$mcM?iCWCv4rDH!gzmL5Pp4Z4c?do}wtD(13UI~fc}%!pDPbY*XF^2+ zyBK)fuM{;GUWk|vZKEez_NA$;H+%Phi|O9f)h`m*`*_m}Mo`#G60(nx)Ut~UV}8cJ zn-oI9z9+3=Ury%8jd1H1H53e1I72=}26A3E5cV4bRB&rT41$i%o@us0PBn+=)=Y!t zkNL@PcaHJqz1b!uada{oUpn9Zbek2Y=+y&qwJE^+~MN*HcAm)48Bf{uO>LBB*`Pe$l5q`&ox@FNUvK$k); z2l_}}!+oJ}awx)Wa;#zJZx<~x;Nt@kcE94?oI1LSLVlw^s-Fr9Mn^EX3Fvd|kQdHo zLfEZ$=U_)O+hn;tOFs@WMWKA@6x>s3!m?HWO4_bL)eICS5`ufIKOb(E67ce?s^P+_ zCcvZyA&QcpEgurro3*QE^UPhBTQ1m*4xZ1on1_J#YB?W4pOj0TyUx!tpce~24?7QTftP{)w9~Am>+E-^#zL z_HIBm9rz>cD6(}6xxZw;q;dtd^nVk;RaFzgw{k3WE*EVX-yjSQv{fXQ{A~HKy~U!v z-C8Z#4=v~Iu%dt}b30Wl1ijHjJLonIx632o@iv)itDLwHD#akwahcTJt0pgp%GyPC z&}CGKhyLZLOzvmB)>4?(70##laF@{0i3seM(!A+nlsm%p-`ozsxrf{~Up|b$9_9%7 z5?04fV81g@3pa=RBiss?pgTb>s1G@YdHW>H+vl1bATONBbbAKo?b9)opNA>K4CBo^ zQw_f4^P(4@EFG19!p1sF1l>zjMRT5n#j0u=PDS8)On{$;NQXnDM8JDhiiK_!BBArk z5fENA^wI9NYRGG?7*O(a<-_(C3wBLyv+^*3+R`d>ClIyd)oT7Oav3QKYn`7r)4~}l zvM&cdaeYBj@G*q1qF+qiyiy!<@#<+Sp{j8y-LFKTrkYQ~`ATBgv2!RFJs+w?&*m1J zqAa)5y2JToZwfmJ;V+no%X>q?C~wD0L%D+7X^pvyTK1tl?9|E4HqdGPI&KT+Bx2aE zV$SZ;%_WfcBd*TFj@yD?V(@tg>?RxJHqF2^VY*0 zgI|R}O&})WIs#4d_G;+r6!f_HcEvi1Jhn>gJa{o?AvBJi{wUiV{NQFvPdJz4&0RDj z?5GPy0=*C1{F!(4;zrp$S+FvkhkZgAg`0-$1ah`eg;u^5&WPt>F9GDduJ=Y|;QsJ% zxIJBuj!s}VP{66CqqCz5reY{R&0vAdR4ANcICyWW>A&n_WbR&?yO+EP;X69|GzBEX&VH2 zt(1#Oc9wjROw0MZyR=@s2U;ye$QL5mGHNgY0YU!0J_kYGM1H`5X#`WT;E#|%kGHEO zErZGka^-{t)YWSa$bxFAE17E}{7my5p|^w2RmJjZtZ|r5g zXkxB@!Qg|?`ye8;vr2}zAOU!oADeOsbdum+qA-fdvK12a< zy)P;q_Xnuq*2F{>zE3w$5y)>(GcY0S1(WrbKV~Mu{TZga1rzoCuFr_7LOw@&^_o(5 zFHsW)gJsg_=M^qklk7dxvdq}ooxakyOnZd$(`&03ZNKL_t*Vl`x#A$KshPIf;Ot zX|1GL22~Q~=aAQaHLd%HzbE_NKvCE)n0(OHQF??Ox7UaGLg82ea$nE#a(A`tWJ+yJ zFx*+7XRr&PlUnvgq@X6&ag@C{Hz$x2_2xxj&j^5Z=u)G(6yMi6= z?}&J~1^tNXjF9_P429**{b5@hB?7LnZf_GnwmUsPLq2S8mUXgfi^Y5PwOO%`z-^_V zONHP!7@Ok^xtt{6JHbD43)JYnngN}-0IFygQJ44XvzofL0KXV`vG6h0O1kAxAz^_* zIF)Njy*gh_@+rDxM%WGBR^sSXIv+TXz+W54LUYBNOi5nh;Ir%UwZ!qfarQrw78d)Bw2FTMaiy$MKGCw1YmG>DD9z z6in1v(b2g-reh~FL4UAtyzzVCV=kSFbKh)JY!!9h%Bp$!o}9wOw_PKyI}`PPByAVg`EsU$UJbchaaW6l8bclgHKUzYZ#E7E;)2q_3o%MXiBZ zPz8@w(JbP(q$9A4!9U+xS-%`ACN9h?quj&_`$f}C7xdnVznlFKaBr&sI|JPp&T4$& zayq+!1OGuj|WH%G_UQx#0ma|Ppd*85Yln+9mAl0If4TF?MtCdJm8(FgNNB1 zoGIK{Jmeh_@L3y!`OLEqX+b<(r5<9qm8nVTxLS+aXayVVDw?b2P=wo7*d z)e?TYbQiQ;MqGU-)Em2nUP{VAqh)SOz^Cwwou7a{a2_tUd)MYAVx@oe$?rfwwmS^lmRjcIsLo26%C7 z8x38{$53@Ck2!U@ND5@olxHpy%++Wi1=f6(8C-cca$^e1oE#C@{BqJauwvZ zVURn3-dY8DEmdbdJ3IbLGObn~_^|czJ$KtK-$S70+Ac%5#aha?)X_0?um8&y2RVT+ z*AYlHCL3xEM)%es=!Qj5d)RvV*xJK3Kvmr$o2m%1L(f&wE=Ffx^q`Vv@ki`a0$UEs zYQb3tcER91@}^k<=e0f-0rGQ+OlRYK;UebmH;4MUck+@hSi$YBi7}#uDt!HVCc-}6 z4*PX+$evM*n+uSq@Jc4Y2V&kIfk12F775)a=c|AZjQxpe!PLRPECf}V|9n_ zjL~%4#iu!?({c7Dfd17B0pET7LNIhJt0v<3Eh-qk7W5)f2nCyp2U|`I_Am!^7E1~_ zs^g2{kWxzxTiX!GRSs@$2fZYY&I8hV#a>hUwTGbXa&+_M63BVA!{cNgz5cjt8ooQ~ zF~CRAYa{3cW-`r2a(8m9&d(bW{KZgJzlcdEk#>=_s*zUE?WhqoqY66_$J|r+;%-X$ zxa?)4@Aw;LB?;Lr0_5isn9jzc(^kgV4Ajl3#@SUcR&TvIMrXM{ z!3;#VMrpGO#~D5rmc5o%*NH%XKB(6>FNPABIR>;0*fM$&&;{7Z_G^SZwWgW^o<|^W z;|Mtgy%px@2zp*iPjYnL_1a|~d z>&wB8kE=a|f$o*D%08$^=GRS28SH}eBJc_5<`wAji-)jJNd5~de2Gt|D9c^a`OYpd z`NP=+ggrq39dq`0A2<`sLiykOkn6G+Gs-Rp`5+f%u9%bG91#kIv-P3{D+UVvtzTl? z48F-g?f`m_4Ri*3ApCB^usQZ`Ct0OxhY+t>owsw?&F4mKP?jSx-|Mn#|@Yc7s7;<~qE(JXwLCaj;S2HYe5<<^arQ0Qz%Em=svrowNRZ}6Q3_Zt#;oT}-*7#)JH2M?BE$0wy0{OW( z7Q&y2VY-~+3pa=Jxq7i~?%{%!A!@iiT|?cRfL=J;KucT;#>TqL%Uy=-Qpl5dnNdap zd@x+^9|;AcH5B-Qu?8FD1!GX7nQo5KS#Zlenvjg{uDgA6gnrD;;fWpW?;Bb7{{I*7 z0_fj7ADYtX#RvpF*isVEzv1(AdEi}xP6p%%-~{$z^@Hr;x&XNp^j1U)>yFj|klj-0 z!8|&jpSNDUFXq*(!wB*oYx|W5G_Q7ItsuwtQb#AC%c*4GZ=uHs=+#V%p)Q8&_4ts# z?&!@>BXv1~y%?$)moN#i>z7!o5jQt3J5(iQO%47$+~$`8?3WXKD_%_Wn{(6PPawCP zjq_oU$MQnZPe=K}1%oeLm_mMt!R-}eTsgV4Fs3gF=L6yP_*ioF82e(C*$Df%ID2u7 zoSUb42)T(!&14|QgYk7>I6qovhkdj}qx9U35nAi5kp}L;FG+CYXKlf);ra;$gX7;6 z-a9g|NtVMtHa-8KCWP)Cp9}e=^NW$ig6<4`sDq@S%fbE~>Pw6sx|a`wsf`0*dpicX zUCwS!Kqmz=yV?Z8mKKWj#hsS`$8&90?_2iT#$(Wa)m{q*yQn3kIzFw_FDbd(0#Gv*X+F#sw3Fd&Ad!Z2tQXX867=kc~5#CCHS!e zA!jGfeksmx_D!9NKyGn>oG8i<&P4dp?bS4eJ#2Tg#@v%KR|5JqvS4LsDBPZ=W5APz zDl;)>pO6UG`UJ7L@{)w?N%D|W&<#B7I=nwQ3~mgLN6-=WF{qIU`bZrG{pQblsvE-* z_~GdAKkK=Nqs?$@nC||qq56e)hUxw%9+l7R*6oG=d#mJ_VSHXDxbc@SsBd;G8$#gb zo)mN&>>_vXjQZ-uF#NkP$fz9z*$8z$LZ015-p!rEc2rB{qhH&oA*Y3Mocr_Q0coH0 ztKzi{hvC&#d$?Cu6PRVRis`jAJm?5_!wET#8qd^VyrdH-rZcEDa4pmszJY-*>IA&{ ztfB*QBv)rzNs$m z=?AC7{oquXA6zu}QP2y9$d9tiy1Aq%#-aL+gz5d&2zP>g!O9GTeWC`g^$v#LQvxKQ zyMf#+g4`s5T#zmpu4-_r#ru*Y5cmWNId$}(MH;T7x-k@iAEL9|#O=dTNpNSl!Fpqm zHtY5vT_^76sF%g><^PqbIUzsq_I*qP=3SmDP>W4YKA6&;!zF ziiR2S+_bxI4bn&69iXZ2@Sgtj>*?uh|ML0ZC7sGfBIuZ(OF?&l-L=DiBXRgn{Pqh3 z{JWPzAhlKyY-p{5T?lzjTNPCaA!j*yt3cS+LKW`%l=v@tlNHi)dJ+3E4VTK(2g7q5}BjH)_O@-j>H z-dSY5I{j_vl7#KfZvhW`aPW&4VthwjjZ+Xex1NsljMe;Ocw}l5Pvd3F8%A3AJ0Ox&D%4I!4506p$^$l3?37VV_qHk#IwqkeiEvT+Yn} z$TdVE2zm$uJ|3kHhimDv*y(8C#xOk-0euj!flSv2Xsp);U>-ln01t*D@cncTul3bt z7xdM}-s-Dw;rRZt0la5Cw11AN+Y4VjADs1d*)S5eTfQo*2Bu;_FUur$^G^K!XJuI^ zA66xpj;L=%xC!JAfIo(tqqy9b_?Q;TM_U@J-g0?n0_g46?Hl{X)|2qsy1kYT>kwoY zdTkwp-3B^=ds42W9tV6Lc)8mocPB1RrrCH|YxG`A*01j`6TIt1(TDUzO~^CJ{<&~p z^Mz;ycQ#VNoecA}+8`Gc%0NFEEDY3IItgJL z6v+x=JQ-z|Lavu_b1~!;bY2AZIC5VYTuq9GYkd=WH`m)Cr=XJ#NC(&Y>#SG%YOUA% z>fp{GBNPraU}vSdbUi~i>qfev`{k5`+VuS`W3Rm1l#)_bnCg5M8ktTL-298@gUlTf z%rDCZabMaXcLd!5cq&KGzrnElOWgnT1qOU%RW(dTz_StN9j~frE>6JCTDRU*cc}6f4jErNe(xw>DS)=VP?rF&G4su!0nJ&knV#ziX zuIR9nNsU9-)=*c!K2Xa*?~kDOLm}k9_a$QrTFcc84Oh_50CxwNFpAM}*D|yxuBBeZ0K1TjcjV#z1oh*~ z!JzjFf>})iAcuEw;^evQ?0~z4yf`;+NkCUvceKI|q=j&7$iD5q(;?wm)gyP1^;W>gHTtyAT>IcB8Rw~Fx_ueizcssVulLOt8=`=aeTPQ8NTayuY z|5+~2xErubI(JxqVCY-h&k&d&y}q76EKwFO-0!fSLI3&&1br!jJ{duulFKyNwHgU> z*Ad8t{n(Mz8N3c^qLbImSc#x7=W6y@12r;M{$9O*R#pD%@zh;_z)rqwWdCA_^22js zeittx?3kNd#BR<&S5VM@3qsia+4ho7$w2Q{!sVyZ1uMb;9Ldj9gDK=>by~rwM1(z< zRlb!F@~cwFo!ndkIR#y$$Pl;`6$Y2$BGBn$;A%<&{N6{ygRW!htwq>T=~_%{G}f!B zL|U#OT@QErnBh)_5w0a^@BE&m*>odSue+*?|IalIT{i3VS=v_BiA1aP@N)-SUhVLA z{B82Rz{iRN_U{Vs;1TsddpI=&DFpT7_!fX*O)krxj-0sITp=Pv}q|DFqm zPo58kZ(mYFP-Qg?s22#!TKZGCcfH0S&uuROTmrg#H&?lZoR?*1D^eAwOmg*ArYHLL zE_kuS#)JFb%sGbe?z0kriCfER15*dG-E;uR$~Fq}lsu7g9aS9o9>8CB$U3NnPF}0` zN&>s3*1(Mj`s!uk^Z2uxQ1W>$)c4ghVSc|}ick{BEeJU$xH$zqP$Y!?gi-;R-^0~Z ze|CXKPuG~sK`vRaa=lMD6#Sxvf-wkIS{N;aaSqu%ggikeWS2rN20fYxAtxfRhlj$Y z2vkfsMhVey)fA6zkI)myGtk-7QE9lJ%5*hZ!(C0n@ZPMkUQfoHKEnhLdndtllg@I@ zs5$$)Q8WL#QEU2LuleSt$<&00-?Pt(A5eAo7}7!fSTVHr*Dr*A+p%oWgfCwRx<=;8 zNkPn)Wdp6m$pr`h;srH2wHjeY;r_?Zso^sO{QH-J!M8#X7;6T?=thCCvb8^KL#X$@ zj^Q~1z7^rlY0n_fYhMiHF6YcWf}G^&kc&Bbc2mD^UA-$bG;N!G==}~G4?KEf;{kYM z!+s70Z)|j-4R*bWpp%;S##8g4iAavnKL+?x&?ghnvk-6uz0XPlyQTKvP2kmc4f|D! zluczl{USVW1K!!s2K20dCfH}?)kuFh8RTpIEr`I*9Gr?k9>5D>KdxZME@)NgZ~<&; z&C@mJ?h0cJfvkRga4ZyzM%epCvZ^<|2UBSp7fznw0pu|v$cZ9Fia>?&ii|+FkHY^I z3s(^Qt4SDrq-YuNDZG*q`XnuP#jLelF=`%NHEOw=Nd~x=YKFThX1Hd+&|j~;iJtkGsQC+*2$~ZbYeqP^JC{yOg+O^Ag zH)~TS;MKRwsJ{Pq8CA-E$^>Tqw@l!<|CLc&KPwXkAD0P&kIDpC|BE8~AD2*&ufS-FZ4q zfSk*t198f0Tbl>Akp1#@<9~_ewatf&Z{?qaH#Qxxys-%(-sA>!kqGFouG-@OxvYu< zznGApsP51#S_WII?<%fVzg1AP?hb6$Z0nzp{ zS66PX^&l^gbLZwF$fKm7hcktT!$qRdFka+#B>qh_K7R~c(Z<6S1BUu04FMhB6O@UU zQERxo6rHnh4>m9#+bN9IQ zOTLL&IpL$IMg2O2FV(jQSrgkNbW3=H-~&OmgDi*7j*0-4R~Y!$3g!aq zhCB+c7s7?t4~2v#VUXTB0!F?b2~*#Xg8BcBf~-%XVNa)6IMOK^_J0%%d)`#R?hZ=W z(Ln{eo%Md0`*hfJ zXycpPP7uJYZ)`?a7i-f2a0NdFef3^wGA++h#erW^*T>s+hh?FguY%hBS6gcj%pw<& z{H+M)N{GG&~dJqd6O_xPLZ81;+#YtYXN;pi?32$9&oT`8afUQW%pV z1G!w8YjM?YeAs@iPb6IHPe$ZJ7}OP>K4V}^nR zGu(*BNFde(SE7vg+y*!sriW9(S~wo4fg}DJI2Mp-Ii^am991M(k0}!11nM;EtY18w z^NELx-tlm$R~%eMUFnIhsYg7V?-~c^y2itqF7a^en<&`x?-1DbhCjlsM39vXZUXsh zGN8L~^AZifxrUsAPV)1dW=eW324TgWz42lD>)TJXe?8~W%{Q|TA-MawHxX{BUMEnC zk8Rpd^%jcEtG_ZM&l&co1-=0K@GPi}PF}m;YD=BrKr% z+g?rNr_nqO*`1tR#?6VsM4*R8FxYLtN5BO&DkvN-1QJEsrN#~*I2s=t4HrUU@Ofh4 zVniH*8_yJxz+H@p=PpFVaTmhlt>?qytrx-*EJPQ>5-gX9LgP`m4UV^742tJ22H;~= zC`BAx@QsBFKCy7VS1g?C5esLDy2rwquCZ{M*QuX~;@~t<7p5~rKQZ8c>l_0IKMRN5 zAE+V!b$<$cUONP|t&$DAi6L)aQpiPNy9>x|ptr!sH&?=z<|=x1Uyy<>gzX)24~4z8 z?KlFw-}>ejgjmpKwtaoWK3X7SJ0=#nfBimaI&&+$GChxJ8q?zfPr`iXP(P1?UaLRv z=tDO`%|UCU>4`k$X*Exqc>3*>zwhg(0{nJe4hbZXTM%x}0d$2O^y3Knadh@$-bw^s z38yjqzhdG;c$wV1#I@`?H3Qoa!oqhqZhk2?7|sRc$-^#Y@?VN+uvD;%F z{&x03@)#-s@;9@Y+c%xP4IxL^XNWXiP%#~V0Jy8pU<%vT9loAG&ea*TmQ=|-s5y8o zy>|QG;ppNfxezrR?&1$8RR}yOib>#Iy`+#wln`Pf`AxY*4dK##M_1>^*9s_zkaq8|wK32>@&0{r$(JRI*B3x_|A zg8d(c!QKx-Vb8lEu=6c7Z0`^V+g=O6jsVrpUnEjUx3?WdkPmQg5tv1KJNF>Gx@HfwUb2%yPdfssHt&b# zbGI?LXG&m~lLUO1?l0*K>ivwM4_srdOMXjz(AvY525(~3RnNc=5D3mrM&^H0`X!wU zP(C;lpn_uxKkIQBH$U!U2c0@Q!hW=e5`I&u;9`7$&DEdUf)zJ;`Bl8{EW*C8qY4gw ztAdltAPkT3J_3F0V}$Ha;^ZDf9#stF(Vj#87)~yR{PcHBr-(W;&`*Dd>YRw%L^#9i z^tXv{s#7BT_BE;_b_QSDtvwL{03ZNKL_t&~z=<#8?fL@sIUfH~1BXA3#qi#rLG31F z-_kJD0CsW&o*ToQT)Bkb>oTxcY37u@}n!sol+l)e`)1O#AC z?q|ikoRf2N0dhe{x-*>$Qo$t+t7oUqZW4k1I15(XjEVQ?-i7!G`+f?q#ZBJloj z!aESohX(Vm?qVuU8nQb;?jkSuBxElM-x;po<{?!4COp5#&_g z^6G^8hUw%tiA-Pf>d1@ie?_E$QysN%gohl%a#_d)&>7_ZWc~T+O-+=qknf$`KpX|+ z&74D{-`#x@!9HN6faf~G{!ZQ@I($SHmSmFsqrSdPPbn13&inhrZ+;5vF<*3dlADVm z7lD4XCogpNBVFylU)BWDQTJZxk)A5g@|A{@}ocO`w8aEdpqyY?ss>bfOin|cMx)- zw{z{l6VThQ+D!p$y?CcnM<6_gl)+L*$6TGlF4Ysl-(*@Y)E}P3)f>7F>I}_#SZnZ> zf75e$#y}UE0Qp)FA(-G{1JEr{|ge<2f%OML2xcOggW}= zCJHaa>Y{$*}K~%3;9pQKrRBELjIi$cGFF z=zyFjkYm`+kO1XZ@{0+ zGZVT?oA{DS$9;V}pY&B6Kd%ggquvVZQE!CZm7DY7`;l(E5cb1eFyHT~f-?yG6)g+l zuNq|_FJZ{;R2UP(wwG{w(l-e9eZ@Qbmnzu%8R}CNJ$B?rba`b6b#MxM1n=e{j~TKD zN+6d5U2c@!RmkpLjGI46$o{=ZQa5*kT*l4CkayHzPM!#R-VGD3&F%^0D1|k@r9W(G zuFT)skX__M&e198Z*M!CM8b9i+DhP+)4SUaQ;3@p&=KG^WKa&lew)IM%E8BBNAcR) zy{t2sz0Faxm|TKi4De0)yuZoR91^-)>i?1pb$`xU{8vN!xJ^6-cR{6UbflMJ;Wo11r+fKEdAt|}&k{m_rh?N6%%Fr?=P=7cGJJCM2|)K(!`XmP27P#h`%(6ihU_ZGkX;sX=_vc39kT!6LC7w3 zbD5C+)HfP9`biw@cwOxbcrl=pusy#;0BmWhiX`7HIX7q2@7nbug1-L!J*S8xTZk*m z>D_z;9Yc2lZS%SL&>S7R!}?!o2VmmK!rJc zAY4u)`TAolKlP+A24TMt9ty|01|r}}>gXht|MfEl`kqhxVfV+RBS7doVF%VT7|sPC z@Cf^*FjR=t$vpu52?yXjnM!-20XSE=xrZV9sjoG3|GWy3vbw_RLNYCYODwKKLCcaqW z*`A8_$9pPr&iMqwaRmKHcLd&*lm8@uPC|GFI&t=TA#mX90N8_Wz83-C`xyhA?*C5(d;Y6}-5+5`fVU5I3PR{Z;GBOr1)Vs% zEjO1=r9Cakd&xoWJjyOx7$X7vOfgRWSRp$CP9Q(}Ni6JqL*(L4kgJ$vA*ZA5mffua zA-{!xEcq@uyLlPHIUly~JRbVqo|DdyOZ49MBhY@$9tv*@1f9Y@cN?@@v77G{>>|Ia zN?@kIi}i%?lL5ZQle4)7V>UtkQ5&w*9lfqCJDGosquZKzRGtjfo#>%79qXaIbGny5 z9PWm&cT-yBK&OxkpcBY{P%-_eV!(IC$NWg zk?tW^6jvA%?ZU~6%ga3o**$UcVn*3Xh)#6u^ElY^UMS?XVe{jx#8uA8WgvIR%>y8} zx$1C!3!f^&cS`1)#zOaZwjZAV!Tz)GPW~Ya3C~^Wy&Xp||K3CA(aBsnfn5NeTzG;w zKJ5_lkI;4Lwh-T)N(w$k5sfEhTN{qcg$83b=e0}8e2G7qXLca2xF&Y@6W#p&b*#HG z=X6hh%y*UCp{@vgR~6^r=3SIFQMi8)>3ciu2RbpAKj9q!=fl--Ie{N_w?Q8AmdWd^(J8^D#y}#oKy|k1KbV2h- z2)`ZP+OnU*PMrU>b$gkk^BsXr9)j<>10bMpu{NB5ppV@$iIMWpgqQ|MH;!*AevH|Kar^LjNxn71`hSDZ2gFYB=5{ z3{HE8!#M=|fgR`P&^}C&yYZ+Cit; zNQXe67aU)#rvZNBNt>;W2eRg}#M}e^aGd%xJp$LCC zobD0DJ30gZf*+YqLy)Cz-Xn&E>W@2>=F-WD`1-i!(r!}YPu+e zu2dtd)TGN$pMsljZSJ2zzc0l>-tgSH^6&0CdiY=aP9nsIt?%z7FiW(JoA}(7)k9|C(1vR{TPAurs!fp|$Ln zV`cL4k}f|*ol%9s;qQVFRN~euXV7IJr~1Gy0{f14{bBn%Dk`$S^Me3%{y^CGi5d=d z425IghG7Q~0jIl1)8(fG@^ign;k#2>wO0L&i5R}z(>8Ug8Vm8Z(%3!HXeT`0RJu!_Wmab_J0xr zhrS4f!(WBLv9BZG__vX8;=3sL?T2VM`C|;6>Jp1UqkcsFz;p_A@;j#AzKwZ|^c+n$G-2RpB=%mpQ$lACX7p}>%xTv$SJYfE#L zXCXUj@9jAr`0qpKh*MiXK)Bs%r(Nw<>_VXPq18eJSdbL>Oycaj=mHnpF^T)PcntWP z&)RBfGGhlcnv`v#C-HwQYxcJ;);X( zz}FJczvA^Jkv|2U6~L(Iz}nHD0^zihKyQb=#0ype$+0N7sE&fu-eGp&Kj6W3<>mt9 z63}<>pi{lW#Gq%&f6Jf3zwLFq$W>pc-oVGa835bgV%kCUHrWR9$H@KUu>tgg5#(}E zdGs3W{MBN3ZEdG?zC4sCkhgK=&o>X7yPC(bGgQtqc@zA&3-)Y z{}a%KMt{VB2mbhvK@E?6??3$TcdA<_(S;8o=m$C}tq3?rA^)}*$Q?juknj6KkP3k( zQ)Nn8^>(0R079>Z)9Cc)gTwd|SAG#osEZO;aVSuvlP$Za0A&I8Nd=bq=_) z#8bRQisbN;EIS996luHLq%mjSecpFwsNpd@WGQjtd4NBLq9|!Z&TszD`@GM*vv`#H zzw9G6L_j}G=c~H;fnvyuK;OT5X)1AdtYN0m1s54((IWhv^pkc{bi;s?7T1#vEGA*a z^W|p=@bM#d6dYs=1-M4tTorU#-6fDKVVC40z>6!nx(M`4G2|tyx;pDw(e)^J)5F8^BHR5l~S9P6hNLH{UOg*9(wKz3hcH zS80A6Z}Bu*?64K3$L(lo@|4)^COi9-1UW0iUEcjh=E~VKX!-bQlz8|A{7w;gZ!cX2 zdP8omguD{yYLM?@B+%)qpx5Q*6(BDLU41%D27RV5UrsH!@3#?it2#rF-2^V8y`8x@quhzz?Z=zUenXwCz`OKPUgdZI-sH#k6!gBK#Qj z*zb%Vp^wH6(U-X+Rv~rN24GWs_#i-E4e}Dui`;xf0=>}7u8`CSgN472j9F3q(J7QU zb`mYqqN9^^9m^^~u3Y3%A>15;f#-g33WY~(VzqrQ0N*QB-fN7_D?wh-&AV>S&Ffm9 zeI49h49~|Ml!R`3IzxYqcm(=edW@d@Xi}c`SO6_GOMtA?~nE2p<60577Ba1vphV zFNM4mbjzv=bLB>{IVL#7!tb}C#G`hUef$)$d#2vB<;V}w}2hfFL$YnP#N!gW<534|4(&~yq_Zg+$ zc08SC5Wg20wW0XY6OigZg_b8oXUAi8BD#24s1-@MW2aI4&`C0HPNviLKx$tKc)cmR zD(H-gn=_&sar3hE*=wcjMW73?y+Llmu!Bmy-88AgpW~V#$6;7VFBzj5fH@%;!T_*R zq3SY%tM7h0OrXWxaI#uoQGkD;3iuUNBlXWWUkITG|J(7#Ix+F35BdJ$_;Joc-38(p__pmhasH$gE_f^!R3wM?8Qp1suJk% zyk2(oSJc(23V#jo%N*a6Z+<0$w!h#dbBLD98-F9kFH0za=N@|KYl(yGqYDS<-z|(W zA9Dw$(84H-S9|5d`zXGw0H+3eB{w%$0KHOUjA3;uO>BOl#e$n2zZUjo$VO83#NiVt z^~0x7cKkHTJuddLuS`6HR*pY|a^q)E{NO3b9Hzv%^W75kHr#erk)?ny@w1D?uIb}a4S^}e985VktEtZ1Fn7nTpa_i zR2BH!8gYFwrTW?XRt>D)_bFSAu`u!?#?Fpr&*4r^O>xn^s$o z5P@Gkpi*P>*2pk*CNjdf7Dm{7YRrxzBUTJ|K478wngzJhvAJ5xt_FE&b4-Of^P)<7 z!M$loDr578-F*F0b`>`V7pL>iW=6n8w=3JJOLEZ-yZE|7E{8Fe{SQm-U7UvJm7o_C zS(PgA@VZ`i47FeM0l+@e<^v9=%Og{`GfoH&GI@ZUFRUD6R&jIF8r{4SW=Pc=mtIG3@FbxOxf^ zMI}`MpE$qd{-!86yH{Ke8pDgBFQ^E7UjcmOiJ&6*V0^!mt%D8N~zGdB2$v>T>g1kgvhb8wOnk@^y9dN|1|{ zb^^Gk)r#CLtT5X|{l?iOR@J9BZNk%`8+cqxAF3&l{a4GOy`mb(#$-7;-&suC~Y!)w`Sv~lCcKe;+ z=$7yx{mbAWy|iFqh4|1EiVRxuYOjLNMDqYRUnsuSaS5s#0OZx&TmoFc z4h|CBt*qd|(`L<-f3AsrSbkr{RDGlCO;Wnnd+pjk7~>hYC36h`mta?_7WfMI@$2z+ zuPcf=-v|KI^8|VVejU)ukhi|<7T{~4<5Gxkz8Iv*{%UUinFk&(N-NbC4#w!1_1*Py*OH9=<@FTkloE?j8^ zz*{N7)5;bwAQw3ZPwY1@k?Qn9%3v1bra! zGig7yarx&QNO6g*902^*P(L#nFw!sh4fJvd;9fL?)0=ECMrVXviOO)OlBdgco%VmvW zEaV4$FIc=oJNYVe@v4c4xyEl$o$HCP?0oVR`{Cj3D`!iD_ zl^a^RjsSYW!Y!e}cv^H}QM_~#D3|;_kV$?$cJgEn4K2NkhOfSlOpBRM%<=3SrbKq4 zkNe;rX&*Lg)%7oStRCp)<52|Qhx=?>+&%1JUmrW|?_tk_duIXiPb0lHl3Y z;cXt^22p|woZO>hQ9w6^7IY_&ufvKQt<+x~t;`(gpJsQ^qw?5$_5Vhjr6Suc3b-=x zy5b7p`#A0%OY-Uy=0y6OIgzP)_PJ{a7w{nM1}&Eep3APlYp%m<-$z5s z@1ns(hKJwr0l@v{;9~YC;Nm*vpPtrS{7V^Ru2``mPH8y%pZ)r5*QCzd%^U~le-7K1 zz1?&SQujXr+&2O}Rut>C6NUG{n17EI1wj68EAoNnyCECsf|CNMnwz_^z{%a<Pe zTfLsJda~Ty%f5YyXUpW|=UxwV{;=ob>c!Qub0_cCD~|w9sV&%7y)*gGY}033PUJyF1|@&-Xm$4l;RuZBgHZ^^Xp{ z+{ZHucqb<>hta;c)?eLo`ql%_Sv^y_+LK%Nn!VZS*RxMw4););6Ba({lj-H4&^-@J nFKxZx#I3spJJEgH^?(R--mp~v11iR#%^VzxI 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 Mr7T$`ZW8)`0NiC?K>z>% diff --git a/fusion_authorizer_portal/__manifest__.py b/fusion_authorizer_portal/__manifest__.py index 2e3431b7..6b732bc8 100644 --- a/fusion_authorizer_portal/__manifest__.py +++ b/fusion_authorizer_portal/__manifest__.py @@ -53,6 +53,7 @@ This module provides external portal access for: 'appointment', 'knowledge', 'fusion_claims', + 'fusion_tasks', ], 'data': [ # Security @@ -80,6 +81,7 @@ This module provides external portal access for: 'views/portal_book_assessment.xml', 'views/portal_repair_form.xml', 'views/portal_schedule.xml', + 'views/portal_page11_sign_templates.xml', ], 'assets': { 'web.assets_backend': [ diff --git a/fusion_authorizer_portal/controllers/__init__.py b/fusion_authorizer_portal/controllers/__init__.py index 92e669f9..c8d40284 100644 --- a/fusion_authorizer_portal/controllers/__init__.py +++ b/fusion_authorizer_portal/controllers/__init__.py @@ -4,4 +4,5 @@ from . import portal_main from . import portal_assessment from . import pdf_editor from . import portal_repair -from . import portal_schedule \ No newline at end of file +from . import portal_schedule +from . import portal_page11_sign \ No newline at end of file diff --git a/fusion_authorizer_portal/controllers/portal_main.py b/fusion_authorizer_portal/controllers/portal_main.py index 0e62b4a0..cb6c9276 100644 --- a/fusion_authorizer_portal/controllers/portal_main.py +++ b/fusion_authorizer_portal/controllers/portal_main.py @@ -1501,6 +1501,13 @@ class AuthorizerPortal(CustomerPortal): accuracy=accuracy, ) + # Push location to remote instances for cross-instance visibility + try: + request.env['fusion.task.sync.config'].sudo()._push_technician_location( + user.id, latitude, longitude, accuracy or 0) + except Exception: + pass # Non-blocking: sync failure should not block task action + location_ctx = { 'action_latitude': latitude, 'action_longitude': longitude, @@ -1870,6 +1877,25 @@ class AuthorizerPortal(CustomerPortal): _logger.warning(f"Location log error: {e}") return {'success': False} + @http.route('/my/technician/clock-status', type='json', auth='user', website=True) + def technician_clock_status(self, **kw): + """Check if the current technician is clocked in. + + Returns {clocked_in: bool} so the JS background logger can decide + whether to track location. Replaces the fixed 9-6 hour window. + """ + if not self._check_technician_access(): + return {'clocked_in': False} + try: + emp = request.env['hr.employee'].sudo().search([ + ('user_id', '=', request.env.user.id), + ], limit=1) + if emp and emp.attendance_state == 'checked_in': + return {'clocked_in': True} + except Exception: + pass + return {'clocked_in': False} + @http.route('/my/technician/settings/start-location', type='json', auth='user', website=True) def technician_save_start_location(self, address='', **kw): """Save the technician's personal start location.""" diff --git a/fusion_authorizer_portal/controllers/portal_page11_sign.py b/fusion_authorizer_portal/controllers/portal_page11_sign.py new file mode 100644 index 00000000..ab1deddd --- /dev/null +++ b/fusion_authorizer_portal/controllers/portal_page11_sign.py @@ -0,0 +1,206 @@ +# -*- coding: utf-8 -*- +# Copyright 2024-2026 Nexa Systems Inc. +# License OPL-1 (Odoo Proprietary License v1.0) + +import base64 +import json +import logging + +from odoo import http, fields, _ +from odoo.http import request + +_logger = logging.getLogger(__name__) + + +class Page11PublicSignController(http.Controller): + + def _get_sign_request(self, token): + """Look up and validate a signing request by token.""" + req = request.env['fusion.page11.sign.request'].sudo().search([ + ('access_token', '=', token), + ], limit=1) + if not req: + return None, 'not_found' + if req.state == 'signed': + return req, 'already_signed' + if req.state == 'cancelled': + return req, 'cancelled' + if req.state == 'expired' or ( + req.expiry_date and req.expiry_date < fields.Datetime.now() + ): + if req.state != 'expired': + req.state = 'expired' + return req, 'expired' + return req, 'ok' + + @http.route('/page11/sign/', type='http', auth='public', + website=True, sitemap=False) + def page11_sign_form(self, token, **kw): + """Display the Page 11 signing form.""" + sign_req, status = self._get_sign_request(token) + + if status == 'not_found': + return request.render( + 'fusion_authorizer_portal.portal_page11_sign_invalid', {} + ) + + if status in ('expired', 'cancelled'): + return request.render( + 'fusion_authorizer_portal.portal_page11_sign_expired', + {'sign_request': sign_req}, + ) + + if status == 'already_signed': + return request.render( + 'fusion_authorizer_portal.portal_page11_sign_success', + {'sign_request': sign_req, 'token': token}, + ) + + order = sign_req.sale_order_id + partner = order.partner_id + + assessment = request.env['fusion.assessment'].sudo().search([ + ('sale_order_id', '=', order.id), + ], limit=1, order='create_date desc') + + ICP = request.env['ir.config_parameter'].sudo() + google_maps_api_key = ICP.get_param('fusion_claims.google_maps_api_key', '') + + client_first_name = '' + client_last_name = '' + client_middle_name = '' + client_health_card = '' + client_health_card_version = '' + + if assessment: + client_first_name = assessment.client_first_name or '' + client_last_name = assessment.client_last_name or '' + client_middle_name = assessment.client_middle_name or '' + client_health_card = assessment.client_health_card or '' + client_health_card_version = assessment.client_health_card_version or '' + else: + first, last = order._get_client_name_parts() + client_first_name = first + client_last_name = last + + values = { + 'sign_request': sign_req, + 'order': order, + 'partner': partner, + 'assessment': assessment, + 'company': order.company_id, + 'token': token, + 'signer_type': sign_req.signer_type, + 'is_agent': sign_req.signer_type != 'client', + 'google_maps_api_key': google_maps_api_key, + 'client_first_name': client_first_name, + 'client_last_name': client_last_name, + 'client_middle_name': client_middle_name, + 'client_health_card': client_health_card, + 'client_health_card_version': client_health_card_version, + } + return request.render( + 'fusion_authorizer_portal.portal_page11_public_sign', values, + ) + + @http.route('/page11/sign//submit', type='http', + auth='public', methods=['POST'], website=True, + csrf=True, sitemap=False) + def page11_sign_submit(self, token, **post): + """Process the submitted Page 11 signature.""" + sign_req, status = self._get_sign_request(token) + + if status != 'ok': + return request.redirect(f'/page11/sign/{token}') + + signature_data = post.get('signature_data', '') + if not signature_data: + return request.redirect(f'/page11/sign/{token}?error=no_signature') + + if signature_data.startswith('data:image'): + signature_data = signature_data.split(',', 1)[1] + + consent_accepted = post.get('consent_declaration', '') == 'on' + if not consent_accepted: + return request.redirect(f'/page11/sign/{token}?error=no_consent') + + signer_name = post.get('signer_name', sign_req.signer_name or '') + chosen_signer_type = post.get('signer_type', sign_req.signer_type or 'client') + consent_signed_by = 'applicant' if chosen_signer_type == 'client' else 'agent' + + signer_type_labels = { + 'spouse': 'Spouse', 'parent': 'Parent', + 'legal_guardian': 'Legal Guardian', + 'poa': 'Power of Attorney', + 'public_trustee': 'Public Trustee', + } + + vals = { + 'signature_data': signature_data, + 'signer_name': signer_name, + 'signer_type': chosen_signer_type, + 'consent_declaration_accepted': True, + 'consent_signed_by': consent_signed_by, + 'signed_date': fields.Datetime.now(), + 'state': 'signed', + 'client_first_name': post.get('client_first_name', ''), + 'client_last_name': post.get('client_last_name', ''), + 'client_health_card': post.get('client_health_card', ''), + 'client_health_card_version': post.get('client_health_card_version', ''), + } + + if consent_signed_by == 'agent': + vals.update({ + 'agent_first_name': post.get('agent_first_name', ''), + 'agent_last_name': post.get('agent_last_name', ''), + 'agent_middle_initial': post.get('agent_middle_initial', ''), + 'agent_phone': post.get('agent_phone', ''), + 'agent_unit': post.get('agent_unit', ''), + 'agent_street_number': post.get('agent_street_number', ''), + 'agent_street': post.get('agent_street', ''), + 'agent_city': post.get('agent_city', ''), + 'agent_province': post.get('agent_province', 'Ontario'), + 'agent_postal_code': post.get('agent_postal_code', ''), + 'signer_relationship': signer_type_labels.get(chosen_signer_type, chosen_signer_type), + }) + + sign_req.sudo().write(vals) + + try: + sign_req.sudo()._generate_signed_pdf() + except Exception as e: + _logger.error("PDF generation failed for sign request %s: %s", sign_req.id, e) + + try: + sign_req.sudo()._update_sale_order() + except Exception as e: + _logger.error("Sale order update failed for sign request %s: %s", sign_req.id, e) + + return request.render( + 'fusion_authorizer_portal.portal_page11_sign_success', + {'sign_request': sign_req, 'token': token}, + ) + + @http.route('/page11/sign//download', type='http', + auth='public', website=True, sitemap=False) + def page11_download_pdf(self, token, **kw): + """Download the signed Page 11 PDF.""" + sign_req = request.env['fusion.page11.sign.request'].sudo().search([ + ('access_token', '=', token), + ('state', '=', 'signed'), + ], limit=1) + + if not sign_req or not sign_req.signed_pdf: + return request.redirect(f'/page11/sign/{token}') + + pdf_content = base64.b64decode(sign_req.signed_pdf) + filename = sign_req.signed_pdf_filename or 'Page11_Signed.pdf' + + return request.make_response( + pdf_content, + headers=[ + ('Content-Type', 'application/pdf'), + ('Content-Disposition', f'attachment; filename="{filename}"'), + ('Content-Length', str(len(pdf_content))), + ], + ) diff --git a/fusion_authorizer_portal/models/res_partner.py b/fusion_authorizer_portal/models/res_partner.py index 5dfc571e..82342f5c 100644 --- a/fusion_authorizer_portal/models/res_partner.py +++ b/fusion_authorizer_portal/models/res_partner.py @@ -160,7 +160,7 @@ class ResPartner(models.Model): if self.is_technician_portal: # Add Field Technician group - g = self.env.ref('fusion_claims.group_field_technician', raise_if_not_found=False) + g = self.env.ref('fusion_tasks.group_field_technician', raise_if_not_found=False) if g and g not in internal_user.group_ids: internal_user.sudo().write({'group_ids': [(4, g.id)]}) added.append('Field Technician') diff --git a/fusion_authorizer_portal/static/src/js/technician_location.js b/fusion_authorizer_portal/static/src/js/technician_location.js index 2464b4c0..648c2be0 100644 --- a/fusion_authorizer_portal/static/src/js/technician_location.js +++ b/fusion_authorizer_portal/static/src/js/technician_location.js @@ -1,7 +1,7 @@ /** * Technician Location Services * - * 1. Background logger -- logs GPS every 5 minutes during working hours. + * 1. Background logger -- logs GPS every 5 minutes while the tech is clocked in. * 2. getLocation() -- returns a Promise that resolves to {latitude, longitude, accuracy}. * If the user denies permission or the request times out a blocking modal is shown * and the promise is rejected. @@ -11,9 +11,10 @@ 'use strict'; var INTERVAL_MS = 5 * 60 * 1000; - var STORE_OPEN_HOUR = 9; - var STORE_CLOSE_HOUR = 18; + var CLOCK_CHECK_MS = 60 * 1000; // check clock status every 60s var locationTimer = null; + var clockCheckTimer = null; + var isClockedIn = false; var permissionDenied = false; // ===================================================================== @@ -137,21 +138,38 @@ window.openGoogleMapsNav = openGoogleMapsNav; // ===================================================================== - // BACKGROUND LOGGER + // BACKGROUND LOGGER (tied to clock-in / clock-out status) // ===================================================================== - function isWorkingHours() { - var now = new Date(); - var hour = now.getHours(); - return hour >= STORE_OPEN_HOUR && hour < STORE_CLOSE_HOUR; - } - function isTechnicianPortal() { return window.location.pathname.indexOf('/my/technician') !== -1; } + function checkClockStatus() { + fetch('/my/technician/clock-status', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ jsonrpc: '2.0', method: 'call', params: {} }), + }) + .then(function (r) { return r.json(); }) + .then(function (data) { + var wasClocked = isClockedIn; + isClockedIn = !!(data.result && data.result.clocked_in); + if (isClockedIn && !wasClocked) { + // Just clocked in — start tracking immediately + startLocationTimer(); + } else if (!isClockedIn && wasClocked) { + // Just clocked out — stop tracking + stopLocationTimer(); + } + }) + .catch(function () { + /* network error: keep current state */ + }); + } + function logLocation() { - if (!isWorkingHours() || document.hidden || !navigator.geolocation) return; + if (!isClockedIn || document.hidden || !navigator.geolocation) return; getLocation().then(function (coords) { fetch('/my/technician/location/log', { @@ -181,16 +199,32 @@ }); } + function startLocationTimer() { + if (locationTimer) return; // already running + logLocation(); // immediate first log + locationTimer = setInterval(logLocation, INTERVAL_MS); + } + + function stopLocationTimer() { + if (locationTimer) { + clearInterval(locationTimer); + locationTimer = null; + } + } + function startLocationLogging() { if (!isTechnicianPortal()) return; - logLocation(); - locationTimer = setInterval(logLocation, INTERVAL_MS); + + // Check clock status immediately, then every 60s + checkClockStatus(); + clockCheckTimer = setInterval(checkClockStatus, CLOCK_CHECK_MS); + + // Pause/resume on tab visibility document.addEventListener('visibilitychange', function () { if (document.hidden) { - if (locationTimer) { clearInterval(locationTimer); locationTimer = null; } - } else { - logLocation(); - if (!locationTimer) { locationTimer = setInterval(logLocation, INTERVAL_MS); } + stopLocationTimer(); + } else if (isClockedIn) { + startLocationTimer(); } }); } diff --git a/fusion_authorizer_portal/utils/pdf_filler.py b/fusion_authorizer_portal/utils/pdf_filler.py index feaca15b..f87283c0 100644 --- a/fusion_authorizer_portal/utils/pdf_filler.py +++ b/fusion_authorizer_portal/utils/pdf_filler.py @@ -51,19 +51,25 @@ class PDFTemplateFiller: for page_idx in range(num_pages): page = original.getPage(page_idx) page_num = page_idx + 1 # 1-based page number - page_w = float(page.mediaBox.getWidth()) - page_h = float(page.mediaBox.getHeight()) + mb = page.mediaBox + page_w = float(mb.getWidth()) + page_h = float(mb.getHeight()) + origin_x = float(mb.getLowerLeft_x()) + origin_y = float(mb.getLowerLeft_y()) fields = fields_by_page.get(page_num, []) if fields: - # Create a transparent overlay for this page overlay_buf = BytesIO() - c = canvas.Canvas(overlay_buf, pagesize=(page_w, page_h)) + c = canvas.Canvas( + overlay_buf, + pagesize=(origin_x + page_w, origin_y + page_h), + ) for field in fields: PDFTemplateFiller._draw_field( - c, field, context, signatures, page_w, page_h + c, field, context, signatures, + page_w, page_h, origin_x, origin_y, ) c.save() @@ -80,7 +86,8 @@ class PDFTemplateFiller: return result.getvalue() @staticmethod - def _draw_field(c, field, context, signatures, page_w, page_h): + def _draw_field(c, field, context, signatures, + page_w, page_h, origin_x=0, origin_y=0): """Draw a single field onto the reportlab canvas. Args: @@ -90,6 +97,8 @@ class PDFTemplateFiller: signatures: dict of {field_key: binary} for signature fields page_w: page width in PDF points page_h: page height in PDF points + origin_x: mediaBox lower-left X (accounts for non-zero origin) + origin_y: mediaBox lower-left Y (accounts for non-zero origin) """ field_key = field.get('field_key') or field.get('field_name', '') field_type = field.get('field_type', 'text') @@ -98,11 +107,12 @@ class PDFTemplateFiller: if not value and field_type != 'signature': return - # Convert percentage positions to absolute PDF coordinates - # pos_x/pos_y are 0.0-1.0 ratios from top-left - # PDF coordinate system: origin at bottom-left, Y goes up - abs_x = field['pos_x'] * page_w - abs_y = page_h - (field['pos_y'] * page_h) # flip Y axis + # Convert percentage positions to absolute PDF coordinates. + # pos_x/pos_y are 0.0-1.0 ratios from top-left of the visible page. + # PDF coordinate system: origin at bottom-left, Y goes up. + # origin_x/origin_y account for PDFs whose mediaBox doesn't start at (0,0). + abs_x = field['pos_x'] * page_w + origin_x + abs_y = (origin_y + page_h) - (field['pos_y'] * page_h) font_name = field.get('font_name', 'Helvetica') font_size = field.get('font_size', 10.0) @@ -124,10 +134,22 @@ class PDFTemplateFiller: elif field_type == 'checkbox': if value: - c.setFont('ZapfDingbats', font_size) + # Draw a cross mark (✗) that fills the checkbox box + cb_w = field.get('width', 0.015) * page_w cb_h = field.get('height', 0.018) * page_h - cb_y = abs_y - cb_h + (cb_h - font_size) / 2 - c.drawString(abs_x, cb_y, '4') + # Inset slightly so the cross doesn't touch the box edges + pad = min(cb_w, cb_h) * 0.15 + x1 = abs_x + pad + y1 = abs_y - cb_h + pad + x2 = abs_x + cb_w - pad + y2 = abs_y - pad + c.saveState() + c.setStrokeColorRGB(0, 0, 0) + c.setLineWidth(1.5) + # Draw X (two diagonal lines) + c.line(x1, y1, x2, y2) + c.line(x1, y2, x2, y1) + c.restoreState() elif field_type == 'signature': sig_data = signatures.get(field_key) diff --git a/fusion_authorizer_portal/views/portal_page11_sign_templates.xml b/fusion_authorizer_portal/views/portal_page11_sign_templates.xml new file mode 100644 index 00000000..3e4fa9c6 --- /dev/null +++ b/fusion_authorizer_portal/views/portal_page11_sign_templates.xml @@ -0,0 +1,413 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/fusion_authorizer_portal/views/portal_technician_templates.xml b/fusion_authorizer_portal/views/portal_technician_templates.xml index 072891ba..58ce9bee 100644 --- a/fusion_authorizer_portal/views/portal_technician_templates.xml +++ b/fusion_authorizer_portal/views/portal_technician_templates.xml @@ -1594,7 +1594,7 @@

Technician Locations

- + View History
diff --git a/fusion_claims/__manifest__.py b/fusion_claims/__manifest__.py index 27f5d439..d8bc3c7f 100644 --- a/fusion_claims/__manifest__.py +++ b/fusion_claims/__manifest__.py @@ -84,6 +84,7 @@ 'calendar', 'ai', 'fusion_ringcentral', + 'fusion_tasks', ], 'external_dependencies': { 'python': ['pdf2image', 'PIL'], @@ -128,6 +129,7 @@ 'wizard/odsp_pre_approved_wizard_views.xml', 'wizard/odsp_ready_delivery_wizard_views.xml', 'wizard/ltc_repair_create_so_wizard_views.xml', + 'wizard/send_page11_wizard_views.xml', 'views/res_partner_views.xml', 'views/pdf_template_inherit_views.xml', 'views/dashboard_views.xml', @@ -140,9 +142,8 @@ 'views/adp_claims_views.xml', 'views/submission_history_views.xml', 'views/fusion_loaner_views.xml', + 'views/page11_sign_request_views.xml', 'views/technician_task_views.xml', - 'views/task_sync_views.xml', - 'views/technician_location_views.xml', 'report/report_actions.xml', 'report/report_templates.xml', 'report/sale_report_portrait.xml', @@ -168,7 +169,6 @@ 'assets': { 'web.assets_backend': [ 'fusion_claims/static/src/scss/fusion_claims.scss', - 'fusion_claims/static/src/css/fusion_task_map_view.scss', 'fusion_claims/static/src/js/chatter_resize.js', 'fusion_claims/static/src/js/document_preview.js', 'fusion_claims/static/src/js/preview_button_widget.js', @@ -177,11 +177,9 @@ '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/fusion_task_map_view.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', - 'fusion_claims/static/src/xml/fusion_task_map_view.xml', ], }, 'images': ['static/description/icon.png'], diff --git a/fusion_claims/__pycache__/__init__.cpython-312.pyc b/fusion_claims/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..625fe6dd77543136de1406f677c7cc6092e50e3a GIT binary patch literal 524 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 f_FH - - - - Sync to Invoices - - - form,list - code - -if records: - # Filter to only ADP sales - adp_records = records.filtered(lambda r: r.x_fc_is_adp_sale and r.state == 'sale') - if adp_records: - action = adp_records.action_sync_adp_fields() - else: - action = { - 'type': 'ir.actions.client', - 'tag': 'display_notification', - 'params': { - 'title': 'No ADP Sales', - 'message': 'Selected orders are not confirmed ADP sales.', - 'type': 'warning', - 'sticky': False, - } - } - - + diff --git a/fusion_claims/data/ir_config_parameter_data.xml b/fusion_claims/data/ir_config_parameter_data.xml index 100f86d2..05090b2a 100644 --- a/fusion_claims/data/ir_config_parameter_data.xml +++ b/fusion_claims/data/ir_config_parameter_data.xml @@ -45,26 +45,6 @@ True - - - fusion_claims.store_open_hour - 9.0 - - - fusion_claims.store_close_hour - 18.0 - - - - - fusion_claims.push_enabled - False - - - fusion_claims.push_advance_minutes - 30 - - fusion_claims.field_sale_type @@ -147,12 +127,6 @@ 1-888-222-5099 - - - fusion_claims.sync_instance_id - - - fusion_claims.ltc_form_password diff --git a/fusion_claims/data/ir_cron_data.xml b/fusion_claims/data/ir_cron_data.xml index 819b6794..b0c835f7 100644 --- a/fusion_claims/data/ir_cron_data.xml +++ b/fusion_claims/data/ir_cron_data.xml @@ -6,16 +6,6 @@ --> - - - Fusion Claims: Sync ADP Fields - - code - model._cron_sync_adp_fields() - 1 - hours - - Fusion Claims: Renew Delivery Reminders @@ -134,50 +124,17 @@ - - - Fusion Claims: Calculate Technician Travel Times - + + + Fusion Claims: Expire Page 11 Signing Requests + code - model._cron_calculate_travel_times() + model._cron_expire_requests() 1 days True - + - - - Fusion Claims: Technician Push Notifications - - code - model._cron_send_push_notifications() - 15 - minutes - True - - - - - Fusion Claims: Sync Remote Tasks (Pull) - - code - model._cron_pull_remote_tasks() - 2 - minutes - True - - - - - Fusion Claims: Cleanup Old Shadow Tasks - - code - model._cron_cleanup_old_shadows() - 1 - days - True - - diff --git a/fusion_claims/data/mail_template_data.xml b/fusion_claims/data/mail_template_data.xml index 572b87d8..e17efdf7 100644 --- a/fusion_claims/data/mail_template_data.xml +++ b/fusion_claims/data/mail_template_data.xml @@ -20,34 +20,34 @@ {{ (object.user_id.email_formatted or object.company_id.email_formatted or user.email_formatted) }} {{ object.partner_id.id }} -
+
-
+

-

ADP Quotation

-

- Please find attached your quotation . +

ADP Quotation

+

+ Please find attached your quotation .

- - - + + + - + - - + + - +
Quotation Details
Reference
Date
Quotation Details
Reference
Date
Authorizer
Authorizer
Client Portion (25%)
ADP Portion (75%)
Client Portion (25%)
ADP Portion (75%)
Total
Total
-
-

Attached: ADP Quotation (PDF)

+
+

Attached: ADP Quotation (PDF)

-
-

Please review the attached quotation. If you have any questions or need assistance, do not hesitate to contact us.

+
+

Please review the attached quotation. If you have any questions or need assistance, do not hesitate to contact us.

--
@@ -70,34 +70,34 @@ {{ (object.user_id.email_formatted or object.company_id.email_formatted or user.email_formatted) }} {{ object.partner_id.id }} -
+
-
+

-

Order Confirmed

-

- Your ADP sales order has been confirmed. +

Order Confirmed

+

+ Your ADP sales order has been confirmed.

- - - + + + - + - - + + - +
Order Details
Reference
Date
Order Details
Reference
Date
Authorizer
Authorizer
Client Portion (25%)
ADP Portion (75%)
Client Portion (25%)
ADP Portion (75%)
Total
Total
-
-

Attached: Sales Order Confirmation (PDF)

+
+

Attached: Sales Order Confirmation (PDF)

-
-

Your order is being processed. We will keep you updated on the delivery status and any updates from the Assistive Devices Program.

+
+

Your order is being processed. We will keep you updated on the delivery status and any updates from the Assistive Devices Program.

--
@@ -120,42 +120,42 @@ {{ (object.invoice_user_id.email_formatted or object.company_id.email_formatted or user.email_formatted) }} {{ object.partner_id.id }} -
+
-
+

-

Invoice

-

- Please find attached your invoice . +

Invoice

+

+ Please find attached your invoice .

- - - + + + - + - - +
Invoice Details
Invoice
Date
Invoice Details
Invoice
Date
Due Date
Due Date
Type +
Type Client Portion ADP Portion
Amount Due
Amount Due
-
-

Attached: Invoice (PDF)

+
+

Attached: Invoice (PDF)

-
-

This invoice represents your client portion for the ADP-funded equipment. The remaining amount will be billed directly to the Assistive Devices Program.

+
+

This invoice represents your client portion for the ADP-funded equipment. The remaining amount will be billed directly to the Assistive Devices Program.

-
-

Please review the attached invoice and process payment at your earliest convenience. Contact us if you have any questions.

+
+

Please review the attached invoice and process payment at your earliest convenience. Contact us if you have any questions.

diff --git a/fusion_claims/models/__init__.py b/fusion_claims/models/__init__.py index 89cae4cd..29e77727 100644 --- a/fusion_claims/models/__init__.py +++ b/fusion_claims/models/__init__.py @@ -3,7 +3,6 @@ # License OPL-1 (Odoo Proprietary License v1.0) # Part of the Fusion Claim Assistant product family. -from . import email_builder_mixin from . import adp_posting_schedule from . import res_company from . import res_config_settings @@ -27,12 +26,9 @@ from . import client_chat from . import ai_agent_ext from . import dashboard from . import res_partner -from . import res_users from . import technician_task -from . import task_sync -from . import technician_location -from . import push_subscription from . import ltc_facility from . import ltc_repair from . import ltc_cleanup -from . import ltc_form_submission \ No newline at end of file +from . import ltc_form_submission +from . import page11_sign_request \ No newline at end of file diff --git a/fusion_claims/models/__pycache__/__init__.cpython-312.pyc b/fusion_claims/models/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2d5b176daefc8ebdc04df5401c857fc2e2508d4e GIT binary patch literal 1285 zcmZ9L$!;7s5Qf$;SxSX`mxp4~H z6u&R_G~ICr4kOPk-8i*)qr#HzEN>}qwJyul#yZfhB|2zK(fpXDs?^T&Qd@_Q2WtwSgAWq}Z8K zTWV-g6sJb#`x4=Ziwl>j=S`q=i4S=5MtOUmqxZw!`0(y}`y^ZqXUO3q3wK61CtMKf zga&~wylWBKgbtxg=n?va0bxiO5ypfGVM>@0=7a@dNmvoqgbiU!xCB0nAE5a6#qn6C z+GhTBhLe~2*Gk#k2Bm&4AD`+sNaCcwb+6DscftPwe6K}O^iNwvzg1#UiK|LLUR7dS qiA^Qu%w;7mS*|Pbf=5xauEa|&Ko<&T+>RDFx@fAe;>x|mD}DkZxMc|d literal 0 HcmV?d00001 diff --git a/fusion_claims/models/__pycache__/account_move.cpython-312.pyc b/fusion_claims/models/__pycache__/account_move.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bdc52c6b427cb6d2821f47f284a79fe64f1e6641 GIT binary patch literal 49579 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 s+9z3MGYzq(zt()U`Ntf4U{(9S0cuO^ng9R* literal 0 HcmV?d00001 diff --git a/fusion_claims/models/__pycache__/account_move_line.cpython-312.pyc b/fusion_claims/models/__pycache__/account_move_line.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..322243ff2ac9b337c56e707a005ddada5de38329 GIT binary patch literal 8221 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 UThh#)TA$sFZ^ZwT!9Hd1KPa0$=Kufz literal 0 HcmV?d00001 diff --git a/fusion_claims/models/__pycache__/account_payment.cpython-312.pyc b/fusion_claims/models/__pycache__/account_payment.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..62fdca9d81fcd3fa195195b8d904217b7375276e GIT binary patch literal 847 zcmZ`%&1(}u6rb7MY|?x*Xf0Z$Fko9Q_>neCPamQ$K&$1$ZHr-VjA z+5w{x5z_Q}%wK>2xIX!vijDvUE+oJ;2y{&YQ0p+~{4W3~7Q`ghdFlE@`@fYoDW6x) z)U;aM@?goS%H=)ZPy0#s+8e|)$%ajD=C^u9;AY$71ikV^h90BmtjjVnu@rvTE@C8) zp)^2QNRh9r`+^b_q#PAZ&_nIysUjj!nnVLf??hyrC0%I=Hl)%DY1A9m3pS{eW^}l_ zM+nPUns^aPR3Pu1g-k5k(^j|j2xZ($gy-v0#A!e|O?>J&247Nqc}=N~Q;`*n6ECJ1 z%PPj|Li&-m>lnZ9dr^_8V3vfGvyAIerPU5SE>}L_z{h$D9I18SAnkK`BM%l+VNLHV zxKbGK=RwdHiV5~3kHunVcJ({OdU1hh^#;7Gs&l1jiYH1PfpHUkeEH+<=JD3)_R03R zd4Jqk9yi`h%ho;nyLJ1r4%Rk~?bF&xZQNWRH}A=Wgz$GAz|9M=F}3T^{`_`y@a5na IP-YJQ3-bBh3jhEB literal 0 HcmV?d00001 diff --git a/fusion_claims/models/__pycache__/account_payment_method_line.cpython-312.pyc b/fusion_claims/models/__pycache__/account_payment_method_line.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2575b2f777d4e7a6dd84790f058e4eff8a89deeb GIT binary patch literal 726 zcmYjP&1=*^6rV}5leKi)Di-`em>xVVl!) zI&icB;1F@du|heHaPCDOMjpC{xOafKFYpeT1)css`z?-wNigjFbjHxLBrmy8#*$PD z#Z7X09-)(h*TH*;1d1?6k;if5dq@O3jnw}G5D4Ht55DwHijfH!hW5hEBq{5ndK6D` zQB<3v%1ZuF7Gm#m+%ltaOO5h|8!1Pge=K%usfD4pW6kLuxh*SmckjuAlqQ)-o(jH7 zt4z?^2u<_aR1}f}bUqb>d5!WWhL&mLOkA4hnJ6Gc7Te&HhIW-{S9$1LVk!-^4Y^3; zT2(g4gc@%_BYnn-I2VlBImTdgwQ_i#vE4dW9n)vB$b^=a4q!Moyj7M;#D%^1f~5)5 zT}#YqVXeGR=*W%n?|KTd%7P^-mbqDLuV$^A5bJcZRwr{48jUB~U3Iga0bo{OJ3!OL z)tC3b)6skKapA+lbn)tRX?Z$O$6>HSz6DqG*;&liuxEpkm!)>EqZQoSbWftqyX3sh s>2rW=|3=&MhF%5}!)GqR_RGf@|CvXa9+ME0*U#SVzuEtd05-Az0IPw-hX4Qo literal 0 HcmV?d00001 diff --git a/fusion_claims/models/__pycache__/adp_application_data.cpython-312.pyc b/fusion_claims/models/__pycache__/adp_application_data.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cc1757d2dcb496c959c2459320f4adc2034b8500 GIT binary patch literal 43659 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 Rj9JIITXWyAk$0NM{|h6dJ#hd4 literal 0 HcmV?d00001 diff --git a/fusion_claims/models/__pycache__/adp_posting_schedule.cpython-312.pyc b/fusion_claims/models/__pycache__/adp_posting_schedule.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..28ea0ad9fb363dd3dd406f160833d3cfa656898a GIT binary patch literal 11026 zcmd^FU2GdycAnv%_$$gLCCVZ#jcv&?9a)xT);~%dTbAssH@4x}PPY@1M_ zsps7J;YcExE!reSI{+{5+Lze@mLpSjH_G>$sK0du!U3v5(s`j&TReSQvqsZq}Jp{{`oLR=pc{S(rB% z-u52D+Xee{uu7xX?prlVPo9lBp5e{Ks70~y2}w{~QYs_xLRv~dlOvOZs;F2KGpVFL z9RD>A%!_}5r!K*q##x>jxA5$^mA8!Bc-5gxBxH^>*xeRgy!Yp@9;8NKsfutmX=dR_sL^jV+ z;BnGaLgKQ5z>A!eGnfjLiTSyRToK0c94{pJbSf*DAEzya)7QeC&rPP1LzK$_PVeOt zd6CN{le2^q-W5omyU5X|eY`M{m`zLEp;(lgAh`^e;I1V^0eU5MCI`4Hv)3{yQN-2i z6By!tB=9f~;K3c?E?t0CPUMJSyeeqdCNL_bQ}lsE$fUBoK!&)hv+BUygh4+i2-md% zr&DQI;v`q4zmUt~b83@cO5`&_R>Cby3Zf|RL*_MeuW(1{LiN|7Q4=94z_hjy9~!7q z7xqoe;-cfpbRv}z`xE?3zXpYV9SZ$)p9>whUHYpwHiBX)sVOe16&#v!c~OGO5>sTR zHDzJ`JFP1rQ=B;DQ92;#a9DYNP0M-JR%w;E1 zld}XNk7&}~8%320Gf|LG0>%E9ffVUi>EkmAk^q4cNMX;GcOTby#F1ef;aPAG4h$YS zFmUL=;NjH2!&;x=dY*-#h&Cx!A^Wak6KDCH;+hmBl{dk+s`wD-DKQ6-%_Jnn{l|&) ztZ;^q98p|X^D}BSYK754dP1?D8@Z(TjHkv$iHOJs_ZnOagLSl0fBi9?FbQ!2ikr;3gYgGGoO*w%6zY?k53Dv1%FTo2=GdaO(jNZA z_pz_E_svJ|l-tJ_ed`vhtLJGTv>ND<13k-`av)an#=d^q(sB1($-nnG!_w|MwmXUC z?d3rCV{iAm71~~k+u%{Z3=TV(hmOc_kM&_U3*`oU+kgUJ&5OT=;=9E6CM+9hucDe_ z8C;GrCT}wkYcIT71F&svpunkG*o0hyB2z<47<+Fp0J!Ew#d0Y244s>( zgZSW&V4e7(P^_t}MDX>J?NCImB!G2vZWNcnLmlZ z7+Sh;`$B2=`A2*?cxBOrSZaG3XuFmF==G9!*9H)^JqffTaN1sqxW-?)Ut|8xKiq76 z=wqS0nAG$XbTJI-GK!mi>Tng=o2`b^%l$9Ff=506 z=f!(Xs!F%hCo4@;2{9o_grE^1JF(!fK*bboqGE*-r7cQv8Tyw*fI@L0%Q&B!m{5Gl zd@?PFU^dXHP`o%jU9d&OjkZ2j8r!IrHq)pUs=uLD-$FkKe8pcw0a6%bysafqbQVL5oX9Q>n2S7pQ9nkRUN z{qgIS_KwAKU?SSOmUqal`&WYla&TbL1--X!{P@ILAX4&1pnJ#e*<>!dJTSF~gn%uSE5sW(h&hmI9I6mjM@;o+W4}z*36-ZxdlS zT~ue>D{k=m>PmALpoZ*%0?Z;cd)?U3g9XYY*^5Ol6e4=hs?@1Mw}T3u_E23mRk=IV zQ0{6C8OJAl2*tM`dTXtnwFIw11#hi=mnL=Wr?X8$}Q#(sWx4P`Koh-(EE96%y?@7UitzUE#5}WPHXLhM|IToqp(|O z5G_Tvdi*F_Oy&#>B$};69+ZME0M*l^c96tF#0II@CvH83qEl8&2+&m3B8PK%^+EL5 z3TI05lkgZ?6{<_xxgVaw!B8m=VWLDjo#)Py6twkmV$Q@5CZ8A6XAR%|1EIA_;PuKFH$DZy_BdgI9 za`Z$wdh+u_kE5fNJ>4ZQ2iELvs&rs@rSr7xKV5R3{y!^%g%w@?Od*-g^1y+2w<&}} z{lHp+_niRTG*?|%jPMZ(is~++lSmF?K^;eGWd`6@KU|@!rEE8WS5l)=8=f*1lCes$_+MKU_DeBYuVmdmRc; zjExYsGrAfXkRt=-$Y9C2qoOLj*H=1E%6`y~CmSH=PyU<8sUFsO%P*|=wF5dHaRC{& z!V?`C!u*Vo#EALKrid+t0k==zg;zK&Wc$6TqsB8etTxq3&oDSZsF}4^%`CO9_bjUS zOOJr4vOtlU0zLXu;5-Kv}0IA~aN44y8$e@)En3JibMm4Z+=Vb(?Uad)rc7#t>xzbsnMRLb z)1{wVAe7dCFHMgaNfF7&Pgg_AA8@9S@=+bK<|N2wV>T-aq-HpI|AveLCY|D%C5-DC zu{aKnr+9^V=^~H|#9J}y+!RzMVOXr? zZaQ_Ss2=L1W~%Od3P&0mtGeSJ!$ZWsgrZ^KxoyW%=60skeW`T$YPs$0Mb8sY+q%W( zYkk_W^Un2h$NpPQl~8zT{`UN`M-KI^h7QZ2!=JrT4!yP-8j(XI<wFEz$ ze}DdtNA`D@oZVl4WoKHue(ov-_Cwyo*ZQO-2q9}>H9A+$AbSBbvy=D^0 z9z!G@HM2a)90aS9G>5MX7DpwirdalG70W7vEs`mc5txy}_K{KekGeOBreYUo(kTi4 zB$Aq;f=bQ+AvudhH4kJriKthXN-Cr5yyDawM9hDnoN5lkZbMM(%}^{1eWS3}9s315 zP5fIZ8VYQvV`<^`LaFEN(vQZ7bR6*vvj?Pxt6vptN2u{?SJT7DC=V|m;^;<5hL%|e+(Dc3Ko zQ>p(KsKAF!EPT+!WI)zf3~#r988K69qjYpb-kzzIw=c4~d@b0jL9<#pdxMj`XfN8X z1G)&Cx6(Rhg?54I>;g$Pq*|Z0DevVdI;IU{R_%uX-#h4p=j{-hI}R#sWJ*Y0=TZ~g zoY0G3c0j#31)-Yt9FyeJIVEsQ3{-R&S&{)Ckr);T6|x%&#hT5{DYmKHEYY%51kVAAySg4aR&g02Had>H4OCmR zQIU9xCa$D-b+h97JPWb9vfp6T@9;sBP~2pG-^RH1u6aTwPgf<}wHiJmhmVxQ#}?1i zOjJw`#y)$e96Y_~dfF0Pa^H4;oVtU)N86xVF7xsqc2* zNBxTXf2dYa;KK9_`MJEetQUJ#R@U{S{tOdcq9`hkWiIY{>cY^Am#5WHr{5Edt~7{=lp z7H?rO2E{#w&Ws+-2!3Wj3$%CQ5D3kC%$F9g-MQYu_>SH@Qwbcrd4A3A{EM+aAN$hM zWbb)lWgPx>tgUZn94@`R&1i2k+Mio`>=CUUYU>wSZNPI&hy4tz^mXHNsF>KGN3rGjT#lfP97S7-mz{bG7p|6-TcVgf;9PBOZYQ{6Cg`;bmC=7fkmT oOk~X+UhG|Uhh=y8&JW7&o|{cyIr3Jv_0EJEr29RCca-mc0*3ffBme*a literal 0 HcmV?d00001 diff --git a/fusion_claims/models/__pycache__/ai_agent_ext.cpython-312.pyc b/fusion_claims/models/__pycache__/ai_agent_ext.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cf210b01bd451fdf65525ab53bc00f112f313f47 GIT binary patch literal 7798 zcmbtZTWlL=cAnw=Dv6XRi4sLok}Zq2BA-<cJzG3#I%8zZn;-5Ygal!EICYe=(h8*`4~?H@C|LvUnUcH*%1#BL(Jx7nog z8?0PO+BAD=Nz_~md0xm#X#-*0ZD!@w5D4pxz+ks#Z9F?`=WVkN-pxBcW@nwe^J8Y# z#k=6{zHLu>wAPsmGZ|sAaCTV|^NXi*DRDts89Q^UAT08UlsK9~W8$V*xSlW|2?LWT z5}g=cUmV4~1SyJLr9c!))}eDvoPOG)*LX^V)?|Z+;L=> zJI*3YBD_uiv-6H3J8$QmX6Z6Z7$xd6Za~{eThW=NOIPO>=b~tvx6{R7nWFuTSPx+B zJFt$dyUv*@7M;BJ3*QrS74Ep8zwV;zZRUgDGt3=N(cP#YMNih#z>}xZ)&XqbhuB-J zWMdiL4_2J%*Dew%gs7@9g3iDqtNRF3v{lx%&}M0=M6G;)4|XxoMmx1wWdRpgzrfx_ zWvirp*nx{#b}CUE-?ZtaGRyq>UmZ-LmtwLBDp_S=fXYQTeXi){n>TH=_CAwrSxL-X zNc;@8^mO8VAw|;H6X~3YJAaAf=f#{LjeZ}Q*I$uQ!!T+ZG`6Vu=0zeExW&|hpgF~y z_?Lp_&84U&d|gQ83fH-Gityax^1_@zG)G!2+}1)10xzahIWC=FUF_ z?oNJrVM)^LIbji|z#$2_dChP1i7NA{`=+bSigPTutc=~Z>SBzPe zR`xYGN=M%S#urmM2hrdo=0&)DeQ0f{)IA}GCzbFaIee%Ro?dmUq1IK`SN?XjJ-RWu zWmiKz8#f>OOD%7yq1Z-d>#s^JlWJ)9*3E6u9aTde8y#EwN-d*Rud}^r_3X<46X;L_ z;ro~GUEY}5I{5ffsq4_Qz~Qg_-KMtGJ-Y2K9llWNy7(+`=|yYT`th~nTZ7xS2gfU| zldB#z+_vieIuu=Jh z-~D@OWBk#HhbNwO?EAwh1iBu&eiPX0SL3}(d|Zx?m*WSw-+S8jbfDC8Tx=OU1uxJ=SrS)uV6lzG!24S!5ylHo{Ml?{}G|bR$Qu9GpVECr=~{7I)pg8So8Wm1HlA>P{Skszuyp29X}OPv$fDbd%`dfPF;=L z$u>s@gj{pRfoe3Iad&o@;;j;Bfz{uJi26PObs4pur4n5Uu#QokRn}Q2EG?Dl ztZz}BRZ=UAuL&rHJ3D3Bs6;XU$ned8I7IbUX(9f}o;_mesYGX=Z`rJIa%0AS{LK^@ zJ_PI0;BELjmJfsFC~d(i!O{wrU}*!(Nm{o`utdOe%FZ4f&GPrp;8@o0DAXJs<+D5c18mP^?|36$o`HkI*KlS*JdqM z0;;@wC0V1&=Y&Fn7YZpL$UG&?;^KUsEToXejS|dnG^apFo~(pSHkMe-7ZUTp3i7dgU9;(g~7ojZGw7$#_dFULn zeID|JrR#YZt?tpYke`FJ0Wt#5oUka&iv=m^&_Yr^Eh2xHBoUrN4-T9N&2du_=QR6` zR2qkd3A;hENjEl%sT1Y@j^uAjf@T+i$Ge1E&>4wfL?Zj}hNmmRplM7-A4<3=1P?r|TVF(6i#q?D zu|@>Lkk(#9nB?DFr>L$smu{yiV2sNI`iv|DHxb#54eN{8R^J{VQn0Tit>rZ>EXrI; z5;$|kn~f4uHFM$HjfLl6OVACsz}!Mom6GtK zr#TflfL1GIGS|~MG=3^&+6l%MrGEiR|05|=IJ!Q%Hu`Dn*6eS4E8%fSqMF<9|LWea zo;CMAZ|zv0UYp*ySsFT0iXW}C9xDZoRb32ZIWE;7R{T9>e~%i8u3uZbwvm$~`;^F- z92u)bCX~owIdT~DFKO$XvTI7-HKpu2Ebls8YMEAB_E(+uBTe9_y|e0O+Nb}QvA0Jb zuvHHe>R1o11=U#3qq7gss(t-R-?-d2uBSpr6-Z!}Qp|aBpoJn!r4+<^H96m((KUG<75uUcS!C# zRPHs4rT4Jhd$`43s$Hvv}ex-ZA+`a#$*Vz-UcH?t{OsIFutt2Mp z#AJ03YKEZQ%|G2bs0F7~oiI)ds-M&{$ti@kt zVqQNv2(NA0{Ok=P!{G6tC+2ZT*Z+vboP9&;Yx}9x_s$zq`b;e$gan>#l=SoVOf4;k zl$>q!B^WWhgLgt|>;N>56s|i?5mPxQBy0(&x#0_>3;S89eI@{n8#N{=^-wCtdpB)G z7g+U_9`lP|_dA$3waxpWT|e{y{%dV}plxr_18qaR(c2DSOGPhu^`oSFZ3eHlh9e4s zzb5m)nQ!?b^u!4d!F9(6p8Z8%o#(Lb*$OKE>T2-_o(S-i^`PNM*9XXKAww1j* z$Yv^&AwmX164Fg%J_)1}z(~ZjG)ktSOFHEw$5287veHt|6{e--1+8r-uQa(+3ZH-t z$s}zAKQ9o>tde$uM4Oy|+gV-I`f7Bgo=O;m#&87>;TKu+Azj4mYNc8KSgC&w1=1{~ zp&`s8HMh>d=5A{~3y^ebO~!{&Gvoq6GwPJC&E2-BvF62^!Fzp${1OL_L_q>}Y_Yfi z{aC3pLLcxNp39K@@{-QNEIyYE7_r{={+}2zzKCPFgB|rE`$R&J(%jIX&P7=QUu5-` zbpyGp1NDK_fLN1|8dFk$r9liLwa=p_kwsq;W*9&CQOf#~S`U@Lt#liX7a#?}(EV%o zu06=f!2u;WBnO8o!M&?C^$nj_Uqlm1bVQDhJf5pW$5)%wj_CT`wY#OEbEQ4!D;*bB z0}y8-9qX6ZE~~-eQeZ?4_LO?ZOMwX#0`XUFN5r@4g+S99!SAG9t1~a6U8U}EIXdw? z8sGSED=znrm3t3t&s3sQFP-+`rqy!~W=idYa@(GAU-OSR}TciNK9!1 z_k(J%zZ4iygRQIQja#@)ZQEV-Gm$;77?(O}37H(u=)&Fu!)89Ej_E`_^TK zWHmml#)cs1sL_74tM8@Xg$KL~4|tb(z$fiju3Uj%6Fr>%^8m+bK8}O$=gW}1aaw@m zK3q=a@aGGtxjBx{r$O*=;^K9Ihy^kQt4MC(?Qh`rIim*+eTNViYVn3tS;9B-W9BQz zwAvi~==>{3+t0ub!jEppKJ&03Aj(3BOoW?JUc_@-b}S tYo_VHnAi(n_v#+S*Dd?HH_lglyFYS&>$+-V{TqXih93@p$Dpix{eR9~9RdIV literal 0 HcmV?d00001 diff --git a/fusion_claims/models/__pycache__/client_chat.cpython-312.pyc b/fusion_claims/models/__pycache__/client_chat.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..84240960a61f6bb70ffd0ae19546fcda23bec652 GIT binary patch literal 16368 zcmb_@eNY=&wqFZ<3n2+4gv4j_jrb5?8{2>}gTdI$*!Tl`JoX!po=i6&EF`8|*hVG% z{F2EFp52ron*?TOCWBx0#calvurHe|n}61+{fJYqD%A~asi$XB<(K@Cn*5Ps#@^Jc z$se0@ZnuPx<(-{Wy5Oq&+;eZ=d+x{iopWygO+kT$g3I*&UxfbZ2u1yOd`Mk-_2&6w zxLKhXiqV9rYs#+OT29c+IGx@+ej_?MPL&_sg0; z)hJKbEP2!^iqXACF?v=%?cU=_-F>Q6Ijw}#0G!5e;VhWf_)K47u~DB^)&^%ovSA{` zh8bQq%tRSB%=h}<+VIUb4|Y$CixIe1NsnXxeWkFB5Tlw6bq)SHX9fUz-ll+a^GnmeCx zdverV$P_Wo$F6i63J7O;4$fl6J(b_Hq0ZE(6*6V-QP+x?a!8#_ z1*9&f64GL(3R3qx?W>kchUfTDG%^?tv60x|R4_Ki@<{lmbb@5~$4QQV9J2hpk{72H zc6uZdW5eOlBpVrLX)H{urQ?oqjt$1x00Rllu>5$uK+U2rg<@g$(zx14(gmD6`2Tze z5}3f67$IXaotM5%-%O__e40X0pQ`sCQXl7yQNFyZl zc`qdQsP)O8PWL&u_Y zYziM|+40asXq;9$26Dk^ESsVcSZplFMmNQVXX9p$<^6N8?08v+t8d>(p}fdQ`Qc`T zN>J1An|gC+=9Mcwq;n#3ducc)Ab9_&pp4W z_zx9aArRCKaVUMx2}#a5JOgt$ILXQubutG+jBGlq5Mjq5GJ$p)g5$B!Emk%RkYAvf zg53BNkbr$az2mCjEwX+r1~bc-r@RI6C63ko) zkcn4nHfvDAIaUBynw$QIRtB$`*L?R<3s@$#-71YEDU*lud)k~qQg4BusH*)rj5eWR zbRTI`o0EnzW8ZKNWL*hOif1A3|I@pTiM-5rFX$Lkf(oSNu59wJXt$Lq_((rS)l#vv zGO43D|AID_R+-Z{*|IK1pU{4)jvT04L##N(0Ce@uxK}OYU4{K_L3>yG{oBg#ZOv`! zj`k{bTjR6E{jki(VRF*AVrX^l(!mHr!=}q}xVsLF(6C}>qY<9{9eR&gys7S?#BZUhbh~a}cumSTGVBju(eGKQ0|;4*mvihayb$Hiz>>)=fmY8EDEJ z$3atkdRZ5npJip-Z~|n{mCd(8>}_%{8;}ZX(+~@ClWfeFFI(6MKgY3wXarU-$|Dep z%+AGRJ?^2iTq(Z7py(Yr4@wpXQZfnzLxGfxWb?^8iXsQI59;F$Ff;B^ z&rH?__WSl7lUK4kAN<+-f40Uviav}c8+yft-kpX%$y)TxS+df<+@EwdiO!~NXY-W%gu*t_G(36ufTg{*+L1P_!LN+ImG>Z@PvmrG`Gsb4q8=U)1i}s4{v{_kH^_ zSBvEBlDt)tyL4r8c~Wv$eU)!;SavCc+46TU$|#5TYbp=k_l4D&v{s1L3Zb%dqjSd! zW!~Dk`nGWWo$adu;jKRvN`n9B^#9q_Bkwmnf~No2UpQDy{j%6RWYzw%vTn$z{gqJ< z_v4vcB2F!`p*BJKDwV`&$aaN%SyyVSh0P`}*Y?TeG3kZ8piOA`Lf9ybS(U)!-nKPH zy`m;So~bQiK?k+u+C29*KRs~dzx z+g>TPU`m*VsO!xXwO~#dr%{n+T?un8ybDxRv{@InCsn_O`hKep%98BRyc?n&@h}fEOeWYWG zAG=dne8HNqPUFUyb*1D9s@6JkQnO3xyf91%m;CL+-?6mr7JdApjs_W;Q10s|^6f4_*L1%EbU~8$eK?RWrtk zSWAGd!9tmh@-f-L1w%X=fO!-E7!sS~xe+p)BQvv51%WAC7f`svNH*RMauI+tK0DF! zTsIQ6BZKEhWU_L3*wW4D&*q8kqW(qWXLh&bEJ->$L}$l_XWQ8$SbLs1-79^|eL{8jX5Y4Rgun?; zd9tKkENR~`ZI^T}S^;2qE0Ug0(bKu@Ik;E=&y@`uZKCTn!8t$*K&3@BVo^=9$R`&0 z*4ws=j&3?PT|&|EMdRnr(#1i^>UwbQ{<*cWM{hlRYqRzjEkAD&%ZGn!J+-T)TxGi^ z%2mE-`YgW$_=M8K8;OmG;5jK;PcEL8Ob&!ZYwnHHqNi`ibbQxPV($IiS_Y_OWnp0R}S&bqY=qO)<`EIJQtbc@bD!P@tCU)W2( zrZnc>{Zibr_IzRYAk^svq=Wqw$`5P|>{t))=liX-hk%^kZ+P5!e%U-wICPBq)v?my zLhY|TCQRvuVXO8x1`XW*#;S*OAK*b~N&wG++$D0^kP}))KbeLX5luq3 zV3?!;{1|iDkpPeMxg3BWf@|{Qv<(JoGb=YEQ0G2SMr1wWj(hhIWXzAIt|}aG=Pi62ob02 z_9&^lRGrg}Dazh2)YY{2l)B4JO^rbc8WJF%!?VJ;p*#Tn>q1EaI5kaoWM#l3k+LP#S1<}b0;51beIN&?lPLp(#FDUZGp`tj^1XTz z78rpmFar6n;B|w+fJ!y%Qu|avdYwOwkRa>I=yfI3aWpF%9y2(qfCIIB*0sm+aoXU5 zzF*Z*3_abK#SD)LW2$FhK5D1?U*?#kQXF8)=yGwu?zm?@7BJO`yjv8nV`}i1qnTRu zxsE&=nEHejWYF-j7R-Z2l4oL?R32ZNrvP}G2~Ug4)2i~c5uPs-n(2X;TbtHDHt0(R5_&5sp-knU0%)wRp|B(T>7IA(TFuC|s~>sE7t;s-3&T9L{KyJ=G?V%aM<@#Q3(ScZ74$ zgQ8c=$D@g&SLmZ|$oYf1hUo#09Om}kEMt0s17wta!S0$l|1SJ7^N%@3W=3BE$Nu=o z;QjRV$KTsC7t=->eLDo^%3KW0$5yZt(M8BW5Mx|1@@@oqVg`cY#An!zmoOFqe`q95 z1jFGQ!SS2)?I|`wN20`#1S1af6_XFl7shW%0cH-psNY!lV3_qsIk0793z&p4@PwkP zP}BEgt!%p!m>3TrM*zKx-{e*I4aY6b%}Us$hmPkpH^=R5^l3I2j!n^nL5}I6ztN7i z55x=G(7I#k=mdQt#Koq7+0;f4hGO$@SKLOQWf`#7!ZcWAObE?3AUlB^y%7on6OD0z zIUb0PHu_RDhMXjzq?A@D14HK_d;}2}cx&A^x>o;ziMV%<9iwpcc`#Z??R9Y%X*ouv z=+las(bL>K`XxHpEfXP* zj|C#&W03VQrZ>Sk9S*9LxM>)i;|w;p1l~Inj6paEX1vESBLYgeRgfuAy{HIF{Zgc!)_72M(-e3@l_g z7RX|cs1a3FKJ;;1V&LzY1OEjq1b7}}V=)jm@AuWh$f2i7aYI;C>BI8p7#zx5m>k69 z5+t&f3GuVx;Jh-XMc@E|MIRW4MIVUF&D?+uqyXo2AUYAaflFT2jl)Wo3ulz2j_wL& zsmt~mb(yOxOxA|ki0p{rIuGC?oFJ=Ob}1BP<_FOK06ma(uycT;C7>Q~FhlSewn@y< zf(wNUV_S7N@3=|4b*GoMS^>Cq;61XJ(D&D^X1Ovq0pe;wA4;Z^i3H6$ZBSM*uFVL`b3CCb9vxW+&EfHw z$gFHrM4Z|wWUKO=DtsGmc-fTB)*(UGPvGj6HM2ZM>rx6O<5%&*fC8uD9pCPS+3(}} z9+cw$oeqOH;B+Xh`K0oL%5AT2(IyqSSDKcagt7x-(ZNNdUhxqy?%_GM3GvbbI>u9pfcR{6D4$-2X0-Qi?iw^-LL zIC>;U`>tNwXnR3v-FB#|t8>TY&j{moZM;|eOfFupA)?2cdQrGY@w`m{YtX!gxGdstL=>^tk8N!@SfeV zj;4wqT|4#Y%)>KVb=?~$h1wp$+q+{umM+|}QIhO@UF>{)t8?rrD|B2Eyq9;ZZ>ICX zS(9uZ7Tbrn+Rr_$7yRc1?}Z)f#dLnlKzd~N1oOR9oa2D zv~eZbbwTX9AY6P?ICMpT0F(9V-`a~MNAZev*(y{V+HrJA6}4-FYZpKKlckeiR8+6k zKWcl}CUl$?YethbZ;3T;ZC6}PR$Lb=u1g;9cXf-N?#-@b@7rSU+grV?@Tcr^ZC<5& zX&6LaT)J{*`HWOrzIyqSYad)&J+q#--j!_W7hC$bT24Rd5}HSLDb4GeTB+8z)&#dL z)lzjsvbs;K?%QMpdJsrMnmVb@m#iBU>js|;3AH1;My>Y^&F{4OV)w3@s`Tx;!8ew4 zwu{d8jl7LQ!Fh0T=rg-B-KFjwN6+VFRZD}C%bRM>ShAv1tmxdTIKFXJDDU6oq_WCn znO`jPZ4)8cEYSLp_3(TVo96OJ}UUnZI_&1 zv_8u(Uab`K8`qC)M8uXM$zHO0T(tYvuWtIqw$qZgeZwZS_Y3_P1{54Y$?jhDi}t4V zQyX{1){{@&!dOro2_m0${jSjWwor0ia9qbFRJ8Ptm|wegXXCioIPm1nr+3AZ*Ppq{ zS4Njdw_SCx6iO;r?k?Y5yRnhCba%Vt;Nt1eJrzs3FP!eB*bll_-~B<~+NJgChgTj2 z9tM6}e^@H7{bclmQOQ##dF$71Z|DRML@MjnCf8$v2iBOb)eXzEvI+*Lq6LDX74*`{ zuPv0PLaJ?AHGSr(*mY9g%CFp%!y}c|{%COB^e@h?^$Q0^1n=vD=Zz)3hBW#Rl~;mDgXE>|=#b7~&BAG-gtYQ0OK zJ2%QUFZ|;A&#!Nu+tq5kXJLG_FkiG(X(Ma^p7NFX<@vSZ?UF{p(FiiK*R1)4>Q15a z^{2<4`XMrVRRc4?P|&@rHJL5s^vu3PD!4@w7vnpCJMcgjIR*m6?2G#$I0CbY@Vt=6 zU_3R4;}J{>E#$ynnSH6oj1D;Tz>(w7Nd|`jIKcgxePwXKp^scn#0(A-aO8-ZW^kB+ z1NB(e1ue8dP7afe$p=S>74mYO5X8KKkDUt|#+J}P9dGLK;LW;6hv12O;K|y%{@>m*A)y>YJQANNBkLC%S{vs6BvLGVG%1NY? zr_p2p6brHkh>z$qcmqvb1#|(D1-muGp&3Ot4Uls$a3+jaY$BcpWHSl)+NZv*l}1#E zqoW3iT4{?4EfEnb&=TrIl&>H#w3G*K1w-NBjWC>?#9(76G9I3TGn6=ps-#lbh8W;9 zfG@yoU~XcoTh;D^eZVnrFc3j5zJXyN3I!qCRxlV8Gj^{5P%-u=1Mn$t2HTp4kS8%4 z-a31R=I3tAgrLt5$E0Z}gz$}4V3*R8RBzGpZlx9E){1qjhbd_l&hk)L5!pUTH-Q^~ z4MWHj%&=Dab})RCw4FqzX@sdj1qh0kfDcR#RkZjru)5(bt@OE}F-WhBjhtwu&!W+X z#{3Y(Iicj)Ier|%%p5%gkzX!4JB4SS@JLY*j<2@Tr$Ju)RA`o%=kSJB`XbDmU>Hgc z5vNA`c`kGdP_soH1ogcaPoAQij&#+xALy$0krqI51zIsMIMzy^xir{HkDVNCr3VKG z=%&t&j{5eFdY>iES_UFKpkbT`;}E?BLl|d)I@o&)nM?uV9tozVg`Wm%3nnKRToD$I zN6pi>f?+t7rHnxxsRu&NGeIzyEZm>NQsVv|CVwB3_b~YfnEVAM{}7W8F}aV)`;frN zG2HWHyE@BKFnk#;_udg{dGW!b0tMHIb)&fkArtSck#gE80~9Q)!vHpZdGX$sXiO%aLHbU<17a47qNk71nf zc?rZZ$Um+~6`C)=vASGyfpL+zKyktb?boIH0&&sY+-|~Mg4~SfV|^w+SIBs$@$^mB zwRb`qB2y-S$ffbY3ojocBZz>Z0ik7{H^Xyiptx>@81OOU@u@p8Bq4;x-~suLNO2Xi z_&9+H>@*ZNj|rk|pOJe2Ke9O;MBpBhXY}$BSCed2&|vB*ID-x`^+|^g#klDly0rk7 zjB+=zu!i;-xW9%w?w?@tPf3Mo1cpb1(C;Q&g6aV`nni1pcim6juNnBK@&B00|sMH}X@K0-&9^QN?rw zh5IVFd)Q*!>l7@(;N5;dD-jrRT@qI&w}dRqnEV71*@7YokoR&&kvf7@Ju^2m%X9x2 z2|vIjEg1!xzYx>2SenROJ>-(f8U$SXXY#M}{e`EWxP3k)Qv$y~H z?H_5^NCS50&L`Ygc2lGKca*8P1pOHFu8S(HRB+$gouBG{X8DO_vuC?wSZF^b)SupQ zj68F?l1@0H4{jnte3#-v-Jy>N zW0$3t)?~{uvE`W5*z{=O;lfs9&t@KJ@KLe;=vMvl%@d>_Jz`DIR?TahHzZ$k()XI^ zdrfE>cvASJGdXxw9K0%=xF$6GNwOg*HUzgD#=j~s)2TCr_!6igrzNC>hW^_9q`012`L0Hu<3KC;yFBN!5zW`9s3;GD;zGvA5)~=%DO~95{C(5 zN`4!X_bAEQbnm3(?7DYGDyX_Q{4C$Sc=$o@{od8+rtY(L(dB7CHG3z za+PGN5}J-mg=JDf-wUIz$Z+p??)w*b9Gp39hM4Iu={MPhWtQPVWt2^D6^bMT&M?TdwxCY-8 z!#B4%z&2ycP0w{y?6EyvpMBopD}4FO*R$Xs0pAe$gbI#c<42S#DQ?d=7!Ka2apij^ z;~0Jy6^&ei6VyP2v(>3j5S`E!4m$?N%kjt?hxP;9<3TUkthkNfEWE6{2p?ww9leF* zlSSD$s2us0&6m(?5rbH5D&GZ6qoBxsh0MRkORw`DWlk~eW8@)TlX#{`!GNk&l-y$4U}g;9+QqY@Uz-U6sw zzY6nv%?vY~On(z)EnhsG%r6u3%OsOWGS$FDuE2?GFJ6toM7Gx78v<9ly%ZM7&HFdk zyc?HxY(4i*Nsg)|1G)nwd+FLRDyL-K5wY$FtdK&(pN}XF#J2ft3X(A5XI$X2k#$if z8s*TeR^*_EJK2szfBFkAp2Im$j;@~}UwX&suQWY|4P+Avy?41CM{*6rEK-|wx#}_@r7YQry0m8~a22qchr2=Qp%$Y5b?4;W*x1u_Odu*cY*873ZWTit@jdNAF>Ha#Lk zQd5bOOzpsCYr&bB9h|LQ;~j5>)TV05*E+lT@K&~JTfnS39e+5R{n+`#k5qQ%CwuN~ zwGddE$t)w>O!qk>x}>!@i~HU?QH zMDwyS9Hp5MAJ{=6h`dzc`JWpRXNDNp(8Rcw){N_D?YN%SjT>nFxREx{#tH3so|a%t zQze-Mly5qZHqrSH%;{d3F=Sa5$O78(pzu?z(lTzz30JfWt}rK@^?~hEO^RAkPN-tK z1nAk*{j=tTbkG*~D}7M*sXj&3mJ_x-gLg58YRod?id`eI=cMMOD?x&)WE?r+Tp3(T zb3#>RK$Yc$s?LBa&k0qN0acL`suoG^0hyMuGbdynUH_mVJ<`gYaE%#!T{)qeGN7t* zLN#YVRp*3i$$+ZCQ2kjn+PX`lB!)v%ch56H(C!~==zSPkouBnNskZH++K>~jeHUCK zhC987H5BRnpbyW3jB2K{9GU1Pal7e0P9sp z)`?-WjqC*NeK3%=@`D&Io1O+~Uk2QvoNy<1!5zkMQ(5FRlwreN0M$J;odxO?J*@VP z9(j-WGzBu=lM~}KeTF_upQA@VO|4h-`3$_H^o93`@!p)+uhJLkG5V6KJNj}4?lJlb z;P%n4!MmS+9p1-h-*Au1_MsV`jYbATEE9=c;G#h`#0aH9TwaZ!wHu2bTmp1Mk6tR5~|O#k?Rai29z?%F@Y#YlWc@UU~a8!6sYg&m4$br@-W;8f60?i*k%mGR#n+*d#efLB~dC!q;FB&F7)}92+HHZX;Ve50ErF z!Nz#ETd$Bbuo0TM#T7tzITXPN_DsAh42Lu%6#A$bLq>z-0L#TD1^d}(WMcm%h6^Ls z3^^PPGeRXA0D?JtX>gcigCsRQ9byC2HBf57Wf-j5!@{u`$1v$)fm#G~q4I1r)&Uv_ zFg#-1adC#DLgd9LNJQ2Tg5FZ1;B2VFsMoRyOyUL$7_#>Ks4Dq9nh8=fp_ou`A!YO`g0JVB;nu)-K zj7EUvxu`0d7!{l0g?^P?a0e!=!hjwC=BtNc|BFI_43LebNnlz}4t z9-4|#vN`2#{46clQ0Kjh2_pyyum?jF8|Gz4dX5HAg&*~W7i^cJ$j%TJ42ouGxgdb$ z6_^Ebsp-ZQA+xn2vn@)u;`m)~DEO+I1KR+mf+a;Y9G!{81Pk(3DxPdo1QeJJqyl6h zOAzQAEncb3Mx4m9h7eP!FccxE&r~WPR?FyjjJU5EMH>w!azn=6hlix;;o{j3B=TJ|`mR-83OzR{=sZa+}OSuFrdO2@wCLE@?*$gF8tRH4U zXcn2c`6A0-Cx=4R1SnLopApiVYL(3y3r&7{{n;gbv~*(W|0R4Z5plvtTpc8cIZa%X zO%Jy;yjBC-L1@jQ5w&$fJEx_!Q|dMn4L|kJy7!2<)|X!1)vZzrQy)0L${{6e&JX)J*Tymxypg|qu_h^eoq?v10crR z;q^bn|IQO)`{2(FYn}g6{NUA}8@}MtHu>9m#hUNKzfdsB+*E@Dm~8u@jcbROte=Xq z5e~tE`#~|UoR_jk*?<;)o<|ZQQ$6Pjp&+>bQ{5^{W#}&xwTR#D-_+;ehBkb^D~$&~mTmZchS@WV3y6vte+f;nKso+owLWkWURn zMHSZq#J~|LAqjFs&Yf=$PlXsiL?H|ZExd3bXOriaKN#?Xlk=lh20V#BhTM~I=xZ?4 z8M_OqIX4o89g{+QmqkIoL74~-z(J%Y!hhtR2;AR-qslS`XpIvHWi@>*t;;^CrV#Hv zPf$neC$#GHnA65ke1@NRx)vr&dWyx69i-Z)kiXvZ&<2&3`U}|Uyv^5Q8&xdz7qHVk z`daKf6-)gEY!tiU=l!42rp%GxQo3ijl;(s>JD3UVAo54QG$T9nU_0Y_fU2zNyRVar zuuWkTjG^d4Th})vmt{9J*@^43nUieEG#U;m-Ccm$aCL~6k!L6_Fez(UTGoY_2&|)c znZ?dr*6}l8NOggihZWX_jT)Od1PN%(btpBv`O20Q95&XJ8{oPzGd##WKEMSnLhD!h zfQ*%Y5uo{p@R}!{n_&in6R?>#upLI>}l6NyVLtmG*?QBkAl)IJ>0Mx|Kt#dCAtJ ziPodZ*1kk*pXlh99EY|Ix+5je30NwCr1L{+sIyd0V!I$8Da~8$X%5KPUEG z-t4%t+4dT$ZhhQwaINc~`hMCcdcU!G=;~(2Td2DIF<^H6r0;&;dd+6r@Mg=%Lf&V# z#wX1!n3mMmj*+E~0~lIrX~peNt5w&tYZB{WRCqNTf{)ZBhQ)tQ6GN*$ezLDz8HSmj z)bH0I^TNvpsK5uMze<#wo3>2)74QxC17wGVV^T3}8) zLCoo5X_vR-2rUqh<1r2vMuB8pgP0tzPhHS}e&Xv7> z3T*`TJapPMMl^KZoDncBdqAL=if>GFdC-nx>OBv4I##S!0YtV`Pd;8)P>i|fQEhjs zd`|-uvvbQ{o9bga;mFLWHGv~l##wgKU)EnYCypknU)W`|ex4Z&@@p2(OF1!@azzYgw->(9|^ z2VFXaqTW4EEIk9`X-X=^-J^^Y=b&7s!owb+JR6U=PKAIaAH~V|fq7jR*V7f(zd;Z% zKYd7IA6Nn~-vipKFfXv=(jkG01zr(J&a$X|->xU-ismdCvM5sdq^UYH##fX8z8%jlU^rA6Bjt^ht| zt~g#yS6+vehpUbkX7yw){qBfGkp z^~>ElD%&zvR=iqYa%o}07f_qIYsKm1S#k|2ZDk{ zsiDwL(9Oy~R&bnylqv_K-9@j6oQ3ecm3ODGOGcwy81iBnJY`6_LykVcpsbuweh$*K z>@+0AFYeUB-~=aR+|yvYdMP+y$U&5(Az2zFB9Q_-?s6Qg!Ttd@uMDk3m_|@L6QQ{a zNTw!8*au@Qq}dBHf-(*raLIbed&cBEf9fzjA97m^&P>X>2_`0&WslM1QYx(@KusS* zI5Mi!i6WG>=h$i3!T>=XMblgt;%tTl6l`j6R!WcLE*nD8n+zuxLIVf+C_f&m+m5pr z%C1q}r!!RE7j-Fa&&FB16_3 zg{i!(fm|qNtxz^2GBgTKp>yb)m(9wSil3$;vI*=2<`ncC5|n9`@i=hzlfw0CXVU%&0!HWJmf zx6c8nvufG*VgBtA$>K~}$b^Ly8@ku?*WMB92DdD}XGX&2fL+=$b*Fs6D4o5SJR8_J z8(8j2x(+5>2a~SegsXS`%$93dWN$8*Bxh~X*_Lp&Z8-Z^-(4^Qn=;7vv~85Oy)Y0} zDwB?V3CF(Gp=A3&qJ3ba{met=g-%;l z@}#qC+dvdMfm(4*($<);HHs}g>#ggRVv}#nc2crcE43?gYgg8W*9X>btxrADh)t)r zY-a$el2rDV8_tpS4j4rm{MMRr^_JLlWXskAU}ST$wl`7RyHV?1=fs+UhjkB!l0JXJ z=il%#Vt^3`gJRW0vMQXY3U5|L7xI5?uaX>fNk?nK(YksJ3(Y;ai zS-s$u$}5)UemEyp)P7QMr(nf<@7&#UpH&=$5mnXzq@#S{<`0jp)NR-sc8K+@JO0`E zbLTI+9<}`I@y(tw@yI37efcxTl_zT7#irw1wi8e4n(jI8I#>HP>w0dV+OpK3(N^6) z{lr?a?ES$vf9u}AS?#;;Sn;kECp!l>I|qM6tvVLWVzuwFy=+1F;qet})86v9s{R+| z&4x3-Ft2y6c$1A?n~hx$&54FHn^k8QPD=GHtJ=HnRc6h5e=h<;3hlkc{9>%wIn!3xH-|KYMHQOelrg>HOqqj1!y4Ggbu8ZDFfVE~%G#nP|Us-$W z;qarehyCKKR}r#5g={9OTU1_$*WOq=BObr_Rah?&%cmCNz~Scv(RfOGKek%8_I9%S z{ATxg@e(C6!6Y-6VCMcn5J8Pk`&9V>*q~-e`-~ti!_SYstFeW%+Zg|GdFAr4&GOb& z??(B4siHnv;Z9VzAshS4!AF)&-(_*|ig+a|?wj7Kc>A~ZYROiawACeSbz(g-y(f*W z_eSoHtWIqImgBMQoC z$P=R5PynIdLjsC9GK+Z=TH5rHVT^F+3w7sVy&+MOj8sxfBy8)+*d)u7N>a-6Whu*f z&@nWeDWPBgO*n#$-W2i&@$nM5pX7Rh*O&PrIBjeP?68s?I|h|pAH41xWIam2$@&O7 zGR}uXAwNEFk@Ih`%uW0a{yqxl-4VB5Hp6-53kzC$CGV+iMBqmyk9)w7t8+aX@SvZ-X@IsW}FJouIfo(^#7~spl$;4 z4_K)tp%W_=Vjmvv1ME4}M8P2Sl9IW1p@)LiyA$~FNU{RB*eap zDzJXCs-_}S`~$31wbPALq^K=zQ87*Jh&;*U<$ZX=%$xx-rPo&_%2UoPt$2hV92YLIx(O z7)f1&>kOGLfkZbECh)bA7M_fNUT-iYKvQst7V`*=L3|@7b++n3Q4wnJ@2Vbx?Mw+r zv5;$IgZ@Yqn&I%17F;9bO$rXb;SvD_N1F<7#S@W25!nhi7SLva9PvTOZEerIH3A!q zF%XhKx;^BD5bRDEG8BzoCugRi^9;+8G!ujSHM~bC&hTgoZAjwcKB58p71M>2!h9%3 zB1~um4##JBIK+aJxbSogtpD4eAHg?f;It5}JF)@y7*4sBKFUR`azQ86 zNgk~SD3n!Pr9Cwtqu}mUenQJvOvOyVQZx%u9y)UtN;b!mY0o>e;OIiBzw7x$moCNy3RDUpr$^6us>&#qe6 z^~odW6GzT(9C=+FdtK~)10cpV2ex(E;?8XyQRv#X5YBd~eBYD0)_awAE2W0crv{y? zqiCDRD=gZ!5yjUx2O~Vlb?-DG8`M@kYHugIk;JH5Uo)?sHh*D zq&R$li;r^UqAT8Gh3_M&#R9d67S{p}T|n}4$_1nV+}x2(V6@78qk?ICw+QxJG$WfQ;ck(C z8r?0Di>{^a7NyEoTZyl?3DDEfQ?+7x|jofOI^&7t?K0&d|_npa_91Npt9_Z*p&Krq9K7--7lZuvLcyPUJmK%m5H-cVh(Z^RpxKZ@QqE`rBvI!{x zZ?|nQAr)rmDun=>a}=5-f?g=q$|2v6 zU&zJt5|De3kSq=JCnbBs{8_26aehd$)y$8;W=O0(ELvZgAKo?-C3OpBOSOx&lBsk# zA{Dm3Fz8B*^QR#?FR6wW*P?6X?E2xY;uG_yC7Wx(xKyxMu+qEk*s}ElsZw&`%F>&Q zZ;Gu)wn}^EMGcJY1qv=V}=mt<{NJ-ps16}|$j zDvhGP40ySkmzzInyVEA_AK0oK6!qnjqjq6v>CEDpm3JRHwj4wA=hECIDA z0<#iWHZQd;wyj*1XyBu8g!B7iM z%=;v3Ul_8=evRCL@T%TD=l`k*{~`2kDuK(gqO6 z=;G*V$3x$iV+4j}uLDW`!@dE1tQiSm5K+Y;vuQH=Xsva*!$FEHMpPW!`C+YdRDJB zoYnv*m8w|WBDya~#fQXKu07XjjI`#depF*P`rLrNxAFJ0pf=xNepUvr=VhgaZe`M= z`9A74q6?MLDE1zB+2GLWrEEZ%$dKX_cKZpqZ>B6${oF4B5|&-%=ofa^8qFWfgr+G$ XG`=ui(`&k6PPX4^|2=`eG0*=4RAeQ* literal 0 HcmV?d00001 diff --git a/fusion_claims/models/__pycache__/dashboard.cpython-312.pyc b/fusion_claims/models/__pycache__/dashboard.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1af3c4cf56b0cc73a82e65d933afb33a8d9f1d24 GIT binary patch literal 9093 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 Rc5`oUYH#nK7_8AC{eK>^WSIZ} literal 0 HcmV?d00001 diff --git a/fusion_claims/models/__pycache__/fusion_adp_device_code.cpython-312.pyc b/fusion_claims/models/__pycache__/fusion_adp_device_code.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e7cc35de4370e89a0578270f85c9940f2d08086a GIT binary patch literal 17391 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 gRn8tt<~3e3KQxZA-FbQO;WanH{r-5-I+9 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 BHhcg8 literal 0 HcmV?d00001 diff --git a/fusion_claims/models/__pycache__/fusion_loaner_checkout.cpython-312.pyc b/fusion_claims/models/__pycache__/fusion_loaner_checkout.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a211adf380f79e38b17a2f05632449c1d6673553 GIT binary patch literal 35004 zcmdsg3vgT4ncl@4AVC5o!T0O(O-K|->ivH5r57bjvL2LW7~%ybP$VH=fRYGPwvxJ8 zD(hWKX?H{=b|q(bYiX_BC~0>h?{pg3i4&ze-2f!BfU(|LwVQS(Go6-_l_t@)(|-TC z4}jn$DS@8 z#tEFD8{&p_eY#|ZJ`1}y3|WV5eKzJd4rL8z_hmD` zX~^DZ*K>aRV40Fh>erw9o=&>!bLhElPB6dD2^PO@kWbMlzV{3=W!{*{ZT&gjxQ$8k za8U3Mg_7ohfPY8`B@Mo_fuzps)+cSxhx}rvCyqZZKJm=x zS@>+>z_1@_gnhmJN?!D9k#9cz1is%vWB9o~oxt_!1zn#((DxYyL!U`7_L)y{g6W&O zJ_{;o9n4QpLh=h{!6I1kXM3Hyll7k5#C=(ezDR>UTd)f`g5^%`dq(LgYe4Iu7Og{Y zB4x{+Je4+Q!E_x$zEE(-r8Z>lf|P|qkx)!sai>I07afH9X_cW=C=<$2w+c07=Yq7A zLKVtejg)z{CGr-et`Ta5I?&durO0QrjT)`iAT-`-dQUI6n2XUZ(V%O_0J9EiJQ-}! zptjs`t9ci*G}|<&mIzCQmOIPT`j;-4yGLk6ecDvYvIQyILAPA3Px*p*uMk$=S*6ld zEJ(LnSd&Iq$>=uDuM0-=+HdNFb;5c!t~RK>RLx>&wfsh56GoNN@;sx{8Yi2DEy7k| z8|t-PO|@o0>Ox_M&@pFJ)h#hu3I{t_9ZrRBebQ6JVQ?el^a zbyxbTWkI^bbLf^WNOxooorlqB^?kN*R5+G4_p~xfjki$fORII;g6SO>UPx=h_C@GU zq|q&BbORdg@*>*M3rdB_tYnm0@A^xE@6JiJ1y_M?_27s`iv5D1PznCmx%Xs}zO{?Q z7*J!JN{g{>!5F870U@B2Sr|-#k`f*a5YXJ5Cfb>1qxjM8iqM7Z09*M-pQy1pGk7g?8et04x9^w$2`M<3xSbHnVhGeJv=!Y7!v%V^ekyR;2-dd z{*iwFp{{;;9%F4nW1RjzErD~53#-orozlx_6@72g(Ca_%)`@12-PR?IA^*@oh=}>8 z9w}dM|Bx>*9BP$7SgRZ;HGo&Co9FCU(zs?i-D0-NvlZxAo_)*u|G%&Q`-bbhQ^W>!9U;|9ST3q3i*coo}h@9 zh-4jvpWny)){sBUkBkltxea15QcYTeBfx$Bus>-HQ%@uPr`e)EjT!x#uj^Nyha zI$Wj~skuZdVKQsmX!vwc3`CGc+o98b5vVg1ZcT;qzECLGA3&!H{P{rmG#@@42+1SK zt(USlp7sx&jo2u|Q9#vD#72b;@dx~8=X4jfIO{GCJlD8!ZVEE(kyv%oBIojXYP22+gmU31HHud*o2pzU)k*3ck?It2 zoE3w@Xn)uv|0XT_rGQA?@#dxr-hqB^zi-5Q((h$MUTA9Jn>N8YB#!#sC)`HX&urKv z%|Z~b=!n!zwoo|Oe+Cmp_-W2TzZmch@x7zNCo!06kglAWH=w4M3PGyU;1!plfKqA& za-sMROdn$4EG=^)<*7IxnpWg+FTESe0JMnyAsV4ibCd~*@4$U}xmi0%*|_9sY(EMd z6!_*2-&n}~b6O=uR!F7ig9H44==Uo#rT_~5q<!M&A4pJlv9z01Bj9)G_B~5G^%5;bfkgJ{8xCd0!!1fkHjCON1!2FzQbhW)MrkZVQ&1CPDNKgp;NY z`oVoRoBsR)r5MR(4UC#0M?A9x<@7B3#Xsu7&r9`#o-@2JAhd@g?3}^5W;vki~ESZ zm+mkS*j>K*+GCgq0h%|&E-HZ3NEo<$Z!qi+MREe7#}^L!`cD)7N%Go!-h1|RFdRfy zL-OE90+_^-IjN|)jX2a?_Y-}{Z4x`F>OJJ_CZ`vU8*ho=8^*X0l9mq16LHFeM=fr| zE{CvkCadNaOd2MsVnuRfYANGL0p4wX6%`YQ+&kOPw;7;%s6DN?5|`4R3%QRf_) zfZsv4nEz<%lR!#NznnFjZj<>kwmZw10K¶z1@05h!eO?U{abZ{qjaok1SxK0bT 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 U2kg4ln5s5j-}noT{H(737j+q%5&!@I literal 0 HcmV?d00001 diff --git a/fusion_claims/models/__pycache__/fusion_loaner_history.cpython-312.pyc b/fusion_claims/models/__pycache__/fusion_loaner_history.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7ea6b7f00bb26a5eb442cbd4f47d9d27a244b7ac GIT binary patch literal 3899 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 pv5KI)Zf9Bcdl$oY{Wr6FmD&AX{{nEy<9Yx9 literal 0 HcmV?d00001 diff --git a/fusion_claims/models/__pycache__/ltc_facility.cpython-312.pyc b/fusion_claims/models/__pycache__/ltc_facility.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..49965702486afc328ad89f366240fa71eeb44184 GIT binary patch literal 12610 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 literal 0 HcmV?d00001 diff --git a/fusion_claims/models/__pycache__/ltc_form_submission.cpython-312.pyc b/fusion_claims/models/__pycache__/ltc_form_submission.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..72c0a4e450e38852fcc3f7a490bc5dcc93a35155 GIT binary patch literal 3204 zcmZ`*O>7&-6`uXo^8e4IEXk7AmJ^GWAr)!k{#Y>5%2DIS5faHT3fT&B<4#KA68ic2<=tWtmt#-8S% zlW7^DUxNz-6(o!bGL{MomJ2FY3Yv_Fz8LRZ7RXq|8rI?0vyS$Sz2;#GhQO!0;6n=% z4&w-{(DtKkd|2RfUGOm+#|gkD_tZdJh@Oc};WQvK?NG$d^!nU>c28>Bi=TILwFeQW;@osc?S9#I`NZ@7d7&70ywdnQsK(v4uATw7$?@ik1@#L8;CTdFxabiR6Ss8L zw6PFaXqL@8jZ)x_QRY$6E*=Hy5SPftkfJQuZWe* zr~=+09-)0)pXpdPUo6>t#Y0AfK!CxF`aic=IMCzUfYIkSsS9zV){GGmI&5-PX2z zKCeJ@LhY(yp|%}9zeKAgSOBpN!RCPo^AO@iQi8phG24>#Ij`u|TskC-z6c{TJX$P$ z0GTQ^8w&skaUvBJ_jeF}FYTZ;=_Y#b9zws8*W|@^{c&jUV9Dcn@nE@Cm91v&ruzVh zz?D88TSJRYI&7`yZ>;dBFSZE1Lxt6r^%cpDNT{3bH6Z*+So3i~MINtC@oXw<=(iBn zwa%{5W|&%moYE*@>JgicyS(_I326vs@;Xx%h$mW#DWvidi&n^rXWd`5N^l=B&8hfo2h3ZHN}z# zyzBC}wG6FaU8enDn5mq^;2S~pfGSuBy2ug?2Z^xBvXD8)xR#Cc3Ja5pTcgCPRs@za z4=9*yV;U1~!eEN@uynAaCCmiOQvcpr+4_I%b#Cq&3=QNP(T9o6#G%p0v-jXP5BzBQ z*|{;l@2cN7?C1J-D%+K#+?9jem4Ah_WcV0qp|Hq9evlcK#Y@z(SlHr+sX1JZTGofP zqSMr90s@o#PNDV^4;0g_D#e6SUUN*HdcR2N6)uM6fCNP>SxE4|h@0_Nv9kIKM1}r{ zgCZ?P>|i<}`5=var2m6$Ad`SBKy#UUV!i5@`jUV3py%utn3*pKxug*;ggvIF<#xJOQ)f z%6l#7FW&t8I~DPtdkdKB+jZneM;ovEnbF2=KQ`8weiq4XTzhzZ^SYnt_fuIvmWJ_f z$(K$edQ@-RJdUH(#V!3PX&xj^-?)6N$d~kI@xI+3e~JHc`BalrZ%B<>$2v-xTl!97 zJK-Axeqz{94fyf&X-G@yppBx;rLC8DCblPhW6)3ZaaE6+(Hn0bhf!t-RAbv?yYC&Q zf6#c-PY-_gf7aZ(yYue$yI+m|^e}t9G2>@0Ze82Cv3=voz+vW9I7Rj{0IY3`Z=1|< zAC8hE2gwmQ2kes58#AyASk3JWY!B?-{?iW+Q?E6C>Bj~)?jFSk4`PGgAaz(jHc+B> zH}WMu4XN?T#xyvshmN#?18v|$*0ubJg7gc=T>4Kkqy^O}Vmp)XVQLjutCVwus5Z)z z7qF)G7XNS;z%P&}>7cia$)J>P&^v(TcZxd*!?7Ys(tpE98hwhcoa&QO_|g1l&Zo}5 J5r|^>{{X~P5gPyi literal 0 HcmV?d00001 diff --git a/fusion_claims/models/__pycache__/ltc_repair.cpython-312.pyc b/fusion_claims/models/__pycache__/ltc_repair.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d8e04f9b17ccb07e896b57fd2486a9a5f47ba643 GIT binary patch literal 14088 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 z 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 literal 0 HcmV?d00001 diff --git a/fusion_claims/models/__pycache__/product_template.cpython-312.pyc b/fusion_claims/models/__pycache__/product_template.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..42e5326d6c2c5aba40252583d0082dd4f1ca5def GIT binary patch literal 5762 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 CDM=sz literal 0 HcmV?d00001 diff --git a/fusion_claims/models/__pycache__/push_subscription.cpython-312.pyc b/fusion_claims/models/__pycache__/push_subscription.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a3f3dd25fec28c4eb730b90c8d98ec7131674827 GIT binary patch literal 2381 zcmai0&uviI^L0v_&vv0nc zH*da~=ls~&sUmo4-+pF(A3*3g_R)GIU)iuhSwa}45#}&o;AZ(WKP#k#SurhgY)vRg zX^BTf%7Qa>a&wTl&JM!Q_O z>11rPR5q=mHfv#0(6W}TIc3W>i#hG4ZQXH*t(6$IXqC;ZnK3-9)8^=;)aPu2q(Ega zhC}77NebAZf>AQ3GOaw=8_MB58)-;?2@#a$paeYT(gNnwA{M+O%lWX6YkOf4OIXGM zEUzfbei_-}iM-pPaR=bkWxg38t-cf&+<^7*3v1Bjpov1iKE91GH=2~CY zTTd}kQ|&y~dUoxLS~O!5qfB%RLc_$#)H-b9q$) zVv}1H(LxHxWg}BIZ00wRh|1q0L}hMk$A(jD7`B$fx!+Pp`#B zR%0VytB=RN>w7YK_Q|2KA6|J98+jVLFt7X^jJcus;?%;Fn>gSO9d-wYUG3;k+W2E- z?fCfW@o{%x=tWQ-3~wU2GqN5=@xl2I+(>M(x=_7;cP+AiHL~B`GvxMZ?!YjUgNFfr zP~AXsG`NoBj^GBQ1N==T_fSRGi^eR`b*kz*)S^;gdPvuARg8jfkvs@2vRlLdnW3_7 z*_hb22%)HQ!6;TwSViKILB(k@SN<2TR2-Wz>?VVOvzApLM$zsEXPXTZRmZF%+&Bi@ zCa_Uv>%+0xW>AjEjdM`HXkz~M;@yS2Ze%Z5Hzgq|H_opssC(~&-lfFD zgd0gT*SqD$d$7KZ@85xs?|X1^>GZ?XEKcXE5GO7-CIKHFoWHtwW8sDyjc*EkSZ++L ztEgjOUS3oBSCxJ@G~|ZPY)C?fx-LkbPZ(JG^x7xa{@}Z%;D&(Y$P1=556;e<4AOwE zV=Dt>i59jjuZkWS&4L9ARxZcx?~WWPPl66q9Rx>kV-{jl=>q#lp;^J>VA-xJRo-lN z!dv$1U|_@UFlAlfIPQhYbK+kL;zm}{@GmI*Oij#>uBnMtHSy^DQ+1>f*p%Pkf{(6# Ob^VL$eqf;6T=$;1eW<4cSCqKH?LLSTDxpu1j`X*^ zYq`{y9*G^^1>47w``;ee3h*a;O6^AjJEZCo3wDt@hz_D5bO;Tj!`$LDq18TAeyLRV zw~iPiaq$jj70>aZ+Y0wl%qFb#(0@1ZC z1;qkN+o-fRVwh`*7uV4|@ZSGQduYD0D7n98P>d*zd zxpK{IK-c1iff>um3io3X_1xCeAsfZD}s!04K{7Q3p|i!4!8nM zY5+Ta&@#djmn6_&5mSeSx7$aq+F=0l5Q;bw5g`T;VZIGp7y+KvtyHq6pCom5aqhM- z#DPJ;<6tZrIoieRj*2#qH3nTSC&Y1oduMt}m{Nj-E8*}>*Rq=kgFCp^1<+{?v-lX^`iT)MCi=!bzPwhxQ66=Y=3g~vaR#)-W^Gh7in z#+Mh$Z(7fH`nUS8+M!54@IfDYuaEtrU-}XKMBb2h+NBKNw?X-^iX#c)REL z%Vo;pOI()RyLAacj1F)^-Y8VON@>4X#0yI<{4+*jMV{4{N~D)x%&r%d@~P#EtJ5pf zk$y5NJ=x4>%Y}Ejp>=ILp|UFhL?ygM=;`1%7L_h+5j17QSiZOVVC6xik4B|0IbnqB z80I>TjxE<#AFn))^pU9aAnF^4jvU+U&L8FE!|S~Ym{?v~eZKNM($7S_{ZZ-GW>*ey zT6w*=o%QSgu%5W^!^IEB&%Zx@KGFsv?bAr>7k_;+D&5~Kb)Dc+z{dV;{&Er~5ute_ zALl&ec~tarQZe~C@ky2h@RYdS3TmufNs8_&9pePiDNKBjtY=kK{kum|!DeAvz5HtM Ob@}`9Ukcw!-hTmwN&6)L literal 0 HcmV?d00001 diff --git a/fusion_claims/models/__pycache__/res_config_settings.cpython-312.pyc b/fusion_claims/models/__pycache__/res_config_settings.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..be4875c537ebfa2936fc6d7307854f3b4598a168 GIT binary patch literal 23262 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 K@kT$96nCmGW`=eS#h*>47CV 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 RwYI5sWmD@f1$yJG|35eHA)NpK literal 0 HcmV?d00001 diff --git a/fusion_claims/models/__pycache__/res_partner.cpython-312.pyc b/fusion_claims/models/__pycache__/res_partner.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..357e227789e2c6c957402294ecca2e6e76e82eb3 GIT binary patch literal 2874 zcmZ`*%TF6e7@zeEV{D9hn1>y*2?@baOcV8?Hc``HD+DP#6i6Z&RjXxZjF;@gon0sK zDv?qtQgi5`Jq1p*y;K$a5xMsgR8_I|np1A1P*v)w-^|*^j$kG4&V0Y$_ndEL{6{Pn zLGT=0+g0C15qirejVD+i9L~bvCBg^`8q$S=p!*6w-Cytv$cN?-_B}_~PlU~IL-F{# z>-WZmU^S2lzGIV&-wo*|CYt4jiYn2t<@)8asvIjJ6sk`SUkS`JK?MP$f)5J?zYmeX zCXcyQ0ig|u<5vOuaR3MQg1Z3^Erd9~yPeBsID|WZ8{X?|a>Jb4djeO$5#V<1MVs6R z=O$0!#=w8~uFpdX(Nq1$+jud~OP^q`2Pc5p+pJ{#)F}IKKSVju5@pY+-ji+K6P$P9 z1n+}*2oLX#G`;r$vww5)1ZHX%)`~qi{T%IjLsUps&tyj3$Q@!W%hWaqb-F0AvSn|Q z8OZqDsEo^!Qn74P2RM2ozbxkJGe8pzHL=w~NdRSfDZkRji?wrNAL3EyxfU-AOZiqW zJ!Psslx=d%=vnq8t*qE1OI<&v#O|-m&$i*RVzoGl-N>!9c}X<9sD@RcvY`+s(Qq^0 z5JAqJEN6Lx7`D^N%5j4YK_1~bdO(CH*g$&qiltOEnM$~7+0-nTs!s1hT_)xmGO&>} z6{S*^ZPhenO|nab!sfGVC%M!j7grl{(1?REOEsHRH@@6108Z#3F|bM9&^`VINq4bg zVAa^*c_>w<`=&SN$tYD|BsR>4gc>^J)*vP3nxbP~Tru^sY*Z!1G;CS1op{a@h&fLH zw)!*^T-k)`k|I+gm7tfLzS|%aS3xM|Kq%ep_UC)iPPl1l&%GXhdQ4bwjWePy#n>Q(1YyMnToUcpE^rhxJx|x5U<3 z`rVE?(@P=gJj{Oe5gx5>-1m)2;a6>#5o(P*D`S8KQg9(J52vXC=4?_V|MH$~BJp*JY^AvpC zKJK->l+cC&=(D2RQ4iZ<7mg_YH|Aw1DVnV6){J-2&Ol+LIx$3{bFZH6Pp-b0`zw0sy&nyw4}pRfGlOnek_=fVlH^7t z34B*HHjYZtw-s5dBVkE3VB@GZWp}jOxzgA!UbcZ;Nv8Fj`6kr)E`eon!wYZL$6Y)NEAA@EWya)-*LD8+4jQ($87YbW)?~ znAKw`g+^*J8qREm-V9Cb4^8~-OZG($vZ!aYmKdmY_a1$k8VR6YTc@G!`U<80v1`KAmv$dWKa|yw81UzTGC_T0H+0OOt>$UKi zT6~y0y9&>~v literal 0 HcmV?d00001 diff --git a/fusion_claims/models/__pycache__/sale_order.cpython-312.pyc b/fusion_claims/models/__pycache__/sale_order.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..edaa424731c5a6b1feb319adfa32bc4c42d32630 GIT binary patch literal 319805 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�F5W3(&4!Ey$#_~sKglRk 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�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 literal 0 HcmV?d00001 diff --git a/fusion_claims/models/__pycache__/technician_location.cpython-312.pyc b/fusion_claims/models/__pycache__/technician_location.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d465ecb6799f38b1d86f619cd23139e1c2b1fcad GIT binary patch literal 5759 zcma)AO>7&-72f5N%l|)7f3_@ZB-@eJk*L^plQ@kXIFf9umZd;)lUPMTtaq0Z>E$jn zyR<}x3RKiUr8a=9USzicVx&1Zuz;qw9$Vy6pcgYNpv}ey13eVJ$+3(UMh|_nQt=DkKq)HDt2cZu{gBf6&DA~WsT zZ>^$R^oT6{dDngS>w7ruv$UHUhp5S-Ukr%sdeB*QU|-G9F3sS+nqe`r9=-3XjW8Xu z^bYPZb_`BykNWJPJ#=A3>+$>Uy3MF%6TPT6Ly1kF(PBbuUT<;M6t}dGzNjs>!alXF zw>z2%sX2Rm54}$D;7$5|yS+lw)uRJ|-(>W-_{l!=&IJ zQxzzIYAJM15DJ(Vil{Hgm0HPd;q97?f^uLOYn-cQ#62s?`4aRdvq$H2&Rwhbic*>{ z$hu`6lgrI9oXceMD%N?~WZ$vAPy-h!UkY4SuVrKjoy+H;%B>X@!DOc(hefedY5@xp zZX-5oqvBSOOJSmbMiouxL9ukIriU{13N$*5GHFC?!OZ%kyBR4#<}*2Mum-7v+xH}8-;-p%XolcM zI2EO1`&~D8%m!a<6B*HMlfi;( zhFW0C^f2|apHtL=d!KPU|8pDyHM>&TEwZGay&DUjvO62yr36LMYiralMcK8$mYHn) zMNQjc*^}LaI-%7^#)GfF{tb|?P9VTa&=PE%QJED(pE#q_)W^SYQ)LD&VVDntdt8uo z>mKG*O-EP~$X&Gk*orD7UYKnNDo`H@HFA6&-N;CDTrv^1ENW_GY-H#P8Xldx zGCB^z#5n4!qYk%2kto+2`jHJsAlY!#@30W5tdnK`3nqpp&W(*s4UO~>;7{3m(T{q2 zIdpEy+CiswN9XgC6PHmPp!R^I9lGyb9GM*1o&`FK#wXtEeFNL~mbhSgO4iGz{~0l%FRuI4P(~Ix~~X^O(12w{&<1f+lyYk>EIm z$u-A^Av41}T6cjm!TI_ga^9N0TY*7#so__Mxk1RdAU;N{x&&-`rFlsx0RD%>jG(6_ zU6=*O!beEEe@4=46E@jv7<>*`0;)_FcwSOOe1a%35W2vyeMEK>B_JRO$Yrtw79t-A z983o4@k=#rENBGyh>JkN9I0(41A(6ar8_jCl?L|ZiM`ZEz>r3O9{3_g`NJ!|W#3A0 zIk@5LsQ5ZIDQ{&{&mF^SO&XY#>(I-(~N8}mh3r9D-RCD`gI~8kP z3geey-8=Y=u$0Ab|A9-qAHRt-!N$D;9-B>ohv+>S&vhT{l2i|CnC$nlnX3#z&vkGS z3{14ZD6M`03GIN>SlkE9)oHhFf9>&TN+cNezni1x;X6ljK|TpbH3__OL$Zj7yqgK$ z0XOj)pgxpp*aQ!SYY@0&coZm>k|ya8V$U?t+ElFuc+Ywl)uTV>O_Xx_rbND|ac?*f zhyYJVa(TUo29cub2uve%<}A7{NqO{xR}fK0ef5V%Bbf}Ko>zKmSYhYTt@b8D@WKKd z0-huNQJ-Z@SBb1Da&ecL6Fn%IL_OoSHG6bI;p5f>oY~?5*xk~x|7(#r3A&HTDO%w; zN1JZ47z=Gp`pwdrAz9)T*ylnX9c!fO?ZbdbL&YMj-`T!1ph>K7<6PXrY73C@4`CG3 zL*9yclgaV(CIggh2Hxf6f;57$icSBOV!kF~5~`cNVL(+qlY{r8R=B3aQxMQtQRm

GvZ9pI$wA@6m&J6HiN1x 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 D8}77g literal 0 HcmV?d00001 diff --git a/fusion_claims/models/__pycache__/technician_task_new.cpython-312.pyc b/fusion_claims/models/__pycache__/technician_task_new.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4c1da858dbb50e90c839f6b5d46c2c667662e94a GIT binary patch literal 33917 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 z_nvXMT|P{z{client_name}.' + ), + sections=sections, + note=note_text, + email_type='info', + button_url=sign_url, + button_text='Sign Now', + sender_name=self.env.user.name, + ) + + mail_values = { + 'subject': f'{order.company_id.name} - Page 11 Signature Required ({order.name})', + 'body_html': body_html, + 'email_to': self.signer_email, + 'email_from': ( + self.env.user.email_formatted + or order.company_id.email_formatted + ), + 'auto_delete': True, + } + mail = self.env['mail.mail'].sudo().create(mail_values) + mail.send() + + self.write({ + 'state': 'sent', + 'sent_date': fields.Datetime.now(), + }) + + signer_display = self.signer_name or self.signer_email + order.message_post( + body=Markup( + 'Page 11 signing request sent to %s (%s).' + ) % (signer_display, self.signer_email), + message_type='notification', + subtype_xmlid='mail.mt_note', + ) + + def _generate_signed_pdf(self): + """Generate the signed Page 11 PDF using the PDF template engine.""" + self.ensure_one() + order = self.sale_order_id + + assessment = self.env['fusion.assessment'].search([ + ('sale_order_id', '=', order.id), + ], limit=1, order='create_date desc') + + if assessment: + ctx = assessment._get_pdf_context() + else: + ctx = self._build_pdf_context_from_order() + + if self.client_first_name: + ctx['client_first_name'] = self.client_first_name + if self.client_last_name: + ctx['client_last_name'] = self.client_last_name + if self.client_health_card: + ctx['client_health_card'] = self.client_health_card + if self.client_health_card_version: + ctx['client_health_card_version'] = self.client_health_card_version + + ctx.update({ + 'consent_signed_by': self.consent_signed_by or '', + 'consent_applicant': self.consent_signed_by == 'applicant', + 'consent_agent': self.consent_signed_by == 'agent', + 'consent_declaration_accepted': self.consent_declaration_accepted, + 'consent_date': str(fields.Date.today()), + }) + + if self.consent_signed_by == 'agent': + ctx.update({ + 'agent_first_name': self.agent_first_name or '', + 'agent_last_name': self.agent_last_name or '', + 'agent_middle_initial': self.agent_middle_initial or '', + 'agent_unit': self.agent_unit or '', + 'agent_street_number': self.agent_street_number or '', + 'agent_street_name': self.agent_street or '', + 'agent_city': self.agent_city or '', + 'agent_province': self.agent_province or '', + 'agent_postal_code': self.agent_postal_code or '', + 'agent_home_phone': self.agent_phone or '', + 'agent_relationship': self.signer_relationship or '', + 'agent_rel_spouse': self.signer_type == 'spouse', + 'agent_rel_parent': self.signer_type == 'parent', + 'agent_rel_poa': self.signer_type == 'poa', + 'agent_rel_guardian': self.signer_type in ('legal_guardian', 'public_trustee'), + }) + + signatures = {} + if self.signature_data: + signatures['signature_page_11'] = base64.b64decode(self.signature_data) + + template = self.env['fusion.pdf.template'].search([ + ('state', '=', 'active'), + ('name', 'ilike', 'adp_page_11'), + ], limit=1) + + if not template: + template = self.env['fusion.pdf.template'].search([ + ('state', '=', 'active'), + ('name', 'ilike', 'page 11'), + ], limit=1) + + if not template: + _logger.warning("No active PDF template found for Page 11") + return None + + try: + pdf_bytes = template.generate_filled_pdf(ctx, signatures) + if pdf_bytes: + first, last = order._get_client_name_parts() + filename = f'{first}_{last}_Page11_Signed.pdf' + self.write({ + 'signed_pdf': base64.b64encode(pdf_bytes), + 'signed_pdf_filename': filename, + }) + return pdf_bytes + except Exception as e: + _logger.error("Failed to generate Page 11 PDF: %s", e) + return None + + def _build_pdf_context_from_order(self): + """Build a PDF context dict from the sale order when no assessment exists.""" + order = self.sale_order_id + partner = order.partner_id + first, last = order._get_client_name_parts() + return { + 'client_first_name': first, + 'client_last_name': last, + 'client_name': partner.name or '', + 'client_street': partner.street or '', + 'client_city': partner.city or '', + 'client_state': partner.state_id.name if partner.state_id else 'Ontario', + 'client_postal_code': partner.zip or '', + 'client_phone': partner.phone or partner.mobile or '', + 'client_email': partner.email or '', + 'client_type': order.x_fc_client_type or '', + 'client_type_reg': order.x_fc_client_type == 'REG', + 'client_type_ods': order.x_fc_client_type == 'ODS', + 'client_type_acs': order.x_fc_client_type == 'ACS', + 'client_type_owp': order.x_fc_client_type == 'OWP', + 'reference': order.name or '', + 'authorizer_name': order.x_fc_authorizer_id.name if order.x_fc_authorizer_id else '', + 'authorizer_phone': order.x_fc_authorizer_id.phone if order.x_fc_authorizer_id else '', + 'authorizer_email': order.x_fc_authorizer_id.email if order.x_fc_authorizer_id else '', + 'claim_authorization_date': str(order.x_fc_claim_authorization_date) if order.x_fc_claim_authorization_date else '', + 'assessment_start_date': str(order.x_fc_assessment_start_date) if order.x_fc_assessment_start_date else '', + 'assessment_end_date': str(order.x_fc_assessment_end_date) if order.x_fc_assessment_end_date else '', + } + + def _update_sale_order(self): + """Copy signing data from this request to the sale order.""" + self.ensure_one() + order = self.sale_order_id + vals = { + 'x_fc_page11_signer_type': self.signer_type, + 'x_fc_page11_signer_name': self.signer_name, + 'x_fc_page11_signed_date': fields.Date.today(), + } + if self.signer_type != 'client': + vals['x_fc_page11_signer_relationship'] = ( + self.signer_relationship + or SIGNER_TYPE_TO_RELATIONSHIP.get(self.signer_type, '') + ) + if self.signed_pdf: + vals['x_fc_signed_pages_11_12'] = self.signed_pdf + vals['x_fc_signed_pages_filename'] = self.signed_pdf_filename + + order.with_context( + skip_page11_check=True, + skip_document_chatter=True, + ).write(vals) + + signer_display = self.signer_name or 'N/A' + if self.signed_pdf: + att = self.env['ir.attachment'].sudo().create({ + 'name': self.signed_pdf_filename or 'Page11_Signed.pdf', + 'datas': self.signed_pdf, + 'res_model': 'sale.order', + 'res_id': order.id, + 'mimetype': 'application/pdf', + }) + order.message_post( + body=Markup( + 'Page 11 has been signed by %s (%s).' + ) % (signer_display, self.signer_email), + attachment_ids=[att.id], + message_type='notification', + subtype_xmlid='mail.mt_note', + ) + else: + order.message_post( + body=Markup( + 'Page 11 has been signed by %s (%s). ' + 'PDF generation was not available.' + ) % (signer_display, self.signer_email), + message_type='notification', + subtype_xmlid='mail.mt_note', + ) + + def action_cancel(self): + """Cancel a pending signing request.""" + for rec in self: + if rec.state in ('draft', 'sent'): + rec.state = 'cancelled' + + def action_resend(self): + """Resend the signing email.""" + for rec in self: + if rec.state in ('sent', 'expired'): + rec.expiry_date = fields.Datetime.now() + timedelta(days=7) + rec.access_token = str(uuid.uuid4()) + rec._send_signing_email() + + def action_request_new_signature(self): + """Create a new signing request (e.g. to re-sign after corrections).""" + self.ensure_one() + if self.state == 'signed': + self.state = 'cancelled' + return { + 'type': 'ir.actions.act_window', + 'name': 'Request Page 11 Signature', + 'res_model': 'fusion_claims.send.page11.wizard', + 'view_mode': 'form', + 'target': 'new', + 'context': { + 'default_sale_order_id': self.sale_order_id.id, + 'default_signer_email': self.signer_email, + 'default_signer_name': self.signer_name, + 'default_signer_type': self.signer_type, + }, + } + + @api.model + def _cron_expire_requests(self): + """Mark expired unsigned requests.""" + expired = self.search([ + ('state', '=', 'sent'), + ('expiry_date', '<', fields.Datetime.now()), + ]) + if expired: + expired.write({'state': 'expired'}) + _logger.info("Expired %d Page 11 signing requests", len(expired)) diff --git a/fusion_claims/models/res_config_settings.py b/fusion_claims/models/res_config_settings.py index 32013fd9..85149702 100644 --- a/fusion_claims/models/res_config_settings.py +++ b/fusion_claims/models/res_config_settings.py @@ -317,16 +317,6 @@ class ResConfigSettings(models.TransientModel): help='The user who signs Page 12 on behalf of the company', ) - # ========================================================================= - # GOOGLE MAPS API SETTINGS - # ========================================================================= - - fc_google_maps_api_key = fields.Char( - string='Google Maps API Key', - config_parameter='fusion_claims.google_maps_api_key', - help='API key for Google Maps Places autocomplete in address fields', - ) - # ------------------------------------------------------------------ # AI CLIENT INTELLIGENCE # ------------------------------------------------------------------ @@ -349,62 +339,6 @@ class ResConfigSettings(models.TransientModel): help='Automatically parse ADP XML files when uploaded and create/update client profiles', ) - # ------------------------------------------------------------------ - # TECHNICIAN MANAGEMENT - # ------------------------------------------------------------------ - fc_store_open_hour = fields.Float( - string='Store Open Time', - config_parameter='fusion_claims.store_open_hour', - help='Store opening time for technician scheduling (e.g. 9.0 = 9:00 AM)', - ) - fc_store_close_hour = fields.Float( - string='Store Close Time', - config_parameter='fusion_claims.store_close_hour', - help='Store closing time for technician scheduling (e.g. 18.0 = 6:00 PM)', - ) - fc_google_distance_matrix_enabled = fields.Boolean( - string='Enable Distance Matrix', - config_parameter='fusion_claims.google_distance_matrix_enabled', - help='Enable Google Distance Matrix API for travel time calculations between technician tasks', - ) - fc_technician_start_address = fields.Char( - string='Technician Start Address', - config_parameter='fusion_claims.technician_start_address', - help='Default start location for technician travel calculations (e.g. warehouse/office address)', - ) - fc_location_retention_days = fields.Char( - string='Location History Retention (Days)', - config_parameter='fusion_claims.location_retention_days', - help='How many days to keep technician location history. ' - 'Leave empty = 30 days (1 month). ' - '0 = delete at end of each day. ' - '1+ = keep for that many days.', - ) - - # ------------------------------------------------------------------ - # WEB PUSH NOTIFICATIONS - # ------------------------------------------------------------------ - fc_push_enabled = fields.Boolean( - string='Enable Push Notifications', - config_parameter='fusion_claims.push_enabled', - help='Enable web push notifications for technician tasks', - ) - fc_vapid_public_key = fields.Char( - string='VAPID Public Key', - config_parameter='fusion_claims.vapid_public_key', - help='Public key for Web Push VAPID authentication (auto-generated)', - ) - fc_vapid_private_key = fields.Char( - string='VAPID Private Key', - config_parameter='fusion_claims.vapid_private_key', - help='Private key for Web Push VAPID authentication (auto-generated)', - ) - fc_push_advance_minutes = fields.Integer( - string='Notification Advance (min)', - config_parameter='fusion_claims.push_advance_minutes', - help='Send push notifications this many minutes before a scheduled task', - ) - # ------------------------------------------------------------------ # TWILIO SMS SETTINGS # ------------------------------------------------------------------ @@ -609,15 +543,11 @@ class ResConfigSettings(models.TransientModel): # an existing non-empty value (e.g. API keys, user-customized settings). _protected_keys = [ 'fusion_claims.ai_api_key', - 'fusion_claims.google_maps_api_key', 'fusion_claims.vendor_code', 'fusion_claims.ai_model', 'fusion_claims.adp_posting_base_date', 'fusion_claims.application_reminder_days', 'fusion_claims.application_reminder_2_days', - 'fusion_claims.store_open_hour', - 'fusion_claims.store_close_hour', - 'fusion_claims.technician_start_address', ] # Snapshot existing values BEFORE super().set_values() runs _existing = {} diff --git a/fusion_claims/models/res_partner.py b/fusion_claims/models/res_partner.py index a8892fe0..ef92eab7 100644 --- a/fusion_claims/models/res_partner.py +++ b/fusion_claims/models/res_partner.py @@ -2,82 +2,12 @@ # Copyright 2024-2026 Nexa Systems Inc. # License OPL-1 (Odoo Proprietary License v1.0) -import logging -import requests from odoo import models, fields, api -_logger = logging.getLogger(__name__) - class ResPartner(models.Model): _inherit = 'res.partner' - x_fc_start_address = fields.Char( - string='Start Location', - help='Technician daily start location (home, warehouse, etc.). ' - 'Used as origin for first travel time calculation. ' - 'If empty, the company default HQ address is used.', - ) - x_fc_start_address_lat = fields.Float( - string='Start Latitude', digits=(10, 7), - ) - x_fc_start_address_lng = fields.Float( - string='Start Longitude', digits=(10, 7), - ) - - def _geocode_start_address(self, address): - if not address or not address.strip(): - return 0.0, 0.0 - api_key = self.env['ir.config_parameter'].sudo().get_param( - 'fusion_claims.google_maps_api_key', '') - if not api_key: - return 0.0, 0.0 - try: - resp = requests.get( - 'https://maps.googleapis.com/maps/api/geocode/json', - params={'address': address.strip(), 'key': api_key, 'region': 'ca'}, - timeout=10, - ) - data = resp.json() - if data.get('status') == 'OK' and data.get('results'): - loc = data['results'][0]['geometry']['location'] - return loc['lat'], loc['lng'] - except Exception as e: - _logger.warning("Start address geocoding failed for '%s': %s", address, e) - return 0.0, 0.0 - - @api.model_create_multi - def create(self, vals_list): - records = super().create(vals_list) - for rec, vals in zip(records, vals_list): - addr = vals.get('x_fc_start_address') - if addr: - lat, lng = rec._geocode_start_address(addr) - if lat and lng: - rec.write({ - 'x_fc_start_address_lat': lat, - 'x_fc_start_address_lng': lng, - }) - return records - - def write(self, vals): - res = super().write(vals) - if 'x_fc_start_address' in vals: - addr = vals['x_fc_start_address'] - if addr and addr.strip(): - lat, lng = self._geocode_start_address(addr) - if lat and lng: - super().write({ - 'x_fc_start_address_lat': lat, - 'x_fc_start_address_lng': lng, - }) - else: - super().write({ - 'x_fc_start_address_lat': 0.0, - 'x_fc_start_address_lng': 0.0, - }) - return res - # ========================================================================== # CONTACT TYPE # ========================================================================== diff --git a/fusion_claims/models/sale_order.py b/fusion_claims/models/sale_order.py index 5886aa58..17e66b87 100644 --- a/fusion_claims/models/sale_order.py +++ b/fusion_claims/models/sale_order.py @@ -1862,6 +1862,10 @@ class SaleOrder(models.Model): string='Previous Status Before Hold', help='Status before the application was put on hold (for resuming)', ) + x_fc_previous_status_before_withdrawal = fields.Char( + string='Status Before Withdrawal', + help='Records the status before withdrawal for audit trail.', + ) x_fc_status_before_delivery = fields.Char( string='Status Before Delivery', @@ -2327,6 +2331,20 @@ class SaleOrder(models.Model): help='Date when Page 11 was signed', ) + page11_sign_request_ids = fields.One2many( + 'fusion.page11.sign.request', 'sale_order_id', + string='Page 11 Signing Requests', + ) + page11_sign_request_count = fields.Integer( + compute='_compute_page11_sign_request_count', + string='Signing Requests', + ) + page11_sign_status = fields.Selection([ + ('none', 'Not Requested'), + ('sent', 'Pending Signature'), + ('signed', 'Signed'), + ], compute='_compute_page11_sign_request_count', string='Page 11 Remote Status') + # ========================================================================== # PAGE 12 SIGNATURE TRACKING (Authorizer + Vendor Signature) # Page 12 must be signed by: Authorizer (OT) and Vendor (our company) @@ -3120,11 +3138,49 @@ class SaleOrder(models.Model): self.ensure_one() return self._action_open_document('x_fc_original_application', 'Original ADP Application') + @api.depends('page11_sign_request_ids', 'page11_sign_request_ids.state') + def _compute_page11_sign_request_count(self): + for order in self: + requests = order.page11_sign_request_ids + order.page11_sign_request_count = len(requests) + signed = requests.filtered(lambda r: r.state == 'signed') + pending = requests.filtered(lambda r: r.state == 'sent') + if signed: + order.page11_sign_status = 'signed' + elif pending: + order.page11_sign_status = 'sent' + else: + order.page11_sign_status = 'none' + def action_open_signed_pages(self): """Open the Page 11 & 12 PDF.""" self.ensure_one() return self._action_open_document('x_fc_signed_pages_11_12', 'Page 11 & 12 (Signed)') - + + def action_request_page11_signature(self): + """Open the wizard to send Page 11 for remote signing.""" + self.ensure_one() + return { + 'type': 'ir.actions.act_window', + 'name': 'Request Page 11 Signature', + 'res_model': 'fusion_claims.send.page11.wizard', + 'view_mode': 'form', + 'target': 'new', + 'context': {'default_sale_order_id': self.id}, + } + + def action_view_page11_requests(self): + """Open the list of Page 11 signing requests.""" + self.ensure_one() + return { + 'type': 'ir.actions.act_window', + 'name': 'Page 11 Signing Requests', + 'res_model': 'fusion.page11.sign.request', + 'view_mode': 'list,form', + 'domain': [('sale_order_id', '=', self.id)], + 'context': {'default_sale_order_id': self.id}, + } + def action_open_final_application(self): """Open the Final Submitted Application PDF.""" self.ensure_one() @@ -3686,6 +3742,41 @@ class SaleOrder(models.Model): return True + def action_resubmit_from_withdrawn(self): + """Return a withdrawn application to Ready for Submission for correction and resubmission.""" + self.ensure_one() + + if self.x_fc_adp_application_status != 'withdrawn': + raise UserError("This action is only available for withdrawn applications.") + + self.with_context(skip_status_validation=True).write({ + 'x_fc_adp_application_status': 'ready_submission', + }) + + user_name = self.env.user.name + resubmit_date = fields.Date.today().strftime('%B %d, %Y') + + message_body = f''' +

+ ''' + + self.message_post( + body=Markup(message_body), + message_type='notification', + subtype_xmlid='mail.mt_note', + ) + + return True + def action_set_ready_to_bill(self): """Open the Ready to Bill wizard to collect POD and delivery date. @@ -4520,6 +4611,12 @@ class SaleOrder(models.Model): if 'x_fc_device_placement' in self.env['account.move.line']._fields: line_vals['x_fc_device_placement'] = line.x_fc_device_placement + # Copy deduction fields so export verification can recalculate correctly + if 'x_fc_deduction_type' in self.env['account.move.line']._fields: + line_vals['x_fc_deduction_type'] = line.x_fc_deduction_type or 'none' + if 'x_fc_deduction_value' in self.env['account.move.line']._fields: + line_vals['x_fc_deduction_value'] = line.x_fc_deduction_value or 0 + # Store BOTH portions on invoice line (for display) if 'x_fc_adp_portion' in self.env['account.move.line']._fields: line_vals['x_fc_adp_portion'] = adp_portion @@ -5170,13 +5267,13 @@ class SaleOrder(models.Model): f'border-bottom:2px solid #4a5568;{font}"' ) cell_style = ( - 'style="padding:7px 10px;font-size:12px;color:#2d3748;' - 'border-bottom:1px solid #e2e8f0;"' + 'style="padding:7px 10px;font-size:12px;' + 'border-bottom:1px solid rgba(128,128,128,0.15);"' ) - alt_row = 'style="background:#f7fafc;"' + alt_row = 'style="background:rgba(128,128,128,0.06);"' amt_style = ( - 'style="padding:7px 10px;font-size:12px;color:#2d3748;' - 'border-bottom:1px solid #e2e8f0;text-align:right;"' + 'style="padding:7px 10px;font-size:12px;' + 'border-bottom:1px solid rgba(128,128,128,0.15);text-align:right;"' ) hdr_r = hdr_style.replace('text-align:left', 'text-align:right') @@ -5187,9 +5284,9 @@ class SaleOrder(models.Model): html = ( '
' - f'

Approved Items

' - '' + '
' '' f'' f'' @@ -5241,13 +5338,13 @@ class SaleOrder(models.Model): colspan = 5 total_style = ( 'style="padding:8px 10px;font-size:12px;font-weight:700;' - 'color:#1a202c;border-top:2px solid #2d3748;text-align:right;"' + 'border-top:2px solid rgba(128,128,128,0.3);text-align:right;"' ) total_label_style = ( - f'style="padding:8px 10px;font-size:12px;font-weight:700;' - f'color:#1a202c;border-top:2px solid #2d3748;text-align:right;"' + 'style="padding:8px 10px;font-size:12px;font-weight:700;' + 'border-top:2px solid rgba(128,128,128,0.3);text-align:right;"' ) - html += f'' + html += '' html += f'' html += f'' html += f'' @@ -5529,8 +5626,13 @@ class SaleOrder(models.Model): _logger.error(f"Failed to send case closed email for {self.name}: {e}") return False - def _send_withdrawal_email(self, reason=None): - """Send notification when application is withdrawn.""" + def _send_withdrawal_email(self, reason=None, intent=None): + """Send notification when application is withdrawn. + + Args: + reason: Free-text reason for withdrawal. + intent: 'cancel' or 'resubmit' — determines email wording. + """ self.ensure_one() if not self._is_email_notifications_enabled(): return False @@ -5542,17 +5644,34 @@ class SaleOrder(models.Model): client_name = (recipients.get('client') or self.partner_id).name or 'Client' sales_rep_name = (recipients.get('sales_rep') or self.env.user).name - note_text = 'This application has been withdrawn from the Assistive Devices Program.' + if intent == 'cancel': + note_text = ('This application has been permanently withdrawn and cancelled. ' + 'The sale order and all related invoices have been cancelled.') + title = 'Application Withdrawn & Cancelled' + subject_suffix = 'Withdrawn & Cancelled' + note_color = '#dc3545' + elif intent == 'resubmit': + note_text = ('This application has been withdrawn for correction and will be resubmitted. ' + 'The application has been returned to Ready for Submission status.') + title = 'Application Withdrawn for Correction' + subject_suffix = 'Withdrawn for Correction' + note_color = '#d69e2e' + else: + note_text = 'This application has been withdrawn from the Assistive Devices Program.' + title = 'Application Withdrawn' + subject_suffix = 'Withdrawn' + note_color = '#d69e2e' + if reason: note_text += f'
Reason: {reason}' body_html = self._email_build( - title='Application Withdrawn', + title=title, summary=f'The ADP application for {client_name} has been withdrawn.', email_type='attention', sections=[('Case Details', self._build_case_detail_rows())], note=note_text, - note_color='#d69e2e', + note_color=note_color, button_url=f'{self.get_base_url()}/web#id={self.id}&model=sale.order&view_type=form', sender_name=sales_rep_name, ) @@ -5560,12 +5679,12 @@ class SaleOrder(models.Model): email_cc = ', '.join(cc_emails) if to_emails else ', '.join(cc_emails[1:]) try: self.env['mail.mail'].sudo().create({ - 'subject': f'Application Withdrawn - {client_name} - {self.name}', + 'subject': f'Application {subject_suffix} - {client_name} - {self.name}', 'body_html': body_html, 'email_to': email_to, 'email_cc': email_cc, 'model': 'sale.order', 'res_id': self.id, }).send() - self._email_chatter_log('Application Withdrawn email sent', email_to, email_cc) + self._email_chatter_log(f'{title} email sent', email_to, email_cc) return True except Exception as e: _logger.error(f"Failed to send withdrawal email for {self.name}: {e}") @@ -5862,7 +5981,10 @@ class SaleOrder(models.Model): 'x_fc_proof_of_delivery', 'x_fc_approval_letter', ] - doc_changes = {f: vals.get(f) for f in document_fields if f in vals and vals.get(f)} + if self.env.context.get('skip_document_chatter'): + doc_changes = {} + else: + doc_changes = {f: vals.get(f) for f in document_fields if f in vals and vals.get(f)} # Preserve old documents in chatter BEFORE they get replaced or deleted # This ensures document history is maintained for audit purposes @@ -5885,7 +6007,7 @@ class SaleOrder(models.Model): for order in self: for field_name in document_fields: - if field_name in vals and field_name not in correction_handled: + if field_name in vals and field_name not in correction_handled and not self.env.context.get('skip_document_chatter'): old_data = getattr(order, field_name, None) new_data = vals.get(field_name) label = document_labels.get(field_name, field_name) @@ -6584,96 +6706,6 @@ class SaleOrder(models.Model): except Exception as e: _logger.error(f" Failed to sync serial to invoice line {inv_line.id}: {e}") - def action_sync_adp_fields(self): - """Manual action to sync all ADP fields to invoices.""" - synced_invoices = 0 - for order in self: - # First sync Studio fields to FC fields on the SO itself - order._sync_studio_to_fc_fields() - - # Then sync to invoices - invoices = order.invoice_ids.filtered(lambda inv: inv.state != 'cancel') - if invoices: - order._sync_fields_to_invoices() - synced_invoices += len(invoices) - - # Force refresh of the view - return { - 'type': 'ir.actions.client', - 'tag': 'display_notification', - 'params': { - 'title': 'Fields Synchronized', - 'message': f'Synced ADP fields from {len(self)} sale order(s) to {synced_invoices} invoice(s). Please refresh the page to see updated values.', - 'type': 'success', - 'sticky': False, - } - } - - @api.model - def _cron_sync_adp_fields(self): - """Cron job to sync ADP fields from Sale Orders to Invoices. - - Processes all ADP sales created/modified in the last 7 days. - Uses dynamic field mappings from Settings. - """ - from datetime import timedelta - cutoff_date = fields.Datetime.now() - timedelta(days=7) - - # Get field mappings - mappings = self._get_field_mappings() - sale_type_field = self.env['ir.config_parameter'].sudo().get_param( - 'fusion_claims.field_sale_type', 'x_fc_sale_type' - ) - - # Build domain - check FC sale type fields - domain = [('write_date', '>=', cutoff_date)] - or_conditions = [] - - # Check FC sale type field - if sale_type_field in self._fields: - or_conditions.append((sale_type_field, 'in', ['adp', 'adp_odsp', 'ADP', 'ADP/ODSP'])) - - # Check claim number fields - claim_field = mappings.get('so_claim_number', 'x_fc_claim_number') - if claim_field in self._fields: - or_conditions.append((claim_field, '!=', False)) - - # Combine with OR - each '|' must be a separate element in the domain list - if or_conditions: - # Add (n-1) OR operators for n conditions - for _ in range(len(or_conditions) - 1): - domain.append('|') - # Add all conditions - for cond in or_conditions: - domain.append(cond) - - try: - orders = self.search(domain) - except Exception as e: - _logger.error(f"Error searching for ADP orders: {e}") - # Fallback to simpler search - orders = self.search([ - ('write_date', '>=', cutoff_date), - ('invoice_ids', '!=', False), - ]) - - synced_count = 0 - error_count = 0 - - for order in orders: - try: - # Only sync if it's an ADP sale - if order._is_adp_sale() or order.x_fc_claim_number: - order._sync_studio_to_fc_fields() - order._sync_fields_to_invoices() - synced_count += 1 - except Exception as e: - error_count += 1 - _logger.warning(f"Failed to sync order {order.name}: {e}") - - _logger.info(f"Fusion Claims sync complete: {synced_count} orders synced, {error_count} errors") - return synced_count - # ========================================================================== # EMAIL SEND OVERRIDE (Use ADP templates for ADP sales) # ========================================================================== diff --git a/fusion_claims/models/technician_task.py b/fusion_claims/models/technician_task.py index 774dd1b4..8fb9c020 100644 --- a/fusion_claims/models/technician_task.py +++ b/fusion_claims/models/technician_task.py @@ -3,182 +3,28 @@ # License OPL-1 (Odoo Proprietary License v1.0) """ -Fusion Technician Task -Scheduling and task management for field technicians. -Replaces Monday.com for technician schedule tracking. +Fusion Technician Task - Claims Extension +Adds sale order, purchase order, LTC facility, and rental inspection +features to the base fusion.technician.task model. """ from odoo import models, fields, api, _ from odoo.exceptions import UserError, ValidationError -from odoo.osv import expression from markupsafe import Markup import logging -import json -import uuid -import requests -from datetime import datetime as dt_datetime, timedelta -import urllib.parse _logger = logging.getLogger(__name__) -class FusionTechnicianTask(models.Model): - _name = 'fusion.technician.task' - _description = 'Technician Task' - _order = 'scheduled_date, sequence, time_start, id' - _inherit = ['mail.thread', 'mail.activity.mixin'] - _rec_name = 'name' - - def _compute_display_name(self): - """Richer display name: Client - Type | 9:00 AM - 10:00 AM [+2 techs].""" - type_labels = dict(self._fields['task_type'].selection) - for task in self: - client = task.x_fc_sync_client_name if task.x_fc_sync_source else (task.partner_id.name or '') - ttype = type_labels.get(task.task_type, task.task_type or '') - start = self._float_to_time_str(task.time_start) - end = self._float_to_time_str(task.time_end) - parts = [client, ttype] - label = ' - '.join(p for p in parts if p) - if start and end: - label += f' | {start} - {end}' - extra = len(task.additional_technician_ids) - if extra: - label += f' [+{extra} tech{"s" if extra > 1 else ""}]' - task.display_name = label or task.name +class FusionTechnicianTaskClaims(models.Model): + _inherit = 'fusion.technician.task' # ------------------------------------------------------------------ - # STORE HOURS HELPER + # LINKED ORDER FIELDS # ------------------------------------------------------------------ - def _get_store_hours(self): - """Return (open_hour, close_hour) from settings. Defaults 9.0 / 18.0.""" - ICP = self.env['ir.config_parameter'].sudo() - try: - open_h = float(ICP.get_param('fusion_claims.store_open_hour', '9.0') or '9.0') - except (ValueError, TypeError): - open_h = 9.0 - try: - close_h = float(ICP.get_param('fusion_claims.store_close_hour', '18.0') or '18.0') - except (ValueError, TypeError): - close_h = 18.0 - return (open_h, close_h) - - # ------------------------------------------------------------------ - # CORE FIELDS - # ------------------------------------------------------------------ - name = fields.Char( - string='Task Reference', - required=True, - copy=False, - readonly=True, - default=lambda self: _('New'), - ) - active = fields.Boolean(default=True) - - # Cross-instance sync fields - x_fc_sync_source = fields.Char( - 'Source Instance', readonly=True, index=True, - help='Origin instance ID if this is a synced shadow task (e.g. westin, mobility)', - ) - x_fc_sync_remote_id = fields.Integer( - 'Remote Task ID', readonly=True, - help='ID of the task on the remote instance', - ) - x_fc_sync_uuid = fields.Char( - 'Sync UUID', readonly=True, index=True, copy=False, - help='Unique ID for cross-instance deduplication', - ) - x_fc_is_shadow = fields.Boolean( - 'Shadow Task', compute='_compute_is_shadow', store=True, - help='True if this task was synced from another instance', - ) - x_fc_sync_client_name = fields.Char( - 'Synced Client Name', readonly=True, - help='Client name from the remote instance (shadow tasks only)', - ) - x_fc_sync_client_phone = fields.Char( - 'Synced Client Phone', readonly=True, - help='Client phone from the remote instance (shadow tasks only)', - ) - - client_display_name = fields.Char( - compute='_compute_client_display', string='Client Name (Display)', - ) - client_display_phone = fields.Char( - compute='_compute_client_display', string='Client Phone (Display)', - ) - - x_fc_source_label = fields.Char( - 'Source', compute='_compute_is_shadow', store=True, - ) - - @api.depends('x_fc_sync_source') - def _compute_is_shadow(self): - local_id = self.env['ir.config_parameter'].sudo().get_param( - 'fusion_claims.sync_instance_id', '') - for task in self: - task.x_fc_is_shadow = bool(task.x_fc_sync_source) - task.x_fc_source_label = task.x_fc_sync_source or local_id - - @api.depends('x_fc_sync_source', 'x_fc_sync_client_name', - 'x_fc_sync_client_phone', 'partner_id') - def _compute_client_display(self): - for task in self: - if task.x_fc_sync_source: - task.client_display_name = task.x_fc_sync_client_name or task.name or '' - task.client_display_phone = task.x_fc_sync_client_phone or '' - else: - task.client_display_name = task.partner_id.name if task.partner_id else '' - task.client_display_phone = task.partner_id.phone if task.partner_id else '' - - technician_id = fields.Many2one( - 'res.users', - string='Technician', - required=True, - tracking=True, - domain="[('x_fc_is_field_staff', '=', True)]", - help='Lead technician responsible for this task', - ) - technician_name = fields.Char( - related='technician_id.name', - string='Technician Name', - store=True, - ) - additional_technician_ids = fields.Many2many( - 'res.users', - 'technician_task_additional_tech_rel', - 'task_id', - 'user_id', - string='Additional Technicians', - domain="[('x_fc_is_field_staff', '=', True)]", - tracking=True, - help='Additional technicians assigned to assist on this task', - ) - all_technician_ids = fields.Many2many( - 'res.users', - compute='_compute_all_technician_ids', - string='All Technicians', - help='Lead + additional technicians combined', - ) - additional_tech_count = fields.Integer( - compute='_compute_all_technician_ids', - string='Extra Techs', - ) - all_technician_names = fields.Char( - compute='_compute_all_technician_ids', - string='All Technician Names', - ) - - @api.depends('technician_id', 'additional_technician_ids') - def _compute_all_technician_ids(self): - for task in self: - all_techs = task.technician_id | task.additional_technician_ids - task.all_technician_ids = all_techs - task.additional_tech_count = len(task.additional_technician_ids) - task.all_technician_names = ', '.join(all_techs.mapped('name')) - sale_order_id = fields.Many2one( 'sale.order', - string='Related Case', + string='Related SO', tracking=True, ondelete='restrict', help='Sale order / case linked to this task', @@ -191,7 +37,7 @@ class FusionTechnicianTask(models.Model): purchase_order_id = fields.Many2one( 'purchase.order', - string='Related Purchase Order', + string='Related PO', tracking=True, ondelete='restrict', help='Purchase order linked to this task (e.g. manufacturer pickup)', @@ -202,18 +48,6 @@ class FusionTechnicianTask(models.Model): store=True, ) - task_type = fields.Selection([ - ('delivery', 'Delivery'), - ('repair', 'Repair'), - ('pickup', 'Pickup'), - ('troubleshoot', 'Troubleshooting'), - ('assessment', 'Assessment'), - ('installation', 'Installation'), - ('maintenance', 'Maintenance'), - ('ltc_visit', 'LTC Visit'), - ('other', 'Other'), - ], string='Task Type', required=True, default='delivery', tracking=True) - facility_id = fields.Many2one( 'fusion.ltc.facility', string='LTC Facility', @@ -222,281 +56,7 @@ class FusionTechnicianTask(models.Model): ) # ------------------------------------------------------------------ - # SCHEDULING - # ------------------------------------------------------------------ - scheduled_date = fields.Date( - string='Scheduled Date', - tracking=True, - default=fields.Date.context_today, - index=True, - ) - time_start = fields.Float( - string='Start Time', - help='Start time in hours (e.g. 9.5 = 9:30 AM)', - default=9.0, - ) - time_end = fields.Float( - string='End Time', - help='End time in hours (e.g. 10.5 = 10:30 AM)', - default=10.0, - ) - time_start_display = fields.Char( - string='Start', - compute='_compute_time_displays', - ) - time_end_display = fields.Char( - string='End', - compute='_compute_time_displays', - ) - # Legacy 12h selection fields -- kept for DB compatibility, hidden on form - time_start_12h = fields.Selection( - selection='_get_time_selection', - string='Start Time (12h)', - compute='_compute_time_12h', - inverse='_inverse_time_start_12h', - store=True, - ) - time_end_12h = fields.Selection( - selection='_get_time_selection', - string='End Time (12h)', - compute='_compute_time_12h', - inverse='_inverse_time_end_12h', - store=True, - ) - sequence = fields.Integer( - string='Sequence', - default=10, - help='Order of task within the day', - ) - duration_hours = fields.Float( - string='Duration', - default=1.0, - help='Task duration in hours. Auto-calculates end time.', - ) - - # Task type -> default duration mapping - TASK_TYPE_DURATIONS = { - 'delivery': 1.0, - 'repair': 2.0, - 'pickup': 0.5, - 'troubleshoot': 1.5, - 'assessment': 1.5, - 'installation': 2.0, - 'maintenance': 1.5, - 'ltc_visit': 3.0, - 'other': 1.0, - } - - # Previous task travel warning banner - prev_task_summary_html = fields.Html( - string='Previous Task', - compute='_compute_prev_task_summary', - sanitize=False, - ) - - # Datetime fields for calendar view (computed from date + float time) - datetime_start = fields.Datetime( - string='Start', - compute='_compute_datetimes', - inverse='_inverse_datetime_start', - store=True, - help='Combined start datetime for calendar display', - ) - datetime_end = fields.Datetime( - string='End', - compute='_compute_datetimes', - inverse='_inverse_datetime_end', - store=True, - help='Combined end datetime for calendar display', - ) - - calendar_event_id = fields.Many2one( - 'calendar.event', - string='Calendar Event', - copy=False, - ondelete='set null', - help='Linked calendar event for external calendar sync', - ) - - # Schedule info helper for the form - schedule_info_html = fields.Html( - string='Schedule Info', - compute='_compute_schedule_info', - sanitize=False, - ) - - # ------------------------------------------------------------------ - # STATUS - # ------------------------------------------------------------------ - status = fields.Selection([ - ('pending', 'Pending'), - ('scheduled', 'Scheduled'), - ('en_route', 'En Route'), - ('in_progress', 'In Progress'), - ('completed', 'Completed'), - ('cancelled', 'Cancelled'), - ('rescheduled', 'Rescheduled'), - ], string='Status', default='scheduled', required=True, tracking=True, index=True) - - priority = fields.Selection([ - ('0', 'Normal'), - ('1', 'Urgent'), - ('2', 'Emergency'), - ], string='Priority', default='0') - - color = fields.Integer( - string='Color Index', - compute='_compute_color', - ) - - # ------------------------------------------------------------------ - # CLIENT / ADDRESS - # ------------------------------------------------------------------ - partner_id = fields.Many2one( - 'res.partner', - string='Client', - tracking=True, - help='Client for this task', - ) - partner_phone = fields.Char( - related='partner_id.phone', - string='Client Phone', - ) - - # Address fields - computed from shipping address or manually set - address_partner_id = fields.Many2one( - 'res.partner', - string='Task Address', - help='Partner record containing the task address (usually shipping address)', - ) - address_street = fields.Char(string='Street') - address_street2 = fields.Char(string='Unit/Suite #') - address_city = fields.Char(string='City') - address_state_id = fields.Many2one('res.country.state', string='Province') - address_zip = fields.Char(string='Postal Code') - address_buzz_code = fields.Char(string='Buzz Code', help='Building buzzer code for entry') - address_display = fields.Text( - string='Full Address', - compute='_compute_address_display', - ) - - # In-store flag -- uses company address instead of client address - is_in_store = fields.Boolean( - string='In Store', - default=False, - help='Task takes place at the store/office. Uses company address automatically.', - ) - - # Geocoding - address_lat = fields.Float(string='Latitude', digits=(10, 7)) - address_lng = fields.Float(string='Longitude', digits=(10, 7)) - - # ------------------------------------------------------------------ - # TASK DETAILS - # ------------------------------------------------------------------ - description = fields.Text( - string='Task Description', - help='What needs to be done', - ) - equipment_needed = fields.Text( - string='Equipment / Materials Needed', - help='Tools and materials the technician should bring', - ) - pod_required = fields.Boolean( - string='POD Required', - default=False, - help='Proof of Delivery signature required', - ) - pod_signature = fields.Binary( - string='POD Signature', attachment=True, - ) - pod_client_name = fields.Char(string='POD Signer Name') - pod_signature_date = fields.Date(string='POD Signature Date') - pod_signed_by_user_id = fields.Many2one( - 'res.users', string='POD Collected By', readonly=True, - ) - pod_signed_datetime = fields.Datetime( - string='POD Collected At', readonly=True, - ) - - # ------------------------------------------------------------------ - # COMPLETION - # ------------------------------------------------------------------ - completion_notes = fields.Html( - string='Completion Notes', - help='Notes from the technician about what was done', - ) - completion_datetime = fields.Datetime( - string='Completed At', - tracking=True, - ) - - # GPS location captured at task actions - started_latitude = fields.Float( - string='Started Latitude', digits=(10, 7), readonly=True, - ) - started_longitude = fields.Float( - string='Started Longitude', digits=(10, 7), readonly=True, - ) - completed_latitude = fields.Float( - string='Completed Latitude', digits=(10, 7), readonly=True, - ) - completed_longitude = fields.Float( - string='Completed Longitude', digits=(10, 7), readonly=True, - ) - action_latitude = fields.Float( - string='Last Action Latitude', digits=(10, 7), readonly=True, - ) - action_longitude = fields.Float( - string='Last Action Longitude', digits=(10, 7), readonly=True, - ) - action_location_accuracy = fields.Float( - string='Location Accuracy (m)', readonly=True, - ) - - voice_note_audio = fields.Binary( - string='Voice Recording', - attachment=True, - ) - voice_note_transcription = fields.Text( - string='Voice Transcription', - ) - - # ------------------------------------------------------------------ - # TRAVEL - # ------------------------------------------------------------------ - travel_time_minutes = fields.Integer( - string='Travel Time (min)', - help='Estimated travel time from previous task in minutes', - ) - travel_distance_km = fields.Float( - string='Travel Distance (km)', - digits=(8, 1), - ) - travel_origin = fields.Char( - string='Travel From', - help='Origin address for travel calculation', - ) - previous_task_id = fields.Many2one( - 'fusion.technician.task', - string='Previous Task', - help='The task before this one in the schedule (for travel calculation)', - ) - - # ------------------------------------------------------------------ - # PUSH NOTIFICATION TRACKING - # ------------------------------------------------------------------ - push_notified = fields.Boolean( - string='Push Notified', - default=False, - help='Whether a push notification was sent for this task', - ) - push_notified_datetime = fields.Datetime( - string='Notified At', - ) - - # ------------------------------------------------------------------ - # RENTAL INSPECTION (added by fusion_rental) + # RENTAL INSPECTION # ------------------------------------------------------------------ rental_inspection_condition = fields.Selection([ ('excellent', 'Excellent'), @@ -520,545 +80,9 @@ class FusionTechnicianTask(models.Model): ) # ------------------------------------------------------------------ - # COMPUTED FIELDS + # ONCHANGES # ------------------------------------------------------------------ - # ------------------------------------------------------------------ - # SLOT AVAILABILITY HELPERS - # ------------------------------------------------------------------ - - def _find_next_available_slot(self, tech_id, date, preferred_start=9.0, - duration=1.0, exclude_task_id=False, - dest_lat=0, dest_lng=0): - """Find the next available time slot for a technician on a given date. - - Scans all non-cancelled tasks for that tech+date, sorts them, and - walks through the day (9 AM - 6 PM) looking for a gap that fits - the requested duration PLUS travel time from the previous task. - - :param tech_id: res.users id of the technician - :param date: date object for the day to check - :param preferred_start: float hour to start looking from (default 9.0) - :param duration: required slot length in hours (default 1.0) - :param exclude_task_id: task id to exclude (when editing an existing task) - :param dest_lat: latitude of the destination (new task location) - :param dest_lng: longitude of the destination (new task location) - :returns: (start_float, end_float) or (False, False) if fully booked - """ - STORE_OPEN, STORE_CLOSE = self._get_store_hours() - - if not tech_id or not date: - return (preferred_start, preferred_start + duration) - - domain = [ - '|', - ('technician_id', '=', tech_id), - ('additional_technician_ids', 'in', [tech_id]), - ('scheduled_date', '=', date), - ('status', 'not in', ['cancelled']), - ] - if exclude_task_id: - domain.append(('id', '!=', exclude_task_id)) - - booked = self.sudo().search(domain, order='time_start') - - # Build sorted list of (start, end, lat, lng) intervals - intervals = [] - for b in booked: - intervals.append(( - max(b.time_start, STORE_OPEN), - min(b.time_end, STORE_CLOSE), - b.address_lat or 0, - b.address_lng or 0, - )) - - def _travel_hours(from_lat, from_lng, to_lat, to_lng): - """Calculate travel time in hours between two locations. - Returns 0 if coordinates are missing. Rounds up to 15-min.""" - if not from_lat or not from_lng or not to_lat or not to_lng: - return 0 - travel_min = self._quick_travel_time( - from_lat, from_lng, to_lat, to_lng) - if travel_min > 0: - import math - return math.ceil(travel_min / 15.0) * 0.25 - return 0 - - def _travel_from_prev(iv_lat, iv_lng): - """Travel from a previous booked task TO the new task.""" - return _travel_hours(iv_lat, iv_lng, dest_lat, dest_lng) - - def _travel_to_next(next_lat, next_lng): - """Travel FROM the new task TO the next booked task.""" - return _travel_hours(dest_lat, dest_lng, next_lat, next_lng) - - def _check_gap_fits(cursor, dur, idx): - """Check if a slot at 'cursor' for 'dur' hours fits before - the interval at index 'idx' (accounting for travel TO that task).""" - if idx >= len(intervals): - return cursor + dur <= STORE_CLOSE - next_start, _ne, next_lat, next_lng = intervals[idx] - travel_fwd = _travel_to_next(next_lat, next_lng) - return cursor + dur + travel_fwd <= next_start - - # Walk through gaps, starting from preferred_start - cursor = max(preferred_start, STORE_OPEN) - - for i, (iv_start, iv_end, iv_lat, iv_lng) in enumerate(intervals): - if cursor + duration <= iv_start: - # Check travel time from new task end TO next booked task - if _check_gap_fits(cursor, duration, i): - return (cursor, cursor + duration) - # Not enough travel time -- try pushing start earlier or skip - # If we can't fit here, fall through to jump past this interval - # Jump past this booked interval + travel buffer from prev to new - new_cursor = max(cursor, iv_end) - travel = _travel_from_prev(iv_lat, iv_lng) - new_cursor += travel - # Snap to nearest 15 min - new_cursor = round(new_cursor * 4) / 4 - cursor = new_cursor - - # Check gap after last interval (no next task, so no forward travel needed) - if cursor + duration <= STORE_CLOSE: - return (cursor, cursor + duration) - - # No gap found from preferred_start onward -- wrap and try from start - if preferred_start > STORE_OPEN: - cursor = STORE_OPEN - for i, (iv_start, iv_end, iv_lat, iv_lng) in enumerate(intervals): - if cursor + duration <= iv_start: - if _check_gap_fits(cursor, duration, i): - return (cursor, cursor + duration) - new_cursor = max(cursor, iv_end) - travel = _travel_from_prev(iv_lat, iv_lng) - new_cursor += travel - new_cursor = round(new_cursor * 4) / 4 - cursor = new_cursor - if cursor + duration <= STORE_CLOSE: - return (cursor, cursor + duration) - - return (False, False) - - def _get_available_gaps(self, tech_id, date, exclude_task_id=False): - """Return a list of available (start, end) gaps for a technician on a date. - - Used by schedule_info_html to show green "available" badges. - Considers tasks where the tech is either lead or additional. - """ - STORE_OPEN, STORE_CLOSE = self._get_store_hours() - - if not tech_id or not date: - return [(STORE_OPEN, STORE_CLOSE)] - - domain = [ - '|', - ('technician_id', '=', tech_id), - ('additional_technician_ids', 'in', [tech_id]), - ('scheduled_date', '=', date), - ('status', 'not in', ['cancelled']), - ] - if exclude_task_id: - domain.append(('id', '!=', exclude_task_id)) - - booked = self.sudo().search(domain, order='time_start') - intervals = [(max(b.time_start, STORE_OPEN), min(b.time_end, STORE_CLOSE)) - for b in booked] - - gaps = [] - cursor = STORE_OPEN - for iv_start, iv_end in intervals: - if cursor < iv_start: - gaps.append((cursor, iv_start)) - cursor = max(cursor, iv_end) - if cursor < STORE_CLOSE: - gaps.append((cursor, STORE_CLOSE)) - return gaps - - @api.model - def _get_time_selection(self): - """Generate 12-hour time slots every 15 minutes, store hours only (9 AM - 6 PM).""" - times = [] - for hour in range(9, 18): # 9 AM to 5:45 PM - for minute in (0, 15, 30, 45): - float_val = hour + minute / 60.0 - key = f'{float_val:.2f}' - period = 'AM' if hour < 12 else 'PM' - display_hour = hour % 12 or 12 - label = f'{display_hour}:{minute:02d} {period}' - times.append((key, label)) - # Add 6:00 PM as end-time option - times.append(('18.00', '6:00 PM')) - return times - - @api.depends('time_start', 'time_end') - def _compute_time_12h(self): - """Sync the 12h selection fields from the raw float values.""" - for task in self: - task.time_start_12h = f'{(task.time_start or 9.0):.2f}' - task.time_end_12h = f'{(task.time_end or 10.0):.2f}' - - def _inverse_time_start_12h(self): - for task in self: - if task.time_start_12h: - task.time_start = float(task.time_start_12h) - - def _inverse_time_end_12h(self): - for task in self: - if task.time_end_12h: - task.time_end = float(task.time_end_12h) - - @api.depends('time_start', 'time_end') - def _compute_time_displays(self): - """Convert float hours to readable time strings.""" - for task in self: - task.time_start_display = self._float_to_time_str(task.time_start) - task.time_end_display = self._float_to_time_str(task.time_end) - - @api.onchange('task_type') - def _onchange_task_type_duration(self): - """Set default duration based on task type.""" - if self.task_type: - self.duration_hours = self.TASK_TYPE_DURATIONS.get(self.task_type, 1.0) - # Also recalculate end time - if self.time_start: - _open, close = self._get_store_hours() - self.time_end = min(self.time_start + self.duration_hours, close) - - @api.onchange('time_start', 'duration_hours') - def _onchange_compute_end_time(self): - """Auto-compute end time from start + duration. Also run overlap check.""" - if self.time_start and self.duration_hours: - _open, close = self._get_store_hours() - new_end = min(self.time_start + self.duration_hours, close) - self.time_end = new_end - # Run overlap snap if we have enough data - if self.technician_id and self.scheduled_date and self.time_start and self.time_end: - result = self._snap_if_overlap() - if result: - return result - - @api.depends('scheduled_date', 'time_start', 'time_end') - def _compute_datetimes(self): - """Combine date + float time into proper Datetime fields for calendar. - time_start/time_end are LOCAL hours; datetime_start/end must be UTC for Odoo.""" - import pytz - user_tz = pytz.timezone(self.env.user.tz or 'UTC') - for task in self: - if task.scheduled_date: - # Build local datetime, then convert to UTC - base = dt_datetime.combine(task.scheduled_date, dt_datetime.min.time()) - store_open, _close = task._get_store_hours() - local_start = user_tz.localize(base + timedelta(hours=task.time_start or store_open)) - local_end = user_tz.localize(base + timedelta(hours=task.time_end or (store_open + 1.0))) - task.datetime_start = local_start.astimezone(pytz.utc).replace(tzinfo=None) - task.datetime_end = local_end.astimezone(pytz.utc).replace(tzinfo=None) - else: - task.datetime_start = False - task.datetime_end = False - - def _inverse_datetime_start(self): - """When datetime_start is changed (e.g. from calendar drag), update date + time.""" - import pytz - user_tz = pytz.timezone(self.env.user.tz or 'UTC') - for task in self: - if task.datetime_start: - local_dt = pytz.utc.localize(task.datetime_start).astimezone(user_tz) - task.scheduled_date = local_dt.date() - task.time_start = local_dt.hour + local_dt.minute / 60.0 - - def _inverse_datetime_end(self): - """When datetime_end is changed (e.g. from calendar resize), update time_end.""" - import pytz - user_tz = pytz.timezone(self.env.user.tz or 'UTC') - for task in self: - if task.datetime_end: - local_dt = pytz.utc.localize(task.datetime_end).astimezone(user_tz) - task.time_end = local_dt.hour + local_dt.minute / 60.0 - - @api.depends('technician_id', 'scheduled_date') - def _compute_schedule_info(self): - """Show booked + available time slots for the technician on the selected date.""" - for task in self: - if not task.technician_id or not task.scheduled_date: - task.schedule_info_html = '' - continue - - exclude_id = task.id if task.id else 0 - # Find other tasks for the same technician+date (lead or additional) - others = self.sudo().search([ - '|', - ('technician_id', '=', task.technician_id.id), - ('additional_technician_ids', 'in', [task.technician_id.id]), - ('scheduled_date', '=', task.scheduled_date), - ('status', 'not in', ['cancelled']), - ('id', '!=', exclude_id), - ], order='time_start') - - if not others: - s_open, s_close = self._get_store_hours() - open_str = self._float_to_time_str(s_open) - close_str = self._float_to_time_str(s_close) - task.schedule_info_html = Markup( - f'
' - f' All slots available ({open_str} - {close_str})
' - ) - continue - - # Booked badges - booked_lines = [] - for o in others: - start_str = self._float_to_time_str(o.time_start) - end_str = self._float_to_time_str(o.time_end) - type_label = dict(self._fields['task_type'].selection).get(o.task_type, o.task_type) - client_name = o.partner_id.name or '' - booked_lines.append( - f'' - f'{start_str} - {end_str} ({type_label}{" - " + client_name if client_name else ""})' - f'' - ) - - # Available gaps badges - gaps = self._get_available_gaps( - task.technician_id.id, task.scheduled_date, - exclude_task_id=exclude_id, - ) - avail_lines = [] - for g_start, g_end in gaps: - # Only show gaps >= 15 min - if g_end - g_start >= 0.25: - avail_lines.append( - f'' - f'{self._float_to_time_str(g_start)} - {self._float_to_time_str(g_end)}' - f'' - ) - - html_parts = [ - '
', - ' Booked: ', - ' '.join(booked_lines), - ] - if avail_lines: - html_parts.append( - '
' - 'Available: ' - + ' '.join(avail_lines) - ) - elif not avail_lines: - html_parts.append( - '
' - 'Fully booked' - ) - html_parts.append('
') - - task.schedule_info_html = Markup(''.join(html_parts)) - - @api.depends('technician_id', 'scheduled_date', 'time_start', - 'address_lat', 'address_lng', 'address_street') - def _compute_prev_task_summary(self): - """Show previous task info + travel time warning with color coding.""" - for task in self: - if not task.technician_id or not task.scheduled_date: - task.prev_task_summary_html = '' - continue - - exclude_id = task.id if task.id else 0 - # Find the task that ends just before this one starts (lead or additional) - prev_tasks = self.sudo().search([ - '|', - ('technician_id', '=', task.technician_id.id), - ('additional_technician_ids', 'in', [task.technician_id.id]), - ('scheduled_date', '=', task.scheduled_date), - ('status', 'not in', ['cancelled']), - ('id', '!=', exclude_id), - ('time_end', '<=', task.time_start or 99.0), - ], order='time_end desc', limit=1) - - if not prev_tasks: - # Check if this is the first task of the day -- show start location info - task.prev_task_summary_html = Markup( - '
' - ' First task of the day -- ' - 'travel calculated from start location.
' - ) - continue - - prev = prev_tasks[0] - prev_start = self._float_to_time_str(prev.time_start) - prev_end = self._float_to_time_str(prev.time_end) - type_label = dict(self._fields['task_type'].selection).get( - prev.task_type, prev.task_type or '') - client_name = prev.partner_id.name or '' - prev_addr = prev.address_display or 'No address' - - # Calculate gap between prev task end and this task start - s_open, _s_close = self._get_store_hours() - gap_hours = (task.time_start or s_open) - (prev.time_end or s_open) - gap_minutes = int(gap_hours * 60) - - # Try to get travel time if both have coordinates - travel_minutes = 0 - travel_text = '' - if (prev.address_lat and prev.address_lng and - task.address_lat and task.address_lng): - travel_minutes = self._quick_travel_time( - prev.address_lat, prev.address_lng, - task.address_lat, task.address_lng, - ) - if travel_minutes > 0: - travel_text = f'{travel_minutes} min drive' - else: - travel_text = 'Could not calculate travel time' - elif prev.address_street and task.address_street: - travel_text = 'Save to calculate travel time' - else: - travel_text = 'Address missing -- cannot calculate travel' - - # Determine color coding - if travel_minutes > 0 and gap_minutes >= travel_minutes: - bg_class = 'alert-success' # Green -- enough time - icon = 'fa-check-circle' - status_text = ( - f'{gap_minutes} min gap -- enough travel time ' - f'(~{travel_minutes} min drive)' - ) - elif travel_minutes > 0 and gap_minutes > 0: - bg_class = 'alert-warning' # Yellow -- tight - icon = 'fa-exclamation-triangle' - status_text = ( - f'{gap_minutes} min gap -- tight! ' - f'Travel is ~{travel_minutes} min drive' - ) - elif travel_minutes > 0 and gap_minutes <= 0: - bg_class = 'alert-danger' # Red -- impossible - icon = 'fa-times-circle' - status_text = ( - f'No gap! Previous task ends at {prev_end}. ' - f'Travel is ~{travel_minutes} min drive' - ) - else: - bg_class = 'alert-info' # Blue -- no travel data yet - icon = 'fa-info-circle' - status_text = travel_text - - html = ( - f'
' - f' ' - f'Previous: {prev.name} ' - f'({type_label}) {prev_start} - {prev_end}' - f'{" -- " + client_name if client_name else ""}' - f'
' - f' {prev_addr}' - f'
' - f' {status_text}' - f'
' - ) - task.prev_task_summary_html = Markup(html) - - def _quick_travel_time(self, from_lat, from_lng, to_lat, to_lng): - """Quick inline travel time calculation using Google Distance Matrix API. - Returns travel time in minutes, or 0 if unavailable.""" - try: - api_key = self.env['ir.config_parameter'].sudo().get_param( - 'fusion_claims.google_maps_api_key', '') - if not api_key: - return 0 - - url = 'https://maps.googleapis.com/maps/api/distancematrix/json' - params = { - 'origins': f'{from_lat},{from_lng}', - 'destinations': f'{to_lat},{to_lng}', - 'mode': 'driving', - 'avoid': 'tolls', - 'departure_time': 'now', - 'key': api_key, - } - resp = requests.get(url, params=params, timeout=5) - data = resp.json() - if data.get('status') == 'OK': - elements = data['rows'][0]['elements'][0] - if elements.get('status') == 'OK': - # Use duration_in_traffic if available, else duration - duration = elements.get( - 'duration_in_traffic', elements.get('duration', {})) - seconds = duration.get('value', 0) - return max(1, int(seconds / 60)) - except Exception: - _logger.warning('Failed to calculate travel time', exc_info=True) - return 0 - - @api.depends('status') - def _compute_color(self): - color_map = { - 'pending': 5, # purple - 'scheduled': 0, # grey - 'en_route': 4, # blue - 'in_progress': 2, # orange - 'completed': 10, # green - 'cancelled': 1, # red - 'rescheduled': 3, # yellow - } - for task in self: - task.color = color_map.get(task.status, 0) - - @api.depends('address_street', 'address_street2', 'address_city', - 'address_state_id', 'address_zip') - def _compute_address_display(self): - for task in self: - street = task.address_street or '' - # If the street field already contains a full address (has a comma), - # use it directly -- Google Places stores the formatted address here. - if ',' in street and ( - (task.address_city and task.address_city in street) or - (task.address_zip and task.address_zip in street) - ): - # Street already has full address; just append unit if separate - if task.address_street2 and task.address_street2 not in street: - task.address_display = f"{street}, {task.address_street2}" - else: - task.address_display = street - else: - # Build from components (manual entry or legacy data) - parts = [ - street, - task.address_street2, - task.address_city, - task.address_state_id.name if task.address_state_id else '', - task.address_zip, - ] - task.address_display = ', '.join([p for p in parts if p]) - - # ------------------------------------------------------------------ - # ONCHANGE - Auto-fill address from client - # ------------------------------------------------------------------ - - @api.onchange('is_in_store') - def _onchange_is_in_store(self): - """Auto-fill company address when task is marked as in-store.""" - if self.is_in_store: - company_partner = self.env.company.partner_id - if company_partner and company_partner.street: - self._fill_address_from_partner(company_partner) - else: - self.address_street = self.env.company.name or 'In Store' - - @api.onchange('partner_id') - def _onchange_partner_id(self): - """Auto-fill address fields from the selected client's address.""" - if self.is_in_store: - return - if self.partner_id: - addr = self.partner_id - self.address_partner_id = addr.id - self.address_street = addr.street or '' - self.address_street2 = addr.street2 or '' - self.address_city = addr.city or '' - self.address_state_id = addr.state_id.id if addr.state_id else False - self.address_zip = addr.zip or '' - self.address_lat = addr.x_fc_latitude if hasattr(addr, 'x_fc_latitude') and addr.x_fc_latitude else 0 - self.address_lng = addr.x_fc_longitude if hasattr(addr, 'x_fc_longitude') and addr.x_fc_longitude else 0 - @api.onchange('sale_order_id') def _onchange_sale_order_id(self): """Auto-fill client and address from the sale order's shipping address.""" @@ -1101,21 +125,8 @@ class FusionTechnicianTask(models.Model): self.sale_order_id = False self.purchase_order_id = False - def _fill_address_from_partner(self, addr): - """Populate address fields from a partner record.""" - if not addr: - return - self.address_partner_id = addr.id - self.address_street = addr.street or '' - self.address_street2 = addr.street2 or '' - self.address_city = addr.city or '' - self.address_state_id = addr.state_id.id if addr.state_id else False - self.address_zip = addr.zip or '' - self.address_lat = addr.x_fc_latitude if hasattr(addr, 'x_fc_latitude') and addr.x_fc_latitude else 0 - self.address_lng = addr.x_fc_longitude if hasattr(addr, 'x_fc_longitude') and addr.x_fc_longitude else 0 - # ------------------------------------------------------------------ - # CONSTRAINTS + VALIDATION + # CONSTRAINTS # ------------------------------------------------------------------ @api.constrains('sale_order_id', 'purchase_order_id') @@ -1130,514 +141,78 @@ class FusionTechnicianTask(models.Model): "A task must be linked to either a Sale Order (Case) or a Purchase Order." )) - @api.constrains('address_street', 'address_lat', 'address_lng', 'is_in_store') - def _check_address_required(self): - """Non-in-store tasks must have a geocoded address.""" - for task in self: - if task.x_fc_sync_source: - continue - if task.is_in_store: - continue - if not task.address_street: - raise ValidationError(_( - "A valid address is required. If this task is at the store, " - "please check the 'In Store' option." - )) + # ------------------------------------------------------------------ + # HOOK OVERRIDES + # ------------------------------------------------------------------ - @api.constrains('technician_id', 'additional_technician_ids', - 'scheduled_date', 'time_start', 'time_end') - def _check_no_overlap(self): - """Prevent overlapping bookings for the same technician on the same date. + def _get_linked_order(self): + """Return the linked sale or purchase order.""" + return self.sale_order_id or self.purchase_order_id or False - Checks both the lead technician and all additional technicians. - """ - for task in self: - if task.status == 'cancelled': - continue - if task.x_fc_sync_source: - continue - # Validate time range - if task.time_start >= task.time_end: - raise ValidationError(_("Start time must be before end time.")) - # Validate store hours - s_open, s_close = self._get_store_hours() - if task.time_start < s_open or task.time_end > s_close: - open_str = self._float_to_time_str(s_open) - close_str = self._float_to_time_str(s_close) - raise ValidationError(_( - "Tasks must be scheduled within store hours (%s - %s)." - ) % (open_str, close_str)) - # Validate not in the past (only for new/scheduled local tasks) - if task.status == 'scheduled' and task.scheduled_date and not task.x_fc_sync_source: - today = fields.Date.context_today(self) - if task.scheduled_date < today: - raise ValidationError(_("Cannot schedule tasks in the past.")) - if task.scheduled_date == today: - now = fields.Datetime.now() - current_hour = now.hour + now.minute / 60.0 - if task.time_start < current_hour: - pass # Allow editing existing tasks that started earlier today - # Check overlap for lead + additional technicians - all_tech_ids = (task.technician_id | task.additional_technician_ids).ids - for tech_id in all_tech_ids: - tech_name = self.env['res.users'].browse(tech_id).name - overlapping = self.sudo().search([ - '|', - ('technician_id', '=', tech_id), - ('additional_technician_ids', 'in', [tech_id]), - ('scheduled_date', '=', task.scheduled_date), - ('status', 'not in', ['cancelled']), - ('id', '!=', task.id), - ('time_start', '<', task.time_end), - ('time_end', '>', task.time_start), - ], limit=1) - if overlapping: - start_str = self._float_to_time_str(overlapping.time_start) - end_str = self._float_to_time_str(overlapping.time_end) - raise ValidationError(_( - "%(tech)s has a time conflict with %(task)s " - "(%(start)s - %(end)s). Please choose a different time.", - tech=tech_name, - task=overlapping.name, - start=start_str, - end=end_str, - )) - - # Check travel time gaps for lead technician only - # (additional techs travel with the lead, same destination) - next_task = self.sudo().search([ - '|', - ('technician_id', '=', task.technician_id.id), - ('additional_technician_ids', 'in', [task.technician_id.id]), - ('scheduled_date', '=', task.scheduled_date), - ('status', 'not in', ['cancelled']), - ('id', '!=', task.id), - ('time_start', '>=', task.time_end), - ], order='time_start', limit=1) - if next_task and task.address_lat and task.address_lng and \ - next_task.address_lat and next_task.address_lng: - travel_min = self._quick_travel_time( - task.address_lat, task.address_lng, - next_task.address_lat, next_task.address_lng, - ) - if travel_min > 0: - gap_min = int((next_task.time_start - task.time_end) * 60) - if gap_min < travel_min: - raise ValidationError(_( - "Not enough travel time to the next task!\n\n" - "This task ends at %(end)s, and %(next)s starts " - "at %(next_start)s (%(gap)d min gap).\n" - "Travel time is ~%(travel)d minutes.\n\n" - "Please allow at least %(travel)d minutes between tasks.", - end=self._float_to_time_str(task.time_end), - next=next_task.name, - next_start=self._float_to_time_str(next_task.time_start), - gap=gap_min, - travel=travel_min, - )) - - prev_task = self.sudo().search([ - '|', - ('technician_id', '=', task.technician_id.id), - ('additional_technician_ids', 'in', [task.technician_id.id]), - ('scheduled_date', '=', task.scheduled_date), - ('status', 'not in', ['cancelled']), - ('id', '!=', task.id), - ('time_end', '<=', task.time_start), - ], order='time_end desc', limit=1) - if prev_task and task.address_lat and task.address_lng and \ - prev_task.address_lat and prev_task.address_lng: - travel_min = self._quick_travel_time( - prev_task.address_lat, prev_task.address_lng, - task.address_lat, task.address_lng, - ) - if travel_min > 0: - gap_min = int((task.time_start - prev_task.time_end) * 60) - if gap_min < travel_min: - raise ValidationError(_( - "Not enough travel time from the previous task!\n\n" - "%(prev)s ends at %(prev_end)s, and this task starts " - "at %(start)s (%(gap)d min gap).\n" - "Travel time is ~%(travel)d minutes.\n\n" - "Please allow at least %(travel)d minutes between tasks.", - prev=prev_task.name, - prev_end=self._float_to_time_str(prev_task.time_end), - start=self._float_to_time_str(task.time_start), - gap=gap_min, - travel=travel_min, - )) - - @api.onchange('technician_id', 'scheduled_date') - def _onchange_technician_date_autoset(self): - """Auto-set start/end time to the first available slot when tech+date change.""" - if not self.technician_id or not self.scheduled_date: - return - exclude_id = self._origin.id if self._origin else False - duration = self.duration_hours or 1.0 - s_open, _s_close = self._get_store_hours() - preferred = self.time_start or s_open - start, end = self._find_next_available_slot( - self.technician_id.id, - self.scheduled_date, - preferred_start=preferred, - duration=duration, - exclude_task_id=exclude_id, - dest_lat=self.address_lat or 0, - dest_lng=self.address_lng or 0, - ) - if start is not False: - self.time_start = start - self.time_end = end - self.duration_hours = end - start + def _create_vals_fill(self, vals): + """Fill address from sale order or purchase order during create.""" + if vals.get('sale_order_id') and not vals.get('address_street'): + order = self.env['sale.order'].browse(vals['sale_order_id']) + addr = order.partner_shipping_id or order.partner_id + if addr: + self._fill_address_vals(vals, addr) + if not vals.get('partner_id'): + vals['partner_id'] = order.partner_id.id + elif vals.get('purchase_order_id') and not vals.get('address_street'): + po = self.env['purchase.order'].browse(vals['purchase_order_id']) + addr = po.dest_address_id or po.partner_id + if addr: + self._fill_address_vals(vals, addr) + if not vals.get('partner_id'): + vals['partner_id'] = po.partner_id.id else: - return {'warning': { - 'title': _('Fully Booked'), - 'message': _( - '%s is fully booked on %s. No available slots.' - ) % (self.technician_id.name, - self.scheduled_date.strftime('%B %d, %Y')), - }} + super()._create_vals_fill(vals) - def _snap_if_overlap(self): - """Check if current time_start/time_end overlaps with another task. - If so, auto-snap to the next available slot and return a warning dict.""" - if not self.technician_id or not self.scheduled_date or not self.time_start: - return None - exclude_id = self._origin.id if self._origin else 0 - duration = max(self.duration_hours or 1.0, 0.25) - - all_tech_ids = (self.technician_id | self.additional_technician_ids).ids - overlapping = self.sudo().search([ - '|', - ('technician_id', 'in', all_tech_ids), - ('additional_technician_ids', 'in', all_tech_ids), - ('scheduled_date', '=', self.scheduled_date), - ('status', 'not in', ['cancelled']), - ('id', '!=', exclude_id), - ('time_start', '<', self.time_end), - ('time_end', '>', self.time_start), - ], limit=1) - if overlapping: - conflict_name = overlapping.name - conflict_start = self._float_to_time_str(overlapping.time_start) - conflict_end = self._float_to_time_str(overlapping.time_end) - start, end = self._find_next_available_slot( - self.technician_id.id, - self.scheduled_date, - preferred_start=self.time_start, - duration=duration, - exclude_task_id=exclude_id, - dest_lat=self.address_lat or 0, - dest_lng=self.address_lng or 0, - ) - if start is not False: - new_start_str = self._float_to_time_str(start) - new_end_str = self._float_to_time_str(end) - self.time_start = start - self.time_end = end - self.duration_hours = end - start - return {'warning': { - 'title': _('Moved to Available Slot'), - 'message': _( - 'The selected time conflicts with %s (%s - %s).\n' - 'Automatically moved to: %s - %s.' - ) % (conflict_name, conflict_start, conflict_end, - new_start_str, new_end_str), - }} - else: - return {'warning': { - 'title': _('No Available Slots'), - 'message': _( - 'The selected time conflicts with %s (%s - %s) ' - 'and no other slots are available on this day.' - ) % (conflict_name, conflict_start, conflict_end), - }} - return None - - # ------------------------------------------------------------------ - # DEFAULT_GET - Calendar pre-fill - # ------------------------------------------------------------------ - - def _snap_to_quarter(self, hour_float): - """Round a float hour to the nearest 15-minute slot and clamp to store hours.""" - s_open, s_close = self._get_store_hours() - snapped = round(hour_float * 4) / 4 - return max(s_open, min(s_close, snapped)) - - @api.model - def default_get(self, fields_list): - """Handle calendar time range selection: pre-fill date + times from context.""" - res = super().default_get(fields_list) - ctx = self.env.context - - # Set duration default based on task type from context - task_type = ctx.get('default_task_type', res.get('task_type', 'delivery')) - if 'duration_hours' not in res or not res.get('duration_hours'): - res['duration_hours'] = self.TASK_TYPE_DURATIONS.get(task_type, 1.0) - - # When user clicks a time range on the calendar, Odoo passes - # default_datetime_start/end in UTC - dt_start_utc = None - dt_end_utc = None - if ctx.get('default_datetime_start'): - try: - dt_start_utc = fields.Datetime.from_string(ctx['default_datetime_start']) - except (ValueError, TypeError): - pass - if ctx.get('default_datetime_end'): - try: - dt_end_utc = fields.Datetime.from_string(ctx['default_datetime_end']) - except (ValueError, TypeError): - pass - - if dt_start_utc or dt_end_utc: - import pytz - user_tz = pytz.timezone(self.env.user.tz or 'UTC') - - if dt_start_utc: - dt_start_local = pytz.utc.localize(dt_start_utc).astimezone(user_tz) - res['scheduled_date'] = dt_start_local.date() - start_float = self._snap_to_quarter( - dt_start_local.hour + dt_start_local.minute / 60.0) - res['time_start'] = start_float - - if dt_end_utc: - dt_end_local = pytz.utc.localize(dt_end_utc).astimezone(user_tz) - end_float = self._snap_to_quarter( - dt_end_local.hour + dt_end_local.minute / 60.0) - if 'time_start' in res and end_float <= res['time_start']: - end_float = res['time_start'] + 1.0 - res['time_end'] = end_float - # Compute duration from the calendar drag - if 'time_start' in res: - res['duration_hours'] = end_float - res['time_start'] - - # Always compute end from start + duration if not already set - if 'time_end' not in res and 'time_start' in res and 'duration_hours' in res: - _open, close = self._get_store_hours() - res['time_end'] = min( - res['time_start'] + res['duration_hours'], close) - - return res - - # ------------------------------------------------------------------ - # CRUD OVERRIDES - # ------------------------------------------------------------------ - - @api.model_create_multi - def create(self, vals_list): - for vals in vals_list: - if vals.get('name', _('New')) == _('New'): - vals['name'] = self.env['ir.sequence'].next_by_code('fusion.technician.task') or _('New') - if not vals.get('x_fc_sync_uuid') and not vals.get('x_fc_sync_source'): - vals['x_fc_sync_uuid'] = str(uuid.uuid4()) - # In-store tasks: auto-fill company address - if vals.get('is_in_store') and not vals.get('address_street'): - company_partner = self.env.company.partner_id - if company_partner and company_partner.street: - self._fill_address_vals(vals, company_partner) - else: - vals['address_street'] = self.env.company.name or 'In Store' - - # Auto-populate address from sale order if not provided - if vals.get('sale_order_id') and not vals.get('address_street'): - order = self.env['sale.order'].browse(vals['sale_order_id']) - addr = order.partner_shipping_id or order.partner_id - if addr: - self._fill_address_vals(vals, addr) - if not vals.get('partner_id'): - vals['partner_id'] = order.partner_id.id - # Auto-populate address from purchase order if not provided - elif vals.get('purchase_order_id') and not vals.get('address_street'): - po = self.env['purchase.order'].browse(vals['purchase_order_id']) - addr = po.dest_address_id or po.partner_id - if addr: - self._fill_address_vals(vals, addr) - if not vals.get('partner_id'): - vals['partner_id'] = po.partner_id.id - # Auto-populate address from partner if no order set - elif vals.get('partner_id') and not vals.get('address_street'): - partner = self.env['res.partner'].browse(vals['partner_id']) - if partner.street: - self._fill_address_vals(vals, partner) - records = super().create(vals_list) - # Post creation notice to linked order chatter - for rec in records: + def _on_create_post_actions(self): + """Post-create actions: chatter notices, delivery marking, ODSP.""" + for rec in self: rec._post_task_created_to_linked_order() - # If created from "Ready for Delivery" flow, mark the sale order if self.env.context.get('mark_ready_for_delivery'): - records._mark_sale_order_ready_for_delivery() + self._mark_sale_order_ready_for_delivery() if self.env.context.get('mark_odsp_ready_for_delivery'): - for rec in records: + for rec in self: order = rec.sale_order_id if order and order.x_fc_is_odsp_sale and order._get_odsp_status() != 'ready_delivery': order._odsp_advance_status('ready_delivery', "Order is ready for delivery. Delivery task scheduled.") - # Auto-calculate travel times for the full day chain - if not self.env.context.get('skip_travel_recalc'): - records._recalculate_day_travel_chains() - # Send "Appointment Scheduled" email - for rec in records: - rec._send_task_scheduled_email() - # Push new local tasks to remote instances - local_records = records.filtered(lambda r: not r.x_fc_sync_source) - if local_records and not self.env.context.get('skip_task_sync'): - self.env['fusion.task.sync.config']._push_tasks(local_records, 'create') - # Sync to calendar for external calendar integrations - records._sync_calendar_event() - return records - def write(self, vals): - if self.env.context.get('skip_travel_recalc'): - res = super().write(vals) - if ('status' in vals and vals['status'] in ('completed', 'cancelled') - and not self.env.context.get('skip_task_sync')): - shadow_records = self.filtered(lambda r: r.x_fc_sync_source) - if shadow_records: - self.env['fusion.task.sync.config']._push_shadow_status(shadow_records) - local_records = self.filtered(lambda r: not r.x_fc_sync_source) - if local_records: - self.env['fusion.task.sync.config']._push_tasks(local_records, 'write') - return res + def _check_completion_requirements(self): + """Check rental inspection requirement before completing pickup tasks.""" + if self._is_rental_pickup_task() and not self.rental_inspection_completed: + raise UserError(_( + "Rental pickup tasks require a security inspection before " + "completion. Please complete the inspection from the " + "technician portal first." + )) - # Safety: ensure time_end is consistent when start/duration change - # but time_end wasn't sent (readonly field in view may not save) - if ('time_start' in vals or 'duration_hours' in vals) and 'time_end' not in vals: - _open, close = self._get_store_hours() - start = vals.get('time_start', self[:1].time_start if len(self) == 1 else 9.0) - dur = vals.get('duration_hours', self[:1].duration_hours if len(self) == 1 else 1.0) or 1.0 - vals['time_end'] = min(start + dur, close) + def _on_complete_extra(self): + """ODSP advancement and rental inspection on task completion.""" + if (self.task_type == 'delivery' + and self.sale_order_id + and self.sale_order_id.x_fc_is_odsp_sale + and self.sale_order_id._get_odsp_status() == 'ready_delivery'): + self.sale_order_id._odsp_advance_status( + 'delivered', + "Delivery task completed by technician. Order marked as delivered.", + ) + if self._is_rental_pickup_task(): + self._apply_rental_inspection_results() - # Detect reschedule mode: capture old values BEFORE write - reschedule_mode = self.env.context.get('reschedule_mode') - old_schedule = {} - schedule_fields = {'scheduled_date', 'time_start', 'time_end', - 'duration_hours', 'technician_id'} - schedule_changed = schedule_fields & set(vals.keys()) - if reschedule_mode and schedule_changed: - for task in self: - old_schedule[task.id] = { - 'date': task.scheduled_date, - 'time_start': task.time_start, - 'time_end': task.time_end, - } + def _on_cancel_extra(self): + """Revert sale order on delivery cancellation, send email otherwise.""" + if self.task_type == 'delivery': + self._revert_sale_order_on_cancel() + else: + self._send_task_cancelled_email() - # Capture old tech+date combos BEFORE write for travel recalc - travel_fields = {'address_street', 'address_city', 'address_zip', 'address_lat', 'address_lng', - 'scheduled_date', 'sequence', 'time_start', 'technician_id', - 'additional_technician_ids'} - needs_travel_recalc = travel_fields & set(vals.keys()) - old_combos = set() - if needs_travel_recalc: - for t in self: - old_combos.add((t.technician_id.id, t.scheduled_date)) - for tech in t.additional_technician_ids: - old_combos.add((tech.id, t.scheduled_date)) - res = super().write(vals) - if needs_travel_recalc: - new_combos = set() - for t in self: - new_combos.add((t.technician_id.id, t.scheduled_date)) - for tech in t.additional_technician_ids: - new_combos.add((tech.id, t.scheduled_date)) - all_combos = old_combos | new_combos - self._recalculate_combos_travel(all_combos) - - # After write: send reschedule email if schedule actually changed - if reschedule_mode and old_schedule: - for task in self: - old = old_schedule.get(task.id, {}) - if old and ( - old['date'] != task.scheduled_date - or abs(old['time_start'] - task.time_start) > 0.01 - or abs(old['time_end'] - task.time_end) > 0.01 - ): - task._post_status_message('rescheduled') - task._send_task_rescheduled_email( - old_date=old['date'], - old_start=old['time_start'], - old_end=old['time_end'], - ) - # Push updates to remote instances for local tasks - sync_fields = {'technician_id', 'additional_technician_ids', - 'scheduled_date', 'time_start', 'time_end', - 'duration_hours', 'status', 'task_type', 'address_street', - 'address_city', 'address_zip', 'address_lat', 'address_lng', - 'partner_id'} - if sync_fields & set(vals.keys()) and not self.env.context.get('skip_task_sync'): - local_records = self.filtered(lambda r: not r.x_fc_sync_source) - if local_records: - self.env['fusion.task.sync.config']._push_tasks(local_records, 'write') - if 'status' in vals and vals['status'] in ('completed', 'cancelled'): - shadow_records = self.filtered(lambda r: r.x_fc_sync_source) - if shadow_records: - self.env['fusion.task.sync.config']._push_shadow_status(shadow_records) - # Re-sync calendar event when schedule fields change - cal_fields = {'scheduled_date', 'time_start', 'time_end', - 'duration_hours', 'technician_id', 'task_type', - 'partner_id', 'address_street', 'address_city', 'notes'} - if cal_fields & set(vals.keys()): - self._sync_calendar_event() - return res - - def _sync_calendar_event(self): - """Create or update a linked calendar.event for external calendar sync. - - Only syncs tasks that have a scheduled date and an assigned technician. - Uses sudo() because portal users should not need calendar write access. - """ - CalendarEvent = self.env['calendar.event'].sudo() - for task in self: - if not task.datetime_start or not task.datetime_end or not task.technician_id: - if task.calendar_event_id: - task.calendar_event_id.unlink() - task.with_context(skip_travel_recalc=True).write({'calendar_event_id': False}) - continue - - partner = task.partner_id or task.sale_order_id.partner_id if task.sale_order_id else task.partner_id - client_name = partner.name if partner else '' - type_label = dict(self._fields['task_type'].selection).get(task.task_type, task.task_type or '') - - event_name = f"{type_label}: {client_name}" if client_name else f"{type_label} - {task.name}" - location_parts = [task.address_street, task.address_city] - location = ', '.join(p for p in location_parts if p) or '' - - description_parts = [] - if task.sale_order_id: - description_parts.append(f"SO: {task.sale_order_id.name}") - if task.notes: - description_parts.append(task.notes) - - vals = { - 'name': event_name, - 'start': task.datetime_start, - 'stop': task.datetime_end, - 'user_id': task.technician_id.id, - 'location': location, - 'partner_ids': [(6, 0, [task.technician_id.partner_id.id])], - 'show_as': 'busy', - 'description': '\n'.join(description_parts), - } - - if task.calendar_event_id: - task.calendar_event_id.write(vals) - else: - event = CalendarEvent.create(vals) - task.with_context(skip_travel_recalc=True).write({'calendar_event_id': event.id}) - - @api.model - def _fill_address_vals(self, vals, partner): - """Helper to fill address vals dict from a partner record.""" - vals.update({ - 'address_partner_id': partner.id, - 'address_street': partner.street or '', - 'address_street2': partner.street2 or '', - 'address_city': partner.city or '', - 'address_state_id': partner.state_id.id if partner.state_id else False, - 'address_zip': partner.zip or '', - 'address_lat': partner.x_fc_latitude if hasattr(partner, 'x_fc_latitude') else 0, - 'address_lng': partner.x_fc_longitude if hasattr(partner, 'x_fc_longitude') else 0, - }) + # ------------------------------------------------------------------ + # ORDER LINKING METHODS + # ------------------------------------------------------------------ def _post_task_created_to_linked_order(self): """Post a brief task creation notice to the linked order's chatter.""" @@ -1662,26 +237,19 @@ class FusionTechnicianTask(models.Model): ) def _mark_sale_order_ready_for_delivery(self): - """Mark linked sale orders as Ready for Delivery. - - Called when a delivery task is created from the "Ready for Delivery" - button on the sale order. This replaces the old wizard workflow. - """ + """Mark linked sale orders as Ready for Delivery.""" for task in self: order = task.sale_order_id if not order: continue - # Only update if not already marked if order.x_fc_adp_application_status == 'ready_delivery': continue user_name = self.env.user.name tech_name = task.technician_id.name or '' - # Save current status so we can revert if task is cancelled previous_status = order.x_fc_adp_application_status - # Update the sale order status and delivery fields all_tech_ids = (task.technician_id | task.additional_technician_ids).ids order.with_context(skip_status_validation=True).write({ 'x_fc_adp_application_status': 'ready_delivery', @@ -1691,7 +259,6 @@ class FusionTechnicianTask(models.Model): 'x_fc_scheduled_delivery_datetime': task.datetime_start, }) - # Post chatter message early_badge = '' if order.x_fc_early_delivery: early_badge = ' Early Delivery' @@ -1724,7 +291,6 @@ class FusionTechnicianTask(models.Model): subtype_xmlid='mail.mt_note', ) - # Send email notifications try: order._send_ready_for_delivery_email( technicians=task.technician_id | task.additional_technician_ids, @@ -1734,203 +300,76 @@ class FusionTechnicianTask(models.Model): except Exception as e: _logger.warning("Ready for delivery email failed for %s: %s", order.name, e) - def _recalculate_day_travel_chains(self): - """Recalculate travel for all tech+date combos affected by these tasks. - - Includes combos for additional technicians so their schedules update too. - """ - combos = set() - for t in self: - if not t.scheduled_date: - continue - if t.technician_id: - combos.add((t.technician_id.id, t.scheduled_date)) - for tech in t.additional_technician_ids: - combos.add((tech.id, t.scheduled_date)) - self._recalculate_combos_travel(combos) - - def _get_technician_start_address(self, tech_id): - """Get the start address for a technician. - - Priority: - 1. Technician's personal x_fc_start_address (if set) - 2. Company default HQ address (fusion_claims.technician_start_address) - Returns the address string or ''. - """ - tech_user = self.env['res.users'].sudo().browse(tech_id) - if tech_user.exists() and tech_user.x_fc_start_address: - return tech_user.x_fc_start_address.strip() - # Fallback to company default - return (self.env['ir.config_parameter'].sudo() - .get_param('fusion_claims.technician_start_address', '') or '').strip() - - def _geocode_address_string(self, address, api_key): - """Geocode an address string and return (lat, lng) or (0.0, 0.0).""" - if not address or not api_key: - return 0.0, 0.0 - try: - url = 'https://maps.googleapis.com/maps/api/geocode/json' - params = {'address': address, 'key': api_key, 'region': 'ca'} - resp = requests.get(url, params=params, timeout=10) - data = resp.json() - if data.get('status') == 'OK' and data.get('results'): - loc = data['results'][0]['geometry']['location'] - return loc['lat'], loc['lng'] - except Exception as e: - _logger.warning("Address geocoding failed for '%s': %s", address, e) - return 0.0, 0.0 - - def _recalculate_combos_travel(self, combos): - """Recalculate travel for a set of (tech_id, date) combinations. - - Start-point priority per technician (for today only): - 1. Actual GPS from today's fusion_clock check-in - 2. Personal start address (x_fc_start_address) - 3. Company default HQ address - For future dates, only 2 and 3 apply. - """ - ICP = self.env['ir.config_parameter'].sudo() - enabled = ICP.get_param('fusion_claims.google_distance_matrix_enabled', False) - if not enabled: - return - api_key = self._get_google_maps_api_key() - - start_coords_cache = {} - today = fields.Date.today() - today_str = str(today) - - today_tech_ids = {tid for tid, d in combos - if tid and str(d) == today_str} - clock_locations = {} - if today_tech_ids: - clock_locations = self._get_clock_in_locations(today_tech_ids, today) - - for tech_id, date in combos: - if not tech_id or not date: - continue - - cache_key = (tech_id, str(date)) - if cache_key not in start_coords_cache: - if str(date) == today_str and tech_id in clock_locations: - cl = clock_locations[tech_id] - start_coords_cache[cache_key] = (cl['lat'], cl['lng']) - else: - addr = self._get_technician_start_address(tech_id) - start_coords_cache[cache_key] = self._geocode_address_string(addr, api_key) - - all_day_tasks = self.sudo().search([ - '|', - ('technician_id', '=', tech_id), - ('additional_technician_ids', 'in', [tech_id]), - ('scheduled_date', '=', date), - ('status', 'not in', ['cancelled']), - ], order='time_start, sequence, id') - if not all_day_tasks: - continue - - prev_lat, prev_lng = start_coords_cache[cache_key] - for i, task in enumerate(all_day_tasks): - if not (task.address_lat and task.address_lng): - task._geocode_address() - travel_vals = {} - if prev_lat and prev_lng and task.address_lat and task.address_lng: - task.with_context(skip_travel_recalc=True)._calculate_travel_time(prev_lat, prev_lng) - travel_vals['previous_task_id'] = all_day_tasks[i - 1].id if i > 0 else False - travel_vals['travel_origin'] = 'Clock-In Location' if i == 0 and str(date) == today_str and tech_id in clock_locations else ('Start Location' if i == 0 else f'Task {all_day_tasks[i - 1].name}') - if travel_vals: - task.with_context(skip_travel_recalc=True).write(travel_vals) - prev_lat = task.address_lat or prev_lat - prev_lng = task.address_lng or prev_lng - - # ------------------------------------------------------------------ - # STATUS ACTIONS - # ------------------------------------------------------------------ - - def _check_previous_tasks_completed(self): - """Check that all earlier tasks for the same technician+date are completed. - - Considers tasks where the technician is either lead or additional. - """ + def _post_completion_to_linked_order(self): + """Post the completion notes to the linked order's chatter.""" self.ensure_one() - earlier_incomplete = self.sudo().search([ - '|', - ('technician_id', '=', self.technician_id.id), - ('additional_technician_ids', 'in', [self.technician_id.id]), - ('scheduled_date', '=', self.scheduled_date), - ('time_start', '<', self.time_start), - ('status', 'not in', ['completed', 'cancelled']), + order = self.sale_order_id or self.purchase_order_id + if not order or not self.completion_notes: + return + task_type_label = dict(self._fields['task_type'].selection).get(self.task_type, self.task_type) + body = Markup( + f'
' + f'
Technician Task Completed
' + f'
    ' + f'
  • Task: {self.name} ({task_type_label})
  • ' + f'
  • Technician(s): {self.all_technician_names or self.technician_id.name}
  • ' + f'
  • Completed: {self._utc_to_local(self.completion_datetime).strftime("%B %d, %Y at %I:%M %p") if self.completion_datetime else "N/A"}
  • ' + f'
' + f'
' + f'{self.completion_notes}' + f'
' + ) + order.message_post( + body=body, + message_type='notification', + subtype_xmlid='mail.mt_note', + ) + + def _revert_sale_order_on_cancel(self): + """When a delivery task is cancelled, revert the sale order status.""" + self.ensure_one() + if self.task_type != 'delivery' or not self.sale_order_id: + return + order = self.sale_order_id + if order.x_fc_adp_application_status != 'ready_delivery': + return + + other_delivery_tasks = self.sudo().search([ + ('sale_order_id', '=', order.id), + ('task_type', '=', 'delivery'), + ('status', 'not in', ['cancelled']), ('id', '!=', self.id), ], limit=1) - if earlier_incomplete: - raise UserError(_( - "Please complete previous task %s first before starting this one." - ) % earlier_incomplete.name) - - def _write_action_location(self, extra_vals=None): - """Write GPS coordinates from context onto the task record.""" - ctx = self.env.context - lat = ctx.get('action_latitude', 0) - lng = ctx.get('action_longitude', 0) - acc = ctx.get('action_accuracy', 0) - vals = { - 'action_latitude': lat, - 'action_longitude': lng, - 'action_location_accuracy': acc, - } - if extra_vals: - vals.update(extra_vals) - if lat and lng: - self.with_context(skip_travel_recalc=True).write(vals) - - def action_start_en_route(self): - """Mark task as En Route.""" - for task in self: - if task.status != 'scheduled': - raise UserError(_("Only scheduled tasks can be marked as En Route.")) - task._check_previous_tasks_completed() - task.status = 'en_route' - task._write_action_location() - task._post_status_message('en_route') - - def action_start_task(self): - """Mark task as In Progress.""" - for task in self: - if task.status not in ('scheduled', 'en_route'): - raise UserError(_("Task must be scheduled or en route to start.")) - task._check_previous_tasks_completed() - task.status = 'in_progress' - ctx = self.env.context - task._write_action_location({ - 'started_latitude': ctx.get('action_latitude', 0), - 'started_longitude': ctx.get('action_longitude', 0), - }) - task._post_status_message('in_progress') - - def action_view_sale_order(self): - """Open the linked sale order / case.""" - self.ensure_one() - if not self.sale_order_id: + if other_delivery_tasks: return - return { - 'name': self.sale_order_id.name, - 'type': 'ir.actions.act_window', - 'res_model': 'sale.order', - 'view_mode': 'form', - 'res_id': self.sale_order_id.id, - } - def action_view_purchase_order(self): - """Open the linked purchase order.""" - self.ensure_one() - if not self.purchase_order_id: - return - return { - 'name': self.purchase_order_id.name, - 'type': 'ir.actions.act_window', - 'res_model': 'purchase.order', - 'view_mode': 'form', - 'res_id': self.purchase_order_id.id, - } + prev_status = order.x_fc_status_before_delivery or 'approved' + status_labels = dict(order._fields['x_fc_adp_application_status'].selection) + prev_label = status_labels.get(prev_status, prev_status) + + order.with_context( + skip_status_validation=True, + skip_status_emails=True, + ).write({ + 'x_fc_adp_application_status': prev_status, + 'x_fc_status_before_delivery': False, + }) + + body = Markup( + f'' + ) + order.message_post( + body=body, + message_type='notification', + subtype_xmlid='mail.mt_note', + ) + + self._send_task_cancelled_email() def _is_rental_pickup_task(self): """Check if this is a pickup task for a rental order.""" @@ -1941,46 +380,6 @@ class FusionTechnicianTask(models.Model): and self.sale_order_id.is_rental_order ) - def action_complete_task(self): - """Mark task as Completed.""" - for task in self: - if task.status not in ('in_progress', 'en_route', 'scheduled'): - raise UserError(_("Task must be in progress to complete.")) - - if task._is_rental_pickup_task() and not task.rental_inspection_completed: - raise UserError(_( - "Rental pickup tasks require a security inspection before " - "completion. Please complete the inspection from the " - "technician portal first." - )) - - ctx = self.env.context - task.with_context(skip_travel_recalc=True).write({ - 'status': 'completed', - 'completion_datetime': fields.Datetime.now(), - 'completed_latitude': ctx.get('action_latitude', 0), - 'completed_longitude': ctx.get('action_longitude', 0), - 'action_latitude': ctx.get('action_latitude', 0), - 'action_longitude': ctx.get('action_longitude', 0), - 'action_location_accuracy': ctx.get('action_accuracy', 0), - }) - task._post_status_message('completed') - if task.completion_notes and (task.sale_order_id or task.purchase_order_id): - task._post_completion_to_linked_order() - task._notify_scheduler_on_completion() - - if (task.task_type == 'delivery' - and task.sale_order_id - and task.sale_order_id.x_fc_is_odsp_sale - and task.sale_order_id._get_odsp_status() == 'ready_delivery'): - task.sale_order_id._odsp_advance_status( - 'delivered', - "Delivery task completed by technician. Order marked as delivered.", - ) - - if task._is_rental_pickup_task(): - task._apply_rental_inspection_results() - def _apply_rental_inspection_results(self): """Write inspection results from the task back to the rental order.""" self.ensure_one() @@ -2023,277 +422,88 @@ class FusionTechnicianTask(models.Model): order.name, e, ) - def action_cancel_task(self): - """Cancel the task. Sends cancellation email and reverts sale order if delivery.""" - for task in self: - if task.status == 'completed': - raise UserError(_("Cannot cancel a completed task.")) - task.status = 'cancelled' - task._write_action_location() - task._post_status_message('cancelled') - # If this was a delivery task linked to a sale order that is - # currently in "Ready for Delivery" -- revert the order back. - # _revert_sale_order_on_cancel also sends the cancellation email - # for delivery tasks. - if task.task_type == 'delivery': - task._revert_sale_order_on_cancel() - else: - # Non-delivery tasks: still send a cancellation email - task._send_task_cancelled_email() + # ------------------------------------------------------------------ + # VIEW ACTIONS + # ------------------------------------------------------------------ - def _revert_sale_order_on_cancel(self): - """When a delivery task is cancelled, check if the linked sale order - should revert to its previous status. Only reverts if: - - Task is a delivery type - - Sale order is currently 'ready_delivery' - - No other active (non-cancelled) delivery tasks exist for this order - """ + def action_view_sale_order(self): + """Open the linked sale order / case.""" self.ensure_one() - if self.task_type != 'delivery' or not self.sale_order_id: + if not self.sale_order_id: return - order = self.sale_order_id - if order.x_fc_adp_application_status != 'ready_delivery': - return - - # Check if any other non-cancelled delivery tasks exist for this order - other_delivery_tasks = self.sudo().search([ - ('sale_order_id', '=', order.id), - ('task_type', '=', 'delivery'), - ('status', 'not in', ['cancelled']), - ('id', '!=', self.id), - ], limit=1) - if other_delivery_tasks: - return # Other active delivery tasks still exist, don't revert - - # Revert to the status saved before Ready for Delivery - prev_status = order.x_fc_status_before_delivery or 'approved' - status_labels = dict(order._fields['x_fc_adp_application_status'].selection) - prev_label = status_labels.get(prev_status, prev_status) - - # skip_status_emails prevents the "Approved" email from re-firing - order.with_context( - skip_status_validation=True, - skip_status_emails=True, - ).write({ - 'x_fc_adp_application_status': prev_status, - 'x_fc_status_before_delivery': False, - }) - - # Post chatter message about the revert - body = Markup( - f'' - ) - order.message_post( - body=body, - message_type='notification', - subtype_xmlid='mail.mt_note', - ) - - # Send a "Delivery Cancelled" email instead - self._send_task_cancelled_email() - - def action_reschedule(self): - """Open the reschedule form for this task. - Saves old schedule info, then opens the same task form for editing. - On save, the write() method detects the reschedule and sends emails.""" - self.ensure_one() return { + 'name': self.sale_order_id.name, 'type': 'ir.actions.act_window', - 'res_model': 'fusion.technician.task', - 'res_id': self.id, + 'res_model': 'sale.order', 'view_mode': 'form', - 'target': 'new', - 'context': { - 'reschedule_mode': True, - 'old_date': str(self.scheduled_date) if self.scheduled_date else '', - 'old_time_start': self.time_start, - 'old_time_end': self.time_end, - }, + 'res_id': self.sale_order_id.id, } - def action_reset_to_scheduled(self): - """Reset task back to scheduled.""" - for task in self: - task.status = 'scheduled' - - # ------------------------------------------------------------------ - # CHATTER / NOTIFICATIONS - # ------------------------------------------------------------------ - - def _post_status_message(self, new_status): - """Post a status change message to the task chatter.""" + def action_view_purchase_order(self): + """Open the linked purchase order.""" self.ensure_one() - status_labels = dict(self._fields['status'].selection) - label = status_labels.get(new_status, new_status) - icons = { - 'en_route': 'fa-road', - 'in_progress': 'fa-wrench', - 'completed': 'fa-check-circle', - 'cancelled': 'fa-times-circle', - 'rescheduled': 'fa-calendar', + if not self.purchase_order_id: + return + return { + 'name': self.purchase_order_id.name, + 'type': 'ir.actions.act_window', + 'res_model': 'purchase.order', + 'view_mode': 'form', + 'res_id': self.purchase_order_id.id, } - icon = icons.get(new_status, 'fa-info-circle') - body = Markup( - f'

Task status changed to ' - f'{label} by {self.env.user.name}

' - ) - self.message_post(body=body, message_type='notification', subtype_xmlid='mail.mt_note') - - def _post_completion_to_linked_order(self): - """Post the completion notes to the linked order's chatter.""" - self.ensure_one() - order = self.sale_order_id or self.purchase_order_id - if not order or not self.completion_notes: - return - task_type_label = dict(self._fields['task_type'].selection).get(self.task_type, self.task_type) - body = Markup( - f'
' - f'
Technician Task Completed
' - f'
    ' - f'
  • Task: {self.name} ({task_type_label})
  • ' - f'
  • Technician(s): {self.all_technician_names or self.technician_id.name}
  • ' - f'
  • Completed: {self.completion_datetime.strftime("%B %d, %Y at %I:%M %p") if self.completion_datetime else "N/A"}
  • ' - f'
' - f'
' - f'{self.completion_notes}' - f'
' - ) - order.message_post( - body=body, - message_type='notification', - subtype_xmlid='mail.mt_note', - ) - - def _notify_scheduler_on_completion(self): - """Send an Odoo notification to the person who scheduled the task. - - Shadow tasks skip this -- the push-back to the source instance - triggers the notification there where the real scheduler exists. - """ - self.ensure_one() - if self.x_fc_sync_source: - return - - recipient = None - if self.sale_order_id and self.sale_order_id.user_id: - recipient = self.sale_order_id.user_id - elif self.purchase_order_id and self.purchase_order_id.user_id: - recipient = self.purchase_order_id.user_id - elif self.create_uid: - recipient = self.create_uid - - if not recipient or recipient in self.all_technician_ids: - return - - task_type_label = dict(self._fields['task_type'].selection).get(self.task_type, self.task_type) - task_url = f'/web#id={self.id}&model=fusion.technician.task&view_type=form' - client_name = self.client_display_name or 'N/A' - order = self.sale_order_id or self.purchase_order_id - case_ref = order.name if order else '' - addr_parts = [p for p in [ - self.address_street, - self.address_street2, - self.address_city, - self.address_state_id.name if self.address_state_id else '', - self.address_zip, - ] if p] - address_str = ', '.join(addr_parts) or 'No address' - subject = f'Task Completed: {client_name}' - if case_ref: - subject += f' ({case_ref})' - body = Markup( - f'
' - f'

' - f'{task_type_label} Completed

' - f'
S/NADP Code
Total${total_adp:,.2f}${total_client:,.2f}
' - f'' - f'' - f'' - f'' - f'' - f'' - f'' - f'' - f'' - f'' - f'
Client:{client_name}
Case:{case_ref or "N/A"}
Task:{self.name}
Technician(s):{self.all_technician_names or self.technician_id.name}
Location:{address_str}
' - f'

View Task

' - f'
' - ) - self.env['mail.thread'].sudo().message_notify( - partner_ids=[recipient.partner_id.id], - body=body, - subject=subject, - ) # ------------------------------------------------------------------ - # TASK EMAIL NOTIFICATIONS + # EMAIL OVERRIDES # ------------------------------------------------------------------ + def _get_email_builder(self): + """Prefer the linked sale order for email building.""" + if self.sale_order_id: + return self.sale_order_id + return super()._get_email_builder() + + def _is_email_notifications_enabled(self): + """Check linked sale order's notification settings.""" + if self.sale_order_id: + try: + return self.sale_order_id._is_email_notifications_enabled() + except Exception: + return True + return super()._is_email_notifications_enabled() + def _get_task_email_details(self): - """Build common detail rows for task emails.""" - self.ensure_one() - type_label = dict(self._fields['task_type'].selection).get( - self.task_type, self.task_type or '') - rows = [ - ('Task', f'{self.name} ({type_label})'), - ('Client', self.partner_id.name or 'N/A'), - ] + """Add SO/PO reference rows to email details.""" + rows = super()._get_task_email_details() + # Insert after Client row (index 1) + insert_idx = 2 if self.sale_order_id: - rows.append(('Case', self.sale_order_id.name)) + rows.insert(insert_idx, ('Case', self.sale_order_id.name)) + insert_idx += 1 if self.purchase_order_id: - rows.append(('Purchase Order', self.purchase_order_id.name)) - if self.scheduled_date: - date_str = self.scheduled_date.strftime('%B %d, %Y') - start_str = self._float_to_time_str(self.time_start) - end_str = self._float_to_time_str(self.time_end) - rows.append(('Scheduled', f'{date_str}, {start_str} - {end_str}')) - if self.technician_id: - rows.append(('Technician', self.all_technician_names or self.technician_id.name)) - if self.address_display: - rows.append(('Address', self.address_display)) + rows.insert(insert_idx, ('Purchase Order', self.purchase_order_id.name)) return rows def _get_task_email_recipients(self): - """Get email recipients for task notifications. - Returns dict with 'to' (client), 'cc' (technician, sales rep, office).""" - self.ensure_one() - to_emails = [] - cc_emails = [] - - # Client email - if self.partner_id and self.partner_id.email: - to_emails.append(self.partner_id.email) - - # Technician emails (lead + additional) - for tech in (self.technician_id | self.additional_technician_ids): - if tech.email: - cc_emails.append(tech.email) - - # Sales rep from the sale order + """Add sales rep and office CC from linked sale order.""" + result = super()._get_task_email_recipients() if self.sale_order_id and self.sale_order_id.user_id and \ self.sale_order_id.user_id.email: - cc_emails.append(self.sale_order_id.user_id.email) - - # Office notification recipients + result['cc'].append(self.sale_order_id.user_id.email) if self.sale_order_id: try: office_cc = self.sale_order_id._get_email_recipients( include_client=False).get('office_cc', []) - cc_emails.extend(office_cc) + result['cc'].extend(office_cc) except Exception: pass - - return {'to': to_emails, 'cc': list(set(cc_emails))} + result['cc'] = list(set(result['cc'])) + return result def _send_task_cancelled_email(self): - """Send cancellation email for a task/delivery/appointment.""" + """Send cancellation email using linked sale order's email builder.""" self.ensure_one() + if self.x_fc_sync_source: + return False order = self.sale_order_id if not order: return False @@ -2353,8 +563,10 @@ class FusionTechnicianTask(models.Model): return False def _send_task_scheduled_email(self): - """Send appointment scheduled email to client, technician, and sales rep.""" + """Send appointment scheduled email using linked sale order.""" self.ensure_one() + if self.x_fc_sync_source: + return False order = self.sale_order_id if not order: return False @@ -2416,9 +628,10 @@ class FusionTechnicianTask(models.Model): return False def _send_task_rescheduled_email(self, old_date=None, old_start=None, old_end=None): - """Send reschedule email to client, technician, and sales rep. - Shows old vs new schedule for clarity.""" + """Send reschedule email using linked sale order.""" self.ensure_one() + if self.x_fc_sync_source: + return False order = self.sale_order_id if not order: return False @@ -2441,7 +654,6 @@ class FusionTechnicianTask(models.Model): detail_rows = self._get_task_email_details() - # Show old schedule if provided if old_date or old_start is not None: old_parts = [] if old_date: @@ -2487,482 +699,3 @@ class FusionTechnicianTask(models.Model): except Exception as e: _logger.error("Failed to send rescheduled email for %s: %s", self.name, e) return False - - def get_next_task_for_technician(self): - """Get the next task in sequence for the same technician+date after this one. - - Considers tasks where the technician is either lead or additional. - """ - self.ensure_one() - return self.sudo().search([ - '|', - ('technician_id', '=', self.technician_id.id), - ('additional_technician_ids', 'in', [self.technician_id.id]), - ('scheduled_date', '=', self.scheduled_date), - ('time_start', '>=', self.time_start), - ('status', 'in', ['scheduled', 'en_route']), - ('id', '!=', self.id), - ], order='time_start, sequence, id', limit=1) - - # ------------------------------------------------------------------ - # GOOGLE MAPS INTEGRATION - # ------------------------------------------------------------------ - - def _get_google_maps_api_key(self): - """Get the Google Maps API key from config.""" - return self.env['ir.config_parameter'].sudo().get_param( - 'fusion_claims.google_maps_api_key', '' - ) - - @api.model - def get_map_data(self, domain=None): - """Return task data, technician locations, and Google Maps API key. - - Args: - domain: optional extra domain from the search bar filters. - """ - api_key = self.env['ir.config_parameter'].sudo().get_param( - 'fusion_claims.google_maps_api_key', '') - local_instance = self.env['ir.config_parameter'].sudo().get_param( - 'fusion_claims.sync_instance_id', '') - base_domain = [ - ('status', 'not in', ['cancelled']), - ] - if domain: - base_domain = expression.AND([base_domain, domain]) - tasks = self.sudo().search_read( - base_domain, - ['name', 'partner_id', 'technician_id', 'task_type', - 'address_lat', 'address_lng', 'address_display', - 'time_start', 'time_end', 'time_start_display', 'time_end_display', - 'status', 'scheduled_date', 'travel_time_minutes', - 'x_fc_sync_client_name', 'x_fc_is_shadow', 'x_fc_sync_source'], - order='scheduled_date asc NULLS LAST, time_start asc', - limit=500, - ) - locations = self.env['fusion.technician.location'].get_latest_locations() - tech_starts = self._get_tech_start_locations(tasks, api_key) - return { - 'api_key': api_key, - 'tasks': tasks, - 'locations': locations, - 'local_instance_id': local_instance, - 'tech_start_locations': tech_starts, - } - - @api.model - def _get_tech_start_locations(self, tasks, api_key): - """Build a dict of technician start locations for route origins. - - Priority per technician: - 1. Today's fusion_clock check-in location (if module installed) - 2. Personal start address (x_fc_start_address with cached lat/lng) - 3. Company default HQ address - """ - tech_ids = { - t['technician_id'][0] - for t in tasks - if t.get('technician_id') - } - if not tech_ids: - return {} - - result = {} - today = fields.Date.today() - - clock_locations = self._get_clock_in_locations(tech_ids, today) - - hq_address = ( - self.env['ir.config_parameter'].sudo() - .get_param('fusion_claims.technician_start_address', '') or '' - ).strip() - hq_lat, hq_lng = 0.0, 0.0 - - for uid in tech_ids: - if uid in clock_locations: - result[uid] = clock_locations[uid] - continue - - user = self.env['res.users'].sudo().browse(uid) - if not user.exists(): - continue - partner = user.partner_id - - if partner.x_fc_start_address and partner.x_fc_start_address.strip(): - lat = partner.x_fc_start_address_lat - lng = partner.x_fc_start_address_lng - if not lat or not lng: - lat, lng = self._geocode_address_string( - partner.x_fc_start_address, api_key) - if lat and lng: - partner.sudo().write({ - 'x_fc_start_address_lat': lat, - 'x_fc_start_address_lng': lng, - }) - if lat and lng: - result[uid] = { - 'lat': lat, 'lng': lng, - 'address': partner.x_fc_start_address.strip(), - 'source': 'start_address', - } - continue - - if hq_address: - if not hq_lat and not hq_lng: - hq_lat, hq_lng = self._geocode_address_string( - hq_address, api_key) - if hq_lat and hq_lng: - result[uid] = { - 'lat': hq_lat, 'lng': hq_lng, - 'address': hq_address, - 'source': 'company_hq', - } - - return result - - @api.model - def _get_clock_in_locations(self, tech_ids, today): - """Get today's clock-in lat/lng from fusion_clock if installed. - - Uses the technician's actual GPS position at the moment they clocked - in (from the activity log), not the geofenced location's fixed - coordinates. Falls back to the geofence center if no activity-log - GPS is available. - """ - result = {} - try: - module = self.env['ir.module.module'].sudo().search([ - ('name', '=', 'fusion_clock'), - ('state', '=', 'installed'), - ], limit=1) - if not module: - return result - except Exception: - return result - - try: - Attendance = self.env['hr.attendance'].sudo() - Employee = self.env['hr.employee'].sudo() - ActivityLog = self.env['fusion.clock.activity.log'].sudo() - except KeyError: - return result - - employees = Employee.search([ - ('user_id', 'in', list(tech_ids)), - ]) - emp_to_user = {e.id: e.user_id.id for e in employees} - - if not employees: - return result - - today_start = dt_datetime.combine(today, dt_datetime.min.time()) - today_end = today_start + timedelta(days=1) - - attendances = Attendance.search([ - ('employee_id', 'in', employees.ids), - ('check_in', '>=', today_start), - ('check_in', '<', today_end), - ], order='check_in asc') - - for att in attendances: - uid = emp_to_user.get(att.employee_id.id) - if not uid or uid in result: - continue - - lat, lng, address = 0, 0, '' - - log = ActivityLog.search([ - ('attendance_id', '=', att.id), - ('log_type', '=', 'clock_in'), - ('latitude', '!=', 0), - ('longitude', '!=', 0), - ], limit=1) - if log: - lat, lng = log.latitude, log.longitude - loc = att.x_fclk_location_id if hasattr(att, 'x_fclk_location_id') else False - address = (loc.address or loc.name) if loc else '' - - if not lat or not lng: - loc = att.x_fclk_location_id if hasattr(att, 'x_fclk_location_id') else False - if loc and loc.latitude and loc.longitude: - lat, lng = loc.latitude, loc.longitude - address = loc.address or loc.name or '' - - if lat and lng: - result[uid] = { - 'lat': lat, - 'lng': lng, - 'address': address, - 'source': 'clock_in', - } - - return result - - def _geocode_address(self): - """Geocode the task address using Google Geocoding API.""" - self.ensure_one() - api_key = self._get_google_maps_api_key() - if not api_key or not self.address_display: - return False - - try: - url = 'https://maps.googleapis.com/maps/api/geocode/json' - params = { - 'address': self.address_display, - 'key': api_key, - 'region': 'ca', - } - resp = requests.get(url, params=params, timeout=10) - data = resp.json() - if data.get('status') == 'OK' and data.get('results'): - location = data['results'][0]['geometry']['location'] - self.write({ - 'address_lat': location['lat'], - 'address_lng': location['lng'], - }) - return True - except Exception as e: - _logger.warning(f"Geocoding failed for task {self.name}: {e}") - return False - - def _calculate_travel_time(self, origin_lat, origin_lng): - """Calculate travel time from origin to this task using Distance Matrix API.""" - self.ensure_one() - api_key = self._get_google_maps_api_key() - if not api_key: - return False - if not (origin_lat and origin_lng and self.address_lat and self.address_lng): - return False - - try: - url = 'https://maps.googleapis.com/maps/api/distancematrix/json' - params = { - 'origins': f'{origin_lat},{origin_lng}', - 'destinations': f'{self.address_lat},{self.address_lng}', - 'key': api_key, - 'mode': 'driving', - 'avoid': 'tolls', - 'traffic_model': 'best_guess', - 'departure_time': 'now', - } - resp = requests.get(url, params=params, timeout=10) - data = resp.json() - if data.get('status') == 'OK': - element = data['rows'][0]['elements'][0] - if element.get('status') == 'OK': - duration_seconds = element['duration_in_traffic']['value'] if 'duration_in_traffic' in element else element['duration']['value'] - distance_meters = element['distance']['value'] - self.write({ - 'travel_time_minutes': round(duration_seconds / 60), - 'travel_distance_km': round(distance_meters / 1000, 1), - }) - return True - except Exception as e: - _logger.warning(f"Travel time calculation failed for task {self.name}: {e}") - return False - - def action_calculate_travel_times(self): - """Calculate travel times for a day's schedule. Called from backend button or cron.""" - self._do_calculate_travel_times() - # Return False to stay on the current form without navigation - return False - - def _do_calculate_travel_times(self): - """Internal: calculate travel times for tasks. Does not return an action.""" - # Group tasks by technician and date - task_groups = {} - for task in self: - key = (task.technician_id.id, task.scheduled_date) - if key not in task_groups: - task_groups[key] = self.env['fusion.technician.task'] - task_groups[key] |= task - - api_key = self._get_google_maps_api_key() - start_coords_cache = {} - - for (tech_id, date), tasks in task_groups.items(): - sorted_tasks = tasks.sorted(lambda t: (t.sequence, t.time_start)) - - # Get this technician's start location (personal or company default) - if tech_id not in start_coords_cache: - addr = self._get_technician_start_address(tech_id) - start_coords_cache[tech_id] = self._geocode_address_string(addr, api_key) - - prev_lat, prev_lng = start_coords_cache[tech_id] - - for i, task in enumerate(sorted_tasks): - # Geocode task if needed - if not (task.address_lat and task.address_lng): - task._geocode_address() - - if prev_lat and prev_lng and task.address_lat and task.address_lng: - task._calculate_travel_time(prev_lat, prev_lng) - task.previous_task_id = sorted_tasks[i - 1].id if i > 0 else False - task.travel_origin = 'Start Location' if i == 0 else f'Task {sorted_tasks[i - 1].name}' - - prev_lat = task.address_lat - prev_lng = task.address_lng - - @api.model - def _cron_calculate_travel_times(self): - """Cron job: Calculate travel times for today and tomorrow.""" - today = fields.Date.context_today(self) - tomorrow = today + timedelta(days=1) - tasks = self.search([ - ('scheduled_date', 'in', [today, tomorrow]), - ('status', 'in', ['scheduled', 'en_route']), - ]) - if tasks: - tasks._do_calculate_travel_times() - _logger.info(f"Calculated travel times for {len(tasks)} tasks") - - # ------------------------------------------------------------------ - # PORTAL HELPERS - # ------------------------------------------------------------------ - - def get_technician_tasks_for_date(self, user_id, date): - """Get all tasks for a technician on a given date, ordered by sequence.""" - return self.sudo().search([ - ('technician_id', '=', user_id), - ('scheduled_date', '=', date), - ('status', '!=', 'cancelled'), - ], order='sequence, time_start, id') - - def get_next_task(self, user_id): - """Get the next upcoming task for a technician.""" - today = fields.Date.context_today(self) - return self.sudo().search([ - ('technician_id', '=', user_id), - ('scheduled_date', '>=', today), - ('status', 'in', ['scheduled', 'en_route']), - ], order='scheduled_date, sequence, time_start', limit=1) - - def get_current_task(self, user_id): - """Get the current in-progress task for a technician.""" - today = fields.Date.context_today(self) - return self.sudo().search([ - ('technician_id', '=', user_id), - ('scheduled_date', '=', today), - ('status', '=', 'in_progress'), - ], limit=1) - - # ------------------------------------------------------------------ - # PUSH NOTIFICATIONS - # ------------------------------------------------------------------ - - def _send_push_notification(self, title, body_text, url=None): - """Send a web push notification for this task.""" - self.ensure_one() - PushSub = self.env['fusion.push.subscription'].sudo() - subscriptions = PushSub.search([ - ('user_id', '=', self.technician_id.id), - ('active', '=', True), - ]) - if not subscriptions: - return - - ICP = self.env['ir.config_parameter'].sudo() - vapid_private = ICP.get_param('fusion_claims.vapid_private_key', '') - vapid_public = ICP.get_param('fusion_claims.vapid_public_key', '') - if not vapid_private or not vapid_public: - _logger.warning("VAPID keys not configured, cannot send push notification") - return - - try: - from pywebpush import webpush, WebPushException - except ImportError: - _logger.warning("pywebpush not installed, cannot send push notifications") - return - - payload = json.dumps({ - 'title': title, - 'body': body_text, - 'url': url or f'/my/technician/task/{self.id}', - 'task_id': self.id, - 'task_type': self.task_type, - }) - - for sub in subscriptions: - try: - webpush( - subscription_info={ - 'endpoint': sub.endpoint, - 'keys': { - 'p256dh': sub.p256dh_key, - 'auth': sub.auth_key, - }, - }, - data=payload, - vapid_private_key=vapid_private, - vapid_claims={'sub': 'mailto:support@nexasystems.ca'}, - ) - except Exception as e: - _logger.warning(f"Push notification failed for subscription {sub.id}: {e}") - # Deactivate invalid subscriptions - if 'gone' in str(e).lower() or '410' in str(e): - sub.active = False - - self.write({ - 'push_notified': True, - 'push_notified_datetime': fields.Datetime.now(), - }) - - @api.model - def _cron_send_push_notifications(self): - """Cron: Send push notifications for upcoming tasks.""" - ICP = self.env['ir.config_parameter'].sudo() - if not ICP.get_param('fusion_claims.push_enabled', False): - return - - advance_minutes = int(ICP.get_param('fusion_claims.push_advance_minutes', '30')) - now = fields.Datetime.now() - - # Find tasks starting within advance_minutes that haven't been notified - tasks = self.search([ - ('scheduled_date', '=', now.date()), - ('status', '=', 'scheduled'), - ('push_notified', '=', False), - ]) - - for task in tasks: - # Check if task is within the notification window - task_start_hour = int(task.time_start) - task_start_min = int((task.time_start % 1) * 60) - task_start_dt = now.replace(hour=task_start_hour, minute=task_start_min, second=0) - - minutes_until = (task_start_dt - now).total_seconds() / 60 - if 0 <= minutes_until <= advance_minutes: - task_type_label = dict(self._fields['task_type'].selection).get(task.task_type, task.task_type) - title = f'Upcoming: {task_type_label}' - body_text = f'{task.partner_id.name or "Task"} - {task.time_start_display}' - if task.travel_time_minutes: - body_text += f' ({task.travel_time_minutes} min drive)' - task._send_push_notification(title, body_text) - - # ------------------------------------------------------------------ - # HELPERS - # ------------------------------------------------------------------ - - @staticmethod - def _float_to_time_str(value): - """Convert float hours to time string like '9:30 AM'.""" - if not value and value != 0: - return '' - hours = int(value) - minutes = int(round((value % 1) * 60)) - period = 'AM' if hours < 12 else 'PM' - display_hour = hours % 12 or 12 - return f'{display_hour}:{minutes:02d} {period}' - - def get_google_maps_url(self): - """Get Google Maps navigation URL using the text address so the - destination shows a proper street name instead of raw coordinates. - Returns a google.com/maps URL that Android auto-opens in the app; - iOS handling is done client-side via JS to launch comgooglemaps://.""" - self.ensure_one() - if self.address_display: - addr = urllib.parse.quote(self.address_display) - return f'https://www.google.com/maps/dir/?api=1&destination={addr}&travelmode=driving' - if self.address_lat and self.address_lng: - return f'https://www.google.com/maps/dir/?api=1&destination={self.address_lat},{self.address_lng}&travelmode=driving' - return '' diff --git a/fusion_claims/scripts/__pycache__/cleanup_demo_pool.cpython-312.pyc b/fusion_claims/scripts/__pycache__/cleanup_demo_pool.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4b9c90438f89f7265a339bea864cff01642068d6 GIT binary patch literal 7341 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 D-6QfF literal 0 HcmV?d00001 diff --git a/fusion_claims/scripts/__pycache__/import_adp_mobility_manual.cpython-312.pyc b/fusion_claims/scripts/__pycache__/import_adp_mobility_manual.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..160e6db551bee2d2847fa38eeed0c09181bb66ad GIT binary patch literal 7784 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 literal 0 HcmV?d00001 diff --git a/fusion_claims/scripts/__pycache__/import_demo_pool.cpython-312.pyc b/fusion_claims/scripts/__pycache__/import_demo_pool.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fe76e4ea65de95abc94c6fc10f4a9d8d6f56891a GIT binary patch literal 11265 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 z z;I?;g&Gf0WI@8#ddPnFUemwVhTBw`2Kl-$xd-L38k5JdYHu^<*<@)QXbLm5E+vWb` z`6uqi6f3m$Z@XVhp3CZ-mBp|F>$qoO@1Y0mi z)%s$#2*Fm&(U79DHUt-Aj+TwiEP-G<=4cd}PHr^~Ji3~7AWRA7I1GJmwVr+4kaZ$V zDdwn6^=#E0+bqkLA%v>{;YNsZ%u$!RxK)2*^JumLAv~C)d82a6*Z-(2>qUr4%u%0u zbF1Ox=5Y29LR2BdTU!l1n^&{d2tgJgY7nAUo>m=#>oG^gy6;&7z{$~U3+8Uzb#{c-J+Wc8z}W*0yUpc{XFMSicO8<>VL=h3d4YbIWslb8@$$KV8wkU2z&j zfvDIes^J`N6Ez=Irir6jO_3vjXByjf8&9VjPp^%C>Tb+bHU2F2lUSzSpJ_R{+tQnE z>CLos{$tCpTAmqo?VhhNUA1>z3#(kwuz{z`ee2e*(UOy?P6!mQ5uewz+<#-!0+DB{ zV{LHVuy%W$N!6!ZsoR^zjpawhkC*-<@o$O8kxWO=ZpZ0#$LZ~kf#0>JJ6>PAowBU+ z>9SVgt#^dd0K}M`LHxfl+;#)cLOcfCvJ!(L( zR;O(1?+TXo9bE_1pt5!S&jgEqN7t^D38A_}uypR|x@5!$+SJG|iq=;I3#b?W=SJHT zlWonsWAc9HtVj-`X$`GA*Y#_yzqeLH_`KBf!hq>5g7xx_Zc6EVZ6Mk9dtLe0FZ!_Z zn&+4XEplmH>bvRE=C$!msprAi{jt>GhB39gso6ZT+4!jF@rB2|pCp9oH-+nO3AJzU zmcFx9`pzG+derm}FG?|c1+X!9W~?Rm#_o(kNWr+iyrJ3X+^7>g{vB&O8rEpaoicBf zY@FHX7E0Q8tsPs|4#dLT`3;MHRq&hR4VNvNe?N5A57}?6y%P@2?@VVbP!JsE%SOH6 zslBYx3%v%wq&0fLq>WkxTg;ONecIVPiR-s;J-|M@Xbc44cYA>Va|}3(#z<^-7TurC z5H}nJ7_J1SfD||i1b`M*gQfXvpk@9BCHGLWhLQ&;K|g$uZW+?uLozAywO|2NOrS&x zOPYEY;J1nqx}W(q;84hdWg!J&!SQDXJFfex9>cAlVZ~1^-el9R#hbQ(j@Y&|tb%qg zb7?X<=NgC>Ku>kVnm4Nl2o#Cl4zLlyCQM%n6lMflWPA~VtukywaIs87AlNSB9SAOw zVJCu1F}-u`Qnn1iE==zh%3HE-R4A7#DiG|!^j@K|E9*stN=)w%N}95VP@xLbdjxMs zwi*>krF{)5)MEPLNSpG%YX$hr literal 0 HcmV?d00001 diff --git a/fusion_claims/security/ir.model.access.csv b/fusion_claims/security/ir.model.access.csv index 2db47b78..b4f2140d 100644 --- a/fusion_claims/security/ir.model.access.csv +++ b/fusion_claims/security/ir.model.access.csv @@ -36,15 +36,6 @@ access_fusion_client_chat_message_user,fusion.client.chat.message.user,model_fus access_fusion_client_chat_message_manager,fusion.client.chat.message.manager,model_fusion_client_chat_message,sales_team.group_sale_manager,1,1,1,1 access_fusion_xml_import_wizard,fusion.xml.import.wizard.user,model_fusion_xml_import_wizard,sales_team.group_sale_manager,1,1,1,1 access_fusion_claims_dashboard_user,fusion.claims.dashboard.user,model_fusion_claims_dashboard,sales_team.group_sale_salesman,1,1,1,1 -access_fusion_technician_task_user,fusion.technician.task.user,model_fusion_technician_task,sales_team.group_sale_salesman,1,1,1,0 -access_fusion_technician_task_manager,fusion.technician.task.manager,model_fusion_technician_task,sales_team.group_sale_manager,1,1,1,1 -access_fusion_technician_task_technician,fusion.technician.task.technician,model_fusion_technician_task,fusion_claims.group_field_technician,1,1,0,0 -access_fusion_technician_task_portal,fusion.technician.task.portal,model_fusion_technician_task,base.group_portal,1,0,0,0 -access_fusion_push_subscription_user,fusion.push.subscription.user,model_fusion_push_subscription,base.group_user,1,1,1,0 -access_fusion_push_subscription_portal,fusion.push.subscription.portal,model_fusion_push_subscription,base.group_portal,1,1,1,0 -access_fusion_technician_location_manager,fusion.technician.location.manager,model_fusion_technician_location,sales_team.group_sale_manager,1,1,1,1 -access_fusion_technician_location_user,fusion.technician.location.user,model_fusion_technician_location,sales_team.group_sale_salesman,1,0,0,0 -access_fusion_technician_location_portal,fusion.technician.location.portal,model_fusion_technician_location,base.group_portal,0,0,1,0 access_fusion_send_to_mod_wizard_user,fusion_claims.send.to.mod.wizard.user,model_fusion_claims_send_to_mod_wizard,sales_team.group_sale_salesman,1,1,1,0 access_fusion_send_to_mod_wizard_manager,fusion_claims.send.to.mod.wizard.manager,model_fusion_claims_send_to_mod_wizard,sales_team.group_sale_manager,1,1,1,1 access_fusion_mod_awaiting_wizard_user,fusion_claims.mod.awaiting.funding.wizard.user,model_fusion_claims_mod_awaiting_funding_wizard,sales_team.group_sale_salesman,1,1,1,0 @@ -71,8 +62,6 @@ access_fusion_odsp_ready_delivery_wizard_user,fusion_claims.odsp.ready.delivery. access_fusion_odsp_ready_delivery_wizard_manager,fusion_claims.odsp.ready.delivery.wizard.manager,model_fusion_claims_odsp_ready_delivery_wizard,sales_team.group_sale_manager,1,1,1,1 access_fusion_submit_to_odsp_wizard_user,fusion_claims.submit.to.odsp.wizard.user,model_fusion_claims_submit_to_odsp_wizard,sales_team.group_sale_salesman,1,1,1,0 access_fusion_submit_to_odsp_wizard_manager,fusion_claims.submit.to.odsp.wizard.manager,model_fusion_claims_submit_to_odsp_wizard,sales_team.group_sale_manager,1,1,1,1 -access_fusion_task_sync_config_manager,fusion.task.sync.config.manager,model_fusion_task_sync_config,sales_team.group_sale_manager,1,1,1,1 -access_fusion_task_sync_config_user,fusion.task.sync.config.user,model_fusion_task_sync_config,sales_team.group_sale_salesman,1,0,0,0 access_fusion_ltc_facility_user,fusion.ltc.facility.user,model_fusion_ltc_facility,sales_team.group_sale_salesman,1,1,1,0 access_fusion_ltc_facility_manager,fusion.ltc.facility.manager,model_fusion_ltc_facility,sales_team.group_sale_manager,1,1,1,1 access_fusion_ltc_floor_user,fusion.ltc.floor.user,model_fusion_ltc_floor,sales_team.group_sale_salesman,1,1,1,0 @@ -90,4 +79,9 @@ access_fusion_ltc_family_contact_manager,fusion.ltc.family.contact.manager,model access_fusion_ltc_form_submission_user,fusion.ltc.form.submission.user,model_fusion_ltc_form_submission,sales_team.group_sale_salesman,1,1,0,0 access_fusion_ltc_form_submission_manager,fusion.ltc.form.submission.manager,model_fusion_ltc_form_submission,sales_team.group_sale_manager,1,1,1,1 access_fusion_ltc_repair_create_so_wizard_user,fusion.ltc.repair.create.so.wizard.user,model_fusion_ltc_repair_create_so_wizard,sales_team.group_sale_salesman,1,1,1,1 -access_fusion_ltc_repair_create_so_wizard_manager,fusion.ltc.repair.create.so.wizard.manager,model_fusion_ltc_repair_create_so_wizard,sales_team.group_sale_manager,1,1,1,1 \ No newline at end of file +access_fusion_ltc_repair_create_so_wizard_manager,fusion.ltc.repair.create.so.wizard.manager,model_fusion_ltc_repair_create_so_wizard,sales_team.group_sale_manager,1,1,1,1 +access_fusion_page11_sign_request_user,fusion.page11.sign.request.user,model_fusion_page11_sign_request,sales_team.group_sale_salesman,1,1,1,0 +access_fusion_page11_sign_request_manager,fusion.page11.sign.request.manager,model_fusion_page11_sign_request,sales_team.group_sale_manager,1,1,1,1 +access_fusion_page11_sign_request_public,fusion.page11.sign.request.public,model_fusion_page11_sign_request,base.group_public,1,0,0,0 +access_fusion_send_page11_wizard_user,fusion_claims.send.page11.wizard.user,model_fusion_claims_send_page11_wizard,sales_team.group_sale_salesman,1,1,1,1 +access_fusion_send_page11_wizard_manager,fusion_claims.send.page11.wizard.manager,model_fusion_claims_send_page11_wizard,sales_team.group_sale_manager,1,1,1,1 \ No newline at end of file diff --git a/fusion_claims/security/security.xml b/fusion_claims/security/security.xml index 4b0801c9..93511856 100644 --- a/fusion_claims/security/security.xml +++ b/fusion_claims/security/security.xml @@ -54,88 +54,5 @@ Temporary permission for editing locked documents on old/legacy cases. Requires the "Allow Document Lock Override" setting to be enabled in Fusion Claims Settings. Once all legacy cases are handled, disable the setting and remove this permission from users. - - - - - - - - - Field Technician - - - - - - - - - - Technician Task: Manager Full Access - - [(1, '=', 1)] - - - - - - - - - - Technician Task: Sales User Access - - [(1, '=', 1)] - - - - - - - - - - Technician Task: Technician Own Tasks - - [('technician_id', '=', user.id)] - - - - - - - - - - Technician Task: Portal Technician Access - - [('technician_id', '=', user.id)] - - - - - - - - - - - - - - Push Subscription: Own Only - - [('user_id', '=', user.id)] - - - - - - Push Subscription: Portal Own Only - - [('user_id', '=', user.id)] - - diff --git a/fusion_claims/static/src/css/fusion_task_map_view.scss b/fusion_claims/static/src/css/fusion_task_map_view.scss index 9f1351bf..31c3d696 100644 --- a/fusion_claims/static/src/css/fusion_task_map_view.scss +++ b/fusion_claims/static/src/css/fusion_task_map_view.scss @@ -138,6 +138,75 @@ $transition-speed: .25s; font-weight: 500; } +// ── Technician filter chips ───────────────────────────────────────── +.fc_tech_filters { + display: flex; + flex-wrap: wrap; + gap: 4px; +} + +.fc_tech_chip { + display: inline-flex; + align-items: center; + gap: 5px; + padding: 3px 10px 3px 4px; + font-size: 11px; + font-weight: 600; + border: 1px solid $border-color; + border-radius: 14px; + background: transparent; + color: $text-muted; + cursor: pointer; + transition: all .15s; + line-height: 18px; + max-width: 100%; + overflow: hidden; + + &:hover { + border-color: rgba($primary, .35); + color: $body-color; + background: rgba($primary, .06); + } + + &--active { + background: $primary !important; + color: #fff !important; + border-color: $primary !important; + + .fc_tech_chip_avatar { + background: rgba(#fff, .25); + color: #fff; + } + } + + &--all { + padding: 3px 10px; + color: $body-color; + font-weight: 500; + &:hover { background: rgba($primary, .1); } + } +} + +.fc_tech_chip_avatar { + display: inline-flex; + align-items: center; + justify-content: center; + width: 20px; + height: 20px; + border-radius: 50%; + background: rgba($secondary, .15); + color: $body-color; + font-size: 9px; + font-weight: 700; + flex-shrink: 0; +} + +.fc_tech_chip_name { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + // Collapsed toggle button (floating) .fc_sidebar_toggle_btn { position: absolute; diff --git a/fusion_claims/static/src/js/fusion_task_map_view.js b/fusion_claims/static/src/js/fusion_task_map_view.js index 9dbd43cc..59ab79e3 100644 --- a/fusion_claims/static/src/js/fusion_task_map_view.js +++ b/fusion_claims/static/src/js/fusion_task_map_view.js @@ -180,9 +180,22 @@ const SOURCE_COLORS = { mobility: "#198754", }; +/** Extract unique technicians from task data, sorted by name */ +function extractTechnicians(tasksData) { + const map = {}; + for (const t of tasksData) { + if (t.technician_id) { + const [id, name] = t.technician_id; + if (!map[id]) { + map[id] = { id, name, initials: initialsOf(name) }; + } + } + } + return Object.values(map).sort((a, b) => a.name.localeCompare(b.name)); +} + /** Group + sort tasks, returning { groupKey: { label, tasks[], count } } */ -function groupTasks(tasksData, localInstanceId) { - // Sort by date ASC, time ASC +function groupTasks(tasksData, localInstanceId, visibleTechIds) { const sorted = [...tasksData].sort((a, b) => { const da = a.scheduled_date || ""; const db = b.scheduled_date || ""; @@ -190,6 +203,8 @@ function groupTasks(tasksData, localInstanceId) { return (a.time_start || 0) - (b.time_start || 0); }); + const hasTechFilter = visibleTechIds && Object.keys(visibleTechIds).length > 0; + const groups = {}; const order = [GROUP_PENDING, GROUP_YESTERDAY, GROUP_TODAY, GROUP_TOMORROW, GROUP_THIS_WEEK, GROUP_LATER]; for (const key of order) { @@ -205,12 +220,15 @@ function groupTasks(tasksData, localInstanceId) { const dayCounters = {}; for (const task of sorted) { + const techId = task.technician_id ? task.technician_id[0] : 0; + if (hasTechFilter && !visibleTechIds[techId]) continue; + const g = classifyTask(task); const dayKey = task.scheduled_date || "none"; dayCounters[dayKey] = (dayCounters[dayKey] || 0) + 1; task._scheduleNum = dayCounters[dayKey]; task._group = g; - task._dayColor = DAY_COLORS[g] || "#6b7280"; // Pin colour by day + task._dayColor = DAY_COLORS[g] || "#6b7280"; task._statusColor = STATUS_COLORS[task.status] || "#6b7280"; task._statusLabel = STATUS_LABELS[task.status] || task.status || ""; task._statusIcon = STATUS_ICONS[task.status] || "fa-circle"; @@ -228,7 +246,6 @@ function groupTasks(tasksData, localInstanceId) { groups[g].count++; } - // Return only non-empty groups in order return order.map((k) => groups[k]).filter((g) => g.count > 0); } @@ -259,12 +276,10 @@ export class FusionTaskMapController extends Component { showRoute: true, taskCount: 0, techCount: 0, - // Sidebar sidebarOpen: true, - groups: [], // [{key, label, tasks[], count}] - collapsedGroups: {}, // {groupKey: true} - activeTaskId: null, // Highlighted task - // Day filters for map pins (which groups show on map) + groups: [], + collapsedGroups: {}, + activeTaskId: null, visibleGroups: { [GROUP_YESTERDAY]: false, [GROUP_TODAY]: true, @@ -272,6 +287,8 @@ export class FusionTaskMapController extends Component { [GROUP_THIS_WEEK]: false, [GROUP_LATER]: false, }, + allTechnicians: [], + visibleTechIds: {}, }); // Yesterday collapsed by default in sidebar list @@ -339,9 +356,17 @@ export class FusionTaskMapController extends Component { this.tasksData = result.tasks || []; this.locationsData = result.locations || []; this.techStartLocations = result.tech_start_locations || {}; - this.state.taskCount = this.tasksData.length; + this.state.allTechnicians = extractTechnicians(this.tasksData); + this._rebuildGroups(); + } + + _rebuildGroups() { + this.state.groups = groupTasks( + this.tasksData, this.localInstanceId, this.state.visibleTechIds, + ); + const filteredCount = this.state.groups.reduce((s, g) => s + g.count, 0); + this.state.taskCount = filteredCount; this.state.techCount = this.locationsData.length; - this.state.groups = groupTasks(this.tasksData, this.localInstanceId); } async _loadAndRender() { @@ -1008,6 +1033,28 @@ export class FusionTaskMapController extends Component { this._renderMarkers(); } + // ── Technician filter ───────────────────────────────────────────── + toggleTechFilter(techId) { + if (this.state.visibleTechIds[techId]) { + delete this.state.visibleTechIds[techId]; + } else { + this.state.visibleTechIds[techId] = true; + } + this._rebuildGroups(); + this._renderMarkers(); + } + + isTechVisible(techId) { + const hasFilter = Object.keys(this.state.visibleTechIds).length > 0; + return !hasFilter || !!this.state.visibleTechIds[techId]; + } + + showAllTechs() { + this.state.visibleTechIds = {}; + this._rebuildGroups(); + this._renderMarkers(); + } + // ── Top bar actions ───────────────────────────────────────────── toggleTraffic() { this.state.showTraffic = !this.state.showTraffic; diff --git a/fusion_claims/static/src/xml/fusion_task_map_view.xml b/fusion_claims/static/src/xml/fusion_task_map_view.xml index 957edfea..cd031da0 100644 --- a/fusion_claims/static/src/xml/fusion_task_map_view.xml +++ b/fusion_claims/static/src/xml/fusion_task_map_view.xml @@ -52,6 +52,22 @@
+ + + +
+ + + + +
+
diff --git a/fusion_claims/views/account_move_views.xml b/fusion_claims/views/account_move_views.xml index 7cc70dc2..76e54492 100644 --- a/fusion_claims/views/account_move_views.xml +++ b/fusion_claims/views/account_move_views.xml @@ -341,6 +341,27 @@ + + + + + account.move.list.fusion.central + account.move + + 80 + + + + + + + + + + + + + @@ -350,24 +371,59 @@ + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + diff --git a/fusion_claims/views/adp_claims_views.xml b/fusion_claims/views/adp_claims_views.xml index 871f5ce4..76a0ff8a 100644 --- a/fusion_claims/views/adp_claims_views.xml +++ b/fusion_claims/views/adp_claims_views.xml @@ -18,6 +18,7 @@ + @@ -44,6 +45,7 @@ + @@ -77,9 +79,12 @@ + + + @@ -778,6 +783,348 @@

No Ontario Works cases yet

+ + + + + Quotation + sale.order + list,form,kanban + + + [('x_fc_sale_type', 'in', ['odsp', 'adp_odsp']), ('x_fc_odsp_division', '=', 'standard'), ('x_fc_odsp_std_status', '=', 'quotation')] + {'default_x_fc_sale_type': 'odsp', 'default_x_fc_odsp_division': 'standard'} + + + Submitted to ODSP + sale.order + list,form,kanban + + + [('x_fc_sale_type', 'in', ['odsp', 'adp_odsp']), ('x_fc_odsp_division', '=', 'standard'), ('x_fc_odsp_std_status', '=', 'submitted_to_odsp')] + {'default_x_fc_sale_type': 'odsp', 'default_x_fc_odsp_division': 'standard'} + + + Pre-Approved + sale.order + list,form,kanban + + + [('x_fc_sale_type', 'in', ['odsp', 'adp_odsp']), ('x_fc_odsp_division', '=', 'standard'), ('x_fc_odsp_std_status', '=', 'pre_approved')] + {'default_x_fc_sale_type': 'odsp', 'default_x_fc_odsp_division': 'standard'} + + + Ready for Delivery + sale.order + list,form,kanban + + + [('x_fc_sale_type', 'in', ['odsp', 'adp_odsp']), ('x_fc_odsp_division', '=', 'standard'), ('x_fc_odsp_std_status', '=', 'ready_delivery')] + {'default_x_fc_sale_type': 'odsp', 'default_x_fc_odsp_division': 'standard'} + + + Delivered + sale.order + list,form,kanban + + + [('x_fc_sale_type', 'in', ['odsp', 'adp_odsp']), ('x_fc_odsp_division', '=', 'standard'), ('x_fc_odsp_std_status', '=', 'delivered')] + {'default_x_fc_sale_type': 'odsp', 'default_x_fc_odsp_division': 'standard'} + + + POD Submitted + sale.order + list,form,kanban + + + [('x_fc_sale_type', 'in', ['odsp', 'adp_odsp']), ('x_fc_odsp_division', '=', 'standard'), ('x_fc_odsp_std_status', '=', 'pod_submitted')] + {'default_x_fc_sale_type': 'odsp', 'default_x_fc_odsp_division': 'standard'} + + + Payment Received + sale.order + list,form,kanban + + + [('x_fc_sale_type', 'in', ['odsp', 'adp_odsp']), ('x_fc_odsp_division', '=', 'standard'), ('x_fc_odsp_std_status', '=', 'payment_received')] + {'default_x_fc_sale_type': 'odsp', 'default_x_fc_odsp_division': 'standard'} + + + Case Closed + sale.order + list,form,kanban + + + [('x_fc_sale_type', 'in', ['odsp', 'adp_odsp']), ('x_fc_odsp_division', '=', 'standard'), ('x_fc_odsp_std_status', '=', 'case_closed')] + {'default_x_fc_sale_type': 'odsp', 'default_x_fc_odsp_division': 'standard'} + + + On Hold + sale.order + list,form,kanban + + + [('x_fc_sale_type', 'in', ['odsp', 'adp_odsp']), ('x_fc_odsp_division', '=', 'standard'), ('x_fc_odsp_std_status', '=', 'on_hold')] + {'default_x_fc_sale_type': 'odsp', 'default_x_fc_odsp_division': 'standard'} + + + Denied + sale.order + list,form,kanban + + + [('x_fc_sale_type', 'in', ['odsp', 'adp_odsp']), ('x_fc_odsp_division', '=', 'standard'), ('x_fc_odsp_std_status', '=', 'denied')] + {'default_x_fc_sale_type': 'odsp', 'default_x_fc_odsp_division': 'standard'} + + + Cancelled + sale.order + list,form,kanban + + + [('x_fc_sale_type', 'in', ['odsp', 'adp_odsp']), ('x_fc_odsp_division', '=', 'standard'), ('x_fc_odsp_std_status', '=', 'cancelled')] + {'default_x_fc_sale_type': 'odsp', 'default_x_fc_odsp_division': 'standard'} + + + + + + + Quotation + sale.order + list,form,kanban + + + [('x_fc_sale_type', 'in', ['odsp', 'adp_odsp']), ('x_fc_odsp_division', '=', 'sa_mobility'), ('x_fc_sa_status', '=', 'quotation')] + {'default_x_fc_sale_type': 'odsp', 'default_x_fc_odsp_division': 'sa_mobility'} + + + SA Form Ready + sale.order + list,form,kanban + + + [('x_fc_sale_type', 'in', ['odsp', 'adp_odsp']), ('x_fc_odsp_division', '=', 'sa_mobility'), ('x_fc_sa_status', '=', 'form_ready')] + {'default_x_fc_sale_type': 'odsp', 'default_x_fc_odsp_division': 'sa_mobility'} + + + Submitted to SA Mobility + sale.order + list,form,kanban + + + [('x_fc_sale_type', 'in', ['odsp', 'adp_odsp']), ('x_fc_odsp_division', '=', 'sa_mobility'), ('x_fc_sa_status', '=', 'submitted_to_sa')] + {'default_x_fc_sale_type': 'odsp', 'default_x_fc_odsp_division': 'sa_mobility'} + + + Pre-Approved + sale.order + list,form,kanban + + + [('x_fc_sale_type', 'in', ['odsp', 'adp_odsp']), ('x_fc_odsp_division', '=', 'sa_mobility'), ('x_fc_sa_status', '=', 'pre_approved')] + {'default_x_fc_sale_type': 'odsp', 'default_x_fc_odsp_division': 'sa_mobility'} + + + Ready for Delivery + sale.order + list,form,kanban + + + [('x_fc_sale_type', 'in', ['odsp', 'adp_odsp']), ('x_fc_odsp_division', '=', 'sa_mobility'), ('x_fc_sa_status', '=', 'ready_delivery')] + {'default_x_fc_sale_type': 'odsp', 'default_x_fc_odsp_division': 'sa_mobility'} + + + Delivered + sale.order + list,form,kanban + + + [('x_fc_sale_type', 'in', ['odsp', 'adp_odsp']), ('x_fc_odsp_division', '=', 'sa_mobility'), ('x_fc_sa_status', '=', 'delivered')] + {'default_x_fc_sale_type': 'odsp', 'default_x_fc_odsp_division': 'sa_mobility'} + + + POD Submitted + sale.order + list,form,kanban + + + [('x_fc_sale_type', 'in', ['odsp', 'adp_odsp']), ('x_fc_odsp_division', '=', 'sa_mobility'), ('x_fc_sa_status', '=', 'pod_submitted')] + {'default_x_fc_sale_type': 'odsp', 'default_x_fc_odsp_division': 'sa_mobility'} + + + Payment Received + sale.order + list,form,kanban + + + [('x_fc_sale_type', 'in', ['odsp', 'adp_odsp']), ('x_fc_odsp_division', '=', 'sa_mobility'), ('x_fc_sa_status', '=', 'payment_received')] + {'default_x_fc_sale_type': 'odsp', 'default_x_fc_odsp_division': 'sa_mobility'} + + + Case Closed + sale.order + list,form,kanban + + + [('x_fc_sale_type', 'in', ['odsp', 'adp_odsp']), ('x_fc_odsp_division', '=', 'sa_mobility'), ('x_fc_sa_status', '=', 'case_closed')] + {'default_x_fc_sale_type': 'odsp', 'default_x_fc_odsp_division': 'sa_mobility'} + + + On Hold + sale.order + list,form,kanban + + + [('x_fc_sale_type', 'in', ['odsp', 'adp_odsp']), ('x_fc_odsp_division', '=', 'sa_mobility'), ('x_fc_sa_status', '=', 'on_hold')] + {'default_x_fc_sale_type': 'odsp', 'default_x_fc_odsp_division': 'sa_mobility'} + + + Denied + sale.order + list,form,kanban + + + [('x_fc_sale_type', 'in', ['odsp', 'adp_odsp']), ('x_fc_odsp_division', '=', 'sa_mobility'), ('x_fc_sa_status', '=', 'denied')] + {'default_x_fc_sale_type': 'odsp', 'default_x_fc_odsp_division': 'sa_mobility'} + + + Cancelled + sale.order + list,form,kanban + + + [('x_fc_sale_type', 'in', ['odsp', 'adp_odsp']), ('x_fc_odsp_division', '=', 'sa_mobility'), ('x_fc_sa_status', '=', 'cancelled')] + {'default_x_fc_sale_type': 'odsp', 'default_x_fc_odsp_division': 'sa_mobility'} + + + + + + + Quotation + sale.order + list,form,kanban + + + [('x_fc_sale_type', 'in', ['odsp', 'adp_odsp']), ('x_fc_odsp_division', '=', 'ontario_works'), ('x_fc_ow_status', '=', 'quotation')] + {'default_x_fc_sale_type': 'odsp', 'default_x_fc_odsp_division': 'ontario_works'} + + + Documents Ready + sale.order + list,form,kanban + + + [('x_fc_sale_type', 'in', ['odsp', 'adp_odsp']), ('x_fc_odsp_division', '=', 'ontario_works'), ('x_fc_ow_status', '=', 'documents_ready')] + {'default_x_fc_sale_type': 'odsp', 'default_x_fc_odsp_division': 'ontario_works'} + + + Submitted to Ontario Works + sale.order + list,form,kanban + + + [('x_fc_sale_type', 'in', ['odsp', 'adp_odsp']), ('x_fc_odsp_division', '=', 'ontario_works'), ('x_fc_ow_status', '=', 'submitted_to_ow')] + {'default_x_fc_sale_type': 'odsp', 'default_x_fc_odsp_division': 'ontario_works'} + + + Payment Received + sale.order + list,form,kanban + + + [('x_fc_sale_type', 'in', ['odsp', 'adp_odsp']), ('x_fc_odsp_division', '=', 'ontario_works'), ('x_fc_ow_status', '=', 'payment_received')] + {'default_x_fc_sale_type': 'odsp', 'default_x_fc_odsp_division': 'ontario_works'} + + + Ready for Delivery + sale.order + list,form,kanban + + + [('x_fc_sale_type', 'in', ['odsp', 'adp_odsp']), ('x_fc_odsp_division', '=', 'ontario_works'), ('x_fc_ow_status', '=', 'ready_delivery')] + {'default_x_fc_sale_type': 'odsp', 'default_x_fc_odsp_division': 'ontario_works'} + + + Delivered + sale.order + list,form,kanban + + + [('x_fc_sale_type', 'in', ['odsp', 'adp_odsp']), ('x_fc_odsp_division', '=', 'ontario_works'), ('x_fc_ow_status', '=', 'delivered')] + {'default_x_fc_sale_type': 'odsp', 'default_x_fc_odsp_division': 'ontario_works'} + + + Case Closed + sale.order + list,form,kanban + + + [('x_fc_sale_type', 'in', ['odsp', 'adp_odsp']), ('x_fc_odsp_division', '=', 'ontario_works'), ('x_fc_ow_status', '=', 'case_closed')] + {'default_x_fc_sale_type': 'odsp', 'default_x_fc_odsp_division': 'ontario_works'} + + + On Hold + sale.order + list,form,kanban + + + [('x_fc_sale_type', 'in', ['odsp', 'adp_odsp']), ('x_fc_odsp_division', '=', 'ontario_works'), ('x_fc_ow_status', '=', 'on_hold')] + {'default_x_fc_sale_type': 'odsp', 'default_x_fc_odsp_division': 'ontario_works'} + + + Denied + sale.order + list,form,kanban + + + [('x_fc_sale_type', 'in', ['odsp', 'adp_odsp']), ('x_fc_odsp_division', '=', 'ontario_works'), ('x_fc_ow_status', '=', 'denied')] + {'default_x_fc_sale_type': 'odsp', 'default_x_fc_odsp_division': 'ontario_works'} + + + Cancelled + sale.order + list,form,kanban + + + [('x_fc_sale_type', 'in', ['odsp', 'adp_odsp']), ('x_fc_odsp_division', '=', 'ontario_works'), ('x_fc_ow_status', '=', 'cancelled')] + {'default_x_fc_sale_type': 'odsp', 'default_x_fc_odsp_division': 'ontario_works'} + + @@ -947,10 +1294,10 @@ - + - March of Dimes Cases + All MOD Cases sale.order list,kanban,form [('x_fc_sale_type', '=', 'march_of_dimes')] {'default_x_fc_sale_type': 'march_of_dimes'} -

No March of Dimes cases yet

+

No MOD cases yet

+
+ + + Schedule Assessment + sale.order + list,kanban,form + + + [('x_fc_sale_type', '=', 'march_of_dimes'), ('x_fc_mod_status', '=', 'need_to_schedule')] + {'default_x_fc_sale_type': 'march_of_dimes'} + + + + Assessment Booked + sale.order + list,kanban,form + + + [('x_fc_sale_type', '=', 'march_of_dimes'), ('x_fc_mod_status', '=', 'assessment_scheduled')] + {'default_x_fc_sale_type': 'march_of_dimes'} + + + + Assessment Done + sale.order + list,kanban,form + + + [('x_fc_sale_type', '=', 'march_of_dimes'), ('x_fc_mod_status', '=', 'assessment_completed')] + {'default_x_fc_sale_type': 'march_of_dimes'} + + + + Processing Drawing + sale.order + list,kanban,form + + + [('x_fc_sale_type', '=', 'march_of_dimes'), ('x_fc_mod_status', '=', 'processing_drawings')] + {'default_x_fc_sale_type': 'march_of_dimes'} + + + + Quote Sent + sale.order + list,kanban,form + + + [('x_fc_sale_type', '=', 'march_of_dimes'), ('x_fc_mod_status', '=', 'quote_submitted')] + {'default_x_fc_sale_type': 'march_of_dimes'} + + + + Awaiting Funding + sale.order + list,kanban,form + + + [('x_fc_sale_type', '=', 'march_of_dimes'), ('x_fc_mod_status', '=', 'awaiting_funding')] + {'default_x_fc_sale_type': 'march_of_dimes'} + + + + Approved + sale.order + list,kanban,form + + + [('x_fc_sale_type', '=', 'march_of_dimes'), ('x_fc_mod_status', '=', 'funding_approved')] + {'default_x_fc_sale_type': 'march_of_dimes'} + + + + PCA Received + sale.order + list,kanban,form + + + [('x_fc_sale_type', '=', 'march_of_dimes'), ('x_fc_mod_status', '=', 'contract_received')] + {'default_x_fc_sale_type': 'march_of_dimes'} + + + + In Production + sale.order + list,kanban,form + + + [('x_fc_sale_type', '=', 'march_of_dimes'), ('x_fc_mod_status', '=', 'in_production')] + {'default_x_fc_sale_type': 'march_of_dimes'} + + + + Complete + sale.order + list,kanban,form + + + [('x_fc_sale_type', '=', 'march_of_dimes'), ('x_fc_mod_status', '=', 'project_complete')] + {'default_x_fc_sale_type': 'march_of_dimes'} + + + + POD Sent + sale.order + list,kanban,form + + + [('x_fc_sale_type', '=', 'march_of_dimes'), ('x_fc_mod_status', '=', 'pod_submitted')] + {'default_x_fc_sale_type': 'march_of_dimes'} + + + + Closed + sale.order + list,kanban,form + + + [('x_fc_sale_type', '=', 'march_of_dimes'), ('x_fc_mod_status', '=', 'case_closed')] + {'default_x_fc_sale_type': 'march_of_dimes'} + + + + + On Hold + sale.order + list,kanban,form + + + [('x_fc_sale_type', '=', 'march_of_dimes'), ('x_fc_mod_status', '=', 'on_hold')] + {'default_x_fc_sale_type': 'march_of_dimes'} + + + + Denied + sale.order + list,kanban,form + + + [('x_fc_sale_type', '=', 'march_of_dimes'), ('x_fc_mod_status', '=', 'funding_denied')] + {'default_x_fc_sale_type': 'march_of_dimes'} + + + + Cancelled + sale.order + list,kanban,form + + + [('x_fc_sale_type', '=', 'march_of_dimes'), ('x_fc_mod_status', '=', 'cancelled')] + {'default_x_fc_sale_type': 'march_of_dimes'} @@ -1070,6 +1598,90 @@ {'default_move_type': 'out_invoice'} + + + + + + ADP Client Invoices + account.move + list,form + [('x_fc_invoice_type', '=', 'adp_client'), ('move_type', 'in', ['out_invoice', 'out_refund'])] + {'default_move_type': 'out_invoice'} + + + + ODSP Invoices + account.move + list,form + [('x_fc_invoice_type', 'in', ['odsp', 'adp_odsp']), ('move_type', 'in', ['out_invoice', 'out_refund'])] + {'default_move_type': 'out_invoice'} + + + + MOD Invoices + account.move + list,form + [('x_fc_invoice_type', '=', 'march_of_dimes'), ('move_type', 'in', ['out_invoice', 'out_refund'])] + {'default_move_type': 'out_invoice'} + + + + WSIB Invoices + account.move + list,form + [('x_fc_invoice_type', '=', 'wsib'), ('move_type', 'in', ['out_invoice', 'out_refund'])] + {'default_move_type': 'out_invoice'} + + + + Insurance Invoices + account.move + list,form + [('x_fc_invoice_type', '=', 'insurance'), ('move_type', 'in', ['out_invoice', 'out_refund'])] + {'default_move_type': 'out_invoice'} + + + + Direct/Private Invoices + account.move + list,form + [('x_fc_invoice_type', '=', 'direct_private'), ('move_type', 'in', ['out_invoice', 'out_refund'])] + {'default_move_type': 'out_invoice'} + + + + Hardship Invoices + account.move + list,form + [('x_fc_invoice_type', '=', 'hardship'), ('move_type', 'in', ['out_invoice', 'out_refund'])] + {'default_move_type': 'out_invoice'} + + + + Rental Invoices + account.move + list,form + [('x_fc_invoice_type', '=', 'rental'), ('move_type', 'in', ['out_invoice', 'out_refund'])] + {'default_move_type': 'out_invoice'} + + + + Muscular Dystrophy Invoices + account.move + list,form + [('x_fc_invoice_type', '=', 'muscular_dystrophy'), ('move_type', 'in', ['out_invoice', 'out_refund'])] + {'default_move_type': 'out_invoice'} + + + + Other Invoices + account.move + list,form + [('x_fc_invoice_type', '=', 'other'), ('move_type', 'in', ['out_invoice', 'out_refund'])] + {'default_move_type': 'out_invoice'} + + Ask Fusion Claims AI @@ -1102,11 +1714,15 @@ else: name="Fusion Claims" web_icon="fusion_claims,static/description/icon.png" sequence="30" - groups="group_fusion_claims_user,group_field_technician"/> + groups="group_fusion_claims_user,fusion_tasks.group_field_technician"/> + + + + + + + + sequence="10"/> + + + + + + + + + + + + + + + + sequence="20"/> + + + + + + + + + + + + + + + + - + sequence="30"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1292,6 +2035,24 @@ else: + + + + + + + + + + diff --git a/fusion_claims/views/page11_sign_request_views.xml b/fusion_claims/views/page11_sign_request_views.xml new file mode 100644 index 00000000..eb8d0672 --- /dev/null +++ b/fusion_claims/views/page11_sign_request_views.xml @@ -0,0 +1,89 @@ + + + + fusion.page11.sign.request.list + fusion.page11.sign.request + + + + + + + + + + + + + + + + fusion.page11.sign.request.form + fusion.page11.sign.request + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
diff --git a/fusion_claims/views/res_config_settings_views.xml b/fusion_claims/views/res_config_settings_views.xml index 1953c231..56bd5b1e 100644 --- a/fusion_claims/views/res_config_settings_views.xml +++ b/fusion_claims/views/res_config_settings_views.xml @@ -194,26 +194,6 @@
-

External APIs

- -
- -
-
- Google Maps API -
- API key for Google Maps Places autocomplete in address fields (accessibility assessments, etc.) -
-
- -
- -
-
-
-

AI Client Intelligence

@@ -256,117 +236,6 @@
-

Technician Management

- -
- -
-
- Store / Scheduling Hours -
- Operating hours for technician task scheduling. Tasks can only be booked - within these hours. Calendar view is also restricted to this range. -
-
- - to - -
-
-
- -
-
- -
-
-
-
- -
-
- Default HQ / Fallback Address -
- 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. -
-
- -
-
-
- -
-
- Location History Retention -
- How many days to keep technician GPS location history before automatic cleanup. -
-
- - days -
-
- Leave empty = 30 days. Enter 0 = delete at end of each day. 1+ = keep that many days. -
-
-
-
- -

Push Notifications

- -
- -
-
- -
-
-
-
- -
-
- Notification Advance Time -
- Send push notification this many minutes before a scheduled task. -
-
- minutes -
-
-
- -
-
- VAPID Public Key -
- -
-
-
- -
-
- VAPID Private Key -
- -
-
-
-
-

March of Dimes

diff --git a/fusion_claims/views/sale_order_views.xml b/fusion_claims/views/sale_order_views.xml index a47cbcaf..8cbdae35 100644 --- a/fusion_claims/views/sale_order_views.xml +++ b/fusion_claims/views/sale_order_views.xml @@ -1088,6 +1088,13 @@ invisible="x_fc_technician_task_count == 0"> + + + @@ -1201,6 +1208,18 @@ invisible="not x_fc_is_adp_sale or x_fc_adp_application_status not in ('quotation', 'assessment_scheduled')" help="Mark assessment as completed (override available from Quotation stage)"/> + +
+
@@ -2105,22 +2143,6 @@
- - - diff --git a/fusion_claims/views/technician_task_views.xml b/fusion_claims/views/technician_task_views.xml index 1545f7d4..6254554e 100644 --- a/fusion_claims/views/technician_task_views.xml +++ b/fusion_claims/views/technician_task_views.xml @@ -1,541 +1,156 @@ + - + - - Technician Task - fusion.technician.task - TASK- - 5 - 1 - - - - - - - res.users.form.field.staff - res.users - + + fusion.technician.task.search.claims + fusion.technician.task + - - - - + + - + - - fusion.technician.task.search + + fusion.technician.task.form.claims fusion.technician.task + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - fusion.technician.task.form + + fusion.technician.task.list.claims fusion.technician.task + -
- - -
-
- - - -
- - -
- - - -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
-
- - - - - - fusion.technician.task.list - fusion.technician.task - - - - - - - - - - - - - - - + - - + - - - - fusion.technician.task.kanban - fusion.technician.task - - - - - - - - - - - - - - - - - - -
-
-
-
- - - -
- -
-
- - - -
-
- - - - - - - -
-
- - - min - -
-
- - + technician(s) -
-
-
- -
-
- -
-
-
-
-
-
-
-
-
- - - - - - fusion.technician.task.calendar - fusion.technician.task - - - - - - - - - - - - - - - - - - - - - - - - fusion.technician.task.map - fusion.technician.task - - - - - - - - - - - - - - - + - - - Technician Tasks - fusion.technician.task - list,kanban,form,calendar,map - - {'search_default_filter_active': 1} - -

- Create your first technician task -

-

Schedule deliveries, repairs, and other field tasks for your technicians.

-
-
- - - - Schedule - fusion.technician.task - map,calendar,list,kanban,form - - {'search_default_filter_active': 1} - - - - - Delivery Map - fusion.technician.task - map,list,kanban,form,calendar - - {'search_default_filter_active': 1} - - - - - Today's Tasks - fusion.technician.task - kanban,list,form,map - - {'search_default_filter_today': 1, 'search_default_filter_active': 1} - - - - - My Tasks - fusion.technician.task - list,kanban,form,calendar,map - - {'search_default_filter_my_tasks': 1, 'search_default_filter_active': 1} - - - - - Pending Tasks - fusion.technician.task - list,kanban,form - - {'search_default_filter_pending': 1} - - - - - - - + + groups="fusion_claims.group_fusion_claims_user,fusion_tasks.group_field_technician"/> - + + groups="fusion_claims.group_fusion_claims_user,fusion_tasks.group_field_technician"/> + groups="fusion_tasks.group_field_technician"/> + +
diff --git a/fusion_claims/wizard/__init__.py b/fusion_claims/wizard/__init__.py index b5f91b12..82e87d50 100644 --- a/fusion_claims/wizard/__init__.py +++ b/fusion_claims/wizard/__init__.py @@ -30,4 +30,5 @@ from . import odsp_discretionary_wizard from . import odsp_pre_approved_wizard from . import odsp_ready_delivery_wizard from . import odsp_submit_to_odsp_wizard -from . import ltc_repair_create_so_wizard \ No newline at end of file +from . import ltc_repair_create_so_wizard +from . import send_page11_wizard \ No newline at end of file diff --git a/fusion_claims/wizard/__pycache__/__init__.cpython-312.pyc b/fusion_claims/wizard/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..44a0d26725149a5897511820a88fdda4f4919810 GIT binary patch literal 1527 zcmZvc%We}f6ox%bFKL^!Nt)(1ZCW92l@N$M;t_ZNFED1t2^MpcJqd&t;TaH19)mZi z6gI5bAt5%b_|Hk(442X9pU>xveJ&o)=Vo(H;QG}2Xj@xCe5JwlwQ&VMUIaqC7qN(g zM5KWX0^$wuhTLGTfornHyb0cvo6K9_ExEp zUD;(m1|Q2~<{r2wd(3@sU-p>?;DH=455Yq@WFCP>a>N{hLm4ukfKTKJ^C|dLo(5tu zzBv1aE{lucvaRDnnYTsmO7+IR(=LXw8=JX}jI!yU_TH6U7lq5`I$6&c``OFXdT;Yg z&5g4Y8|jh;H){^OPK?s=TxVFh(2LY$rLx%^@di4I@)?HLW@o0>m&U;t`cjuOucB8v zn;PYe_SI#_k@iMKNe=yg;E|7BnRrIQy*J)-+?%w*iZRO5A~B_j*I9=sHMy?EnaJ4r zA8w=*FVrM=s?va)#k(tanX8vJsdOuxSd+vm#o{)bswmGUcDfGQOLCnVhmuY7I-gZH z=E~ztIdhff4%d0aCP9vFv0kqIHckH7%8oZ#tdLonSIec5exq$kc}-?nOwXHoLULbQ zS06#O8+~#Yk;W$d-Kc&Z`$Bn*aA<`sE9ni{6nx>M+>dHndw`s`wSDO?Sw#%+?||0Ucu z$qq@KWS4|~ac-ZaLDD2SAUPyyk+exVBu6A&l4Ft{NuOjuG9($1gd`^IC-xtjHmjbZ5@d5zv0PZct*-~KE%5`TcaKnhXm_oC@h;w%fA$|jO@XOc$ literal 0 HcmV?d00001 diff --git a/fusion_claims/wizard/__pycache__/account_payment_register.cpython-312.pyc b/fusion_claims/wizard/__pycache__/account_payment_register.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7e626c324d1a87ff3fe3743ab1094eea0eb18584 GIT binary patch literal 3863 zcmb7HTW=f36`tiTNr@Lx60M6ZTUk@GEb2nZQffPiEjyNEw@$1Ejidrp-NlMK6jxqy zm6@e2u`=MM222|%V6<>;KRL)#0z2=1=pP7*0;1%C#MT8;G!M<2QmKer^r2_=Ldyz; zrVD5|J9ExAXJ@|eoY5b`;Q)f?^I}H*PY9vEu^0F8I-RX4=-fvNQaBA|xg?kMBt2O^ z$#ZPXqX}7W(#s(ax_}h^CQ<~gMixbJKB66Z}{R#&h_O~iL5K>k2v5A#0DOB| z`V{|@y2l>dKk2vZ8ec_YZ%VxqP=ZfFRm6I*3@oMt zT{3L-nxNNEM9W+<@;-_;o2_rBQhGjTyeF?@anAS&UQnrlNugb~#}iBTM1r_8&Eqmr z#CK(Ch_8zi>Vj&}uLW4HaA`6Jo}y;YDAtUqr$r-!#T4_&Q>=(-orn&m*h}ySd6hV$ zmW?w-MyE+0i)z}%5wqCH=!yu);}EZE*g)_t z6L{Wvi}Ti6rr!az7ByQPNXbT!G&KjyDTU$M{$m1{a^C@UMO42XgSYo#*AdkEQh=@|E#zLZ5$)2lFcn!;6; z%4Q%7%EW~6+!W+2UOsQ`-!sNn*v8m03V&NY(A?wRK^&ySRdl%yc*d=Aw>?+U@3{LM zhdv6xj-t=`Yh0Y0`i$jWPh!~gJHeYlM*}%noib2Syz%ehbe@8OrIaSCSvqu0EkJ-n zPWo{L35u{2Q(|ewtUtAYb9i})j1|t+PG5<=gq=90=_y&GV~Hxp5X3>-pn36k^x_6u zJ3RYE_~}nSKKkk0v)IWm!vCU->Az}d;-=z$5`n(y&&X6Z3_@5UHU;)IrdQLiVFG0( zw_@(Ic6C=ufm0EHS!pwDB^qZ-pdi^FZ2BF0(gC29>6;PjEI9~05{9NQ^nZS9Cj%-% z17G!z2DJYoR}BBT^+54_rM07Yp%Q5+M+Vj-17AfCJUCwNI9cjAx%TGFv*>K4v%B2+ zR;lx?a_3B`bLQ@azqWOLe7xLsw$ydD+%>u0HCc)EmSbm1u`}h^L@72=j$JIpE^fr$ zz5CAd&chpQ1EJaIoV|OY(s!(Q{!gK!-?X5%jxC4-JYFfUJL{I5Q+5!tSt6D%K6TMn;>kz3ga~b%I4w9Fb~+v za>~$F;PwFDhKZUI-CP=&T$Zy-8h%qeHZuA;$Snp~X4I0Cr5YBDl-Bcvuq4hjW4W5V zhI6Ku=9fT%t$=Rj6M|tA-2_76CeX!v>Lr$GD3v727$x4Y6*dU{!r&eXtBp7UF7y}B zfW9_;DAZUEcCQD!KbW^l(kn+!oJA8#WOiZrBW2R$c4Cu1d769PKYf z`^(YMQgrlL^asC>KAkR~o++K4*?41iEjhRT#@zGP*8rlW8xY!>0imgRJAfKnZeJ@! z1~(!@Yjs29D6F5_DGeqkOH#jq4wIAtzxH#R2kL=fR;yCE?g3KQsN^J4dwdlxz^4EV zW~)`yMF;XTuNvdv<*~dxKz6<`u#@bvqS!oFb7`Hi-z~bJf;^@P5(j*<$)bRJV`4YG zxIhNjj3_~=+i}hk_)#fM^sHnjRtta(gDtpN3<%A$8VVJK<~3Fu!GR=T-b(b4a~(z; zgQ3ESJs9!7R-I&cm!JV|d==TpPVB_f&_-mkC^%HHNYIxk_nj;CohwePHT9H2M=QZd zIe2(Ic(~F#Q0^To^^UQb?o#N;myu{OXq|Sv(X5jsR&*rE3`i3EW0TidKO{*XCWadEm%{o=5!;`zw*IO1PmC{@J!)=L05F0 zFnL(JVt;pp4JPn%3NNw5LG9eqFiqqfRUzqKV*fc>5Tu=XGRavl`HZ~hoL17mDQ pXg4&QJjZe0h7fn8gu4HNj%@oTId0#B+47;0(xH)mBKBsX{1@3~>B#^9 literal 0 HcmV?d00001 diff --git a/fusion_claims/wizard/__pycache__/adp_export_wizard.cpython-312.pyc b/fusion_claims/wizard/__pycache__/adp_export_wizard.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0b28b4cbbf1cba62185b455a14fffe3953e7b6ca GIT binary patch literal 23312 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 Ou;Ewu_A;*x@c#orF`c&n literal 0 HcmV?d00001 diff --git a/fusion_claims/wizard/__pycache__/application_received_wizard.cpython-312.pyc b/fusion_claims/wizard/__pycache__/application_received_wizard.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..00892d1636cc24ce9767c4ff326362f574eba888 GIT binary patch literal 8906 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 literal 0 HcmV?d00001 diff --git a/fusion_claims/wizard/__pycache__/assessment_completed_wizard.cpython-312.pyc b/fusion_claims/wizard/__pycache__/assessment_completed_wizard.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..41093817c74f9c8b2e2a69e1a89ce9d9265c41dc GIT binary patch literal 11304 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 H%>RD@j$!7$ literal 0 HcmV?d00001 diff --git a/fusion_claims/wizard/__pycache__/case_close_verification_wizard.cpython-312.pyc b/fusion_claims/wizard/__pycache__/case_close_verification_wizard.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0a106b0aa6300d93d7825db7ad7dd1f3e8c4fc0b GIT binary patch literal 9130 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%0A|^=qh?LG!X$`pwc?LGkyxMmcRz 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 literal 0 HcmV?d00001 diff --git a/fusion_claims/wizard/__pycache__/field_mapping_config_wizard.cpython-312.pyc b/fusion_claims/wizard/__pycache__/field_mapping_config_wizard.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8f35db9436318abe751d4a9f3ed920c637881ec2 GIT binary patch literal 13676 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 GDfnM1qq1TE literal 0 HcmV?d00001 diff --git a/fusion_claims/wizard/__pycache__/loaner_checkout_wizard.cpython-312.pyc b/fusion_claims/wizard/__pycache__/loaner_checkout_wizard.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..04dbef21a15242e0bd4c33149cab1955fba8bc56 GIT binary patch literal 8238 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 Uq-W)@+`dn0-}j#co@u227sr`ij{pDw literal 0 HcmV?d00001 diff --git a/fusion_claims/wizard/__pycache__/loaner_return_wizard.cpython-312.pyc b/fusion_claims/wizard/__pycache__/loaner_return_wizard.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e218da580a8cec09774d113365a87e9ea24f56a6 GIT binary patch literal 4495 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 RW4=3bx-)Y6PXrr3#^1ha8+QNz literal 0 HcmV?d00001 diff --git a/fusion_claims/wizard/__pycache__/mod_awaiting_funding_wizard.cpython-312.pyc b/fusion_claims/wizard/__pycache__/mod_awaiting_funding_wizard.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2feab895d10c4f3ed8d06a3b1709087ce41c89e1 GIT binary patch literal 3024 zcmaJ@O>7&-6`uVgmwzH9(Y7ol(OR-#F}A2!R$?`lg~qiUx3;Xpc3PNdx>#|B@~TTN zGrP1TLPk}_Z^|X#n|T6!IZGHNEv{pck<=z{Q{`475Pe8w>qSc`hH@camaK45&8Y$s(fbI?_YhWyu+Y_V`m*1VnsP3>9Lj|M#RnOgg^D&N zmcv2?lUUecl2JC9pl1XY`M@D`no^s>AT(ppUsTHZm+lY>1%tf?2p_|a3Cal=#eyr}uO)t5q@AGgQpAj5= z9NQ5CyEsWKy!NWq8Y&1leox&ArgBM~xQBA7HMAt;I&Yv%2kV)!@q3Gg>6)eaOO+Ca z?x$weptzbTR23PdAi%u47&1KTBQx!U{6Qr9I|yJ)zidY-qMdz)y+ zOaG%~YL{(rtSuUj=I~(t3fI;k*ZJF;UC=I?MdI)xaa;fmgd?;6~d_*gUM?27Bh^j-Vs$cVH9JW!s_d~pB%_41tY>fFl;2>nLbM6R#q z&APmTJ^^H`2s<#xzq{fJS_rb-)HK_LRy`h2E<_Ft0uk?fqI!EzSUd{03$a(%wzqE= z84KLU{+^{3sT~qlL@Z5$9nA8Z`PN61?e(xq_E(8ehsre;G4if?hv+7ze9tVw%SHFg z1$3! z(gOhL&ADuOnI3`V)#KlV#_WNUrNPqqB{W~HqJMOBug}*yj%}ZO+L2w8yjXH$Vtt|> z>#N23>aqS>tbaT9EOyFE_iSE%aCz%zwe*|y^yymq^ykO_F#P-B`q+iq*o8lxtBuV* zP5*dp+8Z2xH1Tj^?FaXhwYcUb)Ai)UUy>8v`1k7LAJ)b{yf5vh->Rifd&#b~=pJkV z<%5FeGJ?mT34uw_ZXzhOgR{N~lvB_PeEuMS0{vZKMObJ(BY}>0SOEJr@WA44#a4;> zKHJ!|g^<)*br(u;Mf?>K)Te{Qm+!J!rD zQ-s5x?MKEcjy#UGo)CBnV>oUK0EomjmTIwWt5|?Ellw*MxQ1JC=p^B(R)anx8tzr2BBuUg5>b(ZF5Jw z0~)n066gn}s-ekIu%2RZpiHw6@P0L3G)ya7bahUo8HverHeP0NU}DFZC%U^_CV=qD z92fMZq6L7Ixm@itX_hmAU2=F204ZU65kO`;9OzL}aw-&fp+qRh0aF&K=@NQ~%PO3u z-~!z<#pmyr@!*YcsR}k3nZ5xXJ?7hU_RwL5MYz3w+bvoSCuI&}I>=2rntRcKMhYe^ zR!@8`X5nGRW{inS%XX|IK*Unu3 zw;~;izCcnW)`+5XPrZAr);(75K3D5L_r;Z`-Iv$Y=N&(KGV$ci-S`I$2}QaZArwz- zy!-2Sz4)Q6x3|-edLQ;~$9Ip8)Z!y+KZFQ%wYR4B{t?Y zlDaw?D(W5fdWRbc6zO|`!jWhrg*uPy_Po8Dd}mjEhaQLBXS$fG>m{Q|be%WooZ9^22B%pY-<2uN9XZEP$zb0^;fmZopP z8p^TH6bMBupB3piS0nec7z!TXmsXCKUNU;SeI$?<3D+0_~E*s1NqkNO_=dC8Mr=OHh3cr*4OR!?PWsf?Gn z`XZtXgm&dO8gZ29S-Z4xW&O(5;_k@xXYm`W)6W(4<6FPFwI_y^?mY>Gk_|5Xx9hNS z*1tM`E7vkHCfnGyDgQI@uf#tdOO|!qq(;dx zNy&xcgFE2|{T*rs@rzWQZ02Q(PQw(x5{K&{*Mjg*bmA#G@g*Ai621N+G$Necx>N5T Nul0}r2f@I1@;@e>`mq22 literal 0 HcmV?d00001 diff --git a/fusion_claims/wizard/__pycache__/mod_funding_approved_wizard.cpython-312.pyc b/fusion_claims/wizard/__pycache__/mod_funding_approved_wizard.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..87fa6284090ddaf8a647da1c10eab8c6fdc6c1ef GIT binary patch literal 4632 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 NrN+I#V(^Kw|4+$X0-*o^ literal 0 HcmV?d00001 diff --git a/fusion_claims/wizard/__pycache__/odsp_discretionary_wizard.cpython-312.pyc b/fusion_claims/wizard/__pycache__/odsp_discretionary_wizard.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..16d9da0de7e7effd43b5efb7813d55ac68f4ba8f GIT binary patch literal 17890 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 literal 0 HcmV?d00001 diff --git a/fusion_claims/wizard/__pycache__/odsp_pre_approved_wizard.cpython-312.pyc b/fusion_claims/wizard/__pycache__/odsp_pre_approved_wizard.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3626482d47157cd6f4a2f450895c540432a43da2 GIT binary patch literal 3406 zcmb7G-ES1v6~D7Hvpf53d)EfD4jCI87!}q53_(CCZis`F_@gmNl})A5u=lP#&g{t<)DUM%u}3D_KgVs&9@ARg|ZmJNvyewp&SyZZA&jtKp-kf~WCWP|EMH#C zhiblaGq%S^MOo2Kt4o-rJk0umv0h$C^Tl7kPp3suyhk)nTSgRFJ)TPL$N6t zSr#<^zxZTE6PZ76V`4eXpEHSt9VQw@QxjP51BcMJDYa>~rGUTv&B@Lmfw%=XA&6U_ z@nIn&VqZoAOXa0VQ>x>IMJ!<%%a8mIrN(k5;K_Em6%K%;@+jE0IOs_xJJdBv9C{RP zdmv0AOZ&brvx;&8j@(opHd&b%j^0F>_$se;Jfhm+2*e+PhocgqEQi3acy#scsQV-8voYE>E zHjgPS5)~FyO0vX+8>l&I=T&c8)-IF`vjDnPF4Zs|46;b6M5t;MusT1fPTN;Z%PcLc zIj}RWiInFu<$+|F!DqbJYLq<;cA{*{J-;a7=A6Rp;DW9TdJa8LHbvP zR-kV9s%WX11Z^=OmRiZxvA6_<^y-6OY7(m=m8)XahkfTjtm=bsiZd)|WJ}-$-NY=) zJ+6Bmhp8qr*(nzZWnoNmM%gOq3#7zEQn<k8KSv{ATFI;PXwV>;Ru}H8TBUL371;%2C&wO z@@E1_cZui?zOFR4cD$|&P7i>duPQ8gFxtTa^0xqnzY`&Igs$KseR3GG^>yIJckkn~ z?p8z2$e;UK)(WU_^uOr#d%E}kpSlB`y1{~OFsJaiF7X_AO` zf9p0kL>$F2E1ZwqkRWQpQtFihVCq9v3CCMIs=f-u3injSZrT@wN4+gD_Vm5>eSNqO zCmuGl1LBy({iXobI51Pu<}6}3L@hTEk%N#2Ol>6Mki*d{&0?IPPkQ)jSb9ZD7ctbJ zW9a!NK50JIe_hXIby#aD(76J(zw5G|Yr+;&oDyIi;5w*Cd9q$*wv}KzTh5b0iH-gb zW?Nk)YSOe(DjC^DZHONSRL%5j1A!oUW0G1~5>2RXCvWhAh9)#S~X z$=9d}eT&xs^Jk%1mI(8K>q2?YQ;v}%^ay9R?^?70x|4b%+W4wb$PyiLp;UG>neO4D zvezG&(#{nTJmYC;qq|CZ4Y63`zB=@ZoJsSQ(eBv2TWT0~I^%$>E67zMcjC9>&y+zo zo~Xx%pT>v()|c8CdS|om(njRcR!_3tGg9jrS(V+yo_Zo(OQfGB<{!^IIr*nEe>n5x z$e;1X@%dF{E8J5LAE<>7Jh<^RJmE%q@4S2aT~|9=*Ur|ov+nUT-^k)%>;)2|@ofdg z67}dE#dJK_3_Et_@sOKf+zgk6Aqzx;?Cmj#k;?##SYbD=~^u9CWrX1 zf3V(vsMdeT9UOB9QfrI%7TvwtH_^Zw&{hKR@T&Nt4+RgpO0=%*t10`w>fN)kcV@G9 zcH{j_tvBNij<`dwe=&7`YW?(f00mRekrWJVM^G?US4L{e$b<76C+40hKiTRT*w}k= zBYtW_IYo!Saau1^be&g^uCtKN3#JSmU1t$p|FmpaO^)n|z#=A2mYPMLm6U&EFlE{( zEFXs?Y$Tlj$BjZg!FkeKiw30=KvLeqnCz9K*Ouvz_(HVV=d;AJbR9l@_y?xLo8$#A zAt>);-Vo*t8-{OhA~!Oz^0u4!;mUhk$pd$%)@JX`x=M2WXOAyFnRqVx`u!`@+kVtP z0<7tK({5aId;8rec^;5FRtW9a)<68>&OIB`u^vjQSe6pO_5s^Q> z&8dIK#^g6WCwUfVQRcq_KznL}1uT1EfqzX(HnwfbTfFCt#x3J~F-@*#iRUKAD@PWD z&z|>S8=>?9$g_aXmB6P`>@qb9jtMw2&B4k$>-VT}u2&SwxkgaV)AwN`caC!!hHX(0 zgs)NbuPF9UG+INWe@A0mq15W3dMH&3rPeQPhQ?L`&;4hGH`k}?L&s`E$6g?qc$)tM D7s_u> literal 0 HcmV?d00001 diff --git a/fusion_claims/wizard/__pycache__/odsp_ready_delivery_wizard.cpython-312.pyc b/fusion_claims/wizard/__pycache__/odsp_ready_delivery_wizard.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..37ecee1525e2bbbfe7605414cf8606612dc21066 GIT binary patch literal 10624 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 PEM74jtzR?vMqB?MUN8Id literal 0 HcmV?d00001 diff --git a/fusion_claims/wizard/__pycache__/ready_for_delivery_wizard.cpython-312.pyc b/fusion_claims/wizard/__pycache__/ready_for_delivery_wizard.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..42c1fb1eb9f980e9f19ec5afaf5a913d26913cd4 GIT binary patch literal 9795 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 BtB3#q literal 0 HcmV?d00001 diff --git a/fusion_claims/wizard/__pycache__/ready_for_submission_wizard.cpython-312.pyc b/fusion_claims/wizard/__pycache__/ready_for_submission_wizard.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..baeca4dbeb4d2fbeacf92f5cd9bda897bb914e04 GIT binary patch literal 9139 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 TyPr5}ebZXs^q(m_BHaHEsQblC literal 0 HcmV?d00001 diff --git a/fusion_claims/wizard/__pycache__/sale_advance_payment_inv.cpython-312.pyc b/fusion_claims/wizard/__pycache__/sale_advance_payment_inv.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4a3cbeb8ba2cdbb2797ba4bbb6d99de4677307f4 GIT binary patch literal 5546 zcmd5=U2GKB6}~gGyWU^#;89;;vv(Gc*}vQw z+pt=ss6wivq*8dO*s4e&Ql$owhxDm=s(A0qE=#oADV30#m%JHF+lZ&0Ge7HPF-g-Z zN-yT@+@Evqx%Zy?eP`y+p^%?InH7Gn4nzt0J64?Hwjb7CgNMt663S&sj!SYmKFQ~V zq>ytZT^zRaS$EEp^l*eHM+p@!66#X8#cs#Y#_x5(dQN)JyW^g(uo8C}o?L+{SgOlT&;d@jsimwQ=NT@P z1wep)NK>*(8nxvVrG~eVhiz4KCC#<%1nwQ4!ukymmr0o{!f$7x+*W8>v`?$O7sk8V z>(=vP*Q0HeKSP{7zHWPPfh%)|$xlZJxxni_N2d%Y@OZYQ>Ci3fi3tju0G8`!XA zMOGp1g0iZ?&J|_sKXoMTF$5*QY_(yyX1~IczNN{LZw_2_cX-4HF57}hyQr|562t(=4$)q zZe**cPS^LnQ5WA_4g9rFTAjNc7C&67U2fK3tnV{KfQ3 zb+Ah|53D~y&kqz>(*F`zX`UnV1j5P{cb5`J;hI@@R?^QG6)D3CIWxpED%12S z7*nYt=>=&am8Sq0CPoyqsxHC(Lul3#Z2;>w#LjD)Q}l%bH3sE0Q&PIpegL)wW2n8) z26w#PXx?yZOGSklVO!mq6>xn3)@1l(#0pK5Wev$nde;mLHU`h7(aqza(-I8Tj)C|Z zVjvK11a{Q|yFS@-GqArI?QcY&;WW_3d*4w?5Pi;wUvLl2+{!%6nGp~=iW8@Kj&@yem0h&! z?9*^xc5dp2*O_H=KgzBQ|FADG4xy)`P~WG1$I=CN*$piF+cIBvmjJ6S@E?5aB4u9d z-PD7Cqv!m>dJ)acQs$jj8Z__iaN8b+T7BJA0M^H#?uJ}cQQ8Z- zgB^-c%?M{W+6Vd~>c{&_PtBUwRDyiV!FKz~NtptZ0H*C`xc4nUe-KQi(}ktHp2!sd zGLY>{FPy~GLK@X1Rg>}sT}tI!jF6CKQ+aH&uA?W!1gFcldFz+hlHT;!V z)I2S$7%n)3oY7_HaMwJBE1$|KhRY;TA5%2hd{Hnw_^49Dx2!5FW}D&BQw$ie)c5dw znw47{JdEbm`~zQB)$~0$%{33(3l6eOF(}y!b8VSXs zfhVC}n%tZQ+P$!i*=D9dOH<%*zEe_gC)$7cz@-C~6Se5>Rj-vJMh7c1R};6QQ=j)W z4j!u=Ja+5g@!R5#-*MF^-mXjOYUXSsQ>?+CRIH2dR3q#93=dY6o8g_N{uG!XE{7SWdswz%5w?5evcYsF3 z4;nuIH*jU}|CK9${KIl3@Y5!oNIjo+IjE1E2>kRq@RQ5tr? ze2?%`ixFwScb5bf^Zr?4{<>LGt^&TS??^?-iV~xcF9G`bkx$4Oy+hpQP5s#cE{njyPna*o=u{FL$C?2vIDufno>i!_U-vo~;I- zeFViSCHT-G!$%YOouyRP?(qWKEhtRY znG5#Q@Xb44q}WcVvtbk?DDWMIA%ihIFC%2X>7UkUMCEj2+jwo;_?_VXW^iWBE%f_=9fo4fq1auw(Br=!@NM^0 zU4!>TkGt<)1jKz1@q3Y&+yBo~+=$ykYIBAYai8HT&_aRXJB_&zhB0PRy%ENqgmNye z6wL(2%mR$=Q!JI&@C)B@{FZ6jxkgO%w_fJG&sjV60(%uq;lear{hGjW+`oc^i`B{4 a-^l2F592t0ECVx{W>Ev}pZrr|w_WV7 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 literal 0 HcmV?d00001 diff --git a/fusion_claims/wizard/__pycache__/send_to_mod_wizard.cpython-312.pyc b/fusion_claims/wizard/__pycache__/send_to_mod_wizard.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f9e3564a0fdb23c37879f2396ede252228e9ef89 GIT binary patch literal 16216 zcmdseTTmQHl3>>R{iGheDa5l76cSH8KrbFGA%Ucpy47MNm6a+BC{$F@nS~^(i(cJW zn{DZ?#{@gK2i&L)w7Yhqt!3A&-N!JtXV%*JIgRbdWm4=`DpzyH*xk?koS|0l?X2cw z&m*$3fFfy)&8^LyU7C~?8R6mK5#izP;qLs6$)qRX*$mEwf6-15{~djZk2+g;^Y5TA zPmlyDix3mCVcCRySU#Z`R!k^|l`>Q>kEkZp!)jbsL^Q)1s8d9=!&*5J(vI6jgxkL% z{Z}&KYuG?4NfoIkHKdl*Jys1H<-~ggssD^14I$Zh@pd1v^pzsp(>$&48h?#Gyh>g@ z5hFtpnpcm6LlKhZ6@kexFY|k4yzT=!MD*J#nYoyD1=IHZI`H6Y{UcqdP9-$-4HeX)&_u+kx)Dwi)L|n zRlN1SeSEoFM)fHZMdB%Sd8aPRfQAq1RG?(8CzNd;_&@|h~P z$Qlf3-3vKNkm^5^% zk)6yKs(dd6UuCO?t^4A!?!aSvCmuV7sNFjfX@eECe+4U#o?*wnaF$(g&VAvmyWm_H zPHG(rcF^y}P~W!>h5O=h?7&m>PCUgJqC=SN&Nu1Yfu}T7Hr}i{oM1Ud_ zo{=dUPNP2<34|wT9}UgEc+3Z<(RWXPC_`O5@t9{YKn2I}aSl&}Xpey4t)31*>6NM5AS*msvEm5;^2<}PcmN3n0Mvaf zek5$~hnf&UyV~{J$2g(S;<|LP_pN~n(Z0z56_17}z6^E4B1M>lp9%%TlVOk*P>S%n zY;Bn2_1P}|FqzQcnO=>71XR;;3WOf-%10CoVhr-09!d-QkuaYVB$Ox;O}V*vF7@_% z6SLB&pxLh2#FGvUwtoYVq^Xlq7xx zwMm(HY-i+2VjT6zd&Wf_w4;6;jhOe4IZU)XDZfHUVR_Gpc%3wqjWm$Pq(*8r zM`a_5QCU=lAVvvPhJGg0ZrF$u$%3+-(>VbYswwHv6hE{8~)w2&yiF)W|%l103w->b9aVt6xs`su4-W!Q}SP@5d9VL`I zv^uk`z{B|u#wk$`yxrCjNwg4 z%lfgFMVhK0O!?sQp5}Mp}hJ%8EB_>(VgX8q}Z>(XTP9;Qb@vNQk%Y z{E7mBe8Fy0UI24TR3d1~jYe{9tNN_PF7zsvuE)b@Ct)_21fy6&^$x|m^-p~wht5H5lKNSKC&09%SzVQ%9U=Xx&jwmr%Omb6y>fVTRH9keLevI^gjdl{^kMkKg=pEj=marp=YHRkF6ql$vuEXPix}vni$LTqPM-BkO8R8Mf4f z8$J%Qu7gZtciMF#W!N-WW{<8LO1X;qRL`t|HJ1LW>&)`y71>Jv*XO=Gw{o1R?qsWu zyr_I}nYr}-i{ckX0JE@059f5J`d?a#Ijd{lG-q14vlLy7ZdjXMT8hM~@ui8yi4AKb zS6;DfTkc=D#gsNeZ|%duO^YLAsadzwaJ2_BwOwp&*Q{c8h_zO64b7Q`b8N%8Sq0;$ zWvz7_f^1y3G;&QXnWh1@X#ll&S!)A#xFd7;8hiK}s(_{TZJm-4)`FCNtD7*}XK$>V zD!Gb-*-33mQTw+*t*um~R-6D=Qwy{2SRP`kT6fR&cbFI^w|U*t%pGda9J<6Fx`e1} z1V-T6j%M0!vTZj}#Ua*ucpLOUUFN_U_P`lfgMm2BF=?+rS&M1%G^cGUQcKtpGqBK~QQsgj6)h zR!pr|L7hQu7=tEDIE}UeBqntcH6cqV;mH?(`3mSWfTHig>jCjAi-Rk0b9UE!{apP* zH*5E1>^|1+OWO}+?47K=bFJ=q>kAcgbci`}k-7E}WA9AcuctIGEiTSgJU=!!wlKrG znli2y*42`BwPjq#S=Vu{u!Acq=gJRo9`9?Ns@wdAP`NFs_qL3L)txd^mtgE**6Ret z9T(mk@B!RMjPGp4AaHTa{(`GiMxskEvO@A6sf+MWh%ewuNh%*JfCp4V2|L(K$f}A( zY4q!#q9TdrW-2rpqvFkzonF`mC3F^_ zoDgULDq$PsQpaCv+3(9}IocL{_m(>RumR$ISyDKFA6smnQN?qf3#q$zQU<<{?AFhy zNj17>Q+06c6?X}$3hs=^tjc?k3svkx>aYjFlm`NzB7*@&^-sW$o>bwtTx!P9qDg9i zwKQ0;l!1$T1f1f)RDp;m5RV6fW7rFh&b*IT_XyUJ%tN8M@v=sq;1$4Yyv#>kg_>Xg zGdynWqS^21ZvX5apG(!Bz$P_kNt#LaS(eVR^#qfHz|p zU7{$TC38*x9=g$g3aFq=f|TN=p>W~K@*rDwn6p=8?6s`Dc9~u|owoZ{ zDAwMRu^(aWN7D9VsU8qrv#wcsp=-gnqFCwsdf>}}m9Eu~*9z8DjO7HQJt1)UPGyCr ziN4=J&_xh7@R9!rzN+z^{jwk;mq_w47BoqjlpkqC0Uju2QVzFu1&Y}`(~5zD8SsQr zUBJ2DH=2~^4tb0uxIHO{Ga~6*6Gsf^e171`L1Ixq^wxyLVvcb^jOoDmM`AA&p{~H( zh5M%(Rl;Qy)d&!na# zV3aq4<)1OPv*vcr*vOfjz(;*cXBW>h#v0C4xKOo_V2ll08fB+`OH0^GmMgb(gr(yR zp|sSb6tDG!(ZU%mkIp_k`)>v^#!|4c7eTSM#Cm!_3$Q*SL3UK54Bt10qpM^GUH`PE>2`{01<->$*?CVd z@kkkzkAj7H6E4bFDM-Z2XxZmhaMen*%*j75QxY>O=t+#DJ7M1QFN9wW_+{e~@j0qb zx?YM_s`+<^1;wICs_x1tC;Y16*OpX|7vxP2K9d^Ja)slmqHS^Hgu#!T_#-X2v9s2Z z`1?a-sY|$&Ney;Y{v2A74V(Au!K)SViN6@HL{Gpc5kmvcLSbxhOe3}Vg@QCZmSd-O zY2Lu_N!0=liTb3DG$JDwS|yyj*%3^51oIaPfEHZAvhm8jW02NoHgP87ReRf$I zxQeWdpA_rHPl=`N-=tZjoIC({Bxoe7$m+*Ac{XE#u#=QLv`F<8aRWCP_UR=-`Ho)F zJA`E>jrQ;C_DsYQH30SJ#jovO@Hy0q7Yvw%h3fc!Y9<%9DHTi9|J-*b#$7Yv|By3@ z{y9*!znuKH`_f#ui{?M{>PvG({r^Rp^m{abSLA&07i$0s>jxyS3(l0Zd>Rt@XZu%5 zKFrwm*+-Cnl#Xnev6Ba}WN-XJF;fuLl1)(K!!^yQ2BgL1?GeOM(w;2X2e0D}NKQ&l z9*WAy!(mwbXP>@6)3a7_RYv3xA}7Ytr9AI}bwN%Jf@~W{cbdE>X%I0aZO_`j z%6cYe9ApRCNj8y39xG;?K-EWi-QaV^m2^r|hO`Wp!N{W8R}z1rnsFyxl>41nTp}*i zV?PZ<9(|W?lhPJRcha%Xy5!Oql4?j)kY2l-27ujD?W-$}k;jvI6znFu9_K9N@gMA6 zQBe!SZb^@qqiLq_cchA#DT3X*xp%C0ta|qs@?>GMh&-_mB{{A^UP{o-N?`<`{3Lmb zJWZZS7GnS9VX}wpCHulMvj4G)d=L3DgTReJ`Hb@3j#3p7M?PZwRD(Ng#v1PxzsKJb zOWVI>P11_+i@Yl%t^I)z^7 zYEGSo7jHr__8e`nOg}`mB{}kUH4CKQ2M7Q}S6iHEknryIyJubAQttPJaXY!L$wNiZ zSnAv1Xn>l=UaEuzBJ7cH5U(_H>3h}K4Mq78qzYCpKvUCb-~_7BPCyC-a^xpm+jt>q z&octa5+U-KN7!^cZ#3nEb13E!bB<}05lKVH*_Ws~9SkBL@a-^oW~V)aF)}=oCBg%1 zIT?f8jfANef;yfqNGps*M^7aFs;fC$Z0x#CHJ`w*EZ2^pV3pvK3qj%~M5l5Qf<{l4 zA#mCx1kc5UY#~1yhqI<*QdqcCNlP{ zleqD`a%-p0t(}iohNB}fUPDje`6ett1DYIUoX24kX*h+Ja5Na1B18VbL~JS=rxWr< zaJKWRcsLGuD$sKR5@Mzyc!N@8a4?S7(trZRi6C|dXO*{Z`$uU%t}&pUhs+P;T~9c- zxd%-mD?AeJyy|SSIt}r>9P{HmmxK-t?L#lB7I7zvasY`y+if%%UUxf2PW#8=6A@mU zB{L?LfOn{8tg8)N}4tZ77=jf1WAj^mjjKW%>FEy}G@Xj=> zD+C^3A#kN49vJ1-5ZDY%&ipEfwNUCLbNy^h)SY* zq?vhTFGyYBnHU+ErkYT7GkPK42Zfv%+iq@@J2L{wKa{{AAKwez_JbtCj&BOtEFiH! zHFdPXu6DGAqCu2JqwBjL3{4`I<2C+BY!sFY0?+90FSgk?d+@1G5e}Eg)Vq^|cqN)E zj1C+jzB}AlXM6qm=*FoYAW?!1uLDE>ZsHG{P zD1^wAGzc7C185QdLLM9x&?$pIPdOcj>?}bqP+^QSz{?;72~h-#h1iYy5vo_B^TKN( zzB&@VAEK$hz?JAU;p8I_yf|wOe(7RpLNNyEM~FNavMLFUvp3CXN8^74WOO@l*v_ad zXLV$(2UzO?NE1S-JGHE;{|cXh7ZPZ>D(fsDI>bvLZEt}4>*wv4-rb$6{@d43@6 z?n@arYa24PN7iePq#eC%?U7~M+UalJ`>Xe6FVA25@inIQNJ_^zdb!$$r+5DBPTJA^ z3(*!>EKA+GrH*Uq$g~WwEd#Sk#_40N&6|$G4CL834y`+G zFdYLgj=yMPuKj>%yRoGpY);16$y$$W8f_V4IcqFm1^UX<#-kbIN!EDsxpKqU#~E#p z&ObcQRkgipJ^It*e|bF9+RL`~rd#`A@FMd+5DJrJOAnbwk8VA@wUAsl9mF&8trz&R zGwMludeg2x#@Yuh^WA^aovlBU_VlD(y^OUN#*iAH^R;Ar=UCr4Jcm}+(Yo&NGe-ws z+<9@68NS7I`T^qWi7zK`dkyQTS$AA!4xW5&Setp#%XlxpHfc`F%-<0jAkj*g?7~D^ zUNyIW{mGY~WSUR0&8O1MXYfS6!xJ$Q1>)~0f}O0@0haobwm4>+-U0J ziprJ>7Ymn47fYGi%ju%`XVqL$MW*NwTXbmE_0yuiEL!{En~#3>(b_<|=)E~Lq%&RS z9PasnxdE=cVWn%u2eIA0Zw7ugu-5fF&Xiu@N~@pU%`~56n@>Jhq?>!W%BD5vH-$ed z=0+ctPHY4Y=!gYIrGBDOYz0{hP8T|_iRsHPh1<;ddwLpUc6kiZfRH{ zGrlwHzB3%+i8|I%x1wU2Pp2JcW@Rr69Gs(MerRrJ`S8=WCv6*$6X7V!II3Ak_44JX zA3phT!_kPc?snojx9&T)3)k7Su(*6nf$DpHL1!-@~eayl4($=%7(=RPn z&gy>0?68RVJ^KC1;>w=N_H=1S+TO_+JKA^5n?V?kC+DTL)|F zfRKD{*I7e5=Qx_`+q73K8y04^2t`vZyli!^6@f2Jv3M#mYhJ}fhV_OQD ztrHF#G{P};LcSjh`F?iyvYV@{d0PIYe6?%6^5opz=hr!R{Yp)y;XK=Lp7T^cH9s*k zEdz{a06HJMAbUf|;Jro2+=J-t8j@|=oMPU9Z>5?mt6aLiczt;~4Osw% z5N#0Po&5o8tjri|Sz~S5Sf4RAv&LqwqylKuZblFl0n&O_qPOf}DF8|NQQzvuOVM-1UX&w9^aO zmrWhBSB38lr+2M4)sF>AHEXQq3QAyvp~WG#;2>jfTmdQ6vf97a&lRA#OfOEa6s0R# znesNq*3MWvzEdeoX4u1`M$X-|SyshWwyyTC9$_lFxYC+cCs$U*)SO{Td*B$B*k5aO z4)YeFGnxPCTfdTU_R0QeyQGY8lzmIcOkJ;lgCQrB@pP_#QQ zb@o);v=Xl>bvI3lR}Fs+_+`=2TXw~Nv#X%&l?{1od95E?4}L$S z(je<+3bN?^ywMLySAht!E8t6oL7);RGK8@mCYXKNLAd#}i1}Q+?n)>k+zhY<$?I_Q z1i%P3XFakr)MtbXDKam4WzSfE$~Q7KXJRp&gJTn|xZM4YLM|-o8G2zW6C0S=)I?S$ zue=IoGqsAERp>R3UMQS|GXSX|D&edOWF%7m1zx-8P6RpT9VFarwep+l%TA$HfPOn^w=PTCfhj zC6ou$AP{WMh4^WG<(5GVTseTQGZL#S3idR6iI5aC3R;!;Gnn zHI-q2W&xlY0LEMd%7HXH87Mqyn zlN-gS7^Ryl_b!Yq-C4ZzlL9soQY30Ii!U?H^zNSJ&Ujdt|DD zHwr>+*}}zd2joVT``c2rO8>^HRh|6Sp;Z<9FGoPG>crV1cuTw%UKt}}F$$%MV3rj2 z9l5)B3u^I&#G3;xTy6dXYSN%P1p4zu^rs6K@O^@Mflz#jUQq;MzDfn6G|Jr{#Hl`r z4Zb9Vp)Vo;ZI^IdPEfDl6J;LI$T<#YUMBlTJt3=46Lr5NYW|)u{XJpc)R&~{GWrr$ xU$SsEt*?2YL3?n3t7zfMj&ldv;oob6+AM#d|IVIJ$~tF91QYll2=s+V{oiOFzI6Zq literal 0 HcmV?d00001 diff --git a/fusion_claims/wizard/__pycache__/status_change_reason_wizard.cpython-312.pyc b/fusion_claims/wizard/__pycache__/status_change_reason_wizard.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..011890e1418e7673c1766d65abb948e972f71824 GIT binary patch literal 14517 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 literal 0 HcmV?d00001 diff --git a/fusion_claims/wizard/__pycache__/submission_verification_wizard.cpython-312.pyc b/fusion_claims/wizard/__pycache__/submission_verification_wizard.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..14c0db9c4ada45fb5618d2d35647e3c3226d3502 GIT binary patch literal 15747 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 Upload Required Documents

Please upload the ADP application documents received from the client.

- + + + + + - - @@ -24,6 +26,28 @@ + +
+ Don't have signed pages? +
+ +
+
+ A remote signing request has been sent. + You can proceed without uploading signed pages -- they will be auto-filled when signed. +
+
+ +
+
+ Page 11 has been signed remotely. +
+
diff --git a/fusion_claims/wizard/send_page11_wizard.py b/fusion_claims/wizard/send_page11_wizard.py new file mode 100644 index 00000000..3dad2cc1 --- /dev/null +++ b/fusion_claims/wizard/send_page11_wizard.py @@ -0,0 +1,92 @@ +# -*- coding: utf-8 -*- +# Copyright 2024-2026 Nexa Systems Inc. +# License OPL-1 (Odoo Proprietary License v1.0) + +from datetime import timedelta + +from odoo import models, fields, api, _ +from odoo.exceptions import UserError + + +class SendPage11Wizard(models.TransientModel): + _name = 'fusion_claims.send.page11.wizard' + _description = 'Send Page 11 for Remote Signing' + + sale_order_id = fields.Many2one( + 'sale.order', string='Sale Order', + required=True, readonly=True, + ) + signer_email = fields.Char(string='Recipient Email', required=True) + signer_type = fields.Selection([ + ('client', 'Client (Self)'), + ('spouse', 'Spouse'), + ('parent', 'Parent'), + ('legal_guardian', 'Legal Guardian'), + ('poa', 'Power of Attorney'), + ('public_trustee', 'Public Trustee'), + ], string='Signer Type', default='client', required=True) + signer_name = fields.Char(string='Signer Name', required=True) + custom_message = fields.Text( + string='Personal Message', + help='Optional message to include in the signing request email.', + ) + expiry_days = fields.Integer( + string='Link Valid For (days)', default=7, required=True, + ) + + client_name = fields.Char(string='Client', readonly=True) + case_ref = fields.Char(string='Case Reference', readonly=True) + + @api.model + def default_get(self, fields_list): + res = super().default_get(fields_list) + active_id = self.env.context.get('active_id') + if not active_id: + return res + + order = self.env['sale.order'].browse(active_id) + res['sale_order_id'] = order.id + res['client_name'] = order.partner_id.name or '' + res['case_ref'] = order.name or '' + res['signer_name'] = order.partner_id.name or '' + res['signer_email'] = order.partner_id.email or '' + return res + + def action_send(self): + """Create a signing request and send the email.""" + self.ensure_one() + + if not self.signer_email: + raise UserError(_("Please enter the recipient's email address.")) + if self.expiry_days < 1: + raise UserError(_("Expiry must be at least 1 day.")) + + request = self.env['fusion.page11.sign.request'].create({ + 'sale_order_id': self.sale_order_id.id, + 'signer_email': self.signer_email, + 'signer_type': self.signer_type, + 'signer_name': self.signer_name, + 'custom_message': self.custom_message, + 'expiry_date': fields.Datetime.now() + timedelta(days=self.expiry_days), + 'consent_signed_by': 'applicant' if self.signer_type == 'client' else 'agent', + 'signer_relationship': dict(self._fields['signer_type'].selection).get( + self.signer_type, '' + ) if self.signer_type != 'client' else '', + }) + + request._send_signing_email() + + return { + 'type': 'ir.actions.client', + 'tag': 'display_notification', + 'params': { + 'title': _('Page 11 Signing Request Sent'), + 'message': _( + 'Signing request has been sent to %s.', + self.signer_email, + ), + 'type': 'success', + 'sticky': False, + 'next': {'type': 'ir.actions.act_window_close'}, + }, + } diff --git a/fusion_claims/wizard/send_page11_wizard_views.xml b/fusion_claims/wizard/send_page11_wizard_views.xml new file mode 100644 index 00000000..ebfe8cc5 --- /dev/null +++ b/fusion_claims/wizard/send_page11_wizard_views.xml @@ -0,0 +1,39 @@ + + + + fusion_claims.send.page11.wizard.form + fusion_claims.send.page11.wizard + +
+ + + + + + + + + + + + + + + + +
+
+
+
+
+ + + Request Page 11 Signature + fusion_claims.send.page11.wizard + form + new + {'default_sale_order_id': active_id} + +
diff --git a/fusion_claims/wizard/status_change_reason_wizard.py b/fusion_claims/wizard/status_change_reason_wizard.py index 50d3a555..21397b83 100644 --- a/fusion_claims/wizard/status_change_reason_wizard.py +++ b/fusion_claims/wizard/status_change_reason_wizard.py @@ -61,6 +61,18 @@ class StatusChangeReasonWizard(models.TransientModel): help='Select the reason ADP denied the funding', ) + # ========================================================================== + # WITHDRAWAL INTENT (for 'withdrawn' status) + # ========================================================================== + withdrawal_intent = fields.Selection( + selection=[ + ('cancel', 'Cancel Application'), + ('resubmit', 'Withdraw for Correction & Resubmission'), + ], + string='What would you like to do after withdrawal?', + default='resubmit', + ) + reason = fields.Text( string='Reason / Additional Details', help='Please provide additional details for this status change.', @@ -181,8 +193,10 @@ class StatusChangeReasonWizard(models.TransientModel): } header_color, bg_color, border_color = status_colors.get(new_status, ('#17a2b8', '#f0f9ff', '#bee5eb')) - # For on_hold, also store the previous status and hold date + # Build initial update vals update_vals = {'x_fc_adp_application_status': new_status} + if new_status == 'withdrawn': + update_vals['x_fc_previous_status_before_withdrawal'] = self.previous_status # ================================================================= # REJECTED: ADP rejected submission (within 24 hours) @@ -261,7 +275,7 @@ class StatusChangeReasonWizard(models.TransientModel): # Don't post message here - _send_on_hold_email() will post the message message_body = None elif new_status == 'withdrawn': - # Don't post message here - _send_withdrawal_email() will post the message + # Handled entirely below based on withdrawal_intent message_body = None elif new_status == 'cancelled': # Cancelled has its own detailed message posted later @@ -302,10 +316,129 @@ class StatusChangeReasonWizard(models.TransientModel): order._send_correction_needed_email(reason=reason) # ================================================================= - # WITHDRAWN: Send email notification to all parties + # WITHDRAWN: Branch based on withdrawal intent # ================================================================= if new_status == 'withdrawn': - order._send_withdrawal_email(reason=reason) + intent = self.withdrawal_intent + + if intent == 'cancel': + # --------------------------------------------------------- + # WITHDRAW & CANCEL: Cancel invoices + SO + # --------------------------------------------------------- + cancelled_invoices = [] + cancelled_so = False + + # Cancel related invoices first + invoices = order.invoice_ids.filtered(lambda inv: inv.state != 'cancel') + for invoice in invoices: + try: + inv_msg = Markup(f''' + + ''') + invoice.message_post( + body=inv_msg, + message_type='notification', + subtype_xmlid='mail.mt_note', + ) + if invoice.state == 'posted': + invoice.button_draft() + invoice.button_cancel() + cancelled_invoices.append(invoice.name) + except Exception as e: + warn_msg = Markup(f''' + + ''') + order.message_post( + body=warn_msg, + message_type='notification', + subtype_xmlid='mail.mt_note', + ) + + # Cancel the sale order itself + if order.state not in ('cancel', 'done'): + try: + order._action_cancel() + cancelled_so = True + except Exception as e: + warn_msg = Markup(f''' + + ''') + order.message_post( + body=warn_msg, + message_type='notification', + subtype_xmlid='mail.mt_note', + ) + + # Build cancellation summary + invoice_list_html = '' + if cancelled_invoices: + invoice_items = ''.join([f'
  • {inv}
  • ' for inv in cancelled_invoices]) + invoice_list_html = f'
  • Invoices Cancelled:
      {invoice_items}
  • ' + + so_status = 'Cancelled' if cancelled_so else 'Not applicable' + summary_msg = Markup(f''' + + ''') + order.message_post( + body=summary_msg, + message_type='notification', + subtype_xmlid='mail.mt_note', + ) + order._send_withdrawal_email(reason=reason, intent='cancel') + + else: + # --------------------------------------------------------- + # WITHDRAW & RESUBMIT: Return to ready_submission + # --------------------------------------------------------- + order.with_context(skip_status_validation=True).write({ + 'x_fc_adp_application_status': 'ready_submission', + 'x_fc_previous_status_before_withdrawal': self.previous_status, + }) + + resubmit_msg = Markup(f''' + + ''') + order.message_post( + body=resubmit_msg, + message_type='notification', + subtype_xmlid='mail.mt_note', + ) + order._send_withdrawal_email(reason=reason, intent='resubmit') # ================================================================= # ON HOLD: Send email notification to all parties diff --git a/fusion_claims/wizard/status_change_reason_wizard_views.xml b/fusion_claims/wizard/status_change_reason_wizard_views.xml index d903cc25..8cd2b837 100644 --- a/fusion_claims/wizard/status_change_reason_wizard_views.xml +++ b/fusion_claims/wizard/status_change_reason_wizard_views.xml @@ -26,7 +26,7 @@