I have the following code in JS (using last ES2020), the current code check if the type is 'asporto'
or 'takeaway'
and adding to current date hours from a setup fo type 'takeaway'
or 'asporto'
and if another setup called limiteOreTakeaway/Asporto
is !== '00:00:00'
I have to check if the current time is greater than the limiteOreTakeaway/Asporto
, so I'm splitting the string limiteOreTakeaway/Asporto
to Hours and Minutes and making my checks if the current date is > that limiteOreTakeaway/Asporto
I'm adding to curDate the hours from setup + 24hours.
My code looks like this:
const curDate = new Date();
if (this.carrello.tipo === 'asporto') {
if (this.negozioSetup.limiteOreAsporto !== '00:00:00') {
// controllo se l'orario limite è impostato (orariolimite != 00:00)
const ore = parseInt(
this.negozioSetup.limiteOreAsporto.split(':')[0],
10
);
const minuti = parseInt(
this.negozioSetup.limiteOreAsporto.split(':')[1],
10
);
// controllo se l'ora di adesso ha superato l'orario limite
if (curDate.getHours() > ore) {
curDate.setHours(
curDate.getHours() + this.negozioSetup.oreMinimeAsporto + 24
);
// se l'ora corrente è uguale controllo se i minuti limite hanno superato il limite
}else if (curDate.getHours() === ore && curDate.getMinutes() > minuti) {
// se l'orario corrente è maggiore di quello limite aggiungo 24 ore alla data corrente
curDate.setHours(
curDate.getHours() + this.negozioSetup.oreMinimeAsporto + 24
);
}
} else {
// orario limite disabilitato proseguo con l'aggiunta delle ore minime tra gli ordini
curDate.setHours(
curDate.getHours() + this.negozioSetup.oreMinimeAsporto
);
}
} else if (this.carrello.tipo === 'takeaway') {
if (this.negozioSetup.limiteOreTakeaway !== '00:00:00') {
const ore = parseInt(
this.negozioSetup.limiteOreTakeaway.split(':')[0],
10
);
const minuti = parseInt(
this.negozioSetup.limiteOreTakeaway.split(':')[1],
10
);
if (curDate.getHours() > ore) {
curDate.setHours(
curDate.getHours() + this.negozioSetup.oreMinimeTakeaway + 24
);
}else if (curDate.getHours() === ore && curDate.getMinutes() > minuti) {
curDate.setHours(
curDate.getHours() + this.negozioSetup.oreMinimeTakeaway + 24
);
}
} else {
curDate.setHours(
curDate.getHours() + this.negozioSetup.oreMinimeTakeaway
);
}
}
I would like to simplify it. If it's possible, optimize it by using the last ES2020 available tools.