fix(alarmas): scope schedule-skip exceptions to skipNext only
ExcepcionAlarma._esValida matched ANY exception tipo against an occurrence, treating it as a user skip. Only the 'skipNext' tipo existed until now, but the next commits reuse the same model to record scheduling-reliability failures per alarm (so the alarms list can surface them via ultimaExcepcionPara) -- without this guard, a recorded failure would be silently treated as if the user asked to skip that occurrence, corrupting scheduling. Adds tipo constants to ExcepcionAlarma for the upcoming failure kinds.
This commit is contained in:
@@ -150,9 +150,15 @@ class ServicioProgramacionAlarmas {
|
||||
if (!alarma.sonarEnVacaciones && estaEnVacaciones(candidato, vacaciones)) {
|
||||
return false;
|
||||
}
|
||||
// Only a deliberate user skip ever removes a candidate occurrence.
|
||||
// Reliability-failure records share this same list/model (so the alarms
|
||||
// list can surface them per-alarm via `ultimaExcepcionPara`), but they
|
||||
// must never be mistaken for a skip — that would silently jump the
|
||||
// alarm to its NEXT occurrence instead of just flagging the failed one.
|
||||
return !excepciones.any(
|
||||
(excepcion) =>
|
||||
excepcion.alarmaId == alarma.id &&
|
||||
excepcion.tipo == ExcepcionAlarma.tipoSaltoSiguiente &&
|
||||
_mismaEjecucion(excepcion.ejecucion, candidato),
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user