From d14a4a31f6adfa224cb34db68d7b6893a9e8c083 Mon Sep 17 00:00:00 2001 From: michaelschal <35957947-michaelschal@users.noreply.replit.com> Date: Mon, 11 Aug 2025 20:24:42 +0000 Subject: [PATCH] Synchronize order and delivery statuses and dates in the calendar view Fixes an issue where orders linked to delivered deliveries were not displaying the correct delivery date or status in the calendar. This includes updating the OrderDetailModal to show the correct dates, automatically updating order statuses when deliveries are marked as delivered, and providing a SQL script to correct existing data inconsistencies. Replit-Commit-Author: Agent Replit-Commit-Session-Id: a8a78c07-e900-425c-a577-5b4c5894379d Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/1957c339-2757-4d1f-8e92-e9f71a1ce58e/a8a78c07-e900-425c-a577-5b4c5894379d/0tRkXvo --- PRODUCTION-FIX-GUIDE.md | 20 +++++ attached_assets/image_1754943664463.png | Bin 0 -> 82867 bytes .../components/modals/OrderDetailModal.tsx | 7 +- fix-delivery-order-sync.sql | 72 ++++++++++++++++++ replit.md | 15 +++- server/storage.ts | 16 ++++ 6 files changed, 128 insertions(+), 2 deletions(-) create mode 100644 attached_assets/image_1754943664463.png create mode 100644 fix-delivery-order-sync.sql diff --git a/PRODUCTION-FIX-GUIDE.md b/PRODUCTION-FIX-GUIDE.md index 088332d..bedd42e 100644 --- a/PRODUCTION-FIX-GUIDE.md +++ b/PRODUCTION-FIX-GUIDE.md @@ -68,6 +68,26 @@ Cette erreur survient lors de la **création** ou **édition** d'utilisateur qua 2. Redéployez l'application (le code a été corrigé pour utiliser `NULL` au lieu de `""` dans les routes de création ET d'édition) +### Problème Synchronisation Commandes/Livraisons dans le Calendrier + +#### Symptômes observés : +- Les livraisons marquées "Livré" affichent "Date non disponible" +- Les commandes liées à des livraisons livrées ne passent pas en statut "delivered" +- Problème d'affichage des dates dans le modal de détails de commande + +#### Corrections apportées : +1. **Affichage des dates corrigé** : Le modal affiche maintenant la date de livraison réelle (`deliveredDate`) pour les livraisons livrées +2. **Synchronisation automatique des statuts** : Les commandes sont automatiquement marquées "delivered" quand leurs livraisons associées sont livrées +3. **Script de correction des données** : `fix-delivery-order-sync.sql` pour corriger les données existantes + +**Solution complète** : +1. Exécutez le script de synchronisation : + ```bash + psql $DATABASE_URL -f fix-delivery-order-sync.sql + ``` + +2. Redéployez l'application avec les corrections + #### Tests de Création 1. **Test Manuel** : Utilisez `test-create-user-production.js` ```bash diff --git a/attached_assets/image_1754943664463.png b/attached_assets/image_1754943664463.png new file mode 100644 index 0000000000000000000000000000000000000000..061fc24b4f7f8c112cc1741c8ce690c688327a1f GIT binary patch literal 82867 zcmeFYcTm$`_bv*epwbitq(&^Dg7nY{A|N775NXmwlYo>^q$Gd{h%^=HB?w575(1+1 zssyA<2}p0D1PCP|kWg;$`~J@Rp7YO{xp!`xbM_3wBtyt&t+n^F*0a{LqaN#NGN0!@ zPeVh)to2ackcNgXjE3e^#aVjlJMQg_52(Lrp@y3GY07$eSEw&eJE`ib($Jvd84qmF zP+y<(cxVQtpDC6<*RasRSb3Ewj(onbbL;O9tY&_iC$(OjYXt&$YP{zw223>ECOXTRl)} z^gsT@gE^;x%hmbctD1gbib+QL-^(J**`1z;``@cf^{Z?c^M5SN)j$8klU-Qv`R^VK z_~!rDj}gRe!$X1*+V+|mRAN|z4zBrbONS5@eU5TD%QJ=k`Ud1bS{o7{wAr@T0b3ug zp?ZAQC70^iJwj{y9Z|Q>r~z)#lFz7r#}C3w^-)^^D+fpUsM~C-OOR|ebcJoC_9m~@ z*|vW>7bAV*Tm9=I^LqnauGZDBg=N0QYIDkp2Or!@3gc*YzC@bbk_cK>1GF=Mym?;K z&9i+A@R{`E0PM|}O~7XPCw4!v&eQpoIr*Jzl(w+fnN`re(Mb0;2GE}E0fKcpu1+l8 zK4<&AVWZV_vI_g}lg&{s_RqI^n}U3qc5;ChwIyolkm~ZP*SNU551u#0QhKN2pgfFn z`&_I)+w=h%e*64E2NwQ3=UitGKATM(yosEDUqJ7E^RI9CPp_3t#>T_#*mH9WHa8

>y*brsw4Evz($OpBOy$=QLc!?#_2u{I&$eL(`?? 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%0A{ph*T)e@v8#$B+BO^EmK^#7?Avo0 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 literal 0 HcmV?d00001 diff --git a/client/src/components/modals/OrderDetailModal.tsx b/client/src/components/modals/OrderDetailModal.tsx index 4c4bc98..d0002c9 100644 --- a/client/src/components/modals/OrderDetailModal.tsx +++ b/client/src/components/modals/OrderDetailModal.tsx @@ -292,7 +292,12 @@ export default function OrderDetailModal({

    #LIV-{delivery.id}

    - {safeFormat(delivery.plannedDate, 'dd MMMM yyyy')} + {delivery.status === 'delivered' && delivery.deliveredDate + ? `Livré le ${safeFormat(delivery.deliveredDate, 'dd MMMM yyyy')}` + : delivery.scheduledDate + ? `Prévu le ${safeFormat(delivery.scheduledDate, 'dd MMMM yyyy')}` + : 'Date non disponible' + }

    diff --git a/fix-delivery-order-sync.sql b/fix-delivery-order-sync.sql new file mode 100644 index 0000000..d0d1c25 --- /dev/null +++ b/fix-delivery-order-sync.sql @@ -0,0 +1,72 @@ +-- Script pour diagnostiquer et corriger la synchronisation des statuts commandes/livraisons +-- À exécuter en production pour résoudre les problèmes de dates et statuts + +-- 1. Diagnostiquer les livraisons avec statut "delivered" mais dates manquantes +SELECT 'Livraisons livrées sans date de livraison:' as diagnostic, + COUNT(*) as count +FROM deliveries +WHERE status = 'delivered' AND delivered_date IS NULL; + +-- Afficher les détails +SELECT d.id, d.status, d.scheduled_date, d.delivered_date, d.validated_at, + o.id as order_id, o.status as order_status +FROM deliveries d +LEFT JOIN orders o ON d.order_id = o.id +WHERE d.status = 'delivered' AND d.delivered_date IS NULL +LIMIT 10; + +-- 2. Diagnostiquer les commandes avec livraisons livrées mais statut incorrect +SELECT 'Commandes avec livraisons livrées mais pas en statut delivered:' as diagnostic, + COUNT(*) as count +FROM orders o +WHERE EXISTS ( + SELECT 1 FROM deliveries d + WHERE d.order_id = o.id AND d.status = 'delivered' +) AND o.status != 'delivered'; + +-- Afficher les détails +SELECT o.id as order_id, o.status as order_status, o.planned_date, + COUNT(d.id) as total_deliveries, + SUM(CASE WHEN d.status = 'delivered' THEN 1 ELSE 0 END) as delivered_deliveries +FROM orders o +LEFT JOIN deliveries d ON d.order_id = o.id +WHERE EXISTS ( + SELECT 1 FROM deliveries d2 + WHERE d2.order_id = o.id AND d2.status = 'delivered' +) AND o.status != 'delivered' +GROUP BY o.id, o.status, o.planned_date +LIMIT 10; + +-- 3. Corriger les livraisons livrées sans date de livraison +UPDATE deliveries +SET delivered_date = COALESCE(validated_at, updated_at, created_at) +WHERE status = 'delivered' AND delivered_date IS NULL; + +-- 4. Corriger les statuts des commandes liées aux livraisons livrées +UPDATE orders +SET status = 'delivered', updated_at = NOW() +WHERE id IN ( + SELECT DISTINCT d.order_id + FROM deliveries d + WHERE d.order_id IS NOT NULL + AND d.status = 'delivered' + AND d.order_id NOT IN ( + SELECT o.id FROM orders o WHERE o.status = 'delivered' + ) +); + +-- 5. Vérification finale +SELECT 'Vérification finale - Commandes avec statuts corrects:' as final_check, + COUNT(*) as count +FROM orders o +WHERE EXISTS ( + SELECT 1 FROM deliveries d + WHERE d.order_id = o.id AND d.status = 'delivered' +) AND o.status = 'delivered'; + +-- Afficher un résumé des corrections +SELECT + 'Résumé des corrections:' as summary, + (SELECT COUNT(*) FROM deliveries WHERE status = 'delivered') as total_delivered_deliveries, + (SELECT COUNT(*) FROM deliveries WHERE status = 'delivered' AND delivered_date IS NOT NULL) as deliveries_with_date, + (SELECT COUNT(*) FROM orders WHERE status = 'delivered') as total_delivered_orders; \ No newline at end of file diff --git a/replit.md b/replit.md index 3331430..3ccbd29 100644 --- a/replit.md +++ b/replit.md @@ -149,4 +149,17 @@ Preferred communication style: Simple, everyday language. - Enhanced validation schemas to accept `null` values for email fields - Created `fix-duplicate-empty-email.sql` script to clean existing database records - Improved error handling and logging for better production debugging -- **Result**: Users can now be created and edited with optional email fields without constraint violations \ No newline at end of file +- **Result**: Users can now be created and edited with optional email fields without constraint violations + +#### Calendar Order-Delivery Synchronization Fix +- **Issue**: Orders linked to delivered deliveries were not showing proper status and dates in calendar view +- **Root Cause**: Three interconnected problems: + 1. OrderDetailModal was displaying non-existent `plannedDate` instead of `scheduledDate`/`deliveredDate` + 2. Order status was not automatically updated when delivery status changed via updateDelivery method + 3. Delivered deliveries had missing `deliveredDate` field causing "Date non disponible" display +- **Solution Implemented**: + - Enhanced OrderDetailModal to display correct dates: `deliveredDate` for delivered items, `scheduledDate` for planned ones + - Added automatic order status synchronization in `updateDelivery` method when delivery marked as delivered + - Created `fix-delivery-order-sync.sql` script to correct existing production data inconsistencies + - Improved Calendar date initialization to show current month instead of hardcoded July 2025 +- **Result**: Calendar now properly displays delivery dates and automatically synchronizes order statuses when deliveries are completed \ No newline at end of file diff --git a/server/storage.ts b/server/storage.ts index 5bbc53a..88f0c9c 100644 --- a/server/storage.ts +++ b/server/storage.ts @@ -640,11 +640,27 @@ export class DatabaseStorage implements IStorage { } async updateDelivery(id: number, delivery: Partial): Promise { + const currentDelivery = await this.getDelivery(id); + if (!currentDelivery) throw new Error("Delivery not found"); + const [updatedDelivery] = await db .update(deliveries) .set({ ...delivery, updatedAt: new Date() }) .where(eq(deliveries.id, id)) .returning(); + + // Si la livraison est marquée comme livrée et qu'elle est liée à une commande + if (delivery.status === 'delivered' && currentDelivery.orderId) { + console.log('🔄 Delivery marked as delivered, updating linked order status'); + await db + .update(orders) + .set({ + status: 'delivered', + updatedAt: new Date() + }) + .where(eq(orders.id, currentDelivery.orderId)); + } + return updatedDelivery; }