diff --git a/Aspnet/Controllers/ContratoController.cs b/Aspnet/Controllers/ContratoController.cs index 8936063..0740652 100644 --- a/Aspnet/Controllers/ContratoController.cs +++ b/Aspnet/Controllers/ContratoController.cs @@ -401,6 +401,38 @@ public class ContratoController : ControllerBase BadRequest(new { message = "No se pudo enviar la notificacion" }); } + [HttpGet("api/precontrato/preCargaGarantes/data")] + public IActionResult ObtenerDatosParaMostrarleAlInquilinoPreCargaGarantes([FromHeader(Name="Auth")]string Auth, int propiedadId){ + if (propiedadId<=0) return BadRequest(new { message = "Numero de propiedad inexistente"}); + + var cli = RepositorioUsuarios.Singleton.ObtenerClientePorToken(Auth); + if (cli == null) return BadRequest(new { message = "No hay cliente por ese token" }); + + Contrato? contrato = RepositorioContratos.Singleton.ObtenerPreContratoPorIdDePropiedadyCliente(cli, propiedadId); + + if (contrato == null) return BadRequest(new {message = "no se pudo encontrar los datos del precontrato"}); + + PreContratoDataDto d = new PreContratoDataDto + { + TieneOpcionDeVenta = contrato.Tieneopcionventa == 1, + + MontoOpcionDeVenta = contrato.Tieneopcionventa == 1 && contrato.IdventaNavigation != null + ? contrato.IdventaNavigation.Monto + : null, + + MonedaOpcionDeVenta = contrato.Tieneopcionventa == 1 + && contrato.IdventaNavigation != null + && contrato.IdventaNavigation.IddivisaNavigation != null + ? contrato.IdventaNavigation.IddivisaNavigation.Signo + : null, + + DuracionEnMeses = contrato.MesesDurationContrato, + + FrecuenciaAumentoEnMeses = contrato.MesesHastaAumento + }; + return Ok(d); + } + [HttpPut("api/contratos/addGarantes")] public IActionResult AddGarantes([FromHeader(Name = "Auth")] string Auth, AltaGarantesDto dto) { diff --git a/Entidades/Dto/PreContratoDataDto.cs b/Entidades/Dto/PreContratoDataDto.cs new file mode 100644 index 0000000..cc02485 --- /dev/null +++ b/Entidades/Dto/PreContratoDataDto.cs @@ -0,0 +1,7 @@ +public class PreContratoDataDto{ + public bool TieneOpcionDeVenta { get; set; } + public decimal? MontoOpcionDeVenta { get; set; } + public string? MonedaOpcionDeVenta { get; set; } + public int DuracionEnMeses { get; set; } + public int? FrecuenciaAumentoEnMeses { get; set; } +} diff --git a/Front/src/Componentes/ModalAddGarantes.svelte b/Front/src/Componentes/ModalAddGarantes.svelte index ca0e721..1351662 100644 --- a/Front/src/Componentes/ModalAddGarantes.svelte +++ b/Front/src/Componentes/ModalAddGarantes.svelte @@ -1,16 +1,17 @@ + \ No newline at end of file + diff --git a/Front/src/types.d.ts b/Front/src/types.d.ts index ab747a1..0b2f059 100644 --- a/Front/src/types.d.ts +++ b/Front/src/types.d.ts @@ -244,20 +244,28 @@ export type ClientePanel = { } export type IngresosDto = { - mes:number, - realizados:number, - atrasados:number, - sin_realizar:number + mes:number, + realizados:number, + atrasados:number, + sin_realizar:number } export type CrearUsuario = { - Dni: number; - Nombre: string; - Apellido: string; - Domicilio: string; - Celular: string; - Email: string; - Contraseña: string; - EmailRecuperacion?: string | null; - grupos: number[]; + Dni: number; + Nombre: string; + Apellido: string; + Domicilio: string; + Celular: string; + Email: string; + Contraseña: string; + EmailRecuperacion?: string | null; + grupos: number[]; } + +export type PreContratoData = { + tieneOpcionDeVenta: boolean; + montoOpcionDeVenta?: number; + monedaOpcionDeVenta?: string; + duracionEnMeses: number; + frecuenciaAumentoEnMeses?: number | null; +}; diff --git a/Modelo/RepositorioContratos.cs b/Modelo/RepositorioContratos.cs index 5119af3..8d073f4 100644 --- a/Modelo/RepositorioContratos.cs +++ b/Modelo/RepositorioContratos.cs @@ -168,6 +168,16 @@ public class RepositorioContratos: RepositorioBase { return Guardar(con); } + public Contrato? ObtenerPreContratoPorIdDePropiedadyCliente(Cliente cli, int propiedadid){ + var con = Context; + + var cont = con.Contratos.Where(x=>x.Habilitado == 0ul && x.Cancelado == 0ul) + .Include(x=>x.IdventaNavigation) + .ThenInclude(x=>x.IddivisaNavigation) + .FirstOrDefault(x => x.Dniinquilino == cli.Dni && x.Idpropiedad == propiedadid); + return cont; + } + public IQueryable ObtenerContratosDePropietario(long dni) { var con = Context; var l = con.Contratos