From d0747e39bb1ef5cfeaf9bf6e3acf8cdbac64b798 Mon Sep 17 00:00:00 2001 From: michaelschal <35957947-michaelschal@users.noreply.replit.com> Date: Tue, 4 Nov 2025 05:51:43 +0000 Subject: [PATCH 1/3] Fix issue with payment due dates not displaying correctly Address an issue where payment due dates were not reflecting correctly in the UI despite being present in the data source and configuration. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 1e4433b5-47ab-464c-b663-fea2e53367dd Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: eebbbd36-7554-4c9e-8308-42aaebc822e2 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/1957c339-2757-4d1f-8e92-e9f71a1ce58e/1e4433b5-47ab-464c-b663-fea2e53367dd/gTQvEeF --- attached_assets/image_1762235461294.png | Bin 0 -> 7679 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 attached_assets/image_1762235461294.png diff --git a/attached_assets/image_1762235461294.png b/attached_assets/image_1762235461294.png new file mode 100644 index 0000000000000000000000000000000000000000..4bebfc13bd3d143f077469ac0991d30b4adcf150 GIT binary patch literal 7679 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 TO?U%8Z9#HUA0#WqjRXG|cd?Ns literal 0 HcmV?d00001 From 478ad4eb5b8210e0f24f0f9981a4ede439ef122b Mon Sep 17 00:00:00 2001 From: michaelschal <35957947-michaelschal@users.noreply.replit.com> Date: Tue, 4 Nov 2025 05:55:59 +0000 Subject: [PATCH 2/3] Enable clearing of invoice fields and fix delivery date display Update data transformation and validation logic in server routes to allow null values for invoice reference, amount, and due date. This addresses issues where users could not clear these fields and ensures the due date is correctly displayed. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 1e4433b5-47ab-464c-b663-fea2e53367dd Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 693eaffa-e5f9-48b1-8bb4-034d4f47e3f4 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/1957c339-2757-4d1f-8e92-e9f71a1ce58e/1e4433b5-47ab-464c-b663-fea2e53367dd/gTQvEeF --- ...up-r-195-l-1762235515403_1762235515403.txt | 206 ++++++++++++++++++ server/routes.ts | 76 ++++++- shared/schema.ts | 2 +- 3 files changed, 273 insertions(+), 11 deletions(-) create mode 100644 attached_assets/Pasted--GET-api-deliveries-200-in-16975ms-PRODUCTION-getDeliveries-r-cup-r-195-l-1762235515403_1762235515403.txt diff --git a/attached_assets/Pasted--GET-api-deliveries-200-in-16975ms-PRODUCTION-getDeliveries-r-cup-r-195-l-1762235515403_1762235515403.txt b/attached_assets/Pasted--GET-api-deliveries-200-in-16975ms-PRODUCTION-getDeliveries-r-cup-r-195-l-1762235515403_1762235515403.txt new file mode 100644 index 0000000..6f32bd9 --- /dev/null +++ b/attached_assets/Pasted--GET-api-deliveries-200-in-16975ms-PRODUCTION-getDeliveries-r-cup-r-195-l-1762235515403_1762235515403.txt @@ -0,0 +1,206 @@ + + + + +GET /api/deliveries 200 in 16975ms + +🔗 PRODUCTION: getDeliveries() récupéré 195 livraisons avec relations + +Deliveries returned: 195 items + +GET /api/deliveries 200 in 17283ms + +🔗 PRODUCTION: getDeliveries() récupéré 195 livraisons avec relations + +Deliveries returned: 195 items + +GET /api/deliveries 200 in 17249ms + +🔗 PRODUCTION: getDeliveries() récupéré 195 livraisons avec relations + +Deliveries returned: 195 items + +GET /api/deliveries 200 in 17353ms + +🔗 PRODUCTION: getDeliveries() récupéré 195 livraisons avec relations + +Deliveries returned: 195 items + +GET /api/deliveries 200 in 17284ms + +🔗 PRODUCTION: getDeliveries() récupéré 195 livraisons avec relations + +Deliveries returned: 195 items + +GET /api/deliveries 200 in 17188ms + +🔗 PRODUCTION: getDeliveries() récupéré 195 livraisons avec relations + +Deliveries returned: 195 items + +GET /api/deliveries 200 in 17045ms + +🔗 PRODUCTION: getOrder #256 found 1 associated deliveries + +✅ PRODUCTION: getDelivery #427 found associated order #256 with status: delivered + +🔗 PRODUCTION: getDeliveries() récupéré 195 livraisons avec relations + +Deliveries returned: 195 items + +🔄 Updating delivery: { + + id: 427, + + + +{ + + blNumber: '197771', + + blAmount: '695.66', + + invoiceReference: null, + + invoiceAmount: null + + }, + + user: 'admin_local' + +} + +GET /api/deliveries 200 in 17076ms + +✅ Delivery updated successfully: { + + id: 427, + + updatedDelivery: { + + id: 427, + + orderId: 256, + + supplierId: 7, + + groupId: 1, + + scheduledDate: '2025-10-31', + + deliveredDate: 2025-10-31T08:32:15.684Z, + + quantity: 1, + + unit: 'palettes', + + status: 'delivered', + + notes: null, + + blNumber: '197771', + + blAmount: '695.66', + + invoiceReference: null, + + invoiceAmount: null, + + dueDate: null, + + reconciled: false, + + validatedAt: null, + + controlValidated: false, + + controlValidatedBy: null, + + controlValidatedAt: null, + + createdBy: '_1754943032954', + + createdAt: 2025-10-30T08:47:43.018Z, + + updatedAt: 2025-11-04T05:51:30.924Z + + } + +} + +PUT /api/deliveries/427 200 in 17189ms + +Deliveries API called with: { + + startDate: undefined, + + endDate: undefined, + + storeId: '1', + + withBL: undefined, + + userRole: 'admin' + +} + +🔍 Admin deliveries filtering by store: { storeId: '1', groupIds: [ 1 ], role: 'admin' } + +Fetching all deliveries + +🔗 PRODUCTION: getDeliveries() récupéré 195 livraisons avec relations + +Deliveries returned: 195 items + +GET /api/deliveries 200 in 158ms + +Deliveries API called with: { + + startDate: undefined, + + endDate: undefined, + + storeId: '1', + + withBL: undefined, + + userRole: 'admin' + +} + +🔍 Admin deliveries filtering by store: { storeId: '1', groupIds: [ 1 ], role: 'admin' } + +Fetching all deliveries + +🔗 PRODUCTION: getDeliveries() récupéré 195 livraisons avec relations + +Deliveries returned: 195 items + +GET /api/deliveries 304 in 147ms + +Deliveries API called with: { + + startDate: undefined, + + endDate: undefined, + + storeId: '1', + + withBL: undefined, + + userRole: 'admin' + +} + +🔍 Admin deliveries filtering by store: { storeId: '1', groupIds: [ 1 ], role: 'admin' } + +Fetching all deliveries + +🔗 PRODUCTION: getDeliveries() récupéré 195 livraisons avec relations + +Deliveries returned: 195 items + +GET /api/deliveries 304 in 139ms + +HEAD /api/health 200 in 1ms + diff --git a/server/routes.ts b/server/routes.ts index 19a45d6..10de9fa 100644 --- a/server/routes.ts +++ b/server/routes.ts @@ -1401,20 +1401,40 @@ export async function registerRoutes(app: Express): Promise { // Transform data types before validation const transformedData = { ...req.body }; - // Convert decimal amounts to strings (schema expects string for decimal fields) - if (transformedData.blAmount !== undefined && transformedData.blAmount !== null) { - transformedData.blAmount = transformedData.blAmount.toString(); + // Convert decimal amounts to strings or null (schema expects string for decimal fields) + if (transformedData.blAmount !== undefined) { + transformedData.blAmount = (transformedData.blAmount === null || transformedData.blAmount === '') + ? null + : transformedData.blAmount.toString(); } - if (transformedData.invoiceAmount !== undefined && transformedData.invoiceAmount !== null) { - transformedData.invoiceAmount = transformedData.invoiceAmount.toString(); + if (transformedData.invoiceAmount !== undefined) { + transformedData.invoiceAmount = (transformedData.invoiceAmount === null || transformedData.invoiceAmount === '') + ? null + : transformedData.invoiceAmount.toString(); } - // Convert timestamp fields to Date objects (schema expects Date for timestamp fields) - if (transformedData.validatedAt && typeof transformedData.validatedAt === 'string') { - transformedData.validatedAt = new Date(transformedData.validatedAt); + // Convert text fields - allow null for clearing + if (transformedData.invoiceReference !== undefined) { + transformedData.invoiceReference = (transformedData.invoiceReference === '') + ? null + : transformedData.invoiceReference; } - if (transformedData.dueDate && typeof transformedData.dueDate === 'string') { - transformedData.dueDate = new Date(transformedData.dueDate); + if (transformedData.blNumber !== undefined) { + transformedData.blNumber = (transformedData.blNumber === '') + ? null + : transformedData.blNumber; + } + + // Convert timestamp fields to Date objects or null (schema expects Date for timestamp fields) + if (transformedData.validatedAt !== undefined) { + transformedData.validatedAt = (transformedData.validatedAt === null || transformedData.validatedAt === '') + ? null + : new Date(transformedData.validatedAt); + } + if (transformedData.dueDate !== undefined) { + transformedData.dueDate = (transformedData.dueDate === null || transformedData.dueDate === '') + ? null + : new Date(transformedData.dueDate); } const data = insertDeliverySchema.partial().parse(transformedData); @@ -1859,6 +1879,42 @@ export async function registerRoutes(app: Express): Promise { } console.log('✅ Résultat vérification:', result); + + // CRITICAL FIX: Sauvegarder les données dans la table deliveries après vérification réussie + if (result.exists && (result.invoiceAmount !== undefined || result.dueDate !== undefined || result.invoiceReference !== undefined)) { + try { + const updateData: any = {}; + + // Ajouter la référence facture si trouvée + if (result.invoiceReference) { + updateData.invoiceReference = result.invoiceReference; + } + + // Ajouter le montant facture si trouvé + if (result.invoiceAmount !== undefined && result.invoiceAmount !== null) { + updateData.invoiceAmount = result.invoiceAmount.toString(); + } + + // Ajouter l'échéance si trouvée + if (result.dueDate) { + const normalizedDateString = normalizeDateString(result.dueDate); + if (normalizedDateString) { + updateData.dueDate = new Date(normalizedDateString); + console.log(`✅ Sauvegarde échéance dans deliveries: ${normalizedDateString}`); + } + } + + // Mettre à jour la livraison si on a des données + if (Object.keys(updateData).length > 0) { + await storage.updateDelivery(deliveryId, updateData); + console.log(`✅ Livraison #${deliveryId} mise à jour avec:`, updateData); + } + } catch (error) { + console.error('❌ Erreur sauvegarde données vérification:', error); + // Ne pas bloquer la réponse, juste logger l'erreur + } + } + res.json(result); } catch (error) { console.error("Error verifying invoice:", error); diff --git a/shared/schema.ts b/shared/schema.ts index 0fecd2e..8a31651 100644 --- a/shared/schema.ts +++ b/shared/schema.ts @@ -119,7 +119,7 @@ export const deliveries = pgTable("deliveries", { blAmount: decimal("bl_amount", { precision: 10, scale: 2 }), // Montant BL invoiceReference: varchar("invoice_reference"), // Référence facture invoiceAmount: decimal("invoice_amount", { precision: 10, scale: 2 }), // Montant facture - dueDate: timestamp("dueDate"), // Date d'échéance de paiement (récupérée depuis NocoDB) + dueDate: timestamp("due_date"), // Date d'échéance de paiement (récupérée depuis NocoDB) reconciled: boolean("reconciled").default(false), // Rapprochement effectué validatedAt: timestamp("validated_at"), // Date de validation de la livraison // Champs pour le contrôle des livraisons (fournisseurs nécessitant un contrôle) From 9ff964d302710ae76120df131535daf4a907f832 Mon Sep 17 00:00:00 2001 From: michaelschal <35957947-michaelschal@users.noreply.replit.com> Date: Tue, 4 Nov 2025 06:13:24 +0000 Subject: [PATCH 3/3] Enhance system to streamline debugging and task management workflows Add image assets related to the enterprise task management platform. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 1e4433b5-47ab-464c-b663-fea2e53367dd Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 6251c5d1-71b8-40ba-a1dd-66254fd3e5cd Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/1957c339-2757-4d1f-8e92-e9f71a1ce58e/1e4433b5-47ab-464c-b663-fea2e53367dd/gTQvEeF --- attached_assets/image_1762236788319.png | Bin 0 -> 22656 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 attached_assets/image_1762236788319.png diff --git a/attached_assets/image_1762236788319.png b/attached_assets/image_1762236788319.png new file mode 100644 index 0000000000000000000000000000000000000000..12af8edb0b05924a18a1d01aaa50244a300b909e GIT binary patch literal 22656 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 q`nuX zMTrvR3IGV2^NI;u8+kEC{Hu}?pOh_xw(*V!ChFY7RNL}^i5+CFM+a%9>nyU%W@?Rn z9eDl>1kv_+JKwe1UVxA1-9$8$f0(UME~ zc>%|YqhS3pZ^v3SDE=Y*s_upu`h|nz0<(Pz=~Hk1Gi)jtl&&|#Tp90(DNkraq=v0Y z;F#VlTIl)dv@xg^Kj3}{R;CoeTPIkGkd`DP-kuXku{zvvEWSHR-%yl=?Zfueot;H` zAZeOw--BX($f4sOvp2lmu$kjGHdR*{by|HQ%q(fmW5F4q<)TbNMgD*aSxh>yz2TOx znOS#<9baJDHiV38ai$O)S#6jgXohvJW(A(28E=H753sO9#!60Skmpv@(%U`G?jCpg z=4@ReC5mW)%$7V$KZ&|IT$o6GJwr&y{yU~;iDa|MTi&x9ETQz!GJlV`J+u4?@KA7m zs@xE~QurvkyzM)B3l52_vrLu_q>xb|Egbf}97;MoiZ1wZ49W_}7oe7xLH5AUYg3$4 zpJj^P&cVIH2?UGIhW|R>otv_7)nO6y2GaWCNT|ecqav z;90JS=CR0osAD(#7Isf%ot?({;TS>SnO-L(*sSGi_(Yq`?ij1*CV}uC`t038BgU-c|-nrqY0|VA0$1X01uH$R9 z$?t{!nO{ige>lNq|H27$emhxh|G#Bz+v`J5szY_U!lueg(Ct=zn z0)CPYPt0Z(`|uzj8t^|Z!rt{7X_fR8jH9FDyCvI?fCR$4gI?7fyik68$MSUpsK+_s{fnU8t6eHOC;*>>-5@O1 zt3tb{!-DQ)B6%s7zekTA14QTDZk^)nUj{?^z|$jFHP2Ok-_EJ*OSI1|(C>gR%lqi% Fe*$C2jsySz literal 0 HcmV?d00001