Skip to content
Extraits de code Groupes Projets
Valider 6a802178 rédigé par anas elhaddad's avatar anas elhaddad
Parcourir les fichiers

add storation button

parent cde7de9e
Branches
1 requête de fusion!499Ms-99/add storation button
Pipeline #16427 en échec avec l'étape
in 4 minutes et 23 secondes
......@@ -737,4 +737,21 @@ export function useSearchUnregistredClient({
isValidating,
revalidate: mutate,
};
}
\ No newline at end of file
}
export function useRestoreOrder() {
const restoreOrder = async (orderId: string) => {
try {
const response = await axiosInstance.put(`${endpoints.salleSession.restoreOrder(orderId)}`);
await mutate(endpoints.salleSession.getOrdersBySessionId);
return response.data;
} catch (error) {
console.error("Failed to restore order", error);
throw error;
}
}
const memoizedValue = useMemo(() => ({ restoreOrder }), []);
return memoizedValue;
};
\ No newline at end of file
......@@ -3,12 +3,13 @@ import TableRow from "@mui/material/TableRow";
import DeleteIcon from "@mui/icons-material/Delete";
import TableCell from "@mui/material/TableCell";
import IconButton from "@mui/material/IconButton";
import RestoreFromTrashIcon from "@mui/icons-material/RestoreFromTrash";
import ListItemText from "@mui/material/ListItemText";
import Label from "../../../components/label";
import { IOrder } from "@/shared/types/saleSession";
import { Checkbox } from "@mui/material";
import { fDate, fTime } from "@/utils/format-time";
import { useDeleteOrder } from "@/shared/api/saleSession";
import { useDeleteOrder , useRestoreOrder } from "@/shared/api/saleSession";
import { useSnackbar } from "@/components/snackbar";
import { useBoolean } from "@/hooks/use-boolean";
import QuantityEditForm from "./order-quick-edit-quantity";
......@@ -38,6 +39,7 @@ export default function OrderTableRow({ row, selected }: Props) {
const { enqueueSnackbar } = useSnackbar();
const { deleteOrder } = useDeleteOrder();
const {restoreOrder} = useRestoreOrder();
const quickEdit = useBoolean();
const handleDelete = async () => {
......@@ -49,6 +51,20 @@ export default function OrderTableRow({ row, selected }: Props) {
enqueueSnackbar("Échec de la suppression de la commande", { variant: "error" });
}
};
const handleRestore = async () => {
try {
await restoreOrder(orderId);
enqueueSnackbar("Commande restoré avec succès", { variant: "success" });
} catch (error) {
enqueueSnackbar("Échec de la restoration de la commande", { variant: "error" });
}
};
const shouldShowActions = statutPanier !== "DELETED_BO" && statutPanier !== "PAYED";
const getStatutPanierLabel = (status: string) => {
......@@ -61,7 +77,7 @@ export default function OrderTableRow({ row, selected }: Props) {
return "Supprimer depuis Site";
case "DELETED_BO":
return "Supprimer depuis Bo";
case "PAYED" :
case "PAYED":
return "payer"
default:
return "Inconnu";
......@@ -157,26 +173,40 @@ export default function OrderTableRow({ row, selected }: Props) {
/>
</TableCell>
<TableCell align="right" sx={{ px: 1, whiteSpace: "nowrap" }}>
{shouldShowActions ? (
<>
<Tooltip title="Modifier la quantité" placement="top" arrow>
<IconButton
color="primary"
onClick={() => {
quickEdit.onTrue();
}}
>
<Iconify icon="solar:pen-bold" />
</IconButton>
</Tooltip>
<Tooltip title="Supprimer" placement="top" arrow>
<IconButton color="error" onClick={handleDelete}>
<DeleteIcon />
</IconButton>
</Tooltip>
</>
) : null}
{shouldShowActions ? (
<>
<Tooltip title="Modifier la quantité" placement="top" arrow>
<IconButton
color="primary"
onClick={() => {
quickEdit.onTrue();
}}
>
<Iconify icon="solar:pen-bold" />
</IconButton>
</Tooltip>
<Tooltip title="Supprimer" placement="top" arrow>
<IconButton color="error" onClick={handleDelete}>
<DeleteIcon />
</IconButton>
</Tooltip>
{(row.statutPanier === 'DELETED_SITE' || row.statutPanier === 'DELETED_BO') && (
<Tooltip title="Restaurer" placement="top" arrow>
<IconButton
sx={{ color: "#ff9800" }}
onClick={handleRestore}
>
<RestoreFromTrashIcon />
</IconButton>
</Tooltip>
)}
</>
) : null}
</TableCell>
</TableRow>
<QuantityEditForm
......
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