Commit d7772ed1 authored by Gabriel's avatar Gabriel

Agrega mensaje con proximas fechas con turnos

parent 0bf9b651
......@@ -164,6 +164,24 @@ function fechaHoraArgToFechaHoraUsa(fechaHoraArg){
return fechaHoraUsa;
}
function getSiguientesFechasConTurnos(website_id, session_id, userData){
let siguientesTurnos = userData[SIGUIENTES_TURNOS_DISPONIBLES];
let turnos = siguientesTurnos.turnos;
let choices = [];
let fechasAgregadas = {};
for(let i = 0; i < OPTIONS_LIMIT && i < turnos.length; i++){
let fechaHoraUsa = turnos[i].fechaHora;
let fechaHoraArg = fechaHoraUsaToFechaHoraArg(fechaHoraUsa);
let fechaArg = fechaHoraArg.split(" ")[0];
//Si la misma fecha ya no fue agregada, agregarla
if(fechasAgregadas[fechaArg] == null){
fechasAgregadas[fechaArg] = fechaArg;
choices.push(utils.armarChoice(i.toString(), fechaArg));
}
}
return choices;
}
module.exports =
{
ask_reservar_turno: async function (message, userData, website_id, session_id) {
......@@ -261,6 +279,31 @@ module.exports =
},
resp_fecha_turno: async function(message, userData, website_id, session_id){
userData[FECHA_TURNO] = message.content;
let siguientesTurnos = userData[SIGUIENTES_TURNOS_DISPONIBLES];
let turnos = siguientesTurnos.turnos;
let existeTurnoEnFecha = false;
for(let i=0; i < turnos.length; i++){
let fechaHoraUsa = turnos[i].fechaHora;
let fechaUsa = fechaArgToFechaUsa(userData[FECHA_TURNO]);
if(fechaHoraUsa.includes(fechaUsa)){
existeTurnoEnFecha = true;
}
}
if(existeTurnoEnFecha){
await this.ask_hora_turno(message, userData, website_id, session_id);
}
else{
//Mostrar las siguientes fechas con turnos
let choices = await getSiguientesFechasConTurnos(website_id, session_id, userData);
let fechaArg = userData[FECHA_TURNO];
await crisp.sendPickerMessage(website_id, session_id, pasos.RESP_FECHA_TURNO_SIGUIENTES_FECHAS,
`Disculpe, no hay turnos para el ${fechaArg}, pero hay turnos disponibles en las siguientes fechas`, choices);
await crisp.setSiguientePaso(website_id, session_id, pasos.RESP_FECHA_TURNO_SIGUIENTES_FECHAS, userData);
}
},
resp_fecha_turno_siguientes_fechas: async function(message, userData, website_id, session_id){
let choiceElegida = getChoiceElegida(message);
userData[FECHA_TURNO] = choiceElegida.label;
await this.ask_hora_turno(message, userData, website_id, session_id);
},
ask_hora_turno: async function(message, userData, website_id, session_id){
......
......@@ -8,6 +8,7 @@ module.exports = Object.freeze({
RESP_MEDICO_ESPECIALIDAD: 'resp_medico_especialidad',
ASK_FECHA_TURNO: 'ask_fecha_turno',
RESP_FECHA_TURNO: 'resp_fecha_turno',
RESP_FECHA_TURNO_SIGUIENTES_FECHAS: 'resp_fecha_turno_siguientes_fechas',
ASK_HORA_TURNO: 'ask_hora_turno',
RESP_HORA_TURNO: 'resp_hora_turno',
ASK_CONFIRMAR_FECHA_HORA: 'ask_confirmar_fecha_hora',
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment