From 257932686ff00ad8ffc1b5c50c49201db468dddd Mon Sep 17 00:00:00 2001 From: michaelschal <35957947-michaelschal@users.noreply.replit.com> Date: Mon, 3 Nov 2025 17:31:02 +0000 Subject: [PATCH] Improve date handling for delivery due dates Correctly normalize and convert delivery due dates to Date objects for database storage, resolving a TypeError. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 1e4433b5-47ab-464c-b663-fea2e53367dd Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 4d4c67ad-e680-477f-bb7e-e952e806558e Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/1957c339-2757-4d1f-8e92-e9f71a1ce58e/1e4433b5-47ab-464c-b663-fea2e53367dd/Tx7N1IN --- ...livered-Up-1762190961659_1762190961659.txt | 201 ++++++++++++++++++ attached_assets/image_1762190984566.png | Bin 0 -> 40790 bytes server/routes.ts | 17 +- 3 files changed, 214 insertions(+), 4 deletions(-) create mode 100644 attached_assets/Pasted--PRODUCTION-getDelivery-427-found-associated-order-256-with-status-delivered-Up-1762190961659_1762190961659.txt create mode 100644 attached_assets/image_1762190984566.png diff --git a/attached_assets/Pasted--PRODUCTION-getDelivery-427-found-associated-order-256-with-status-delivered-Up-1762190961659_1762190961659.txt b/attached_assets/Pasted--PRODUCTION-getDelivery-427-found-associated-order-256-with-status-delivered-Up-1762190961659_1762190961659.txt new file mode 100644 index 0000000..ceaade0 --- /dev/null +++ b/attached_assets/Pasted--PRODUCTION-getDelivery-427-found-associated-order-256-with-status-delivered-Up-1762190961659_1762190961659.txt @@ -0,0 +1,201 @@ + + +✅ PRODUCTION: getDelivery #427 found associated order #256 with status: delivered + +🔄 Updating delivery: { id: 427, data: { invoiceReference: '197771' }, user: 'admin_local' } + +🔍 [INVOICE] Début vérification facture: { invoiceReference: '197771', groupId: 1, forceRefresh: true } + +🔄 [INVOICE] Refresh forcé, ignorant le cache + +🔧 Configuration groupe: { + + groupName: 'Frouard', + + hasNocodbConfig: true, + + hasTableName: true, + + hasWebhook: true + +} + +🔍 Vérification NocoDB en production... + +🔧 Configuration NocoDB active récupérée: { + + id: 1, + + name: 'Nocodb', + + baseUrl: 'https://nocodb.ffnancy.fr', + + projectId: 'pcg4uw79ukvycxc', + + apiToken: 'z4BAwLo6dgoN_E7PKJSHN7PA7kdBePtKOYcsDlwQ', + + description: '', + + isActive: true, + + createdBy: 'admin_local', + + createdAt: 2025-07-22T11:12:54.971Z, + + updatedAt: 2025-07-25T23:07:17.197Z + +} + +🔧 Configuration NocoDB trouvée: { + + configName: 'Nocodb', + + baseUrl: 'https://nocodb.ffnancy.fr', + + projectId: 'pcg4uw79ukvycxc', + + hasToken: true + +} + +🔧 Utilisation table ID: { + + groupTable: 'CommandeF', + + configuredId: 'mrr733dfb8wtt9b', + + resolvedId: 'mrr733dfb8wtt9b' + +} + +🔍 Recherche NocoDB: { tableId: 'mrr733dfb8wtt9b', column: 'RefFacture' } + +💾 [CACHE] Tentative sauvegarde: { + + invoiceReference: '197771', + + groupId: 1, + + cacheKey: '1_197771', + + exists: true, + + isReconciled: false, + + cacheType: 'temporaire 6h (trouvé)', + + expiresAt: '2025-11-03T23:28:12.943Z' + +} + +Error updating delivery: TypeError: value.toISOString is not a function + + at PgTimestamp.mapToDriverValue (file:///app/node_modules/drizzle-orm/pg-core/columns/timestamp.js:34:18) + + at file:///app/node_modules/drizzle-orm/sql/sql.js:131:73 + + at Array.map () + + at SQL.buildQueryFromSourceParams (file:///app/node_modules/drizzle-orm/sql/sql.js:73:32) + + at file:///app/node_modules/drizzle-orm/sql/sql.js:95:21 + + at Array.map () + + at SQL.buildQueryFromSourceParams (file:///app/node_modules/drizzle-orm/sql/sql.js:73:32) + + at file:///app/node_modules/drizzle-orm/sql/sql.js:95:21 + + at Array.map () + + at SQL.buildQueryFromSourceParams (file:///app/node_modules/drizzle-orm/sql/sql.js:73:32) + +✅ [CACHE] Résultat sauvé en cache: { + + id: 31803, + + invoiceReference: '197771', + + groupId: 1, + + exists: true, + + isReconciled: false, + + cacheType: 'temporaire 6h (trouvé)', + + cacheKey: '1_197771' + +} + +📅 Date d'échéance récupérée et normalisée: 2025-11-29 (original: 2025-11-29) + +PUT /api/deliveries/427 500 in 339ms + +🔍 Recherche NocoDB: { tableId: 'mrr733dfb8wtt9b', column: 'Numero_BL' } + +💾 [CACHE] Tentative sauvegarde: { + + invoiceReference: '197771', + + groupId: 1, + + cacheKey: '1_197771', + + exists: true, + + isReconciled: false, + + cacheType: 'temporaire 6h (trouvé)', + + expiresAt: '2025-11-03T23:28:12.963Z' + +} + +✅ [CACHE] Résultat sauvé en cache: { + + id: 31803, + + invoiceReference: '197771', + + groupId: 1, + + exists: true, + + isReconciled: false, + + cacheType: 'temporaire 6h (trouvé)', + + cacheKey: '1_197771' + +} + +📅 Date d'échéance récupérée et normalisée: 2025-11-29 (original: 2025-11-29) + +Error updating delivery: TypeError: value.toISOString is not a function + + at PgTimestamp.mapToDriverValue (file:///app/node_modules/drizzle-orm/pg-core/columns/timestamp.js:34:18) + + at file:///app/node_modules/drizzle-orm/sql/sql.js:131:73 + + at Array.map () + + at SQL.buildQueryFromSourceParams (file:///app/node_modules/drizzle-orm/sql/sql.js:73:32) + + at file:///app/node_modules/drizzle-orm/sql/sql.js:95:21 + + at Array.map () + + at SQL.buildQueryFromSourceParams (file:///app/node_modules/drizzle-orm/sql/sql.js:73:32) + + at file:///app/node_modules/drizzle-orm/sql/sql.js:95:21 + + at Array.map () + + at SQL.buildQueryFromSourceParams (file:///app/node_modules/drizzle-orm/sql/sql.js:73:32) + +PUT /api/deliveries/427 500 in 50ms + +HEAD /api/health 200 in 1ms + +HEAD /api/health 200 in 1ms \ No newline at end of file diff --git a/attached_assets/image_1762190984566.png b/attached_assets/image_1762190984566.png new file mode 100644 index 0000000000000000000000000000000000000000..6b519afe08df0d2b23b1cb4b272857f353c07fc0 GIT binary patch literal 40790 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 qCg%NK7Iaq>8Odu!;WLwH)BBwbHh#RpN4I(u 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 { if (result.exists && result.dueDate) { // Normaliser la date avant de la stocker - const normalizedDate = normalizeDateString(result.dueDate); - if (normalizedDate) { + const normalizedDateString = normalizeDateString(result.dueDate); + if (normalizedDateString) { + // Convertir la string normalisée en objet Date pour Drizzle + const normalizedDate = new Date(normalizedDateString); // Mettre à jour deliveries avec la date normalisée (caching) await storage.updateDelivery(delivery.id, { dueDate: normalizedDate }); delivery.dueDate = normalizedDate; @@ -1449,8 +1451,15 @@ export async function registerRoutes(app: Express): Promise { if (result.exists && result.dueDate) { // Normaliser la date avant de la stocker - data.dueDate = normalizeDateString(result.dueDate); - console.log(`📅 Date d'échéance récupérée et normalisée: ${data.dueDate} (original: ${result.dueDate})`); + const normalizedDateString = normalizeDateString(result.dueDate); + if (normalizedDateString) { + // Convertir la string normalisée en objet Date pour Drizzle + data.dueDate = new Date(normalizedDateString); + console.log(`📅 Date d'échéance récupérée et normalisée: ${normalizedDateString} (original: ${result.dueDate})`); + } else { + data.dueDate = null; + console.log(`📅 Date d'échéance invalide, ignorée`); + } } else { data.dueDate = null; console.log(`📅 Aucune date d'échéance trouvée dans NocoDB`);