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

Merge branch 'feature/MYD-168' into 'develop'

MYD-168/Change start date & expiration date of sale session

Closes MYD-168

See merge request !235
parents c24599bd 6816dc9f
Branches
1 requête de fusion!235MYD-168/Change start date & expiration date of sale session
Pipeline #5560 réussi avec les étapes
in 8 minutes et 15 secondes
......@@ -223,23 +223,72 @@ export default function AllSalesSessionView() {
}
};
useEffect(() => {
console.log("Fetched sessions:", sessions);
if (sessions && sessions.length > 0) {
setTableData(sessions);
}
}, [sessions]);
useEffect(() => {
const { startedDate, expirationDate } = getCurrentDateAndExpiration();
setFormData({
...formData,
startedDate,
expirationDate,
});
}, []);
const handleCreationDateChange = (e: React.ChangeEvent<HTMLInputElement>) => {
const creationDateString = e.target.value;
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);
setFormData({
...formData,
startedDate: creationDate,
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 expiration = new Date(creationDate);
......@@ -248,6 +297,12 @@ export default function AllSalesSessionView() {
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 typeOption = LiveTyple.find((option) => option.value === value);
return typeOption ? typeOption.label : value;
......@@ -367,7 +422,7 @@ export default function AllSalesSessionView() {
InputLabelProps={{ shrink: true }}
variant="outlined"
name="startedDate"
value={formData.startedDate ? formData.startedDate.toISOString().slice(0, 16) : ''}
value={formData.startedDate ? adjustToLocalTimezone(formData.startedDate) : ''}
onChange={handleCreationDateChange}
/>
......@@ -379,8 +434,8 @@ export default function AllSalesSessionView() {
InputLabelProps={{ shrink: true }}
variant="outlined"
name="expirationDate"
value={formData.expirationDate ? formData.expirationDate.toISOString().slice(0, 16) : ''}
onChange={handleFormChange}
value={formData.expirationDate ? adjustToLocalTimezone(formData.expirationDate) : ''}
onChange={handleExpirationDateChange}
/>
<TextField
......@@ -414,7 +469,7 @@ export default function AllSalesSessionView() {
InputLabelProps={{ shrink: true }}
variant="outlined"
name="startedDate"
value={formData.startedDate ? formData.startedDate.toISOString().slice(0, 16) : ''}
value={formData.startedDate ? adjustToLocalTimezone(formData.startedDate) : ''}
onChange={handleCreationDateChange}
/>
......@@ -426,8 +481,8 @@ export default function AllSalesSessionView() {
InputLabelProps={{ shrink: true }}
variant="outlined"
name="expirationDate"
value={formData.expirationDate ? formData.expirationDate.toISOString().slice(0, 16) : ''}
onChange={handleFormChange}
value={formData.expirationDate ? adjustToLocalTimezone(formData.expirationDate) : ''}
onChange={handleExpirationDateChange}
/>
<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