feat(data): reconcile subcontractor<->project linkage (subcontractorIds + teamMembers from tasks)
This commit is contained in:
+16
-9
@@ -2129,7 +2129,7 @@ const MOCK_PROJECTS = [
|
||||
propertyId: 'P-2602',
|
||||
address: '2604 Dunwick Dr, Plano, TX 75023',
|
||||
contractorId: 'con_001',
|
||||
subcontractorIds: ['sub_001'],
|
||||
subcontractorIds: ['sub_001', 'sub_002'],
|
||||
projectType: 'Roof Replacement',
|
||||
status: 'active',
|
||||
phase: 'Structural',
|
||||
@@ -2200,6 +2200,7 @@ const MOCK_PROJECTS = [
|
||||
{ id: 'jtm_001_1', userId: 'p1', name: 'Jesus Gonzales', email: 'jesus@lynkeduppro.com', orgRole: 'W2_EMPLOYEE', jobRole: 'Sales Rep', status: 'active', commissionEnabled: true, jobCommission: { type: 'percent_gross', rate: 12 } },
|
||||
{ id: 'jtm_001_2', userId: 'con_001', name: 'Mike Brennan', email: 'mike@texasbuilders.com', orgRole: 'CONTRACTOR', jobRole: 'Lead Installer', status: 'active', commissionEnabled: false, jobCommission: null },
|
||||
{ id: 'jtm_001_3', userId: 'sub_001', name: 'Carlos Mendoza', email: 'carlos@electricpro.com', orgRole: 'SUBCONTRACTOR', jobRole: 'Subcontractor', status: 'active', commissionEnabled: false, jobCommission: null },
|
||||
{ id: 'jtm_001_sub_002', userId: 'sub_002', name: 'Maya Patel', email: 'maya@skylineroof.com', orgRole: 'SUBCONTRACTOR', jobRole: 'Subcontractor', status: 'active', commissionEnabled: false, jobCommission: null },
|
||||
{ id: 'jtm_001_4', userId: 'e1', name: 'Cody Tatum', email: 'agent1@plano.com', orgRole: 'FIELD_AGENT', jobRole: 'Canvasser', status: 'active', commissionEnabled: true, jobCommission: null },
|
||||
{ id: 'jtm_001_5', userId: 'p2', name: 'Sarah Calloway', email: 'sarah@lynkeduppro.com', orgRole: '1099_SALES_REP', jobRole: 'Estimator', status: 'pending', commissionEnabled: true, jobCommission: null }
|
||||
],
|
||||
@@ -2389,7 +2390,7 @@ const MOCK_PROJECTS = [
|
||||
propertyId: 'P-2600',
|
||||
address: '2612 Dunwick Dr, Plano, TX 75023',
|
||||
contractorId: 'con_001',
|
||||
subcontractorIds: ['sub_001'],
|
||||
subcontractorIds: ['sub_001', 'sub_002'],
|
||||
projectType: 'Interior Renovation',
|
||||
status: 'active',
|
||||
phase: 'Finishing',
|
||||
@@ -2468,7 +2469,9 @@ const MOCK_PROJECTS = [
|
||||
teamMembers: [
|
||||
{ id: 'jtm_004_1', userId: 'p1', name: 'Jesus Gonzales', email: 'jesus@lynkeduppro.com', orgRole: 'W2_EMPLOYEE', jobRole: 'Project Manager', status: 'active', commissionEnabled: true, jobCommission: { type: 'percent_net', rate: 8 } },
|
||||
{ id: 'jtm_004_2', userId: 'con_001', name: 'Mike Brennan', email: 'mike@texasbuilders.com', orgRole: 'CONTRACTOR', jobRole: 'Lead Installer', status: 'active', commissionEnabled: false, jobCommission: null },
|
||||
{ id: 'jtm_004_3', userId: 'e2', name: 'Hannah Reyes', email: 'agent2@plano.com', orgRole: 'FIELD_AGENT', jobRole: 'Inspector', status: 'active', commissionEnabled: false, jobCommission: null }
|
||||
{ id: 'jtm_004_3', userId: 'e2', name: 'Hannah Reyes', email: 'agent2@plano.com', orgRole: 'FIELD_AGENT', jobRole: 'Inspector', status: 'active', commissionEnabled: false, jobCommission: null },
|
||||
{ id: 'jtm_004_sub_001', userId: 'sub_001', name: 'Carlos Mendoza', email: 'carlos@electricpro.com', orgRole: 'SUBCONTRACTOR', jobRole: 'Subcontractor', status: 'active', commissionEnabled: false, jobCommission: null },
|
||||
{ id: 'jtm_004_sub_002', userId: 'sub_002', name: 'Maya Patel', email: 'maya@skylineroof.com', orgRole: 'SUBCONTRACTOR', jobRole: 'Subcontractor', status: 'active', commissionEnabled: false, jobCommission: null }
|
||||
],
|
||||
lifecycleStage: 'Work Complete — Awaiting Inspection',
|
||||
completionPercentage: 80,
|
||||
@@ -2571,7 +2574,7 @@ const MOCK_PROJECTS = [
|
||||
propertyId: 'P-2625',
|
||||
address: '3913 Arizona Pl, Plano, TX 75023',
|
||||
contractorId: 'con_001',
|
||||
subcontractorIds: ['sub_001'],
|
||||
subcontractorIds: ['sub_001', 'sub_003'],
|
||||
projectType: 'Electrical Upgrade',
|
||||
status: 'active',
|
||||
phase: 'MEP',
|
||||
@@ -2617,7 +2620,8 @@ const MOCK_PROJECTS = [
|
||||
],
|
||||
teamMembers: [
|
||||
{ id: 'jtm_006_1', userId: 'p1', name: 'Jesus Gonzales', email: 'jesus@lynkeduppro.com', orgRole: 'W2_EMPLOYEE', jobRole: 'Sales Rep', status: 'active', commissionEnabled: true, jobCommission: null },
|
||||
{ id: 'jtm_006_2', userId: 'sub_001', name: 'Carlos Mendoza', email: 'carlos@electricpro.com', orgRole: 'SUBCONTRACTOR', jobRole: 'Lead Installer', status: 'active', commissionEnabled: false, jobCommission: null }
|
||||
{ id: 'jtm_006_2', userId: 'sub_001', name: 'Carlos Mendoza', email: 'carlos@electricpro.com', orgRole: 'SUBCONTRACTOR', jobRole: 'Lead Installer', status: 'active', commissionEnabled: false, jobCommission: null },
|
||||
{ id: 'jtm_006_sub_003', userId: 'sub_003', name: 'Dwayne Boudreaux', email: 'dwayne@hollandpaint.com', orgRole: 'SUBCONTRACTOR', jobRole: 'Subcontractor', status: 'active', commissionEnabled: false, jobCommission: null }
|
||||
],
|
||||
lifecycleStage: 'Contract Signed',
|
||||
completionPercentage: 22,
|
||||
@@ -2640,7 +2644,7 @@ const MOCK_PROJECTS = [
|
||||
propertyId: 'P-2640',
|
||||
address: '6909 Custer Rd, Plano, TX 75023',
|
||||
contractorId: 'con_001',
|
||||
subcontractorIds: ['sub_001'],
|
||||
subcontractorIds: ['sub_001', 'sub_002'],
|
||||
projectType: 'Commercial Roof Replacement',
|
||||
status: 'active',
|
||||
demoScenario: 7,
|
||||
@@ -2729,7 +2733,8 @@ const MOCK_PROJECTS = [
|
||||
{ id: 'jtm_007_1', userId: 'p1', name: 'Jesus Gonzales', email: 'jesus@lynkeduppro.com', orgRole: 'W2_EMPLOYEE', jobRole: 'Project Manager', status: 'active', commissionEnabled: true, jobCommission: { type: 'percent_gross', rate: 5 } },
|
||||
{ id: 'jtm_007_2', userId: 'con_001', name: 'Mike Brennan', email: 'mike@texasbuilders.com', orgRole: 'CONTRACTOR', jobRole: 'Lead Installer', status: 'active', commissionEnabled: false, jobCommission: null },
|
||||
{ id: 'jtm_007_3', userId: 'sub_001', name: 'Carlos Mendoza', email: 'carlos@electricpro.com', orgRole: 'SUBCONTRACTOR', jobRole: 'Subcontractor', status: 'active', commissionEnabled: false, jobCommission: null },
|
||||
{ id: 'jtm_007_4', userId: 'e4', name: 'Shelby Greer', email: 'agent4@plano.com', orgRole: 'FIELD_AGENT', jobRole: 'Canvasser', status: 'active', commissionEnabled: true, jobCommission: null }
|
||||
{ id: 'jtm_007_4', userId: 'e4', name: 'Shelby Greer', email: 'agent4@plano.com', orgRole: 'FIELD_AGENT', jobRole: 'Canvasser', status: 'active', commissionEnabled: true, jobCommission: null },
|
||||
{ id: 'jtm_007_sub_002', userId: 'sub_002', name: 'Maya Patel', email: 'maya@skylineroof.com', orgRole: 'SUBCONTRACTOR', jobRole: 'Subcontractor', status: 'active', commissionEnabled: false, jobCommission: null }
|
||||
],
|
||||
lifecycleStage: 'Work In Progress',
|
||||
completionPercentage: 32,
|
||||
@@ -2841,7 +2846,7 @@ const MOCK_PROJECTS = [
|
||||
propertyId: 'P-2642',
|
||||
address: '7224 Independence Pkwy, Plano, TX 75025',
|
||||
contractorId: 'con_001',
|
||||
subcontractorIds: ['sub_001'],
|
||||
subcontractorIds: ['sub_001', 'sub_002'],
|
||||
projectType: 'Window Replacement',
|
||||
status: 'active',
|
||||
budget: 42000,
|
||||
@@ -2890,7 +2895,9 @@ const MOCK_PROJECTS = [
|
||||
],
|
||||
teamMembers: [
|
||||
{ id: 'jtm_009_1', userId: 'p1', name: 'Jesus Gonzales', email: 'jesus@lynkeduppro.com', orgRole: 'W2_EMPLOYEE', jobRole: 'Sales Rep', status: 'active', commissionEnabled: true, jobCommission: null },
|
||||
{ id: 'jtm_009_2', userId: 'e2', name: 'Hannah Reyes', email: 'agent2@plano.com', orgRole: 'FIELD_AGENT', jobRole: 'Inspector', status: 'active', commissionEnabled: false, jobCommission: null }
|
||||
{ id: 'jtm_009_2', userId: 'e2', name: 'Hannah Reyes', email: 'agent2@plano.com', orgRole: 'FIELD_AGENT', jobRole: 'Inspector', status: 'active', commissionEnabled: false, jobCommission: null },
|
||||
{ id: 'jtm_009_sub_001', userId: 'sub_001', name: 'Carlos Mendoza', email: 'carlos@electricpro.com', orgRole: 'SUBCONTRACTOR', jobRole: 'Subcontractor', status: 'active', commissionEnabled: false, jobCommission: null },
|
||||
{ id: 'jtm_009_sub_002', userId: 'sub_002', name: 'Maya Patel', email: 'maya@skylineroof.com', orgRole: 'SUBCONTRACTOR', jobRole: 'Subcontractor', status: 'active', commissionEnabled: false, jobCommission: null }
|
||||
],
|
||||
lifecycleStage: 'Work In Progress',
|
||||
stageHistory: [
|
||||
|
||||
Reference in New Issue
Block a user