← Volver a Entidades de Sistema

TramosHorario

Entidad para gestión de tramos horarios del restaurante

📊 Descripción General

La entidad TramosHorario representa los diferentes tramos horarios configurados en el sistema RestMaster. Esta entidad permite gestionar los horarios de servicio, turnos y períodos de operación del restaurante.

🎯 Propósito de la Entidad

  • Gestión de Horarios: Tramos horarios del restaurante
  • Turnos de Servicio: Períodos de operación
  • Configuración de Horarios: Horarios configurables
  • Control de Operación: Períodos activos
  • Reportes: Análisis por tramos horarios

📋 Propiedades de la Entidad

TramoHorario

string (50)
Nombre del tramo horario (clave primaria)

HoraInicio

DateTime
Hora de inicio del tramo horario

HoraFinal

DateTime
Hora de finalización del tramo horario

🔗 Relaciones con Otras Entidades

⚙️ Entidades de Sistema

  • Empleado: Empleados por tramo horario
  • Camarero: Camareros por turno
  • Factura: Facturas por tramo horario
  • Comanda: Comandas por período

🎯 Funcionalidades Relacionadas

  • Gestión de Horarios: Control de tramos
  • Turnos: Gestión de turnos
  • Reportes: Análisis por horarios
  • Configuración: Horarios configurables

💡 Ejemplo de Uso

// Crear tramos horarios var tramoDesayuno = new TramosHorario { TramoHorario = "DESAYUNO", HoraInicio = DateTime.Parse("07:00"), HoraFinal = DateTime.Parse("11:00") }; var tramoComida = new TramosHorario { TramoHorario = "COMIDA", HoraInicio = DateTime.Parse("12:00"), HoraFinal = DateTime.Parse("16:00") }; var tramoCena = new TramosHorario { TramoHorario = "CENA", HoraInicio = DateTime.Parse("19:00"), HoraFinal = DateTime.Parse("23:00") }; // Consultar todos los tramos horarios var tramosHorarios = context.TramosHorarios .OrderBy(th => th.HoraInicio) .ToList(); // Buscar tramo horario por nombre var tramoHorario = context.TramosHorarios .FirstOrDefault(th => th.TramoHorario == "COMIDA"); // Obtener tramo horario actual var horaActual = DateTime.Now.TimeOfDay; var tramoActual = context.TramosHorarios .FirstOrDefault(th => th.HoraInicio.TimeOfDay <= horaActual && th.HoraFinal.TimeOfDay >= horaActual); // Consultar tramos horarios por rango de horas var tramosRango = context.TramosHorarios .Where(th => th.HoraInicio.Hour >= 12 && th.HoraFinal.Hour <= 18) .ToList(); // Verificar si existe tramo horario var existeTramo = context.TramosHorarios .Any(th => th.TramoHorario == "DESAYUNO"); // Crear nuevo tramo horario if (!existeTramo) { var nuevoTramo = new TramosHorario { TramoHorario = "DESAYUNO", HoraInicio = DateTime.Parse("07:00"), HoraFinal = DateTime.Parse("11:00") }; context.TramosHorarios.Add(nuevoTramo); context.SaveChanges(); } // Calcular duración de tramo horario var tramo = context.TramosHorarios .FirstOrDefault(th => th.TramoHorario == "COMIDA"); if (tramo != null) { var duracion = tramo.HoraFinal - tramo.HoraInicio; Console.WriteLine($"Duración del tramo: {duracion.Hours} horas"); }

🔧 Configuración de Base de Datos

🗄️ Configuración de Tabla

  • Tabla: TRAMOS_HORARIOS
  • Clave Primaria: TRAMO_HORARIO
  • Esquema: Maestro

🔑 Restricciones

  • TramoHorario: Clave primaria, máximo 50 caracteres
  • HoraInicio: Hora de inicio (requerida)
  • HoraFinal: Hora de finalización (requerida)
  • Codificación: No Unicode

🔗 Integración con Otros Componentes

📚 Componentes Relacionados

  • Back.API: Controladores de tramos horarios
  • Back.Application: Servicios de tramos horarios
  • Back.Domain: DTOs de tramos horarios
  • Common.Constants: Validaciones de horarios

🎯 Casos de Uso

  • Gestión de Horarios: Control de tramos
  • Turnos: Gestión de turnos
  • Reportes: Análisis por horarios
  • Configuración: Horarios configurables
  • Control de Operación: Períodos activos
  • Auditoría: Trazabilidad por horarios