Skip to content

Plataforma técnica · Sevastopol

Jornada laboral en Sevastopol

Islands Remuneraciones Jornada Laboral

WorkingDayViewIsland mantiene el catálogo de jornadas laborales que los contratos consumen. Cada jornada define horario por día de la semana (entrada, salida, almuerzo) y el total de horas semanales. Es FK del contrato y referencia obligatoria del cálculo de horas extra.

DecisiónMotivo
Cálculo de horas semanales en clienteAl editar entrada/salida por día, la island recalcula horas en vivo (computeDayHours) y los totales semanales — sin segundo viaje al servidor.
Almuerzo derivado de inicio + finsyncLunchDuration computa duración de almuerzo en minutos al cambiar inicio/fin. Evita inconsistencias entre los tres campos.
Soporte de turnos que cruzan medianochesplitWrap(startMin, endMin) parte el rango cuando endMin < startMin para sumar horas correctamente en jornadas nocturnas.
Redondeo a cuartos de horaroundToQuarter aplica al total — refleja convenios laborales que cuentan en bloques de 15 min.
Tipo de jornada como filtroCOMPLETA / PARCIAL / ESPECIAL filtran el listado; el tipo condiciona reglas del cálculo.
Filtro activo/inactivo + textoVolumen bajo (pocas jornadas estándar por tenant).
view:loaded dispatcherTras carga inicial emite el evento para esconder el spinner global del shell.
GrupoCampos esperados
IdentificaciónCódigo, nombre, label.
TipoCOMPLETA / PARCIAL / ESPECIAL.
DistribuciónLunes–Domingo: trabaja sí/no, entrada, salida, almuerzo.
TotalesHoras semanales calculadas.
EstadoActiva / inactiva.
Método + rutaUso
GET /api/working_day?tenant_id=Listado.
POST /api/working_day?tenant_id=Alta.
PUT /api/working_day/:id?tenant_id=Edición.
DELETE /api/working_day/:id?tenant_id=Eliminación.

WorkingDayService — CRUD del catálogo con validación de distribución semanal.