From 24340eb810cad8f31f3ae7b697f3eea88f7e8c1e Mon Sep 17 00:00:00 2001 From: Soheil Hajizadeh Date: Tue, 7 Jul 2026 18:52:07 +0330 Subject: [PATCH] claim request management change --- .../claim-request-management.service.ts | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/claim-request-management/claim-request-management.service.ts b/src/claim-request-management/claim-request-management.service.ts index 3da9d1c..2c71430 100644 --- a/src/claim-request-management/claim-request-management.service.ts +++ b/src/claim-request-management/claim-request-management.service.ts @@ -3644,10 +3644,22 @@ export class ClaimRequestManagementService { } private parseJalaliBirthday( - birthday: string | null | undefined, + birthday: string | number | null | undefined, ): { year: number; month: number; day: number } | null { - if (!birthday) return null; - const parts = String(birthday).split(/[/\-]/); + if (birthday == null) return null; + const str = String(birthday).trim(); + + // Compact format: "13640610" → year=1364, month=06, day=10 + if (/^\d{8}$/.test(str)) { + const year = parseInt(str.slice(0, 4), 10); + const month = parseInt(str.slice(4, 6), 10); + const day = parseInt(str.slice(6, 8), 10); + if (isNaN(year) || isNaN(month) || isNaN(day)) return null; + return { year, month, day }; + } + + // Delimited formats: "1364/06/10" or "1364-06-10" + const parts = str.split(/[/\-]/); if (parts.length < 3) return null; const year = parseInt(parts[0], 10); const month = parseInt(parts[1], 10); @@ -3797,7 +3809,7 @@ export class ClaimRequestManagementService { DmgHistoryStatus: input.defaults.DmgHistoryStatus, Desc: this.formatFanavaranSelectedPartsDesc(input.selectedParts), DmgCaseTypeId: input.defaults.DmgCaseTypeId, - DriverId: driverFanavaranId ?? person.nationalCodeOfDriver ?? null, + DriverId: driverFanavaranId ?? null, EndDate: insurance.endDate ?? null, EstimateAmount: FANAVARAN_PROVISIONAL_ESTIMATE_AMOUNT, FaultPercent: input.defaults.FaultPercent,