Nueva mejoras Y estabilidad
This commit is contained in:
@@ -1,41 +1,30 @@
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using MieSystem.Data.Interfaces;
|
||||
using MieSystem.Models;
|
||||
using MieSystem.Models.ViewModels;
|
||||
using MieSystem.Services;
|
||||
|
||||
namespace MieSystem.Controllers
|
||||
{
|
||||
public class AsistenciaController : Controller
|
||||
{
|
||||
private readonly IExpedienteRepository _expedienteRepository;
|
||||
private readonly IAsistenciaRepository _asistenciaRepository;
|
||||
|
||||
public AsistenciaController(
|
||||
IExpedienteRepository expedienteRepository,
|
||||
IAsistenciaRepository asistenciaRepository)
|
||||
private readonly ExpedienteService expedienteService;
|
||||
private readonly AsistenciaService asistenciaService;
|
||||
public AsistenciaController(ExpedienteService expedienteService, AsistenciaService asistenciaService)
|
||||
{
|
||||
_expedienteRepository = expedienteRepository;
|
||||
_asistenciaRepository = asistenciaRepository;
|
||||
this.expedienteService = expedienteService;
|
||||
this.asistenciaService = asistenciaService;
|
||||
}
|
||||
|
||||
public async Task<IActionResult> Index(int? año, int? mes, string diasSemana = null)
|
||||
{
|
||||
// Valores por defecto: mes actual
|
||||
var fechaActual = DateTime.Now;
|
||||
var añoSeleccionado = año ?? fechaActual.Year;
|
||||
var mesSeleccionado = mes ?? fechaActual.Month;
|
||||
|
||||
// Obtener todos los niños activos
|
||||
var expedientes = await _expedienteRepository.GetActivosAsync();
|
||||
var expedientes = await expedienteService.GetActivosAsync();
|
||||
|
||||
// Obtener días del mes seleccionado
|
||||
var diasDelMes = GetDiasDelMes(añoSeleccionado, mesSeleccionado);
|
||||
|
||||
// Filtrar por días de semana si se especifica
|
||||
if (!string.IsNullOrEmpty(diasSemana))
|
||||
{
|
||||
var diasFiltro = diasSemana.Split(',')
|
||||
@@ -45,7 +34,7 @@ namespace MieSystem.Controllers
|
||||
}
|
||||
|
||||
// Obtener asistencias para el mes
|
||||
var asistencias = await _asistenciaRepository.GetAsistenciasPorMesAsync(
|
||||
var asistencias = await asistenciaService.GetAsistenciasPorMesAsync(
|
||||
añoSeleccionado, mesSeleccionado);
|
||||
|
||||
// Crear diccionario para acceso rápido
|
||||
@@ -53,7 +42,7 @@ namespace MieSystem.Controllers
|
||||
foreach (var asistencia in asistencias)
|
||||
{
|
||||
var key = $"{asistencia.ExpedienteId}_{asistencia.Fecha:yyyy-MM-dd}";
|
||||
dictAsistencias[key] = asistencia.Estado;
|
||||
dictAsistencias[key] = asistencia.Estado.ToString();
|
||||
}
|
||||
|
||||
// Crear modelo de vista
|
||||
@@ -89,11 +78,11 @@ namespace MieSystem.Controllers
|
||||
{
|
||||
ExpedienteId = expedienteId,
|
||||
Fecha = fechaDate,
|
||||
Estado = estado,
|
||||
Estado = estado[0],
|
||||
UsuarioRegistro = User.Identity?.Name ?? "Sistema"
|
||||
};
|
||||
|
||||
var resultado = await _asistenciaRepository.GuardarAsistenciaAsync(asistencia);
|
||||
var resultado = await asistenciaService.SaveAsync(asistencia);
|
||||
|
||||
return Json(new { success = resultado, message = "Asistencia guardada" });
|
||||
}
|
||||
@@ -116,13 +105,13 @@ namespace MieSystem.Controllers
|
||||
{
|
||||
ExpedienteId = asistenciaDto.ExpedienteId,
|
||||
Fecha = asistenciaDto.Fecha,
|
||||
Estado = asistenciaDto.Estado,
|
||||
Estado = asistenciaDto.Estado[0],
|
||||
UsuarioRegistro = User.Identity?.Name ?? "Sistema"
|
||||
};
|
||||
asistenciasModel.Add(asistencia);
|
||||
}
|
||||
|
||||
var resultado = await _asistenciaRepository.GuardarAsistenciasMasivasAsync(asistenciasModel);
|
||||
var resultado = asistenciaService.GuardarAsistenciasMasivasAsync(asistenciasModel);
|
||||
|
||||
return Json(new
|
||||
{
|
||||
@@ -141,7 +130,7 @@ namespace MieSystem.Controllers
|
||||
{
|
||||
try
|
||||
{
|
||||
var estadisticas = await _asistenciaRepository.GetEstadisticasMesAsync(año, mes);
|
||||
var estadisticas = await asistenciaService.GetEstadisticasMesAsync(año, mes);
|
||||
return Json(estadisticas);
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
||||
Reference in New Issue
Block a user