Skip to content
Extraits de code Groupes Projets
Valider a111565b rédigé par AymaneMG's avatar AymaneMG
Parcourir les fichiers

Retour commande d'achat coté chauffeur et commande de vente coté BO

parent ee26b4f7
Branches
1 requête de fusion!242MYD-605 /Customer feedback regarding purchase order on the driver side and sales order on the BO side
Pipeline #5704 réussi avec l'étape
in 9 minutes et 22 secondes
......@@ -11,9 +11,9 @@ export const OrderStatus = [
];
export const ORDER_STATUS_OPTIONS = [
{ value: IOrderStatus.Completed, label: "terminé" },
{ value: IOrderStatus.Pending, label: "à faire" },
{ value: IOrderStatus.Ongoing, label: "en cours" }
{ value: IOrderStatus.Completed, label: "livré" },
{ value: IOrderStatus.Pending, label: "à collecter" },
{ value: IOrderStatus.Ongoing, label: "réceptionné" }
];
const ITEMS = [...Array(3)].map((_, index) => ({
......
......@@ -23,7 +23,7 @@ export const fetcher = async (url: string) => {
const mapOrderData = (data: any[]): ISupplierOrderItem[] => {
return data.map(order => ({
id: order.id,
orderNumber: `60${order.id}`,
orderNumber: `${order.id}`,
createdAt: new Date(order.creationDate),
deliveryDate: new Date(order.deliveryDate),
fullAddress: `${order.street}, ${order.city}, ${order.state}, ${order.zipCode}, ${order.country}`,
......@@ -60,7 +60,7 @@ export const useGetSupplierOrderDetails = (orderId: string) => {
if (data) {
return {
id: data.orderId,
orderNumber: `60${data.orderId}`,
orderNumber: `${data.orderId}`,
status:data.status,
createdAt: new Date(data.creationDate),
deliveryDate: new Date(data.deliveryDate),
......@@ -121,11 +121,11 @@ export const updateOrderStatus = async (orderId: string, newStatus: IOrderStatus
const mapStatus = (status: string) => {
switch (status) {
case "A_COLLECTER":
return "à faire";
return "à collecter";
case "LIVREE":
return "en cours";
return "livré";
case "RECEPTIONNEE":
return "termi";
return "réception";
default:
return status;
}
......@@ -134,11 +134,11 @@ const mapStatus = (status: string) => {
const reverseMapStatus = (status: IOrderStatus) => {
switch (status) {
case "à faire":
case "à collecter":
return "A_COLLECTER";
case "en cours":
case "livré":
return "LIVREE";
case "termi":
case "réception":
return "RECEPTIONNEE";
default:
return status;
......
......@@ -36,7 +36,13 @@ export const deleteSaleOrderItem = async (id: string ) => {
export const fetchAllSaleOrders = async (): Promise<SaleOrder[]> => {
try {
const response = await axiosInstance.get<SaleOrder[]>(endpoints.saleOrder.getAll);
return response.data;
// Sort the data based on creationDate from latest to oldest
const sortedData = response.data.sort((a, b) => {
return new Date(b.creationDate).getTime() - new Date(a.creationDate).getTime();
});
return sortedData;
} catch (error) {
throw new Error('Failed to fetch sale orders');
}
......
......@@ -43,6 +43,7 @@ export default function OrderTableRow({
<Box
sx={{
cursor: 'pointer',
textAlign: 'center',
'&:hover': {
textDecoration: 'underline',
},
......@@ -103,9 +104,9 @@ export default function OrderTableRow({
<Label
variant="soft"
color={
(status === 'terminé' && 'success') ||
(status === 'à faire' && 'warning') ||
(status === 'en cours' && 'info') ||
(status === 'livré' && 'success') ||
(status === 'à collecter' && 'warning') ||
(status === 'réceptionné' && 'info') ||
'default'
}
>
......
......@@ -16,9 +16,9 @@ const mapStatus = (status: string): IOrderStatus => {
switch (status) {
case "A_COLLECTER":
return IOrderStatus.Pending;
case "LIVREE":
return IOrderStatus.Ongoing;
case "RECEPTIONNEE":
return IOrderStatus.Ongoing;
case "LIVREE":
return IOrderStatus.Completed;
default:
return status as IOrderStatus; // Fallback case
......@@ -146,7 +146,7 @@ export default function OrderDetailsToolbar({
onClick={handleValidéClick}
disabled={selectedStatus === mappedStatus}
>
Validé
Valider
</Button>
</Stack>
</Stack>
......
......@@ -48,8 +48,8 @@ export default function OrderStatusHistory({ history }: Props) {
<Table>
<TableHead>
<TableRow>
<StyledTableHeadCell>Old Status</StyledTableHeadCell>
<StyledTableHeadCell>New Status</StyledTableHeadCell>
<StyledTableHeadCell>Ancien Status</StyledTableHeadCell>
<StyledTableHeadCell>Nouveau Status</StyledTableHeadCell>
<StyledTableHeadCell>Date de changement</StyledTableHeadCell>
</TableRow>
</TableHead>
......@@ -59,7 +59,7 @@ export default function OrderStatusHistory({ history }: Props) {
<StyledTableCell>{item.oldstatus}</StyledTableCell>
<StyledTableCell>{item.newstatus}</StyledTableCell>
<StyledTableCell>
{format(new Date(item.date), 'dd MMMM yyyy HH:mm')}
{format(new Date(item.date), 'dd-MM-yyyy HH:mm')}
</StyledTableCell>
</StyledTableRow>
))}
......
......@@ -51,7 +51,7 @@ export default function OrderDetailsView({ id }: Props) {
<OrderDetailsToolbar
orderId={orderDetails.id}
backLink={backLink}
orderNumber={`60${orderDetails.id}`}
orderNumber={orderDetails.id}
createdAt={orderDetails.createdAt}
deliveryDate={orderDetails.deliveryDate}
status={orderDetails.status}
......
......@@ -59,9 +59,9 @@ interface IOrderStatusOption {
const STATUS_OPTIONS: IOrderStatusOption[] = [
{ value: 'all', label: 'All' },
{ value: 'à faire', label: 'À Faire' },
{ value: 'en cours', label: 'En Cours' },
{ value: 'terminé', label: 'Terminé' },
{ value: 'à collecter', label: 'à collecter' },
{ value: 'réceptionné', label: 'réceptionné' },
{ value: 'livré', label: 'livré' },
];
const TABLE_HEAD = [
......@@ -205,15 +205,15 @@ export default function OrderListView() {
const statusCounts = useMemo(() => {
const allCount = dataFiltered.length;
const completedCount = dataFiltered.filter(order => order.status === 'terminé').length;
const pendingCount = dataFiltered.filter(order => order.status === 'à faire').length;
const ongoingCount = dataFiltered.filter(order => order.status === 'en cours').length;
const completedCount = dataFiltered.filter(order => order.status === 'livré').length;
const pendingCount = dataFiltered.filter(order => order.status === 'à collecter').length;
const ongoingCount = dataFiltered.filter(order => order.status === 'réceptionné').length;
return {
all: allCount,
terminé: completedCount,
'à faire': pendingCount,
'en cours': ongoingCount,
livré: completedCount,
'à collecter': pendingCount,
'réceptionné': ongoingCount,
};
}, [dataFiltered]);
......@@ -272,16 +272,16 @@ export default function OrderListView() {
<Label
variant={(tab.value === filters.status && 'filled') || 'soft'}
color={
(tab.value === 'terminé' && 'success') ||
(tab.value === 'à faire' && 'warning') ||
(tab.value === 'en cours' && 'info') ||
(tab.value === 'livré' && 'success') ||
(tab.value === 'à collecter' && 'warning') ||
(tab.value === 'réceptionné' && 'info') ||
'default'
}
>
{tab.value === 'all' ? statusCounts.all :
tab.value === 'terminé' ? statusCounts.terminé :
tab.value === 'à faire' ? statusCounts['à faire'] :
statusCounts['en cours']}
tab.value === 'livré' ? statusCounts.livré :
tab.value === 'à collecter' ? statusCounts['à collecter'] :
statusCounts['réceptionné']}
</Label>
}
/>
......
......@@ -105,9 +105,6 @@ export default function InvoiceTableToolbar({
}}
/>
<IconButton onClick={popover.onOpen}>
<Iconify icon="eva:more-vertical-fill" />
</IconButton>
</Stack>
</Stack>
</>
......
......@@ -21,15 +21,15 @@ export type ISupplierOrderTableFilters = {
};
export enum IOrderSupplierStatus {
Completed = "terminé",
Pending = "à faire",
Ongoing= "en cours"
Completed = "livré",
Pending = "à collecter",
Ongoing= "réceptionné"
}
export enum IOrderStatus {
Completed = "terminé",
Pending = "à faire",
Ongoing= "en cours"
Completed = "livré",
Pending = "à collecter",
Ongoing= "réceptionné"
}
// ----------------------------------------------------------------------
......
0% ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter