Buenos días, nos surgieron dudas de cómo funciona la operación Copiar Mesas de Exámen Masivamente porque no logramos el resultado esperado al copiar unas mesas, por lo que creamos otro turno con fechas distintas y vemos que en ambos casos respeta el orden de las mesas copiadas hasta que encuentra en el turno destino un feriado o fin de semana, y luego pone todas las mesas restantes del turno de origen en el primer dia hábil del turno destino.
Las fechas del Turno de exámen de origen son: fecha_inicio: 22/08/2022, fecha_fin 26/08/2022 y las fechas del Turno de exámen de destino: fecha_inicio: 5/12/2022, fecha_fin 13/12/2022. La copia pasó las mesas de la siguiente forma: mesas del dia 22/08/2022 pasan al dia 5/12/2022,mesas del dia 23/08/2022 pasan al dia 6/12/2022, mesas del dia 24/08/2022 pasan al dia 7/12/2022, mesas del dia 25/08/2022 y mesas del dia 26/08/2022 pasan al dia 12/12/2022, siendo que las mesas del dia 26/08/2022 debieron pasar al dia 13/12/2022
Como no nos quedó clara la situación hicimos otra prueba creando otro Turno de exámen de destino, sin feriados, con las siguientes fechas:
fecha_inicio: 21/12/2022, fecha_fin 27/12/2022 y pasó las mesas de la siguiente forma: mesas del dia 22/08/2022 pasan al dia 21/12/2022,mesas del dia 23/08/2022 pasan al dia 22/12/2022, mesas del dia 24/08/2022 pasan al dia 23/12/2022, mesas del dia 25/08/2022 y mesas del dia 26/08/2022 pasan al dia 26/12/2022, siendo que las mesas del dia 26/08/2022 debieron pasar al dia 27/12/2022
Desde ya agradezco una explicación que nos aclare éste tema.
Como es una semana el llamado, probaron con la opcion Respetar dia de la semana?
Para cualquier método de asignación de la fecha de la mesa a crear que seleccionen, una vez que se calcula la fecha destino se evalua si esa fecha cae en un dia hábil (se llama a la funcion de la base de datos get_dia_habil)
Esta funcion lo que hace es lo siguiente:
Si la fecha cae un dia no laborable (feriado, asueto administrativo,…), entonces devuelve la fecha del dia siguiente.
Por ejemplo, si cae el Lunes 5/12 y ese dia es feriado, asigna a la mesa el dia 06/12.
Si no es un dia no laborable pero cae un Sábado o Domingo, entonces lo pasa al Lunes siguiente.
Pueden personalizar esta funcion para que no haga nada y devuelva el dia que corresponde segun lo que seleccionaron. Luego tendran que ver esas mesas que hayan caido un dia no laborable o un Sábado (tal vez esta bien) o un Domingo.
Tal vez no haya que llamar a esta funcion para obtener el dia de la mesa que finalmente se asignará, sino que en el caso que caiga un dia no laborable o un Sábado o Domingo vean en que casos hay que eliminar la mesa y crearla otro dia.
Sí, probamos con los dos criterios: 1-Respetar dia de la semana (para probarlo extendimos el fin del turno hasta el viernes 16/12) y 2-Respetar orden del día en el llamado, pero con ambos criterios las mesas del jueves 25/08 y viernes 26/8 pasan al lunes 12/12 lo cual no se corresponde con ninguno de los 2 criterios.
Es por lo que te comente en el mensaje anterior:
Fecha Jueves 25/08 debería pasar al Jueves 08/12
Fecha Viernes 26/08 debería pasar al Viernes 09/12
Como seguramente tienen definido que el Jueves 08/12 y Viernes 09/12 es feriado, lo pasa al proximo dia hábil que es el Lunes 12/12.
Si quieren que lo asigne el dia que ocrresponde sin considerar dias feriados ni Sábados entonces la funcion get_dia_habil deben personalizarla para que siempre devuelva la fecha que recibe.
select * from get_dia_habil('2022-12-07'); -- 07/12/2022
select * from get_dia_habil('2022-12-08'); -- 12/12/2022
select * from get_dia_habil('2022-12-09'); -- 12/12/2022
select * from get_dia_habil('2022-12-10'); -- 12/12/2022
Si, deberan cambiar esas fechas.
Si quieren una solucion de aca en adelante, deberian personalizar la funcion de la base de datos get_dia_habil, para que simplemente devuelva la fecha que reciba. Luego Uds desde el sistema deberan estar atentos que si hay algun feriado deberán cambiar esas fechas o eliminar esas mesas.
En version 3.22.0 (Ticket #44810), se agrega un cambio en la operacion de Copiado masivo de mesas de examen para que el usuario indique que hacer si la fecha de la mesa es un dia no habil (crear la mesa, no crearla, crearla en el primer dia habil posterior)