From 687a1b41d467a971cfe68a635ca3b93d11ef4638 Mon Sep 17 00:00:00 2001 From: michaelschal <35957947-michaelschal@users.noreply.replit.com> Date: Mon, 11 Aug 2025 20:55:33 +0000 Subject: [PATCH] Fix calendar errors and improve order delivery status handling Adds TypeScript type annotations to the calendar component and refactors the order update logic to use fetch directly, improving robustness and addressing production errors. 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/KuIk8gU --- PRODUCTION-ERROR-502-FIX.md | 130 ++++++++++++++++++++++++ attached_assets/image_1754945642796.png | Bin 0 -> 54195 bytes client/src/pages/Calendar.tsx | 31 +++--- 3 files changed, 148 insertions(+), 13 deletions(-) create mode 100644 PRODUCTION-ERROR-502-FIX.md create mode 100644 attached_assets/image_1754945642796.png diff --git a/PRODUCTION-ERROR-502-FIX.md b/PRODUCTION-ERROR-502-FIX.md new file mode 100644 index 0000000..5ad816f --- /dev/null +++ b/PRODUCTION-ERROR-502-FIX.md @@ -0,0 +1,130 @@ +# Correction des Erreurs 502 - Production + +## Problème Identifié +- Erreurs 502 (Bad Gateway) lors des appels API `/api/deliveries` et `/api/orders` +- CMD-55 n'apparaît pas en gris dans le calendrier +- Erreurs TypeScript dans le code du calendrier + +## Solutions + +### 1. Vérification du Serveur Backend + +Vérifiez que votre serveur Node.js fonctionne : + +```bash +# Vérifier le processus +ps aux | grep node + +# Vérifier les logs du serveur +tail -f /path/to/your/server/logs + +# Vérifier si le port est écouté +netstat -tlnp | grep :YOUR_PORT +``` + +### 2. Redémarrage du Serveur + +```bash +# Via PM2 +pm2 restart your-app-name +pm2 logs your-app-name + +# Via systemctl +sudo systemctl restart your-node-service +sudo systemctl status your-node-service + +# Via Docker +docker-compose restart +docker-compose logs -f +``` + +### 3. Vérification de la Configuration Proxy/Nginx + +Si vous utilisez un proxy inverse (Nginx), vérifiez la configuration : + +```nginx +location /api/ { + proxy_pass http://localhost:YOUR_NODE_PORT/api/; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection 'upgrade'; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_cache_bypass $http_upgrade; + proxy_read_timeout 86400; +} +``` + +### 4. Correction SQL Directe pour CMD-55 + +Pendant que vous résolvez les erreurs 502, corrigez CMD-55 directement : + +```sql +-- Connexion à votre base +psql -h your-host -U your-user -d your-database + +-- Correction CMD-55 +UPDATE orders +SET status = 'delivered' +WHERE id = 55 + AND status != 'delivered' + AND EXISTS ( + SELECT 1 FROM deliveries d + WHERE d."orderId" = 55 + AND d.status = 'delivered' + ); + +-- Vérifier le résultat +SELECT o.id, o.status, COUNT(d.id) as deliveries, + COUNT(CASE WHEN d.status = 'delivered' THEN 1 END) as delivered_deliveries +FROM orders o +LEFT JOIN deliveries d ON o.id = d."orderId" +WHERE o.id = 55 +GROUP BY o.id, o.status; +``` + +### 5. Test des API manuellement + +```bash +# Tester l'API orders +curl -X GET "http://your-server.com/api/orders" \ + -H "Cookie: your-session-cookie" + +# Tester l'API deliveries +curl -X GET "http://your-server.com/api/deliveries" \ + -H "Cookie: your-session-cookie" +``` + +## Actions Prioritaires + +1. **Immédiat** : Exécuter la correction SQL pour CMD-55 +2. **Urgent** : Redémarrer votre serveur Node.js +3. **Important** : Vérifier les logs pour identifier la cause des 502 + +## Diagnostic des Logs + +Recherchez dans vos logs : + +```bash +# Erreurs Node.js +grep -i "error\|crash\|exception" /path/to/logs + +# Erreurs de base de données +grep -i "database\|postgres\|connection" /path/to/logs + +# Erreurs de mémoire +grep -i "memory\|heap" /path/to/logs +``` + +## Résultat Attendu + +Après correction : +- Les API `/api/orders` et `/api/deliveries` répondent sans erreur 502 +- CMD-55 apparaît en gris dans le calendrier +- Le bouton "Sync Status" fonctionne correctement + +--- + +**Note** : La correction SQL de CMD-55 peut être appliquée immédiatement, indépendamment de la résolution des erreurs 502. \ No newline at end of file diff --git a/attached_assets/image_1754945642796.png b/attached_assets/image_1754945642796.png new file mode 100644 index 0000000000000000000000000000000000000000..0b46e813fa6a7058e8defd75683c48d8e4cc43ea GIT binary patch literal 54195 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Ŗ(;4etd?1{e1R81(gV$K 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 literal 0 HcmV?d00001 diff --git a/client/src/pages/Calendar.tsx b/client/src/pages/Calendar.tsx index 6b60549..a49ae07 100644 --- a/client/src/pages/Calendar.tsx +++ b/client/src/pages/Calendar.tsx @@ -160,8 +160,8 @@ export default function Calendar() { const allDeliveries = await deliveriesResponse.json(); // Enrichir les commandes avec leurs livraisons pour avoir les bonnes relations - const enrichedOrders = filteredOrders.map(order => { - const orderDeliveries = allDeliveries.filter(delivery => delivery.orderId === order.id); + const enrichedOrders = filteredOrders.map((order: any) => { + const orderDeliveries = allDeliveries.filter((delivery: any) => delivery.orderId === order.id); return { ...order, deliveries: orderDeliveries @@ -172,18 +172,18 @@ export default function Calendar() { filteredOrders: filteredOrders.length, enrichedOrders: enrichedOrders.length, allDeliveries: allDeliveries.length, - deliveredDeliveries: allDeliveries.filter(d => d.status === 'delivered').length + deliveredDeliveries: allDeliveries.filter((d: any) => d.status === 'delivered').length }); // Chercher spécifiquement CMD-55 - const cmd55 = enrichedOrders.find(o => o.id === 55); - const cmd55Deliveries = allDeliveries.filter(d => d.orderId === 55); + const cmd55 = enrichedOrders.find((o: any) => o.id === 55); + const cmd55Deliveries = allDeliveries.filter((d: any) => d.orderId === 55); console.log('🎯 CMD-55 Analysis:', { foundInOrders: !!cmd55, cmd55Status: cmd55?.status || 'NOT_FOUND', cmd55Deliveries: cmd55Deliveries.length, - deliveryStatuses: cmd55Deliveries.map(d => ({ + deliveryStatuses: cmd55Deliveries.map((d: any) => ({ id: d.id, status: d.status, deliveredDate: d.deliveredDate, @@ -199,26 +199,31 @@ export default function Calendar() { console.log(`🔍 Analyzing order #CMD-${order.id}:`, { status: order.status, deliveries: order.deliveries?.length || 0, - deliveryStatuses: order.deliveries?.map(d => ({ id: d.id, status: d.status, deliveredDate: d.deliveredDate })) || [] + deliveryStatuses: order.deliveries?.map((d: any) => ({ id: d.id, status: d.status, deliveredDate: d.deliveredDate })) || [] }); if (order.deliveries && order.deliveries.length > 0) { - const hasDeliveredDeliveries = order.deliveries.some(d => d.status === 'delivered'); + const hasDeliveredDeliveries = order.deliveries.some((d: any) => d.status === 'delivered'); if (hasDeliveredDeliveries && order.status !== 'delivered') { problematicOrders++; console.log(`🔍 Found problematic order: #CMD-${order.id} (status: ${order.status}) with delivered deliveries:`, - order.deliveries.filter(d => d.status === 'delivered').map(d => `#LIV-${d.id}`) + order.deliveries.filter((d: any) => d.status === 'delivered').map((d: any) => `#LIV-${d.id}`) ); try { - // Corriger la commande via l'API PUT existante - await apiRequest({ - url: `/api/orders/${order.id}`, + // Corriger la commande via fetch direct + const response = await fetch(`/api/orders/${order.id}`, { method: 'PUT', - data: { status: 'delivered' } + headers: { 'Content-Type': 'application/json' }, + credentials: 'include', + body: JSON.stringify({ status: 'delivered' }) }); + if (!response.ok) { + throw new Error(`HTTP ${response.status}: ${await response.text()}`); + } + fixedOrders++; console.log(`✅ Fixed order #CMD-${order.id} status to 'delivered'`); } catch (error) {