mapping problems fixed

This commit is contained in:
2026-08-01 17:56:58 +03:30
parent ea3db8f025
commit 86f8b829fd
5 changed files with 283 additions and 78 deletions

View File

@@ -114,4 +114,32 @@ describe("SandHubService inquiry mocks", () => {
expect(mapped.PrntPlcyCmpDocNo).toBe("1405/1143-LEGACY/200/1");
});
it("maps ESG PrntCmpDocNo → PrntPlcyCmpDocNo and preserves begin/end dates", () => {
const mapped = (service as any).mapEsgPolicyByPlateToOldFormat({
success: true,
data: {
PrntCmpDocNo: "1110/111130/404/003412",
LastCmpDocNo: "1110/111130/403/002650",
PlcyUnqCod: "16018466143",
HBgnDte: "1404/10/23",
HEndDte: "1405/10/23",
HIsuDte: "1404/10/21",
VIN: "IRFC891V7D2301065",
MtrNum: "13389030167",
ShsNum: "NAAP41FD5BJ301065",
PrdDte: "1389",
CmpCod: "8",
CmpNam: "بيمه پارسيان",
},
});
expect(mapped.PrntPlcyCmpDocNo).toBe("1110/111130/404/003412");
expect(mapped.ThirdPolicyCode).toBe("16018466143");
expect(mapped.StartDate).toBe("1404/10/23");
expect(mapped.EndDate).toBe("1405/10/23");
expect(mapped.IssueDate).toBe("1404/10/21");
expect(mapped.VIN).toBe("IRFC891V7D2301065");
expect(mapped.ModelField).toBe("1389");
});
});

View File

@@ -560,14 +560,22 @@ export class SandHubService {
mtrnum: data.MtrNum ?? data.mtrnum,
shsNam: data.ShsNum ?? data.ShsNam ?? data.shsNam,
vin: data.VIN ?? data.vin,
VIN: data.VIN ?? data.vin,
ntnlId: data.NtnlId ?? data.ntnlId,
fullname: data.InsNam ?? data.fullname,
ThirdPolicyCode: data.PlcyUnqCod ?? data.ThirdPolicyCode,
// ESG print/policy document number — canonical Tejarat name is PrntPlcyCmpDocNo
PrntPlcyCmpDocNo:
data.PrntCmpDocNo ??
data.PrntPlcyCmpDocNo ??
data.printNumber ??
data.insuranceNumber,
LastCompanyDocumentNumber:
data.LastCmpDocNo ?? data.LastCompanyDocumentNumber,
IssueDate: data.HIsuDte ?? data.IssueDate,
StartDate: data.HBgnDte ?? data.StartDate,
EndDate: data.HEndDte ?? data.EndDate,
ModelField: data.PrdDte ?? data.ModelField ?? data.ModelCii,
EdrsJson: data.Edrses ?? data.EdrsJson,
});
}
@@ -1010,14 +1018,26 @@ export class SandHubService {
FinancialCvrCptl:
newResponse.financeCoverage || newResponse.FinancialCvrCptl || "0",
// Dates
IssueDate: newResponse.persianStartDate || newResponse.IssueDate,
EndDate: newResponse.persianEndDate || newResponse.EndDate,
// Dates — keep IssueDate (HIsuDte) distinct from StartDate (HBgnDte)
IssueDate:
newResponse.IssueDate ||
newResponse.HIsuDte ||
newResponse.persianStartDate,
StartDate:
newResponse.StartDate ||
newResponse.HBgnDte ||
newResponse.SatrtDate ||
newResponse.persianStartDate,
EndDate:
newResponse.EndDate ||
newResponse.HEndDte ||
newResponse.persianEndDate,
// Insurance policy number — canonical Tejarat name is PrntPlcyCmpDocNo;
// newer API formats surface it as printNumber or insuranceNumber.
// ESG uses PrntCmpDocNo; newer formats use printNumber / insuranceNumber.
PrntPlcyCmpDocNo:
newResponse.PrntPlcyCmpDocNo ||
newResponse.PrntCmpDocNo ||
newResponse.printNumber ||
newResponse.insuranceNumber ||
null,