📊 Descripción General
La entidad Traspaso representa el control de traspasos entre sesiones en el sistema RestMaster. Esta entidad permite gestionar el proceso de transferencia de datos entre diferentes sesiones de trabajo, incluyendo apertura, cierre y procesamiento.
🎯 Propósito de la Entidad
- Control de Sesiones: Gestión de traspasos entre sesiones
- Proceso de Transferencia: Transferencia de datos
- Control de Estados: Estados de traspaso
- Auditoría: Trazabilidad de traspasos
- Sincronización: Control de procesos
💡 Ejemplo de Uso
// Crear traspaso de sesión
var traspaso = new Traspaso
{
Sesion = 1001,
Estado = "A",
Apertura = DateTime.Now,
Cierre = null,
Proceso = null
};
// Consultar traspasos por estado
var traspasosAbiertos = context.Traspasos
.Where(t => t.Estado == "A")
.OrderBy(t => t.Sesion)
.ToList();
// Buscar traspaso por sesión
var traspasoSesion = context.Traspasos
.FirstOrDefault(t => t.Sesion == 1001);
// Cerrar traspaso
var traspasoCerrar = context.Traspasos
.FirstOrDefault(t => t.Sesion == 1001 && t.Estado == "A");
if (traspasoCerrar != null)
{
traspasoCerrar.Estado = "C";
traspasoCerrar.Cierre = DateTime.Now;
context.SaveChanges();
}
// Procesar traspaso
var traspasoProcesar = context.Traspasos
.FirstOrDefault(t => t.Sesion == 1001 && t.Estado == "C");
if (traspasoProcesar != null)
{
traspasoProcesar.Estado = "P";
traspasoProcesar.Proceso = DateTime.Now;
context.SaveChanges();
}
// Consultar traspasos por rango de fechas
var traspasosRango = context.Traspasos
.Where(t => t.Apertura >= DateTime.Today && t.Apertura < DateTime.Today.AddDays(1))
.ToList();
// Verificar traspasos pendientes
var traspasosPendientes = context.Traspasos
.Where(t => t.Estado == "A" && t.Cierre == null)
.ToList();
// Calcular duración de traspaso
var traspasoDuracion = context.Traspasos
.FirstOrDefault(t => t.Sesion == 1001);
if (traspasoDuracion != null && traspasoDuracion.Apertura.HasValue && traspasoDuracion.Cierre.HasValue)
{
var duracion = traspasoDuracion.Cierre.Value - traspasoDuracion.Apertura.Value;
Console.WriteLine($"Duración del traspaso: {duracion.TotalMinutes} minutos");
}
// Consultar traspasos procesados
var traspasosProcesados = context.Traspasos
.Where(t => t.Estado == "P" && t.Proceso.HasValue)
.OrderByDescending(t => t.Proceso)
.ToList();