feat(fusion_portal): Phase 1b - Assessment Visit model + accessibility funding grouping
Adds fusion.assessment.visit: the hub that bundles a home visit's assessments and, on completion, groups its ACCESSIBILITY assessments by funding workflow (x_fc_sale_type) and creates ONE draft sale order per workflow, reusing the existing MOD/ODSP/etc. pipelines + the chatter-note pattern. ADP assessments keep one-SO-each for now (ADP multi-device grouping is Phase 2). - New model + sequence (VISIT/YYYY/NNNN) + ACL + backend list/form/menu. - visit_id added to fusion.assessment, fusion.accessibility.assessment, sale.order. - action_complete_visit() group-and-routes; MOD $15k cap + income-threshold flag surfaced (informational, no auto-enforcement). NOT YET: completion-email consolidation; ADP multi-device (Phase 2); portal add-as-you-go workspace (Phase 3). Untested locally (Enterprise knowledge dep) - to be verified on a westin-v19 clone before prod. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -53,6 +53,17 @@ class SaleOrder(models.Model):
|
||||
'sale order — stair lift, VPL, ceiling lift, ramp, bathroom mod, '
|
||||
'or tub cutout visits.',
|
||||
)
|
||||
|
||||
# Link to the assessment visit (one visit -> one SO per funding workflow).
|
||||
visit_id = fields.Many2one(
|
||||
'fusion.assessment.visit',
|
||||
string='Assessment Visit',
|
||||
readonly=True,
|
||||
index=True,
|
||||
help='The home visit this sale order was generated from. A visit '
|
||||
'produces one sale order per funding workflow (ADP / MOD / ODSP / '
|
||||
'private / ...).',
|
||||
)
|
||||
|
||||
# Authorizer helper field (consolidates multiple possible fields)
|
||||
portal_authorizer_id = fields.Many2one(
|
||||
|
||||
Reference in New Issue
Block a user