C1 duplicate-call detection - Wizard computes duplicate_count + duplicate_repair_ids when partner is picked (open repairs from the configurable window, default 14 days). - Yellow banner with "Open Existing Repair" button to jump to the most recent duplicate so CS can add a note instead of creating a new repair. C5 outstanding-balance warning - Wizard sums posted unpaid account.move.amount_residual across all invoices of the partner. - Red banner shown when balance >= fusion_repairs.outstanding_balance_threshold (default $100) with a "View Invoices" button. C6 quote-only mode - New quote_only boolean on the wizard; passed through the shared intake service. Skips dispatch-task creation for urgent/safety AND for catalogue auto_schedule. Chatter note "Created in Quote Only mode" posted on the resulting repair.order. D2 skills filter on dispatch picker - _pick_dispatch_technician(repair) prefers users whose x_fc_repair_skills Many2many contains the repair's product category. Three-tier preference: 1) intake user if field staff AND has the skill 2) any active field-staff user with the skill 3) any active field-staff user (no skill filter) - last-resort - Logs a warning + skips task creation if no field-staff user exists at all. T1 Open in Maps on technician task - action_open_in_maps() returns ir.actions.act_url to https://www.google.com/maps?q=<URL-encoded address>. Deep-links into Apple Maps / Google Maps native apps on iOS / Android, browser otherwise. - Header button added on the fusion.technician.task form (after the existing buttons) plus a "View Repair" button when x_fc_repair_order_id is set. Verified end-to-end on local westin-v19: Existing repair: RO-202605-06 C1 duplicate_count = 5 (>=1 expected) - last duplicate: RO-202605-06 C5 balance check ran without error (target partner had $0) C6 quote-only repair: RO-202605-07 tech_tasks = 0 (expected 0) D2 picked the only stairlift-skilled field-staff user T1 Maps URL: https://www.google.com/maps?q=15+Fisherman+Dr%2C+Brampton%2C+ON+L7A+1B7%2C+Canad... Bumped to 19.0.1.1.0. Co-authored-by: Cursor <cursoragent@cursor.com>
33 lines
1.3 KiB
XML
33 lines
1.3 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<odoo>
|
|
|
|
<!-- Add Maps + View Repair buttons to the technician task form
|
|
(header so they're prominent on mobile). -->
|
|
<record id="view_technician_task_form_inherit_fusion_repairs"
|
|
model="ir.ui.view">
|
|
<field name="name">fusion.technician.task.form.inherit.fusion_repairs</field>
|
|
<field name="model">fusion.technician.task</field>
|
|
<field name="inherit_id" ref="fusion_tasks.view_technician_task_form"/>
|
|
<field name="arch" type="xml">
|
|
<xpath expr="//header" position="inside">
|
|
<button name="action_open_in_maps"
|
|
type="object"
|
|
string="Open in Maps"
|
|
class="btn-secondary"
|
|
icon="fa-map-marker"/>
|
|
<button name="action_view_repair_order"
|
|
type="object"
|
|
string="View Repair"
|
|
class="btn-secondary"
|
|
icon="fa-wrench"
|
|
invisible="not x_fc_repair_order_id"/>
|
|
</xpath>
|
|
<xpath expr="//field[@name='partner_id']" position="after">
|
|
<field name="x_fc_repair_order_id" readonly="1"
|
|
invisible="not x_fc_repair_order_id"/>
|
|
</xpath>
|
|
</field>
|
|
</record>
|
|
|
|
</odoo>
|