diff --git a/Aspnet/Controllers/EstadisticaController.cs b/Aspnet/Controllers/EstadisticaController.cs index 93db4df..b00e5d9 100644 --- a/Aspnet/Controllers/EstadisticaController.cs +++ b/Aspnet/Controllers/EstadisticaController.cs @@ -17,6 +17,19 @@ public class EstadisticaController: ControllerBase { 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 = RepositorioGrupos.Singleton.CheckGrupos(Auth, "Propietario"); + 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(""); diff --git a/Front/src/paginas/ContratosPropietario.svelte b/Front/src/paginas/ContratosPropietario.svelte index db9e19e..8e4c246 100644 --- a/Front/src/paginas/ContratosPropietario.svelte +++ b/Front/src/paginas/ContratosPropietario.svelte @@ -3,12 +3,12 @@ import NavBarAutocompletable from "../Componentes/NavBarAutocompletable.svelte"; import ModalEstatico from "../Componentes/ModalEstatico.svelte"; import {urlG} from "../stores/urlStore"; - import type { CanonDto, ContratoDto, ContratoPropiedadDto, DefectoDto, GaranteDto2, OpcionVentaDto } from "../types"; + import type { CanonDto, ChartData, ContratoDto, ContratoPropiedadDto, DefectoDto, GaranteDto2, OpcionVentaDto } from "../types"; import ModalConfirm from "../Componentes/ModalConfirm.svelte"; import ModalPedirDoc from "../Componentes/ModalPedirDoc.svelte"; import ModalNotificacion from "../Componentes/ModalNotificacion.svelte"; import { navigate } from "svelte-routing"; - + import FChart from "../Componentes/Estadisticas/fChart.svelte"; let token:string = sessionStorage.getItem("token")||""; @@ -16,6 +16,7 @@ let selMod:any =$state(); let showmodal:boolean = $state(false); let shownotif:boolean = $state(false); + let chartData:ChartData|any = $state(); let max:number=$state(0); @@ -47,8 +48,26 @@ await obtenerDatosACargar(); max = canons.at(-1).mesNum||0; opcionVenta(); - + await setChartData(); }); + async function setChartData() { + try{ + const r = await fetch($urlG+"/api/contrato/stats?idcontrato="+contratoid, { + method: "GET", + headers: { + "Auth": String(token), + } + }); + let data = await r.json(); + if (r.ok){ + chartData = data; + return; + } + modaldata = data.message; + }catch{ + modaldata = "no se pudo obtener el chartdata"; + } + } async function opcionVenta() { try { @@ -309,7 +328,6 @@ if (r.ok) { refreshDefectos(); } - }catch { modaldata = "No se pudo marcar como pago"; } @@ -424,6 +442,27 @@ +
+

+ +

+
+
+
+ {#if chartData != null} + + {/if} +
+
+
+