From 996e3c574eda22aa183f50efe4ecbef1d41b1d18 Mon Sep 17 00:00:00 2001 From: tema Date: Sat, 29 Nov 2025 18:26:36 +0900 Subject: [PATCH] Refactor duration parsing in SimCallHistoryService for improved accuracy - Updated duration parsing logic to handle MMSST format (minutes, seconds, tenths) more effectively. - Ensured proper handling of duration strings by padding and extracting minutes and seconds accurately. --- .../sim-management/services/sim-call-history.service.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/apps/bff/src/modules/subscriptions/sim-management/services/sim-call-history.service.ts b/apps/bff/src/modules/subscriptions/sim-management/services/sim-call-history.service.ts index 7705b072..710857fe 100644 --- a/apps/bff/src/modules/subscriptions/sim-management/services/sim-call-history.service.ts +++ b/apps/bff/src/modules/subscriptions/sim-management/services/sim-call-history.service.ts @@ -146,8 +146,13 @@ export class SimCallHistoryService { continue; } - // Parse duration (320 = 32.0 seconds) - const durationSec = Math.round(parseInt(durationStr, 10) / 10); + // Parse duration - format is MMSST (minutes, seconds, tenths) + // e.g., 36270 = 36 min 27.0 sec, 320 = 0 min 32.0 sec + const durationVal = durationStr.padStart(5, "0"); // Ensure at least 5 digits + const minutes = parseInt(durationVal.slice(0, -3), 10) || 0; // All but last 3 digits + const seconds = parseInt(durationVal.slice(-3, -1), 10) || 0; // 2 digits before last + // Last digit is tenths, which we ignore + const durationSec = minutes * 60 + seconds; // Parse charge: use tokens * 10 yen, or alt charge if location is "他社" let chargeYen: number;