5.6 KiB
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
-
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)
-
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:
cd Re_Backend
npm run migrate
This will create:
- ✅
internal_orderstable (for IO details withioRemark) - ✅
claim_budget_trackingtable (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:
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_trackinginternal_ordersdealer_proposal_cost_itemsdealer_completion_detailsdealer_proposal_detailsdealer_claim_detailsactivitieswork_notesdocumentsparticipantsapproval_levelssubscriptionsnotificationsrequest_summariesshared_summariesconclusion_remarkstat_alertsworkflow_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:
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:
npm run seed:dealers
Database Structure Summary
New Tables Created
-
internal_orders- Dedicated table for IO (Internal Order) detailsio_id(PK)request_id(FK, unique)io_numberio_remark✅ (dedicated field, not in comments)io_available_balanceio_blocked_amountio_remaining_balanceorganized_by(FK to users)organized_atstatus(PENDING, BLOCKED, RELEASED, CANCELLED)
-
claim_budget_tracking- Comprehensive budget trackingbudget_id(PK)request_id(FK, unique)initial_estimated_budgetproposal_estimated_budgetapproved_budgetio_blocked_amountclosed_expensesfinal_claim_amountcredit_note_amountbudget_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 informationdealer_proposal_details- Step 1: Dealer proposaldealer_proposal_cost_items- Cost breakdown itemsdealer_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.estimatedBudgetorproposalDetails.totalEstimatedBudget - ✅ Claim amount:
completionDetails.totalClosedExpensesorbudgetTracking.finalClaimAmount - ✅ IO details:
internalOrdertable (separate, dedicated) - ✅ E-Invoice:
claimDetails.eInvoiceNumber,claimDetails.eInvoiceDate - ✅ Credit Note:
claimDetails.creditNoteNumber,claimDetails.creditNoteAmount
Next Steps After Cleanup
- Create New Claim Requests: Use the API or frontend to create fresh dealer claim requests
- Test Workflow: Go through the 8-step workflow to ensure everything works correctly
- Verify Data Storage: Check that IO details and budget tracking are properly stored
Troubleshooting
If Cleanup Fails
- Check database connection
- Verify foreign key constraints are not blocking deletion
- Check logs for specific error messages
- The script uses transactions, so partial deletions won't occur
If Tables Don't Exist
Run migrations again:
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 requestPOST /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