diff --git a/fusion_portal/controllers/portal_main.py b/fusion_portal/controllers/portal_main.py index b5f65b51..0563e099 100644 --- a/fusion_portal/controllers/portal_main.py +++ b/fusion_portal/controllers/portal_main.py @@ -2493,7 +2493,14 @@ class AuthorizerPortal(CustomerPortal): assessment_type = post.get('assessment_type') if not assessment_type: return {'success': False, 'error': 'Assessment type is required'} - + + # Funding source drives the downstream sale-order workflow; coerce + # anything unexpected to private pay (mirrors /book-assessment). + _funding_keys = dict(Assessment._fields['x_fc_funding_source'].selection) + funding_source = post.get('funding_source') or 'direct_private' + if funding_source not in _funding_keys: + funding_source = 'direct_private' + # Build assessment values vals = { 'assessment_type': assessment_type, @@ -2507,7 +2514,7 @@ class AuthorizerPortal(CustomerPortal): 'client_address_postal': post.get('client_address_postal', '').strip(), 'client_phone': post.get('client_phone', '').strip(), 'client_email': post.get('client_email', '').strip(), - 'x_fc_funding_source': post.get('funding_source') or 'direct_private', + 'x_fc_funding_source': funding_source, 'notes': post.get('notes', '').strip(), }