diff --git a/.replit b/.replit index 901734f..c7abdf5 100644 --- a/.replit +++ b/.replit @@ -47,6 +47,10 @@ externalPort = 6000 localPort = 44549 externalPort = 5173 +[[ports]] +localPort = 44965 +externalPort = 6800 + [workflows] runButton = "Project" diff --git a/client/src/pages/CustomerOrders.tsx b/client/src/pages/CustomerOrders.tsx index bdd9512..9822f30 100644 --- a/client/src/pages/CustomerOrders.tsx +++ b/client/src/pages/CustomerOrders.tsx @@ -660,39 +660,53 @@ export default function CustomerOrders() { return matchesSearch && matchesSupplier && matchesStatus; }) : []; - // Sort orders - const sortedOrders = [...filteredOrders].sort((a, b) => { - let aValue: string | number; - let bValue: string | number; + // Sort orders - Active orders first, then "Retiré" orders last + const sortedOrders = (() => { + // Séparer les commandes en deux groupes + const activeOrders = filteredOrders.filter(order => order.status !== "Retiré"); + const retiredOrders = filteredOrders.filter(order => order.status === "Retiré"); + + // Fonction de tri commune + const sortFunction = (a: any, b: any) => { + let aValue: string | number; + let bValue: string | number; - switch (sortBy) { - case "date": - const dateA = safeDate(a.createdAt); - const dateB = safeDate(b.createdAt); - aValue = dateA ? dateA.getTime() : 0; - bValue = dateB ? dateB.getTime() : 0; - break; - case "status": - aValue = a.status; - bValue = b.status; - break; - case "supplier": - aValue = a.supplier?.name || ""; - bValue = b.supplier?.name || ""; - break; - default: - const defaultDateA = safeDate(a.createdAt); - const defaultDateB = safeDate(b.createdAt); - aValue = defaultDateA ? defaultDateA.getTime() : 0; - bValue = defaultDateB ? defaultDateB.getTime() : 0; - } + switch (sortBy) { + case "date": + const dateA = safeDate(a.createdAt); + const dateB = safeDate(b.createdAt); + aValue = dateA ? dateA.getTime() : 0; + bValue = dateB ? dateB.getTime() : 0; + break; + case "status": + aValue = a.status; + bValue = b.status; + break; + case "supplier": + aValue = a.supplier?.name || ""; + bValue = b.supplier?.name || ""; + break; + default: + const defaultDateA = safeDate(a.createdAt); + const defaultDateB = safeDate(b.createdAt); + aValue = defaultDateA ? defaultDateA.getTime() : 0; + bValue = defaultDateB ? defaultDateB.getTime() : 0; + } - if (sortOrder === "desc") { - return aValue > bValue ? -1 : aValue < bValue ? 1 : 0; - } else { - return aValue < bValue ? -1 : aValue > bValue ? 1 : 0; - } - }); + if (sortOrder === "desc") { + return aValue > bValue ? -1 : aValue < bValue ? 1 : 0; + } else { + return aValue < bValue ? -1 : aValue > bValue ? 1 : 0; + } + }; + + // Trier chaque groupe séparément + const sortedActiveOrders = [...activeOrders].sort(sortFunction); + const sortedRetiredOrders = [...retiredOrders].sort(sortFunction); + + // Concaténer : commandes actives d'abord, puis retiré en dernier + return [...sortedActiveOrders, ...sortedRetiredOrders]; + })(); // Pagination const { @@ -819,13 +833,13 @@ export default function CustomerOrders() { {paginatedOrders.map((order) => ( - + {order.customerName} - {order.customerPhone} - + {order.customerPhone} +
{order.productDesignation}
{order.productReference && ( @@ -835,30 +849,30 @@ export default function CustomerOrders() { )}
- - + + {order.quantity || 1} - +
{order.supplier?.name || "N/A"}
- - + + {order.gencode || "-"} openStatusModal(order)} > {order.status} - + {safeFormat(order.createdAt, 'dd/MM/yyyy')}