From 28415f8ba8d5cfe47f21040cda9aef0f64323823 Mon Sep 17 00:00:00 2001 From: fede Date: Fri, 17 Jan 2025 16:21:51 -0300 Subject: [PATCH] commit casi todo listo --- Aspnet/Controllers/ContratoController.cs | 13 ++++++++++++- Entidades/Dto/CrearCanonsDto.cs | 6 ++++++ Modelo/RepositorioCanons.cs | 24 ++++++++++++++++++++++++ 3 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 Entidades/Dto/CrearCanonsDto.cs diff --git a/Aspnet/Controllers/ContratoController.cs b/Aspnet/Controllers/ContratoController.cs index c5828f3..46bf234 100644 --- a/Aspnet/Controllers/ContratoController.cs +++ b/Aspnet/Controllers/ContratoController.cs @@ -74,11 +74,22 @@ public class ContratoController: ControllerBase { } [HttpPost("api/contratos/crearcanons")] //WIP - public IActionResult crearCanons([FromHeader(Name="Auth")]string Auth){ + public IActionResult crearCanons([FromHeader(Name="Auth")]string Auth, CrearCanonsDto dto){ if (String.IsNullOrEmpty(Auth)) return Unauthorized(); var validacion1 = RepositorioGrupos.Singleton.CheckGrupos(Auth, "Propietario"); if (validacion1 == false)return Unauthorized(); + Cliente? cli = RepositorioUsuarios.Singleton.ObtenerClientePorToken(Auth); + if (cli == null) return Unauthorized(); + if (dto.aumento <=Decimal.Zero || dto.idcontrato <=0) return BadRequest(new { message ="estan mal cargados los datos"}); + + Contrato? cont = RepositorioContratos.Singleton.ObtenerContratoPorId(dto.idcontrato); + if (cont == null) return BadRequest(new { message = "no hay un contrato por esa id"}); + if (cli.Dni != cont.Dnipropietario) return BadRequest(new {message = "No sos el propietario o intenta volviendote a logear"}); + + var ret = RepositorioCanons.Singleton.CrearCanons(dto.aumento, dto.idcontrato); + return ret ? + Ok(new { message = "Se crearon los canons correctamente"}):BadRequest(new { message = "No se pudo guardar"}); } [HttpGet("api/contratos/canon")] diff --git a/Entidades/Dto/CrearCanonsDto.cs b/Entidades/Dto/CrearCanonsDto.cs new file mode 100644 index 0000000..6d2fabc --- /dev/null +++ b/Entidades/Dto/CrearCanonsDto.cs @@ -0,0 +1,6 @@ +namespace Entidades.Dto; + +public class CrearCanonsDto { + public long idcontrato{ get; set; } + public decimal aumento{ get; set; } +} \ No newline at end of file diff --git a/Modelo/RepositorioCanons.cs b/Modelo/RepositorioCanons.cs index e6794de..1660cdb 100644 --- a/Modelo/RepositorioCanons.cs +++ b/Modelo/RepositorioCanons.cs @@ -42,4 +42,28 @@ public class RepositorioCanons: RepositorioBase { return Guardar(con); } + + public bool CrearCanons(decimal aumento, long idcontrato) { //WIP + var con = Context; + + aumento+=1; + + var cont = con.Contratos.Include(x=>x.Idcanons).FirstOrDefault(x=>x.Id == idcontrato); + if (cont == null) return false; + + int exist = cont.Idcanons.Count(); + if (exist+cont.MesesHastaAumento >= cont.MesesDurationContrato){ + exist = cont.MesesDurationContrato-exist; + } else{ + exist = cont.MesesHastaAumento; + } + + cont.Monto = cont.Monto * aumento; + + for (int i = 0; i < exist; i++){ + Canon c = new Canon{ + Fecha + }; + } + } } \ No newline at end of file