182 lines
5.6 KiB
Markdown
182 lines
5.6 KiB
Markdown
# Dealer Claim Management - Fresh Start Guide
|
|
|
|
## Overview
|
|
|
|
This guide helps you start fresh with the dealer claim management system by cleaning up all existing data and ensuring the database structure is ready for new requests.
|
|
|
|
## Prerequisites
|
|
|
|
1. **Database Migrations**: Ensure all migrations are up to date, including the new tables:
|
|
- `internal_orders` (for IO details)
|
|
- `claim_budget_tracking` (for comprehensive budget tracking)
|
|
|
|
2. **Backup** (Optional but Recommended):
|
|
- If you have important data, backup your database before running cleanup
|
|
|
|
## Fresh Start Steps
|
|
|
|
### Step 1: Run Database Migrations
|
|
|
|
Ensure all new tables are created:
|
|
|
|
```bash
|
|
cd Re_Backend
|
|
npm run migrate
|
|
```
|
|
|
|
This will create:
|
|
- ✅ `internal_orders` table (for IO details with `ioRemark`)
|
|
- ✅ `claim_budget_tracking` table (for comprehensive budget tracking)
|
|
- ✅ All other dealer claim related tables
|
|
|
|
### Step 2: Clean Up All Existing Dealer Claims
|
|
|
|
Run the cleanup script to remove all existing CLAIM_MANAGEMENT requests:
|
|
|
|
```bash
|
|
npm run cleanup:dealer-claims
|
|
```
|
|
|
|
**What this script does:**
|
|
- Finds all workflow requests with `workflow_type = 'CLAIM_MANAGEMENT'`
|
|
- Deletes all related data from:
|
|
- `claim_budget_tracking`
|
|
- `internal_orders`
|
|
- `dealer_proposal_cost_items`
|
|
- `dealer_completion_details`
|
|
- `dealer_proposal_details`
|
|
- `dealer_claim_details`
|
|
- `activities`
|
|
- `work_notes`
|
|
- `documents`
|
|
- `participants`
|
|
- `approval_levels`
|
|
- `subscriptions`
|
|
- `notifications`
|
|
- `request_summaries`
|
|
- `shared_summaries`
|
|
- `conclusion_remarks`
|
|
- `tat_alerts`
|
|
- `workflow_requests` (finally)
|
|
|
|
**Note:** This script uses a database transaction, so if any step fails, all changes will be rolled back.
|
|
|
|
### Step 3: Verify Cleanup
|
|
|
|
After running the cleanup script, verify that no CLAIM_MANAGEMENT requests remain:
|
|
|
|
```sql
|
|
SELECT COUNT(*) FROM workflow_requests WHERE workflow_type = 'CLAIM_MANAGEMENT';
|
|
-- Should return 0
|
|
```
|
|
|
|
### Step 4: Seed Dealers (If Needed)
|
|
|
|
If you need to seed dealer users:
|
|
|
|
```bash
|
|
npm run seed:dealers
|
|
```
|
|
|
|
## Database Structure Summary
|
|
|
|
### New Tables Created
|
|
|
|
1. **`internal_orders`** - Dedicated table for IO (Internal Order) details
|
|
- `io_id` (PK)
|
|
- `request_id` (FK, unique)
|
|
- `io_number`
|
|
- `io_remark` ✅ (dedicated field, not in comments)
|
|
- `io_available_balance`
|
|
- `io_blocked_amount`
|
|
- `io_remaining_balance`
|
|
- `organized_by` (FK to users)
|
|
- `organized_at`
|
|
- `status` (PENDING, BLOCKED, RELEASED, CANCELLED)
|
|
|
|
2. **`claim_budget_tracking`** - Comprehensive budget tracking
|
|
- `budget_id` (PK)
|
|
- `request_id` (FK, unique)
|
|
- `initial_estimated_budget`
|
|
- `proposal_estimated_budget`
|
|
- `approved_budget`
|
|
- `io_blocked_amount`
|
|
- `closed_expenses`
|
|
- `final_claim_amount`
|
|
- `credit_note_amount`
|
|
- `budget_status` (DRAFT, PROPOSED, APPROVED, BLOCKED, CLOSED, SETTLED)
|
|
- `variance_amount` & `variance_percentage`
|
|
- Audit fields (last_modified_by, last_modified_at, modification_reason)
|
|
|
|
### Existing Tables (Enhanced)
|
|
|
|
- `dealer_claim_details` - Main claim information
|
|
- `dealer_proposal_details` - Step 1: Dealer proposal
|
|
- `dealer_proposal_cost_items` - Cost breakdown items
|
|
- `dealer_completion_details` - Step 5: Completion documents
|
|
|
|
## What's New
|
|
|
|
### 1. IO Details in Separate Table
|
|
- ✅ IO remark is now stored in `internal_orders.io_remark` (not parsed from comments)
|
|
- ✅ Tracks who organized the IO (`organized_by`, `organized_at`)
|
|
- ✅ Better data integrity and querying
|
|
|
|
### 2. Comprehensive Budget Tracking
|
|
- ✅ All budget-related values in one place
|
|
- ✅ Tracks budget lifecycle (DRAFT → PROPOSED → APPROVED → BLOCKED → CLOSED → SETTLED)
|
|
- ✅ Calculates variance automatically
|
|
- ✅ Audit trail for budget modifications
|
|
|
|
### 3. Proper Data Structure
|
|
- ✅ Estimated budget: `claimDetails.estimatedBudget` or `proposalDetails.totalEstimatedBudget`
|
|
- ✅ Claim amount: `completionDetails.totalClosedExpenses` or `budgetTracking.finalClaimAmount`
|
|
- ✅ IO details: `internalOrder` table (separate, dedicated)
|
|
- ✅ E-Invoice: `claimDetails.eInvoiceNumber`, `claimDetails.eInvoiceDate`
|
|
- ✅ Credit Note: `claimDetails.creditNoteNumber`, `claimDetails.creditNoteAmount`
|
|
|
|
## Next Steps After Cleanup
|
|
|
|
1. **Create New Claim Requests**: Use the API or frontend to create fresh dealer claim requests
|
|
2. **Test Workflow**: Go through the 8-step workflow to ensure everything works correctly
|
|
3. **Verify Data Storage**: Check that IO details and budget tracking are properly stored
|
|
|
|
## Troubleshooting
|
|
|
|
### If Cleanup Fails
|
|
|
|
1. Check database connection
|
|
2. Verify foreign key constraints are not blocking deletion
|
|
3. Check logs for specific error messages
|
|
4. The script uses transactions, so partial deletions won't occur
|
|
|
|
### If Tables Don't Exist
|
|
|
|
Run migrations again:
|
|
```bash
|
|
npm run migrate
|
|
```
|
|
|
|
### If You Need to Restore Data
|
|
|
|
If you backed up before cleanup, restore from your backup. The cleanup script does not create backups automatically.
|
|
|
|
## API Endpoints Ready
|
|
|
|
After cleanup, you can use these endpoints:
|
|
|
|
- `POST /api/v1/dealer-claims` - Create new claim request
|
|
- `POST /api/v1/dealer-claims/:requestId/proposal` - Submit proposal (Step 1)
|
|
- `PUT /api/v1/dealer-claims/:requestId/io` - Update IO details (Step 3)
|
|
- `POST /api/v1/dealer-claims/:requestId/completion` - Submit completion (Step 5)
|
|
- `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)
|
|
|
|
## Summary
|
|
|
|
✅ **Cleanup Script**: `npm run cleanup:dealer-claims`
|
|
✅ **Migrations**: `npm run migrate`
|
|
✅ **Fresh Start**: Database is ready for new dealer claim requests
|
|
✅ **Proper Structure**: IO details and budget tracking in dedicated tables
|
|
|