160 lines
5.8 KiB
Markdown
160 lines
5.8 KiB
Markdown
# Dealer Claim Management - Implementation Summary
|
|
|
|
## ✅ Completed Implementation
|
|
|
|
### 1. Database Migrations (4 files)
|
|
- ✅ `20251210-add-workflow-type-support.ts` - Adds `workflow_type` and `template_id` to `workflow_requests`
|
|
- ✅ `20251210-enhance-workflow-templates.ts` - Enhances `workflow_templates` with form configuration
|
|
- ✅ `20251210-add-template-id-foreign-key.ts` - Adds FK constraint for `template_id`
|
|
- ✅ `20251210-create-dealer-claim-tables.ts` - Creates dealer claim tables:
|
|
- `dealer_claim_details` - Main claim information
|
|
- `dealer_proposal_details` - Step 1: Dealer proposal
|
|
- `dealer_completion_details` - Step 5: Completion documents
|
|
|
|
### 2. Models (5 files)
|
|
- ✅ Updated `WorkflowRequest` - Added `workflowType` and `templateId` fields
|
|
- ✅ 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 workflow
|
|
- `getClaimDetails()` - Get complete claim information
|
|
- `submitDealerProposal()` - Step 1: Dealer proposal submission
|
|
- `submitCompletionDocuments()` - Step 5: Completion submission
|
|
- `updateIODetails()` - Step 3: IO budget blocking
|
|
- `updateEInvoiceDetails()` - Step 7: E-Invoice generation
|
|
- `updateCreditNoteDetails()` - 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 request
|
|
- `GET /api/v1/dealer-claims/:requestId` - Get claim details
|
|
- `POST /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:
|
|
|
|
1. **Dealer Proposal Submission** (72h) - Dealer submits proposal
|
|
2. **Requestor Evaluation** (48h) - Initiator reviews and confirms
|
|
3. **Department Lead Approval** (72h) - Dept lead approves and blocks IO
|
|
4. **Activity Creation** (1h, Auto) - System creates activity record
|
|
5. **Dealer Completion Documents** (120h) - Dealer submits completion docs
|
|
6. **Requestor Claim Approval** (48h) - Initiator approves claim
|
|
7. **E-Invoice Generation** (1h, Auto) - System generates e-invoice via DMS
|
|
8. **Credit Note Confirmation** (48h) - Finance confirms credit note
|
|
|
|
## 🎯 Key Features
|
|
|
|
1. **Unified Request System**
|
|
- All requests use same `workflow_requests` table
|
|
- Identified by `workflowType: 'CLAIM_MANAGEMENT'`
|
|
- Automatically appears in "My Requests" and "Open Requests"
|
|
|
|
2. **Template-Specific Data Storage**
|
|
- Claim data stored in extension tables
|
|
- Linked via `request_id` foreign key
|
|
- Supports future templates with their own tables
|
|
|
|
3. **Dynamic User References**
|
|
- Auto-populate fields from initiator, dealer, approvers
|
|
- Supports team lead, department lead references
|
|
- Configurable per template
|
|
|
|
4. **File Upload Integration**
|
|
- Uses GCS with local fallback
|
|
- Organized by request number and file type
|
|
- Supports proposal documents and completion files
|
|
|
|
## 📝 Next Steps
|
|
|
|
### Backend
|
|
1. ⏳ Add SAP integration for IO validation and budget blocking
|
|
2. ⏳ Add DMS integration for e-invoice and credit note generation
|
|
3. ⏳ Create template management API endpoints
|
|
4. ⏳ Add validation for dealer codes (SAP integration)
|
|
|
|
### Frontend
|
|
1. ⏳ Create `claimDataMapper.ts` utility functions
|
|
2. ⏳ Update `RequestDetail.tsx` to conditionally render claim components
|
|
3. ⏳ Update API services to include `workflowType`
|
|
4. ⏳ Create `dealerClaimApi.ts` service
|
|
5. ⏳ Update request cards to show workflow type
|
|
|
|
## 🚀 Running the Implementation
|
|
|
|
### 1. Run Migrations
|
|
```bash
|
|
cd Re_Backend
|
|
npm run migrate
|
|
```
|
|
|
|
### 2. Test API Endpoints
|
|
```bash
|
|
# 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
|
|
|