Fix order delivery status synchronization issues and improve client-side handling

Implement a client-side sync logic to correct order statuses where deliveries are marked as 'delivered' but the order status is not updated, addressing synchronization problems reported by users.

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
This commit is contained in:
michaelschal committed 2025-08-11 20:38:01 +00:00
1 parent de8e6ad9d6
commit d2e546c1bd
3 files changed
+245 -6

No files matched your search

+37 -6
View File
@@ -148,16 +148,47 @@ export default function Calendar() {
setIsSyncing(true);
try {
console.log('🔄 Starting manual sync of order-delivery status...');
const response = await apiRequest({
url: '/api/sync-order-delivery-status',
method: 'POST'
});
// Solution temporaire : récupérer les données et faire la sync côté client
const ordersResponse = await fetch('/api/orders', { credentials: 'include' });
const allOrders = await ordersResponse.json();
console.log('📊 Orders loaded for sync:', allOrders.length);
let problematicOrders = 0;
let fixedOrders = 0;
// Parcourir les commandes et identifier celles à corriger
for (const order of allOrders) {
if (order.deliveries && order.deliveries.length > 0) {
const hasDeliveredDeliveries = order.deliveries.some(d => d.status === 'delivered');
if (hasDeliveredDeliveries && order.status !== 'delivered') {
problematicOrders++;
console.log(`🔍 Found problematic order: #CMD-${order.id} (status: ${order.status}) with delivered deliveries`);
try {
// Corriger la commande via l'API PUT existante
await apiRequest({
url: `/api/orders/${order.id}`,
method: 'PUT',
data: { status: 'delivered' }
});
fixedOrders++;
console.log(`✅ Fixed order #CMD-${order.id} status to 'delivered'`);
} catch (error) {
console.error(`❌ Failed to fix order #CMD-${order.id}:`, error);
}
}
}
}
console.log('🔄 Sync result:', response);
console.log('🔄 Sync completed:', { problematicOrders, fixedOrders });
toast({
title: "Synchronisation terminée",
description: `${response.diagnostics.ordersFixed} commande(s) corrigée(s) sur ${response.diagnostics.problematicOrdersFound} problématique(s)`,
description: `${fixedOrders} commande(s) corrigée(s) sur ${problematicOrders} problématique(s)`,
});
// Rafraîchir les données du calendrier