Skip to content
Extraits de code Groupes Projets
Valider 6816dc9f rédigé par aicha.elyamalhi's avatar aicha.elyamalhi
Parcourir les fichiers

Change start date & expiration date of sale session

parent c24599bd
Branches
1 requête de fusion!235MYD-168/Change start date & expiration date of sale session
Pipeline #5544 réussi avec l'étape
in 9 minutes et 15 secondes
...@@ -223,23 +223,72 @@ export default function AllSalesSessionView() { ...@@ -223,23 +223,72 @@ export default function AllSalesSessionView() {
} }
}; };
useEffect(() => { useEffect(() => {
console.log("Fetched sessions:", sessions);
if (sessions && sessions.length > 0) { if (sessions && sessions.length > 0) {
setTableData(sessions); setTableData(sessions);
} }
}, [sessions]); }, [sessions]);
useEffect(() => {
const { startedDate, expirationDate } = getCurrentDateAndExpiration();
setFormData({
...formData,
startedDate,
expirationDate,
});
}, []);
const handleCreationDateChange = (e: React.ChangeEvent<HTMLInputElement>) => { const handleCreationDateChange = (e: React.ChangeEvent<HTMLInputElement>) => {
const creationDateString = e.target.value; const creationDateString = e.target.value;
const creationDate = new Date(creationDateString); const creationDate = new Date(creationDateString);
const now = new Date();
if (creationDate < now) {
enqueueSnackbar("Veuillez sélectionner une date de début valide à partir d'aujourd'hui.", {
variant: "error",
});
return;
}
const expirationDate = calculateExpirationDate(creationDate); const expirationDate = calculateExpirationDate(creationDate);
setFormData({ setFormData({
...formData, ...formData,
startedDate: creationDate, startedDate: creationDate,
expirationDate, expirationDate,
}); });
}; };
const handleExpirationDateChange = (e: React.ChangeEvent<HTMLInputElement>) => {
const expirationDateString = e.target.value;
const expirationDate = new Date(expirationDateString);
if (formData.startedDate && expirationDate <= formData.startedDate) {
enqueueSnackbar(
"La date d'expiration doit être après la date de début. Veuillez la corriger.",
{ variant: "warning" }
);
return;
}
setFormData({
...formData,
expirationDate,
});
};
const getCurrentDateAndExpiration = () => {
const now = new Date();
const expirationDate = new Date(now);
expirationDate.setDate(expirationDate.getDate() + 5);
expirationDate.setHours(0, 0, 0, 0);
console.log("now :",now)
console.log("expiration :",expirationDate)
return {
startedDate: now,
expirationDate,
};
};
const calculateExpirationDate = (creationDate: Date): Date => { const calculateExpirationDate = (creationDate: Date): Date => {
const expiration = new Date(creationDate); const expiration = new Date(creationDate);
...@@ -248,6 +297,12 @@ export default function AllSalesSessionView() { ...@@ -248,6 +297,12 @@ export default function AllSalesSessionView() {
return expiration; return expiration;
}; };
const adjustToLocalTimezone = (date: Date): string => {
const userTimezoneOffset = date.getTimezoneOffset() * 60000;
const localDate = new Date(date.getTime() - userTimezoneOffset);
return localDate.toISOString().slice(0, 16);
};
const getTypeLabel = (value: string) => { const getTypeLabel = (value: string) => {
const typeOption = LiveTyple.find((option) => option.value === value); const typeOption = LiveTyple.find((option) => option.value === value);
return typeOption ? typeOption.label : value; return typeOption ? typeOption.label : value;
...@@ -367,7 +422,7 @@ export default function AllSalesSessionView() { ...@@ -367,7 +422,7 @@ export default function AllSalesSessionView() {
InputLabelProps={{ shrink: true }} InputLabelProps={{ shrink: true }}
variant="outlined" variant="outlined"
name="startedDate" name="startedDate"
value={formData.startedDate ? formData.startedDate.toISOString().slice(0, 16) : ''} value={formData.startedDate ? adjustToLocalTimezone(formData.startedDate) : ''}
onChange={handleCreationDateChange} onChange={handleCreationDateChange}
/> />
...@@ -379,8 +434,8 @@ export default function AllSalesSessionView() { ...@@ -379,8 +434,8 @@ export default function AllSalesSessionView() {
InputLabelProps={{ shrink: true }} InputLabelProps={{ shrink: true }}
variant="outlined" variant="outlined"
name="expirationDate" name="expirationDate"
value={formData.expirationDate ? formData.expirationDate.toISOString().slice(0, 16) : ''} value={formData.expirationDate ? adjustToLocalTimezone(formData.expirationDate) : ''}
onChange={handleFormChange} onChange={handleExpirationDateChange}
/> />
<TextField <TextField
...@@ -414,7 +469,7 @@ export default function AllSalesSessionView() { ...@@ -414,7 +469,7 @@ export default function AllSalesSessionView() {
InputLabelProps={{ shrink: true }} InputLabelProps={{ shrink: true }}
variant="outlined" variant="outlined"
name="startedDate" name="startedDate"
value={formData.startedDate ? formData.startedDate.toISOString().slice(0, 16) : ''} value={formData.startedDate ? adjustToLocalTimezone(formData.startedDate) : ''}
onChange={handleCreationDateChange} onChange={handleCreationDateChange}
/> />
...@@ -426,8 +481,8 @@ export default function AllSalesSessionView() { ...@@ -426,8 +481,8 @@ export default function AllSalesSessionView() {
InputLabelProps={{ shrink: true }} InputLabelProps={{ shrink: true }}
variant="outlined" variant="outlined"
name="expirationDate" name="expirationDate"
value={formData.expirationDate ? formData.expirationDate.toISOString().slice(0, 16) : ''} value={formData.expirationDate ? adjustToLocalTimezone(formData.expirationDate) : ''}
onChange={handleFormChange} onChange={handleExpirationDateChange}
/> />
<TextField <TextField
......
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