@model MieSystem.Models.ViewModels.AsistenciaViewModel @{ ViewData["Title"] = "Control de Asistencia"; var diasSeleccionadosList = new List(); if (!string.IsNullOrEmpty(Model.DiasSemanaSeleccionados)) { diasSeleccionadosList = Model.DiasSemanaSeleccionados .Split(',', StringSplitOptions.RemoveEmptyEntries) .Select(d => d.Trim()) .ToList(); } var diasAMostrar = Model.DiasDelMes .Where(d => diasSeleccionadosList.Count == 0 || diasSeleccionadosList.Contains(((int)d.DayOfWeek).ToString())) .ToList(); }
Filtros
@foreach (var dia in ViewBag.DiasSemana) { var isChecked = diasSeleccionadosList.Contains(dia.Value);
}
Asistencia - @Model.NombreMes @Model.Año @Model.Expedientes.Count niños
@foreach (var dia in Model.DiasDelMes) { var diaSemana = ((int)dia.DayOfWeek).ToString(); var isChecked = Model.DiasSemanaSeleccionados?.Contains(diaSemana) ?? true; if (!string.IsNullOrEmpty(Model.DiasSemanaSeleccionados) && !isChecked) { continue; } var nombreDia = dia.ToString("ddd", new System.Globalization.CultureInfo("es-ES")); var esFinDeSemana = dia.DayOfWeek == DayOfWeek.Saturday || dia.DayOfWeek == DayOfWeek.Sunday; } @foreach (var expediente in Model.Expedientes) { var nombreCompleto = $"{expediente.Nombre} {expediente.Apellidos}".Trim(); var edad = 0; if (expediente.FechaNacimiento != DateTime.MinValue) { var today = DateTime.Today; edad = today.Year - expediente.FechaNacimiento.Year; if (expediente.FechaNacimiento.Date > today.AddYears(-edad)) { edad--; } } @foreach (var dia in Model.DiasDelMes) { var diaSemana = ((int)dia.DayOfWeek).ToString(); var isChecked = Model.DiasSemanaSeleccionados?.Contains(diaSemana) ?? true; if (!string.IsNullOrEmpty(Model.DiasSemanaSeleccionados) && !isChecked) { continue; } var key = $"{expediente.Id}_{dia:yyyy-MM-dd}"; var estadoActual = Model.Asistencias.ContainsKey(key) ? Model.Asistencias[key] : ""; // Determinar clase CSS según estado var claseEstado = estadoActual switch { "P" => "celda-presente", "T" => "celda-tarde", "F" => "celda-falta", _ => "" }; var esFinDeSemana = dia.DayOfWeek == DayOfWeek.Saturday || dia.DayOfWeek == DayOfWeek.Sunday; } }
Nombre
Edad
@dia.Day
@nombreDia
@nombreCompleto
Edad: @edad años
@section Styles { } @section Scripts { }