using AlquilaFacil.Builder; using Entidades.Informes; using Microsoft.AspNetCore.Mvc; using Modelo; namespace AlquilaFacil.Controllers; [ApiController] public class EstadisticaController : ControllerBase { [HttpGet("/api/stats/Pagos")] public IActionResult EstadisticasPagos([FromHeader(Name ="Auth")] string Auth, int year){ if (String.IsNullOrWhiteSpace(Auth)) return BadRequest(""); var validacion1 = RepositorioPermisos.Singleton.CheckPermisos(Auth, 6); if (validacion1 == false) return Unauthorized(); ChartData stats; List tabla; (stats, tabla) = RepositorioEstadisticas.Singleton.InformePagos(year); return Ok(new { chart = stats, tabla = tabla}); } [HttpGet("api/stats/alquileresIniciados")] public IActionResult alquileresIniciadosEsteAño([FromHeader(Name = "Auth")] string Auth, int year) { if (String.IsNullOrWhiteSpace(Auth)) return BadRequest(""); var validacion1 = RepositorioPermisos.Singleton.CheckPermisos(Auth, 6); if (validacion1 == false) return Unauthorized(); var validacion2 = RepositorioContratos.Singleton.HayContratosEnAño(year); if (validacion2 == false) return BadRequest(new { message = "No hay contratos en ese año" }); var a = RepositorioEstadisticas.Singleton.ObtenerDataIniciadosPorAño(year); return Ok(a); } [HttpGet("api/contrato/stats")] public IActionResult ObtenerMesesPagos([FromHeader(Name = "Auth")] string Auth, long idcontrato = 0) { if (String.IsNullOrWhiteSpace(Auth)) return BadRequest(""); var validacion1 = RepositorioPermisos.Singleton.CheckPermisos(Auth, 12); if (validacion1 == false) return Unauthorized(); if (idcontrato <= 0) return BadRequest(new { message = "No puede tener un id contrato menor o igual a 0" }); var ret = RepositorioEstadisticas.Singleton.ObtenerDatosPagosContrato(idcontrato); return Ok(ret); } [HttpGet("api/tabla/alquileresIniciados")] public IActionResult tablaalquileresIniciadosEsteAño([FromHeader(Name = "Auth")] string Auth, int year) { if (String.IsNullOrWhiteSpace(Auth)) return BadRequest(""); var validacion1 = RepositorioPermisos.Singleton.CheckPermisos(Auth, 6); if (validacion1 == false) return Unauthorized(); var validacion2 = RepositorioContratos.Singleton.HayContratosEnAño(year); if (validacion2 == false) return BadRequest(new { message = "No hay contratos en ese año" }); var a = RepositorioEstadisticas.Singleton.TablaObtenerContratosIniciadosPorAño(year); if (a == null) return BadRequest(new { message = "Fallo al obtener el contrato" }); List informe = new(); foreach (var i in a) { var d = new InformesAlquilerBuilder() .SetId(i.Id).SetUbicacion(i.IdpropiedadNavigation.Ubicacion) .SetDivisa(i.IddivisaNavigation.Signo) .Build(); informe.Add(d); } return Ok(informe); } [HttpGet("api/stats/duracionContrato")] public IActionResult DuracionContrato([FromHeader(Name = "Auth")] string Auth) { if (String.IsNullOrWhiteSpace(Auth)) return BadRequest(""); var validacion1 = RepositorioPermisos.Singleton.CheckPermisos(Auth, 6); if (validacion1 == false) return Unauthorized(); var a = RepositorioEstadisticas.Singleton.ObtenerDataDuracionContratos(); return Ok(a); } [HttpGet("api/tabla/duracionContrato")] public IActionResult TablaDuracionContrato([FromHeader(Name = "Auth")] string Auth) { if (String.IsNullOrWhiteSpace(Auth)) return BadRequest(""); var validacion1 = RepositorioPermisos.Singleton.CheckPermisos(Auth, 6); if (validacion1 == false) return Unauthorized(); var a = RepositorioEstadisticas.Singleton.TablaObtenerDataDuracionContratos(); return Ok(a); } }