5.8 KiB
5.8 KiB
Dealer Claim Management - Implementation Summary
✅ Completed Implementation
1. Database Migrations (4 files)
- ✅
20251210-add-workflow-type-support.ts- Addsworkflow_typeandtemplate_idtoworkflow_requests - ✅
20251210-enhance-workflow-templates.ts- Enhancesworkflow_templateswith form configuration - ✅
20251210-add-template-id-foreign-key.ts- Adds FK constraint fortemplate_id - ✅
20251210-create-dealer-claim-tables.ts- Creates dealer claim tables:dealer_claim_details- Main claim informationdealer_proposal_details- Step 1: Dealer proposaldealer_completion_details- Step 5: Completion documents
2. Models (5 files)
- ✅ Updated
WorkflowRequest- AddedworkflowTypeandtemplateIdfields - ✅ Created
DealerClaimDetails- Main claim information model - ✅ Created
DealerProposalDetails- Proposal submission model - ✅ Created
DealerCompletionDetails- Completion documents model - ✅ Created
WorkflowTemplate- Template configuration model
3. Services (3 files)
- ✅ Created
TemplateFieldResolver- Resolves dynamic user field references - ✅ Created
EnhancedTemplateService- Template form management - ✅ Created
DealerClaimService- Claim-specific business logic:createClaimRequest()- Create new claim with 8-step workflowgetClaimDetails()- Get complete claim informationsubmitDealerProposal()- Step 1: Dealer proposal submissionsubmitCompletionDocuments()- Step 5: Completion submissionupdateIODetails()- Step 3: IO budget blockingupdateEInvoiceDetails()- Step 7: E-Invoice generationupdateCreditNoteDetails()- Step 8: Credit note issuance
4. Controllers & Routes (2 files)
- ✅ Created
DealerClaimController- API endpoints for claim operations - ✅ Created
dealerClaim.routes.ts- Route definitions - ✅ Registered routes in
routes/index.ts
5. Frontend Utilities (1 file)
- ✅ Created
claimRequestUtils.ts- Utility functions for detecting claim requests
📋 API Endpoints Created
Dealer Claim Management
POST /api/v1/dealer-claims- Create claim requestGET /api/v1/dealer-claims/:requestId- Get claim detailsPOST /api/v1/dealer-claims/:requestId/proposal- Submit dealer proposal (Step 1)POST /api/v1/dealer-claims/:requestId/completion- Submit completion (Step 5)PUT /api/v1/dealer-claims/:requestId/io- Update IO details (Step 3)PUT /api/v1/dealer-claims/:requestId/e-invoice- Update e-invoice (Step 7)PUT /api/v1/dealer-claims/:requestId/credit-note- Update credit note (Step 8)
🔄 8-Step Workflow Implementation
The system automatically creates 8 approval levels:
- Dealer Proposal Submission (72h) - Dealer submits proposal
- Requestor Evaluation (48h) - Initiator reviews and confirms
- Department Lead Approval (72h) - Dept lead approves and blocks IO
- Activity Creation (1h, Auto) - System creates activity record
- Dealer Completion Documents (120h) - Dealer submits completion docs
- Requestor Claim Approval (48h) - Initiator approves claim
- E-Invoice Generation (1h, Auto) - System generates e-invoice via DMS
- Credit Note Confirmation (48h) - Finance confirms credit note
🎯 Key Features
-
Unified Request System
- All requests use same
workflow_requeststable - Identified by
workflowType: 'CLAIM_MANAGEMENT' - Automatically appears in "My Requests" and "Open Requests"
- All requests use same
-
Template-Specific Data Storage
- Claim data stored in extension tables
- Linked via
request_idforeign key - Supports future templates with their own tables
-
Dynamic User References
- Auto-populate fields from initiator, dealer, approvers
- Supports team lead, department lead references
- Configurable per template
-
File Upload Integration
- Uses GCS with local fallback
- Organized by request number and file type
- Supports proposal documents and completion files
📝 Next Steps
Backend
- ⏳ Add SAP integration for IO validation and budget blocking
- ⏳ Add DMS integration for e-invoice and credit note generation
- ⏳ Create template management API endpoints
- ⏳ Add validation for dealer codes (SAP integration)
Frontend
- ⏳ Create
claimDataMapper.tsutility functions - ⏳ Update
RequestDetail.tsxto conditionally render claim components - ⏳ Update API services to include
workflowType - ⏳ Create
dealerClaimApi.tsservice - ⏳ Update request cards to show workflow type
🚀 Running the Implementation
1. Run Migrations
cd Re_Backend
npm run migrate
2. Test API Endpoints
# Create claim request
POST /api/v1/dealer-claims
{
"activityName": "Diwali Campaign",
"activityType": "Marketing Activity",
"dealerCode": "RE-MH-001",
"dealerName": "Royal Motors Mumbai",
"location": "Mumbai",
"requestDescription": "Marketing campaign details..."
}
# Submit proposal
POST /api/v1/dealer-claims/:requestId/proposal
FormData with proposalDocument file and JSON data
📊 Database Structure
workflow_requests (common)
├── workflow_type: 'CLAIM_MANAGEMENT'
└── template_id: (nullable)
dealer_claim_details (claim-specific)
└── request_id → workflow_requests
dealer_proposal_details (Step 1)
└── request_id → workflow_requests
dealer_completion_details (Step 5)
└── request_id → workflow_requests
approval_levels (8 steps)
└── request_id → workflow_requests
✅ Testing Checklist
- Run migrations successfully
- Create claim request via API
- Submit dealer proposal
- Update IO details
- Submit completion documents
- Verify request appears in "My Requests"
- Verify request appears in "Open Requests"
- Test file uploads (GCS and local fallback)
- Test workflow progression through 8 steps