changes
This commit is contained in:
@@ -168,5 +168,26 @@
|
||||
<field name="nextcall" eval="DateTime.now().replace(hour=3, minute=0, second=0)"/>
|
||||
</record>
|
||||
|
||||
<!-- Cron Job: ADP Hold Expiry Reminders (2026-04).
|
||||
For each on-hold ADP case:
|
||||
- Sends monthly reminder to the CLIENT (authorizer excluded per
|
||||
2026-04 authorizer email policy). Cadence:
|
||||
fusion_claims.adp_hold_reminder_interval_days (default 30).
|
||||
- Sends ONE final warning to client + authorizer when funding
|
||||
expires within fusion_claims.adp_hold_final_warning_days_before_expiry
|
||||
(default 30 days before expiry).
|
||||
- Silently skips cases where the client has no email on file.
|
||||
Flags reset automatically when the case resumes from hold. -->
|
||||
<record id="ir_cron_adp_hold_expiry_reminders" model="ir.cron">
|
||||
<field name="name">Fusion Claims: ADP Hold Expiry Reminders</field>
|
||||
<field name="model_id" ref="sale.model_sale_order"/>
|
||||
<field name="state">code</field>
|
||||
<field name="code">model._cron_adp_hold_expiry_reminders()</field>
|
||||
<field name="interval_number">1</field>
|
||||
<field name="interval_type">days</field>
|
||||
<field name="active">True</field>
|
||||
<field name="nextcall" eval="DateTime.now().replace(hour=9, minute=30, second=0)"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -12,12 +12,16 @@
|
||||
<t t-call="web.external_layout">
|
||||
<t t-set="doc" t-value="doc.with_context(lang=doc.partner_id.lang)"/>
|
||||
<t t-set="is_adp" t-value="doc.x_fc_is_adp_invoice"/>
|
||||
|
||||
<!-- Brand colours from the company's document-layout config. -->
|
||||
<t t-set="_co" t-value="doc.company_id or env.company"/>
|
||||
<t t-set="primary" t-value="_co.primary_color or '#0066a1'"/>
|
||||
<t t-set="secondary" t-value="_co.secondary_color or '#90be6d'"/>
|
||||
|
||||
<style>
|
||||
.fc-landscape { font-family: Arial, sans-serif; font-size: 11pt; }
|
||||
.fc-landscape table { width: 100%; border-collapse: collapse; margin-bottom: 12px; }
|
||||
.fc-landscape table.bordered, .fc-landscape table.bordered th, .fc-landscape table.bordered td { border: 1px solid #000; }
|
||||
.fc-landscape th { background-color: #0066a1; color: white; padding: 8px 10px; font-weight: bold; font-size: 10pt; }
|
||||
.fc-landscape th { background-color: <t t-out="primary"/>; color: white; padding: 8px 10px; font-weight: bold; font-size: 10pt; }
|
||||
.fc-landscape td { padding: 6px 8px; vertical-align: top; font-size: 10pt; }
|
||||
.fc-landscape .text-center { text-align: center; }
|
||||
.fc-landscape .text-end { text-align: right; }
|
||||
@@ -26,7 +30,7 @@
|
||||
.fc-landscape .client-bg { background-color: #fff3e0; }
|
||||
.fc-landscape .section-row { background-color: #f0f0f0; font-weight: bold; }
|
||||
.fc-landscape .note-row { font-style: italic; }
|
||||
.fc-landscape h2 { color: #0066a1; margin: 10px 0; font-size: 18pt; }
|
||||
.fc-landscape h2 { color: <t t-out="primary"/>; margin: 10px 0; font-size: 18pt; }
|
||||
.fc-landscape .info-table td { padding: 8px 12px; font-size: 11pt; }
|
||||
.fc-landscape .info-table th { background-color: #f5f5f5; color: #333; font-size: 10pt; padding: 6px 12px; }
|
||||
.fc-landscape .totals-table { border: 1px solid #000; }
|
||||
|
||||
@@ -11,7 +11,11 @@
|
||||
<t t-call="web.external_layout">
|
||||
<t t-set="doc" t-value="doc.with_context(lang=doc.partner_id.lang)"/>
|
||||
<t t-set="is_adp" t-value="doc.x_fc_is_adp_invoice"/>
|
||||
|
||||
<!-- Brand colours from the company's document-layout config. -->
|
||||
<t t-set="_co" t-value="doc.company_id or env.company"/>
|
||||
<t t-set="primary" t-value="_co.primary_color or '#005a83'"/>
|
||||
<t t-set="secondary" t-value="_co.secondary_color or '#90be6d'"/>
|
||||
|
||||
<style>
|
||||
.fc-report { font-family: Arial, sans-serif; font-size: 10pt; }
|
||||
.fc-report table { width: 100%; border-collapse: collapse; margin-bottom: 10px; }
|
||||
@@ -25,7 +29,7 @@
|
||||
.fc-report .client-bg { background-color: #fff3e0; }
|
||||
.fc-report .section-row { background-color: #f8f8f8; font-weight: bold; }
|
||||
.fc-report .note-row { font-style: italic; }
|
||||
.fc-report h4 { color: #005a83; margin: 0 0 15px 0; }
|
||||
.fc-report h4 { color: <t t-out="primary"/>; margin: 0 0 15px 0; }
|
||||
.fc-report .totals-table { border: 1px solid #000; border-collapse: collapse; }
|
||||
.fc-report .totals-table td { border: 1px solid #000; padding: 6px 8px; }
|
||||
</style>
|
||||
|
||||
@@ -12,19 +12,22 @@
|
||||
<t t-call="web.external_layout">
|
||||
<t t-set="doc" t-value="doc.with_context(lang=doc.partner_id.lang)"/>
|
||||
<t t-set="company" t-value="doc.company_id"/>
|
||||
|
||||
<!-- Brand colours from the company's document-layout config. -->
|
||||
<t t-set="primary" t-value="(company.primary_color if company else False) or '#0066a1'"/>
|
||||
<t t-set="secondary" t-value="(company.secondary_color if company else False) or '#90be6d'"/>
|
||||
|
||||
<style>
|
||||
.fc-contract { font-family: Arial, sans-serif; font-size: 8pt; line-height: 1.3; }
|
||||
.fc-contract h1 { color: #0066a1; font-size: 14pt; text-align: center; margin: 5px 0 10px 0; }
|
||||
.fc-contract h2 { color: #0066a1; font-size: 9pt; margin: 6px 0 3px 0; font-weight: bold; }
|
||||
.fc-contract h4 { color: #0066a1; margin: 0 0 10px 0; font-size: 13pt; }
|
||||
.fc-contract h1 { color: <t t-out="primary"/>; font-size: 14pt; text-align: center; margin: 5px 0 10px 0; }
|
||||
.fc-contract h2 { color: <t t-out="primary"/>; font-size: 9pt; margin: 6px 0 3px 0; font-weight: bold; }
|
||||
.fc-contract h4 { color: <t t-out="primary"/>; margin: 0 0 10px 0; font-size: 13pt; }
|
||||
.fc-contract p { margin: 2px 0; text-align: justify; }
|
||||
.fc-contract .intro { margin-bottom: 8px; font-size: 8pt; }
|
||||
.fc-contract ul { margin: 2px 0 2px 15px; padding: 0; }
|
||||
.fc-contract li { margin-bottom: 1px; }
|
||||
.fc-contract table { width: 100%; border-collapse: collapse; }
|
||||
.fc-contract table.bordered, .fc-contract table.bordered th, .fc-contract table.bordered td { border: 1px solid #000; }
|
||||
.fc-contract th { background-color: #0066a1; color: white; padding: 4px 6px; font-weight: bold; text-align: center; font-size: 8pt; }
|
||||
.fc-contract th { background-color: <t t-out="primary"/>; color: white; padding: 4px 6px; font-weight: bold; text-align: center; font-size: 8pt; }
|
||||
.fc-contract td { padding: 3px 5px; vertical-align: top; font-size: 8pt; }
|
||||
.fc-contract .text-center { text-align: center; }
|
||||
.fc-contract .text-end { text-align: right; }
|
||||
@@ -48,7 +51,7 @@
|
||||
.fc-contract .sig-row { display: table; width: 100%; margin-bottom: 20px; }
|
||||
.fc-contract .sig-col { display: table-cell; width: 48%; vertical-align: top; }
|
||||
.fc-contract .sig-spacer { display: table-cell; width: 4%; }
|
||||
.fc-contract .sig-title { font-weight: bold; font-size: 9pt; color: #0066a1; margin-bottom: 8px; border-bottom: 2px solid #0066a1; padding-bottom: 3px; }
|
||||
.fc-contract .sig-title { font-weight: bold; font-size: 9pt; color: <t t-out="primary"/>; margin-bottom: 8px; border-bottom: 2px solid <t t-out="primary"/>; padding-bottom: 3px; }
|
||||
.fc-contract .sig-field { margin-bottom: 12px; }
|
||||
.fc-contract .sig-line { border-bottom: 1px solid #000; min-height: 25px; }
|
||||
.fc-contract .sig-label { font-size: 7pt; color: #666; margin-top: 2px; }
|
||||
|
||||
@@ -15,13 +15,16 @@
|
||||
<t t-set="is_deduction" t-value="doc.x_fc_adp_application_status == 'approved_deduction'"/>
|
||||
<t t-set="lines" t-value="doc.order_line.filtered(lambda l: l.product_id and l.display_type not in ('line_section', 'line_note'))"/>
|
||||
<t t-set="has_deduction" t-value="any(l.x_fc_deduction_type and l.x_fc_deduction_type != 'none' for l in lines)"/>
|
||||
<!-- Brand colours from the company's document-layout config. -->
|
||||
<t t-set="primary" t-value="(company.primary_color if company else False) or '#0066a1'"/>
|
||||
<t t-set="secondary" t-value="(company.secondary_color if company else False) or '#90be6d'"/>
|
||||
|
||||
<style>
|
||||
.fc-ai { font-family: Arial, sans-serif; font-size: 10pt; }
|
||||
.fc-ai h2 { color: #0066a1; font-size: 16pt; text-align: center; margin: 25px 0 20px 0; }
|
||||
.fc-ai h2 { color: <t t-out="primary"/>; font-size: 16pt; text-align: center; margin: 25px 0 20px 0; }
|
||||
.fc-ai table { width: 100%; border-collapse: collapse; margin-bottom: 10px; }
|
||||
.fc-ai table.bordered, .fc-ai table.bordered th, .fc-ai table.bordered td { border: 1px solid #000; }
|
||||
.fc-ai th { background-color: #0066a1; color: white; padding: 6px 8px; font-weight: bold; font-size: 9pt; }
|
||||
.fc-ai th { background-color: <t t-out="primary"/>; color: white; padding: 6px 8px; font-weight: bold; font-size: 9pt; }
|
||||
.fc-ai td { padding: 5px 6px; vertical-align: top; font-size: 9pt; }
|
||||
.fc-ai .text-center { text-align: center; }
|
||||
.fc-ai .text-end { text-align: right; }
|
||||
|
||||
@@ -12,10 +12,13 @@
|
||||
<t t-call="web.external_layout">
|
||||
<t t-set="doc" t-value="doc.with_context(lang=doc.partner_id.lang)"/>
|
||||
<t t-set="company" t-value="doc.company_id"/>
|
||||
|
||||
<!-- Brand colours from the company's document-layout config. -->
|
||||
<t t-set="primary" t-value="(company.primary_color if company else False) or '#0066a1'"/>
|
||||
<t t-set="secondary" t-value="(company.secondary_color if company else False) or '#90be6d'"/>
|
||||
|
||||
<style>
|
||||
.fc-waiver { font-family: Arial, sans-serif; font-size: 10pt; line-height: 1.5; }
|
||||
.fc-waiver h1 { color: #0066a1; font-size: 16pt; text-align: center; margin: 10px 0 20px 0; }
|
||||
.fc-waiver h1 { color: <t t-out="primary"/>; font-size: 16pt; text-align: center; margin: 10px 0 20px 0; }
|
||||
.fc-waiver h2 { color: #333; font-size: 11pt; margin: 15px 0 8px 0; }
|
||||
.fc-waiver p { margin: 8px 0; text-align: justify; }
|
||||
.fc-waiver .intro { margin-bottom: 15px; font-style: italic; }
|
||||
|
||||
@@ -17,20 +17,24 @@
|
||||
<t t-set="doc" t-value="doc.with_context(lang=doc.partner_id.lang)"/>
|
||||
<!-- Get sale order for MOD fields -->
|
||||
<t t-set="so" t-value="doc.x_fc_source_sale_order_id"/>
|
||||
<!-- Brand colours from the company's document-layout config. -->
|
||||
<t t-set="_co" t-value="doc.company_id or env.company"/>
|
||||
<t t-set="primary" t-value="_co.primary_color or '#1a5276'"/>
|
||||
<t t-set="secondary" t-value="_co.secondary_color or '#90be6d'"/>
|
||||
|
||||
<style>
|
||||
.fc-mod-inv { font-family: Arial, sans-serif; font-size: 10pt; }
|
||||
.fc-mod-inv table { width: 100%; border-collapse: collapse; margin-bottom: 10px; }
|
||||
.fc-mod-inv table.bordered, .fc-mod-inv table.bordered th, .fc-mod-inv table.bordered td { border: 1px solid #000; }
|
||||
.fc-mod-inv th { background-color: #1a5276; color: white; padding: 6px 8px; font-weight: bold; text-align: center; }
|
||||
.fc-mod-inv th { background-color: <t t-out="primary"/>; color: white; padding: 6px 8px; font-weight: bold; text-align: center; }
|
||||
.fc-mod-inv td { padding: 6px 8px; vertical-align: top; }
|
||||
.fc-mod-inv .text-center { text-align: center; }
|
||||
.fc-mod-inv .text-end { text-align: right; }
|
||||
.fc-mod-inv .text-start { text-align: left; }
|
||||
.fc-mod-inv .section-row { background-color: #f0f0f0; font-weight: bold; }
|
||||
.fc-mod-inv .note-row { font-style: italic; color: #555; font-size: 9pt; }
|
||||
.fc-mod-inv h4 { color: #1a5276; margin: 0 0 15px 0; font-size: 16pt; }
|
||||
.fc-mod-inv .req-box { border: 2px solid #1a5276; padding: 8px 12px; margin: 6px 0; background-color: #fafafa; }
|
||||
.fc-mod-inv h4 { color: <t t-out="primary"/>; margin: 0 0 15px 0; font-size: 16pt; }
|
||||
.fc-mod-inv .req-box { border: 2px solid <t t-out="primary"/>; padding: 8px 12px; margin: 6px 0; background-color: #fafafa; }
|
||||
</style>
|
||||
|
||||
<div class="fc-mod-inv">
|
||||
|
||||
@@ -9,21 +9,25 @@
|
||||
<t t-foreach="docs" t-as="doc">
|
||||
<t t-call="web.external_layout">
|
||||
<t t-set="doc" t-value="doc.with_context(lang=doc.partner_id.lang)"/>
|
||||
<!-- Brand colours from the company's document-layout config. -->
|
||||
<t t-set="_co" t-value="doc.company_id or env.company"/>
|
||||
<t t-set="primary" t-value="_co.primary_color or '#1a5276'"/>
|
||||
<t t-set="secondary" t-value="_co.secondary_color or '#90be6d'"/>
|
||||
|
||||
<style>
|
||||
.fc-mod { font-family: Arial, sans-serif; font-size: 10pt; }
|
||||
.fc-mod table { width: 100%; border-collapse: collapse; margin-bottom: 10px; }
|
||||
.fc-mod table.bordered, .fc-mod table.bordered th, .fc-mod table.bordered td { border: 1px solid #000; }
|
||||
.fc-mod th { background-color: #1a5276; color: white; padding: 6px 8px; font-weight: bold; text-align: center; }
|
||||
.fc-mod th { background-color: <t t-out="primary"/>; color: white; padding: 6px 8px; font-weight: bold; text-align: center; }
|
||||
.fc-mod td { padding: 6px 8px; vertical-align: top; }
|
||||
.fc-mod .text-center { text-align: center; }
|
||||
.fc-mod .text-end { text-align: right; }
|
||||
.fc-mod .text-start { text-align: left; }
|
||||
.fc-mod .section-row { background-color: #f0f0f0; font-weight: bold; }
|
||||
.fc-mod h4 { color: #1a5276; margin: 0 0 15px 0; font-size: 16pt; }
|
||||
.fc-mod h4 { color: <t t-out="primary"/>; margin: 0 0 15px 0; font-size: 16pt; }
|
||||
.fc-mod .info-header { background-color: #eaf2f8; color: #333; }
|
||||
.fc-mod .mod-accent { color: #1a5276; font-weight: bold; }
|
||||
.fc-mod .highlight-box { border: 2px solid #1a5276; padding: 10px; margin: 10px 0; background-color: #eaf2f8; }
|
||||
.fc-mod .mod-accent { color: <t t-out="primary"/>; font-weight: bold; }
|
||||
.fc-mod .highlight-box { border: 2px solid <t t-out="primary"/>; padding: 10px; margin: 10px 0; background-color: #eaf2f8; }
|
||||
</style>
|
||||
|
||||
<div class="fc-mod">
|
||||
|
||||
@@ -12,12 +12,16 @@
|
||||
<t t-call="web.external_layout">
|
||||
<t t-set="doc" t-value="doc.with_context(lang=doc.partner_id.lang)"/>
|
||||
<t t-set="is_adp" t-value="doc.x_fc_is_adp_sale"/>
|
||||
|
||||
<!-- Brand colours from the company's document-layout config. -->
|
||||
<t t-set="_co" t-value="doc.company_id or env.company"/>
|
||||
<t t-set="primary" t-value="_co.primary_color or '#0066a1'"/>
|
||||
<t t-set="secondary" t-value="_co.secondary_color or '#90be6d'"/>
|
||||
|
||||
<style>
|
||||
.fc-pod { font-family: Arial, sans-serif; font-size: 10pt; }
|
||||
.fc-pod table { width: 100%; border-collapse: collapse; margin-bottom: 10px; }
|
||||
.fc-pod table.bordered, .fc-pod table.bordered th, .fc-pod table.bordered td { border: 1px solid #000; }
|
||||
.fc-pod th { background-color: #0066a1; color: white; padding: 6px 8px; font-weight: bold; font-size: 9pt; }
|
||||
.fc-pod th { background-color: <t t-out="primary"/>; color: white; padding: 6px 8px; font-weight: bold; font-size: 9pt; }
|
||||
.fc-pod td { padding: 5px 6px; vertical-align: top; font-size: 9pt; }
|
||||
.fc-pod .text-center { text-align: center; }
|
||||
.fc-pod .text-end { text-align: right; }
|
||||
@@ -25,7 +29,7 @@
|
||||
.fc-pod .adp-bg { background-color: #e3f2fd; }
|
||||
.fc-pod .section-row { background-color: #f0f0f0; font-weight: bold; }
|
||||
.fc-pod .note-row { font-style: italic; }
|
||||
.fc-pod h2 { color: #0066a1; margin: 8px 0; font-size: 16pt; }
|
||||
.fc-pod h2 { color: <t t-out="primary"/>; margin: 8px 0; font-size: 16pt; }
|
||||
.fc-pod .info-table td { padding: 6px 10px; font-size: 10pt; }
|
||||
.fc-pod .info-table th { background-color: #f5f5f5; color: #333; font-size: 9pt; padding: 5px 10px; }
|
||||
.fc-pod .signature-section { margin-top: 20px; border: 1px solid #000; padding: 15px; }
|
||||
|
||||
@@ -11,19 +11,23 @@
|
||||
<t t-foreach="docs" t-as="doc">
|
||||
<t t-call="web.external_layout">
|
||||
<t t-set="doc" t-value="doc.with_context(lang=doc.partner_id.lang)"/>
|
||||
|
||||
<!-- Brand colours from the company's document-layout config. -->
|
||||
<t t-set="_co" t-value="doc.company_id or env.company"/>
|
||||
<t t-set="primary" t-value="_co.primary_color or '#0066a1'"/>
|
||||
<t t-set="secondary" t-value="_co.secondary_color or '#90be6d'"/>
|
||||
|
||||
<style>
|
||||
.fc-pod { font-family: Arial, sans-serif; font-size: 10pt; }
|
||||
.fc-pod table { width: 100%; border-collapse: collapse; margin-bottom: 10px; }
|
||||
.fc-pod table.bordered, .fc-pod table.bordered th, .fc-pod table.bordered td { border: 1px solid #000; }
|
||||
.fc-pod th { background-color: #0066a1; color: white; padding: 6px 8px; font-weight: bold; font-size: 9pt; }
|
||||
.fc-pod th { background-color: <t t-out="primary"/>; color: white; padding: 6px 8px; font-weight: bold; font-size: 9pt; }
|
||||
.fc-pod td { padding: 5px 6px; vertical-align: top; font-size: 9pt; }
|
||||
.fc-pod .text-center { text-align: center; }
|
||||
.fc-pod .text-end { text-align: right; }
|
||||
.fc-pod .text-start { text-align: left; }
|
||||
.fc-pod .section-row { background-color: #f0f0f0; font-weight: bold; }
|
||||
.fc-pod .note-row { font-style: italic; }
|
||||
.fc-pod h2 { color: #0066a1; margin: 8px 0; font-size: 16pt; }
|
||||
.fc-pod h2 { color: <t t-out="primary"/>; margin: 8px 0; font-size: 16pt; }
|
||||
.fc-pod .info-table td { padding: 6px 10px; font-size: 10pt; }
|
||||
.fc-pod .info-table th { background-color: #f5f5f5; color: #333; font-size: 9pt; padding: 5px 10px; }
|
||||
.fc-pod .signature-section { margin-top: 20px; border: 1px solid #000; padding: 15px; }
|
||||
|
||||
@@ -11,19 +11,25 @@
|
||||
<t t-foreach="docs" t-as="doc">
|
||||
<t t-call="web.external_layout">
|
||||
<t t-set="doc" t-value="doc.with_context(lang=doc.partner_id.lang)"/>
|
||||
|
||||
<!-- Pickup uses the company's secondary brand colour (green by convention,
|
||||
distinct from the delivery report's primary). Falls back to legacy
|
||||
green if the company has not set a secondary colour. -->
|
||||
<t t-set="_co" t-value="doc.company_id or env.company"/>
|
||||
<t t-set="primary" t-value="_co.primary_color or '#0066a1'"/>
|
||||
<t t-set="secondary" t-value="_co.secondary_color or '#2e7d32'"/>
|
||||
|
||||
<style>
|
||||
.fc-pop { font-family: Arial, sans-serif; font-size: 10pt; }
|
||||
.fc-pop table { width: 100%; border-collapse: collapse; margin-bottom: 10px; }
|
||||
.fc-pop table.bordered, .fc-pop table.bordered th, .fc-pop table.bordered td { border: 1px solid #000; }
|
||||
.fc-pop th { background-color: #2e7d32; color: white; padding: 6px 8px; font-weight: bold; font-size: 9pt; }
|
||||
.fc-pop th { background-color: <t t-out="secondary"/>; color: white; padding: 6px 8px; font-weight: bold; font-size: 9pt; }
|
||||
.fc-pop td { padding: 5px 6px; vertical-align: top; font-size: 9pt; }
|
||||
.fc-pop .text-center { text-align: center; }
|
||||
.fc-pop .text-end { text-align: right; }
|
||||
.fc-pop .text-start { text-align: left; }
|
||||
.fc-pop .section-row { background-color: #f0f0f0; font-weight: bold; }
|
||||
.fc-pop .note-row { font-style: italic; }
|
||||
.fc-pop h2 { color: #2e7d32; margin: 8px 0; font-size: 16pt; }
|
||||
.fc-pop h2 { color: <t t-out="secondary"/>; margin: 8px 0; font-size: 16pt; }
|
||||
.fc-pop .info-table td { padding: 6px 10px; font-size: 10pt; }
|
||||
.fc-pop .info-table th { background-color: #f5f5f5; color: #333; font-size: 9pt; padding: 5px 10px; }
|
||||
.fc-pop .signature-section { margin-top: 20px; border: 1px solid #000; padding: 15px; }
|
||||
|
||||
@@ -5,6 +5,21 @@
|
||||
Part of the Fusion Claim Assistant product family.
|
||||
-->
|
||||
<odoo>
|
||||
<!--
|
||||
Colour convention used across fusion_claims reports (2026-04):
|
||||
Each report should set `primary` and `secondary` near the top of
|
||||
its template body, drawing from the company's brand colours
|
||||
configured via the document-layout wizard:
|
||||
|
||||
<t t-set="_co" t-value="doc.company_id or env.company"/>
|
||||
<t t-set="primary" t-value="_co.primary_color or '#0066a1'"/>
|
||||
<t t-set="secondary" t-value="_co.secondary_color or '#90be6d'"/>
|
||||
|
||||
Then reference `<t t-out="primary"/>` inside the <style> block and
|
||||
inline `style="..."` attributes. Fallbacks preserve legacy rendering
|
||||
on databases that have never set a colour.
|
||||
-->
|
||||
|
||||
<!-- Shared Report Header Template -->
|
||||
<template id="report_header_fusion_claims">
|
||||
<div class="fc-header">
|
||||
@@ -117,20 +132,21 @@
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<!-- Report Styles -->
|
||||
<!-- Report Styles (callers should set `primary` before t-call). -->
|
||||
<template id="report_styles_fusion_claims">
|
||||
<t t-set="primary" t-value="primary or ((company.primary_color if company else False) or '#0077b6')"/>
|
||||
<style>
|
||||
.fc-header { margin-bottom: 20px; }
|
||||
.fc-footer { margin-top: 20px; }
|
||||
.fc-table { width: 100%; border-collapse: collapse; }
|
||||
.fc-table th { background-color: #0077b6; color: white; padding: 8px; text-align: left; }
|
||||
.fc-table th { background-color: <t t-out="primary"/>; color: white; padding: 8px; text-align: left; }
|
||||
.fc-table td { padding: 6px; border-bottom: 1px solid #ddd; }
|
||||
.fc-table .section-header { background-color: #f0f0f0; font-weight: bold; }
|
||||
.fc-table .text-end { text-align: right; }
|
||||
.fc-totals { margin-top: 20px; }
|
||||
.fc-totals table { width: 300px; float: right; }
|
||||
.fc-totals td { padding: 4px 8px; }
|
||||
.fc-totals .total-row { font-weight: bold; background-color: #0077b6; color: white; }
|
||||
.fc-totals .total-row { font-weight: bold; background-color: <t t-out="primary"/>; color: white; }
|
||||
</style>
|
||||
</template>
|
||||
|
||||
|
||||
@@ -12,12 +12,16 @@
|
||||
<t t-call="web.external_layout">
|
||||
<t t-set="doc" t-value="doc.with_context(lang=doc.partner_id.lang)"/>
|
||||
<t t-set="is_adp" t-value="doc.x_fc_is_adp_sale"/>
|
||||
|
||||
<!-- Brand colours from the company's document-layout config. -->
|
||||
<t t-set="_co" t-value="doc.company_id or env.company"/>
|
||||
<t t-set="primary" t-value="_co.primary_color or '#0066a1'"/>
|
||||
<t t-set="secondary" t-value="_co.secondary_color or '#90be6d'"/>
|
||||
|
||||
<style>
|
||||
.fc-landscape { font-family: Arial, sans-serif; font-size: 11pt; }
|
||||
.fc-landscape table { width: 100%; border-collapse: collapse; margin-bottom: 12px; }
|
||||
.fc-landscape table.bordered, .fc-landscape table.bordered th, .fc-landscape table.bordered td { border: 1px solid #000; }
|
||||
.fc-landscape th { background-color: #0066a1; color: white; padding: 8px 10px; font-weight: bold; font-size: 10pt; }
|
||||
.fc-landscape th { background-color: <t t-out="primary"/>; color: white; padding: 8px 10px; font-weight: bold; font-size: 10pt; }
|
||||
.fc-landscape td { padding: 6px 8px; vertical-align: top; font-size: 10pt; }
|
||||
.fc-landscape .text-center { text-align: center; }
|
||||
.fc-landscape .text-end { text-align: right; }
|
||||
@@ -26,7 +30,7 @@
|
||||
.fc-landscape .client-bg { background-color: #fff3e0; }
|
||||
.fc-landscape .section-row { background-color: #f0f0f0; font-weight: bold; }
|
||||
.fc-landscape .note-row { font-style: italic; }
|
||||
.fc-landscape h2 { color: #0066a1; margin: 10px 0; font-size: 18pt; }
|
||||
.fc-landscape h2 { color: <t t-out="primary"/>; margin: 10px 0; font-size: 18pt; }
|
||||
.fc-landscape .info-table td { padding: 8px 12px; font-size: 11pt; }
|
||||
.fc-landscape .info-table th { background-color: #f5f5f5; color: #333; font-size: 10pt; padding: 6px 12px; }
|
||||
.fc-landscape .totals-table { border: 1px solid #000; }
|
||||
|
||||
@@ -11,12 +11,16 @@
|
||||
<t t-call="web.external_layout">
|
||||
<t t-set="doc" t-value="doc.with_context(lang=doc.partner_id.lang)"/>
|
||||
<t t-set="is_adp" t-value="doc.x_fc_is_adp_sale"/>
|
||||
|
||||
<!-- Brand colours from the company's document-layout config. -->
|
||||
<t t-set="_co" t-value="doc.company_id or env.company"/>
|
||||
<t t-set="primary" t-value="_co.primary_color or '#0066a1'"/>
|
||||
<t t-set="secondary" t-value="_co.secondary_color or '#90be6d'"/>
|
||||
|
||||
<style>
|
||||
.fc-report { font-family: Arial, sans-serif; font-size: 10pt; }
|
||||
.fc-report table { width: 100%; border-collapse: collapse; margin-bottom: 10px; }
|
||||
.fc-report table.bordered, .fc-report table.bordered th, .fc-report table.bordered td { border: 1px solid #000; }
|
||||
.fc-report th { background-color: #0066a1; color: white; padding: 6px 8px; font-weight: bold; text-align: center; }
|
||||
.fc-report th { background-color: <t t-out="primary"/>; color: white; padding: 6px 8px; font-weight: bold; text-align: center; }
|
||||
.fc-report td { padding: 6px 8px; vertical-align: top; }
|
||||
.fc-report .text-center { text-align: center; }
|
||||
.fc-report .text-end { text-align: right; }
|
||||
@@ -25,7 +29,7 @@
|
||||
.fc-report .client-bg { background-color: #fff3e0; }
|
||||
.fc-report .section-row { background-color: #f0f0f0; font-weight: bold; }
|
||||
.fc-report .note-row { font-style: italic; }
|
||||
.fc-report h4 { color: #0066a1; margin: 0 0 15px 0; font-size: 16pt; }
|
||||
.fc-report h4 { color: <t t-out="primary"/>; margin: 0 0 15px 0; font-size: 16pt; }
|
||||
.fc-report .totals-table { border: 1px solid #000; border-collapse: collapse; }
|
||||
.fc-report .totals-table td { border: 1px solid #000; padding: 6px 8px; }
|
||||
.fc-report .info-header { background-color: #f5f5f5; color: #333; }
|
||||
|
||||
@@ -1385,12 +1385,12 @@
|
||||
confirm="Reopen this cancelled application at the Quotation stage?"
|
||||
help="Return a cancelled application to Quotation"/>
|
||||
|
||||
<button name="action_adp_reopen_expired" type="object"
|
||||
string="Reopen" class="btn-info"
|
||||
icon="fa-refresh"
|
||||
invisible="not x_fc_is_adp_sale or x_fc_adp_application_status != 'expired'"
|
||||
confirm="Reopen this expired application at the Quotation stage?"
|
||||
help="Return an expired application to Quotation"/>
|
||||
<button name="action_adp_duplicate_for_reassessment" type="object"
|
||||
string="Create Reassessment Order" class="btn-primary"
|
||||
icon="fa-copy"
|
||||
invisible="not x_fc_is_adp_sale or x_fc_adp_application_status not in ('expired', 'cancelled')"
|
||||
confirm="Create a new sale order for reassessment? The old order stays as a historical record. The authorizer will need to complete a new assessment before resubmission."
|
||||
help="Create a new order linked to this one so the authorizer can reassess the client's needs"/>
|
||||
|
||||
<button name="action_adp_resubmit_from_denied" type="object"
|
||||
string="Resubmit" class="btn-primary"
|
||||
@@ -1604,11 +1604,11 @@
|
||||
icon="fa-refresh"
|
||||
invisible="x_fc_adp_application_status != 'cancelled'"
|
||||
confirm="Reopen this cancelled application at the Quotation stage?"/>
|
||||
<button name="action_adp_reopen_expired" type="object"
|
||||
string="Reopen" class="btn-info btn-sm me-1"
|
||||
icon="fa-refresh"
|
||||
invisible="x_fc_adp_application_status != 'expired'"
|
||||
confirm="Reopen this expired application at the Quotation stage?"/>
|
||||
<button name="action_adp_duplicate_for_reassessment" type="object"
|
||||
string="Create Reassessment Order" class="btn-primary btn-sm me-1"
|
||||
icon="fa-copy"
|
||||
invisible="x_fc_adp_application_status not in ('expired', 'cancelled')"
|
||||
confirm="Create a new sale order for reassessment? The authorizer will need to complete a new assessment before resubmission."/>
|
||||
<button name="action_adp_resubmit_from_denied" type="object"
|
||||
string="Resubmit" class="btn-primary btn-sm me-1"
|
||||
icon="fa-repeat"
|
||||
@@ -2635,10 +2635,134 @@
|
||||
context="{'group_by': 'x_fc_adp_application_status'}"/>
|
||||
<filter string="Client Type" name="group_client_type"
|
||||
context="{'group_by': 'x_fc_client_type'}"/>
|
||||
<filter string="Authorizer" name="group_authorizer"
|
||||
<filter string="Authorizer" name="group_authorizer"
|
||||
context="{'group_by': 'x_fc_authorizer_id'}"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- ===================================================================== -->
|
||||
<!-- SALE ORDER FORM: WSIB / Insurance / MDC / Hardship Case Details -->
|
||||
<!-- ===================================================================== -->
|
||||
<record id="view_order_form_fusion_claims_funder_workflows" model="ir.ui.view">
|
||||
<field name="name">sale.order.form.fusion.claims.funder.workflows</field>
|
||||
<field name="model">sale.order</field>
|
||||
<field name="inherit_id" ref="sale.view_order_form"/>
|
||||
<field name="priority">48</field>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//group[@name='sale_header']" position="after">
|
||||
<field name="x_fc_show_wsib_fields" invisible="1"/>
|
||||
<field name="x_fc_show_insurance_fields" invisible="1"/>
|
||||
<field name="x_fc_show_mdc_fields" invisible="1"/>
|
||||
<field name="x_fc_show_hardship_fields" invisible="1"/>
|
||||
<field name="x_fc_is_wsib_sale" invisible="1"/>
|
||||
<field name="x_fc_is_insurance_sale" invisible="1"/>
|
||||
<field name="x_fc_is_mdc_sale" invisible="1"/>
|
||||
<field name="x_fc_is_hardship_sale" invisible="1"/>
|
||||
|
||||
<!-- ================== WSIB ================== -->
|
||||
<group name="wsib_case_details" string="WSIB Case"
|
||||
invisible="not x_fc_show_wsib_fields">
|
||||
<group>
|
||||
<field name="x_fc_wsib_status" string="Status"
|
||||
required="x_fc_sale_type == 'wsib'"/>
|
||||
<field name="x_fc_wsib_claim_number"/>
|
||||
<field name="x_fc_wsib_adjudicator_name"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="x_fc_wsib_form_7_date"/>
|
||||
<field name="x_fc_wsib_approval_date"
|
||||
invisible="x_fc_wsib_status in ('quotation', 'assessment_scheduled', 'assessment_completed', 'documents_ready', 'submitted_to_wsib')"/>
|
||||
<field name="x_fc_wsib_approval_letter"
|
||||
filename="x_fc_wsib_approval_letter_filename"
|
||||
invisible="x_fc_wsib_status in ('quotation', 'assessment_scheduled', 'assessment_completed', 'documents_ready', 'submitted_to_wsib')"/>
|
||||
<field name="x_fc_wsib_approval_letter_filename" invisible="1"/>
|
||||
</group>
|
||||
</group>
|
||||
|
||||
<!-- ================== INSURANCE ================== -->
|
||||
<group name="insurance_case_details" string="Insurance Case"
|
||||
invisible="not x_fc_show_insurance_fields">
|
||||
<group>
|
||||
<field name="x_fc_insurance_status" string="Status"
|
||||
required="x_fc_sale_type == 'insurance'"/>
|
||||
<field name="x_fc_insurance_submission_mode"/>
|
||||
<field name="x_fc_insurance_company_id"/>
|
||||
<field name="x_fc_insurance_letter_source"/>
|
||||
<field name="x_fc_insurance_home_assessment_required"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="x_fc_insurance_policy_number"/>
|
||||
<field name="x_fc_insurance_claim_number"/>
|
||||
<field name="x_fc_insurance_pre_auth_amount"
|
||||
invisible="x_fc_insurance_submission_mode != 'direct_bill'"/>
|
||||
<field name="x_fc_insurance_pre_auth_expiry"
|
||||
invisible="x_fc_insurance_submission_mode != 'direct_bill'"/>
|
||||
<field name="x_fc_insurance_approval_letter"
|
||||
filename="x_fc_insurance_approval_letter_filename"
|
||||
invisible="x_fc_insurance_status in ('quotation', 'home_assessment_scheduled', 'home_assessment_completed', 'documents_ready', 'submitted_by_client', 'pre_auth_submitted')"/>
|
||||
<field name="x_fc_insurance_approval_letter_filename" invisible="1"/>
|
||||
</group>
|
||||
</group>
|
||||
|
||||
<!-- ================== MDC ================== -->
|
||||
<group name="mdc_case_details" string="Muscular Dystrophy Case"
|
||||
invisible="not x_fc_show_mdc_fields">
|
||||
<group>
|
||||
<field name="x_fc_mdc_status" string="Status"
|
||||
required="x_fc_sale_type == 'muscular_dystrophy'"/>
|
||||
<field name="x_fc_mdc_client_id_number"/>
|
||||
<field name="x_fc_mdc_enrollment_verified"/>
|
||||
<field name="x_fc_mdc_enrollment_verified_date"
|
||||
invisible="not x_fc_mdc_enrollment_verified"/>
|
||||
<field name="x_fc_mdc_letter_source"/>
|
||||
<field name="x_fc_mdc_submitted_by"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="x_fc_mdc_po_number"
|
||||
invisible="x_fc_mdc_status in ('quotation', 'awaiting_ot_letter', 'documents_ready', 'submitted_to_mdc')"/>
|
||||
<field name="x_fc_mdc_po_date"
|
||||
invisible="x_fc_mdc_status in ('quotation', 'awaiting_ot_letter', 'documents_ready', 'submitted_to_mdc')"/>
|
||||
<field name="x_fc_mdc_po_amount"
|
||||
invisible="x_fc_mdc_status in ('quotation', 'awaiting_ot_letter', 'documents_ready', 'submitted_to_mdc')"/>
|
||||
<field name="x_fc_mdc_payment_due_date" readonly="1"
|
||||
invisible="not x_fc_mdc_po_date"/>
|
||||
<field name="x_fc_mdc_po_document"
|
||||
filename="x_fc_mdc_po_document_filename"
|
||||
invisible="x_fc_mdc_status in ('quotation', 'awaiting_ot_letter', 'documents_ready', 'submitted_to_mdc')"/>
|
||||
<field name="x_fc_mdc_po_document_filename" invisible="1"/>
|
||||
</group>
|
||||
</group>
|
||||
|
||||
<!-- ================== HARDSHIP ================== -->
|
||||
<group name="hardship_case_details" string="Hardship Funding Case"
|
||||
invisible="not x_fc_show_hardship_fields">
|
||||
<group>
|
||||
<field name="x_fc_hardship_status" string="Status"
|
||||
required="x_fc_sale_type == 'hardship'"/>
|
||||
<field name="x_fc_hardship_funder_id"/>
|
||||
<field name="x_fc_hardship_submitted_by"/>
|
||||
<field name="x_fc_hardship_pre_assessment_source"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="x_fc_hardship_interview_date"
|
||||
invisible="x_fc_hardship_status in ('quotation', 'awaiting_pre_assessment', 'pre_assessment_complete', 'application_package_ready', 'submitted_to_hf')"/>
|
||||
<field name="x_fc_hardship_approval_date"
|
||||
invisible="x_fc_hardship_status in ('quotation', 'awaiting_pre_assessment', 'pre_assessment_complete', 'application_package_ready', 'submitted_to_hf', 'eligibility_interview')"/>
|
||||
<field name="x_fc_hardship_approval_received_via"
|
||||
invisible="x_fc_hardship_status in ('quotation', 'awaiting_pre_assessment', 'pre_assessment_complete', 'application_package_ready', 'submitted_to_hf', 'eligibility_interview')"/>
|
||||
<field name="x_fc_hardship_approval_amount"
|
||||
invisible="x_fc_hardship_status in ('quotation', 'awaiting_pre_assessment', 'pre_assessment_complete', 'application_package_ready', 'submitted_to_hf', 'eligibility_interview')"/>
|
||||
<field name="x_fc_hardship_client_portion"
|
||||
invisible="x_fc_hardship_status in ('quotation', 'awaiting_pre_assessment', 'pre_assessment_complete', 'application_package_ready', 'submitted_to_hf', 'eligibility_interview')"/>
|
||||
<field name="x_fc_hardship_approval_letter"
|
||||
filename="x_fc_hardship_approval_letter_filename"
|
||||
invisible="x_fc_hardship_status in ('quotation', 'awaiting_pre_assessment', 'pre_assessment_complete', 'application_package_ready', 'submitted_to_hf', 'eligibility_interview')"/>
|
||||
<field name="x_fc_hardship_approval_letter_filename" invisible="1"/>
|
||||
</group>
|
||||
</group>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
|
||||
Reference in New Issue
Block a user