96 lines
3.9 KiB
C#
96 lines
3.9 KiB
C#
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<InformePagos> 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<InformesAlquiler> 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);
|
|
}
|
|
}
|