30 lines
2.2 KiB
Markdown
30 lines
2.2 KiB
Markdown
# Dealer Integration Implementation Status
|
|
|
|
This document summarizes the changes made to integrate the external Royal Enfield Dealer API and implement the dealer validation logic during request creation.
|
|
|
|
## Completed Work
|
|
|
|
### 1. External Dealer API Integration
|
|
- **Service**: `DealerExternalService` in `src/services/dealerExternal.service.ts`
|
|
- Implemented `getDealerByCode` to fetch data from `https://api-uat2.royalenfield.com/DealerMaster`.
|
|
- Returns real-time GSTIN, Address, and location details.
|
|
- **Controller & Routes**: Integrated under `/api/v1/dealers-external/search/:dealerCode`.
|
|
- **Enrichment**: `DealerService.getDealerByCode` now automatically merges this external data into the system's `DealerInfo`, benefiting PWC and PDF generation services.
|
|
|
|
### 2. Dealer Validation & Field Mapping Fix
|
|
- **Strategic Mapping**: Based on requirement, all dealer codes are now mapped against the `employeeNumber` field (HR ID) in the `User` model, not `employeeId`.
|
|
- **User Enrichment Service**: `validateDealerUser(dealerCode)` now searches by `employeeNumber`.
|
|
- **SSO Alignment**: `AuthService.ts` now extracts `dealer_code` from the authentication response and persists it to `employeeNumber`.
|
|
- **Dealer Service**: `getDealerByCode` uses jobTitle-based validation against the `User` table as the primary lookup.
|
|
|
|
### 3. Claim Workflow Integration
|
|
- **Dealer Claim Service**: `createClaimRequest` validates the dealer immediately and overrides approver steps 1 and 4 with the validated user.
|
|
- **Workflow Controller**: Enforces dealer validation for all `DEALER CLAIM` templates and any request containing a `dealerCode`.
|
|
|
|
### 4. E-Invoice & PDF Alignment
|
|
- **PWC Integration**: `generateSignedInvoice` now uses the enriched `DealerInfo` containing the correct external GSTIN and state code.
|
|
- **Invoice PDF**: `PdfService` correctly displays the external dealer name, GSTIN, and POS from the source of truth.
|
|
|
|
## Conclusion
|
|
All integrated components have been verified via test scripts and end-to-end flow analysis. The dependency on the local `dealers` table has been successfully minimized, and the system now relies on the `User` table and External API as the primary sources of dealer information.
|