Merge pull request 'dev' (#61) from dev into main
Reviewed-on: #61
This commit was merged in pull request #61.
This commit is contained in:
@@ -134,7 +134,7 @@ public class AdminController: ControllerBase
|
|||||||
|
|
||||||
DateTime date = DateTime.Now;
|
DateTime date = DateTime.Now;
|
||||||
bool ret =list.Any(x=>x.Pagado ==0 && date > x.Fecha);
|
bool ret =list.Any(x=>x.Pagado ==0 && date > x.Fecha);
|
||||||
if (ret == true) return BadRequest(new { message = "Este contrato no tiene canones vencidos"});
|
if (ret != true) return BadRequest(new { message = "Este contrato no tiene canones vencidos"});
|
||||||
|
|
||||||
string divisa ="";
|
string divisa ="";
|
||||||
if (cont.Iddivisa == 0) divisa = "AR$"; else if (cont.Iddivisa == 1) divisa = "US$";
|
if (cont.Iddivisa == 0) divisa = "AR$"; else if (cont.Iddivisa == 1) divisa = "US$";
|
||||||
@@ -142,6 +142,8 @@ public class AdminController: ControllerBase
|
|||||||
List<CanonDto> d = new();
|
List<CanonDto> d = new();
|
||||||
|
|
||||||
foreach (var i in list) {
|
foreach (var i in list) {
|
||||||
|
if (i.Fecha > date) continue;
|
||||||
|
|
||||||
var c = new CanonDtoBuilder()
|
var c = new CanonDtoBuilder()
|
||||||
.SetId(i.Id)
|
.SetId(i.Id)
|
||||||
.SetPago(i.Idrecibo==null?false:true)
|
.SetPago(i.Idrecibo==null?false:true)
|
||||||
|
|||||||
@@ -30,6 +30,8 @@ public class InquilinoController: ControllerBase
|
|||||||
var ret3 = RepositorioPermisos.Singleton.CheckPermisos(Auth, 4);
|
var ret3 = RepositorioPermisos.Singleton.CheckPermisos(Auth, 4);
|
||||||
if (ret3 == false) return BadRequest(new {message = "Falló el permiso"});
|
if (ret3 == false) return BadRequest(new {message = "Falló el permiso"});
|
||||||
|
|
||||||
|
Cliente? rep = RepositorioUsuarios.Singleton.ObtenerClientePorToken(Auth);
|
||||||
|
if (rep == null) return Unauthorized();
|
||||||
|
|
||||||
var ret = verificarCrearUsuario(cid);
|
var ret = verificarCrearUsuario(cid);
|
||||||
if (ret != "") return BadRequest(new {message = ret});
|
if (ret != "") return BadRequest(new {message = ret});
|
||||||
@@ -41,10 +43,11 @@ public class InquilinoController: ControllerBase
|
|||||||
Apellido = cid.apellido,
|
Apellido = cid.apellido,
|
||||||
Celular = cid.celular,
|
Celular = cid.celular,
|
||||||
Email = cid.email,
|
Email = cid.email,
|
||||||
Contraseña = Encoding.UTF8.GetBytes(HacerHash(cid.contraseña))
|
Contraseña = Encoding.UTF8.GetBytes(HacerHash(cid.contraseña)),
|
||||||
|
Habilitado = 1,
|
||||||
};
|
};
|
||||||
|
|
||||||
bool ret2 = RepositorioUsuarios.Singleton.AltaInquilino(cli);
|
bool ret2 = RepositorioUsuarios.Singleton.AltaInquilino(cli, rep.Dni);
|
||||||
return (ret2) ? Ok(new {message = "Se dio de alta la cuenta"}) : BadRequest(new {message = "Fallo Dar de Alta El inquilino"});
|
return (ret2) ? Ok(new {message = "Se dio de alta la cuenta"}) : BadRequest(new {message = "Fallo Dar de Alta El inquilino"});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -28,6 +28,9 @@ public class PropietarioController: ControllerBase {
|
|||||||
var validacion1 = RepositorioPermisos.Singleton.CheckPermisos(Auth, 5);
|
var validacion1 = RepositorioPermisos.Singleton.CheckPermisos(Auth, 5);
|
||||||
if (validacion1 == false) return Unauthorized();
|
if (validacion1 == false) return Unauthorized();
|
||||||
|
|
||||||
|
Cliente? rep = RepositorioUsuarios.Singleton.ObtenerClientePorToken(Auth);
|
||||||
|
if (rep == null) return Unauthorized();
|
||||||
|
|
||||||
string validacion2 = verificarCrearUsuario(Propietario);
|
string validacion2 = verificarCrearUsuario(Propietario);
|
||||||
if (validacion2 != "") return BadRequest(validacion2);
|
if (validacion2 != "") return BadRequest(validacion2);
|
||||||
|
|
||||||
@@ -38,10 +41,11 @@ public class PropietarioController: ControllerBase {
|
|||||||
Apellido = Propietario.apellido,
|
Apellido = Propietario.apellido,
|
||||||
Celular = Propietario.celular,
|
Celular = Propietario.celular,
|
||||||
Email = Propietario.email,
|
Email = Propietario.email,
|
||||||
Contraseña = Encoding.UTF8.GetBytes(HacerHash(Propietario.contraseña))
|
Contraseña = Encoding.UTF8.GetBytes(HacerHash(Propietario.contraseña)),
|
||||||
|
Habilitado = 1,
|
||||||
};
|
};
|
||||||
|
|
||||||
bool ret = RepositorioUsuarios.Singleton.AltaPropietario(cli);
|
bool ret = RepositorioUsuarios.Singleton.AltaPropietario(cli, rep.Dni);
|
||||||
return ret ?
|
return ret ?
|
||||||
Ok(new {message = "Se añadio el propietario exitosamente"}) : BadRequest();
|
Ok(new {message = "Se añadio el propietario exitosamente"}) : BadRequest();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,7 +38,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<label for="divisa">divisa</label>
|
<label for="divisa">divisa</label>
|
||||||
<select id="divisa" class="form-select">
|
<select id="divisa" class="form-select" bind:value={data.iddivisa}>
|
||||||
<option value="0" selected>AR$</option>
|
<option value="0" selected>AR$</option>
|
||||||
<option value="1">US$</option>
|
<option value="1">US$</option>
|
||||||
</select>
|
</select>
|
||||||
|
|||||||
@@ -3,25 +3,45 @@
|
|||||||
|
|
||||||
let {currentPag,
|
let {currentPag,
|
||||||
cantpag,
|
cantpag,
|
||||||
queryPag
|
queryPag,
|
||||||
|
centrado = false
|
||||||
}:{
|
}:{
|
||||||
currentPag: number,
|
currentPag: number,
|
||||||
cantpag: number,
|
cantpag: number,
|
||||||
queryPag: (a:number) => void} = $props();
|
queryPag: (a:number) => void,
|
||||||
|
centrado:boolean
|
||||||
|
} = $props();
|
||||||
|
|
||||||
|
function getVisiblePages() {
|
||||||
|
if (!centrado || cantpag <= 5) {
|
||||||
|
return Array.from({ length: cantpag }, (_, i) => i + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (currentPag <= 3) {
|
||||||
|
return [1, 2, 3, 4, 5];
|
||||||
|
} else if (currentPag >= cantpag - 2) {
|
||||||
|
return [cantpag - 4, cantpag - 3, cantpag - 2, cantpag - 1, cantpag];
|
||||||
|
} else {
|
||||||
|
return [currentPag - 2, currentPag - 1, currentPag, currentPag + 1, currentPag + 2];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let visiblePages = $derived.by(getVisiblePages);
|
||||||
|
|
||||||
|
|
||||||
let array = $derived.by(()=> Array.from({ length: cantpag }, (_, i) => i + 1));
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
{#if cantpag>0}
|
{#if cantpag > 1}
|
||||||
<nav aria-label="Page navigation example">
|
<nav aria-label="Paginador">
|
||||||
<ul class="pagination">
|
<ul class="pagination">
|
||||||
{#each array as num }
|
<li class="page-item {currentPag === 1 ? 'disabled' : ''}">
|
||||||
{#if currentPag !== num}
|
<a class="page-link" href="#" onclick={() => currentPag > 1 && queryPag(currentPag - 1)}>Anterior</a>
|
||||||
<li class="page-item"><a class="page-link" href="#" onclick={()=>queryPag(num)}>{String(num)}</a></li>
|
</li>
|
||||||
{:else}
|
{#each visiblePages as num }
|
||||||
<li class="page-item"><a class="page-link active" href="#" onclick={()=>queryPag(num)}>{String(num)}</a></li>
|
<li class="page-item"><a class="page-link" class:active={currentPag === num} href="#" onclick={()=>queryPag(num)}>{String(num)}</a></li>
|
||||||
{/if}
|
|
||||||
{/each}
|
{/each}
|
||||||
|
<li class="page-item {currentPag === cantpag ? 'disabled' : ''}">
|
||||||
|
<a class="page-link" href="#" onclick={() => currentPag < cantpag && queryPag(currentPag + 1)}>Siguiente</a>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</nav>
|
</nav>
|
||||||
{/if}
|
{/if}
|
||||||
@@ -93,7 +93,7 @@
|
|||||||
{/if}
|
{/if}
|
||||||
{#if modificar}
|
{#if modificar}
|
||||||
<tr transition:fade={{duration:100}}>
|
<tr transition:fade={{duration:100}}>
|
||||||
<td colspan="8">
|
<td colspan="10">
|
||||||
<ModificarPropiedadForm {id} {ubicacion} {canthabitaciones} {letra} {piso} {tipo} {servicios} {monto} {iddivisa}/>
|
<ModificarPropiedadForm {id} {ubicacion} {canthabitaciones} {letra} {piso} {tipo} {servicios} {monto} {iddivisa}/>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
44
Front/src/Componentes/RowPropiedadVenta.svelte
Normal file
44
Front/src/Componentes/RowPropiedadVenta.svelte
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
import { fade } from "svelte/transition";
|
||||||
|
import type { PropiedadDto } from "../types";
|
||||||
|
import ModificarPropiedadForm from "./modificarPropiedadForm.svelte";
|
||||||
|
|
||||||
|
let {p, unsetventa}: {p:PropiedadDto, unsetventa:(p:PropiedadDto)=>void} = $props();
|
||||||
|
|
||||||
|
let modificar:boolean = $state(false);
|
||||||
|
|
||||||
|
function setmod() {
|
||||||
|
modificar =! modificar;
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<tr in:fade>
|
||||||
|
<td>{p.id}</td>
|
||||||
|
<td>{p.ubicacion}</td>
|
||||||
|
<td>{p.canthabitaciones}</td>
|
||||||
|
<td>{p.letra}</td>
|
||||||
|
<td>{p.piso}</td>
|
||||||
|
<td>{p.tipo}</td>
|
||||||
|
<td>{p.servicios}</td>
|
||||||
|
<td>
|
||||||
|
{#if p.iddivisa == 0}
|
||||||
|
AR$
|
||||||
|
{:else}
|
||||||
|
US$
|
||||||
|
{/if}
|
||||||
|
</td>
|
||||||
|
<td>{p.monto}</td>
|
||||||
|
<td class="d-flex justify-content-between gap-2">
|
||||||
|
<button class="btn btn-secondary btn-sm" onclick={()=> setmod()}>Modificar</button>
|
||||||
|
<button class="btn btn-secondary btn-sm" onclick={()=> unsetventa(p)}>Bajar de venta</button>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
{#if modificar}
|
||||||
|
<tr in:fade>
|
||||||
|
<td colspan="10">
|
||||||
|
<ModificarPropiedadForm id={p.id} ubicacion={p.ubicacion}
|
||||||
|
canthabitaciones={p.canthabitaciones} letra={p.letra} piso={p.piso}
|
||||||
|
tipo={p.tipo} servicios={p.servicios} monto={p.monto} iddivisa={p.iddivisa}/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
{/if}
|
||||||
@@ -6,6 +6,7 @@
|
|||||||
import { urlG } from "../stores/urlStore";
|
import { urlG } from "../stores/urlStore";
|
||||||
import Ventas from "./Ventas.svelte";
|
import Ventas from "./Ventas.svelte";
|
||||||
import { navigate } from "svelte-routing";
|
import { navigate } from "svelte-routing";
|
||||||
|
import BarraHorizontalConTexto from "../Componentes/BarraHorizontalConTexto.svelte";
|
||||||
|
|
||||||
let token:string = sessionStorage.getItem("token")||"";
|
let token:string = sessionStorage.getItem("token")||"";
|
||||||
let modaldata:string = $state("");
|
let modaldata:string = $state("");
|
||||||
@@ -44,6 +45,8 @@
|
|||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
<div class="container-fluid mt-3">
|
<div class="container-fluid mt-3">
|
||||||
|
<BarraHorizontalConTexto text="Ver Compras y Ventas"/>
|
||||||
|
<p class="text-muted text-center">donde estas involucrado</p>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
{#each ventas as venta (venta.id)}
|
{#each ventas as venta (venta.id)}
|
||||||
<div class="col-md-6 mb-4">
|
<div class="col-md-6 mb-4">
|
||||||
|
|||||||
@@ -70,7 +70,7 @@
|
|||||||
<strong>Fecha de inicio:</strong> {new Date(alquiler.fechainicio).toLocaleDateString()}<br />
|
<strong>Fecha de inicio:</strong> {new Date(alquiler.fechainicio).toLocaleDateString()}<br />
|
||||||
<strong>Inquilino:</strong> {alquiler.inquilino}<br />
|
<strong>Inquilino:</strong> {alquiler.inquilino}<br />
|
||||||
<strong>Propietario:</strong> {alquiler.propietario}<br>
|
<strong>Propietario:</strong> {alquiler.propietario}<br>
|
||||||
<strong>Id Propiedad: </strong>{alquiler.id}
|
<strong>Id Contrato: </strong>{alquiler.id}
|
||||||
</p>
|
</p>
|
||||||
<div class="d-flex justify-content-center">
|
<div class="d-flex justify-content-center">
|
||||||
<button class="btn btn-primary" onclick={()=>navigate("/inquilino/contratos?id="+alquiler.id)}>
|
<button class="btn btn-primary" onclick={()=>navigate("/inquilino/contratos?id="+alquiler.id)}>
|
||||||
|
|||||||
@@ -70,7 +70,7 @@
|
|||||||
<strong>Fecha de inicio:</strong> {new Date(alquiler.fechainicio).toLocaleDateString()}<br />
|
<strong>Fecha de inicio:</strong> {new Date(alquiler.fechainicio).toLocaleDateString()}<br />
|
||||||
<strong>Inquilino:</strong> {alquiler.inquilino}<br />
|
<strong>Inquilino:</strong> {alquiler.inquilino}<br />
|
||||||
<strong>Propietario:</strong> {alquiler.propietario}<br>
|
<strong>Propietario:</strong> {alquiler.propietario}<br>
|
||||||
<strong>Id Propiedad: </strong>{alquiler.id}
|
<strong>Id Contrato: </strong>{alquiler.id}
|
||||||
</p>
|
</p>
|
||||||
<div class="d-flex justify-content-center">
|
<div class="d-flex justify-content-center">
|
||||||
<button class="btn btn-primary" onclick={()=>navigate("/propietario/contratos?id="+alquiler.id)}>
|
<button class="btn btn-primary" onclick={()=>navigate("/propietario/contratos?id="+alquiler.id)}>
|
||||||
|
|||||||
@@ -74,7 +74,7 @@
|
|||||||
<strong>Fecha de inicio:</strong> {new Date(alquiler.fechainicio).toLocaleDateString()}<br />
|
<strong>Fecha de inicio:</strong> {new Date(alquiler.fechainicio).toLocaleDateString()}<br />
|
||||||
<strong>Inquilino:</strong> {alquiler.inquilino}<br />
|
<strong>Inquilino:</strong> {alquiler.inquilino}<br />
|
||||||
<strong>Propietario:</strong> {alquiler.propietario}<br>
|
<strong>Propietario:</strong> {alquiler.propietario}<br>
|
||||||
<strong>Id Propiedad: </strong>{alquiler.id}
|
<strong>Id Contrato: </strong>{alquiler.id}
|
||||||
</p>
|
</p>
|
||||||
<div class="d-flex justify-content-center">
|
<div class="d-flex justify-content-center">
|
||||||
<button class="btn btn-primary" onclick={()=>navigate("/admin/contratos?id="+alquiler.id)}>
|
<button class="btn btn-primary" onclick={()=>navigate("/admin/contratos?id="+alquiler.id)}>
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
import ModalEstatico from "../Componentes/ModalEstatico.svelte";
|
import ModalEstatico from "../Componentes/ModalEstatico.svelte";
|
||||||
import ModalPublicarPropiedadParaVenta from "../Componentes/ModalPublicarPropiedadParaVenta.svelte";
|
import ModalPublicarPropiedadParaVenta from "../Componentes/ModalPublicarPropiedadParaVenta.svelte";
|
||||||
import ModificarPropiedadForm from "../Componentes/modificarPropiedadForm.svelte";
|
import ModificarPropiedadForm from "../Componentes/modificarPropiedadForm.svelte";
|
||||||
|
import RowPropiedadVenta from "../Componentes/RowPropiedadVenta.svelte";
|
||||||
|
|
||||||
let token = sessionStorage.getItem("token")||"";
|
let token = sessionStorage.getItem("token")||"";
|
||||||
|
|
||||||
@@ -118,36 +119,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
{:else}
|
{:else}
|
||||||
{#each propiedades as p}
|
{#each propiedades as p}
|
||||||
<tr in:fade>
|
<RowPropiedadVenta {p} {unsetventa}/>
|
||||||
<td>{p.id}</td>
|
|
||||||
<td>{p.ubicacion}</td>
|
|
||||||
<td>{p.canthabitaciones}</td>
|
|
||||||
<td>{p.letra}</td>
|
|
||||||
<td>{p.piso}</td>
|
|
||||||
<td>{p.tipo}</td>
|
|
||||||
<td>{p.servicios}</td>
|
|
||||||
<td>
|
|
||||||
{#if p.iddivisa == 0}
|
|
||||||
AR$
|
|
||||||
{:else}
|
|
||||||
US$
|
|
||||||
{/if}
|
|
||||||
</td>
|
|
||||||
<td>{p.monto}</td>
|
|
||||||
<td class="d-flex justify-content-between gap-2">
|
|
||||||
<button class="btn btn-secondary btn-sm" onclick={()=> setmod(p)}>Modificar</button>
|
|
||||||
<button class="btn btn-secondary btn-sm" onclick={()=> unsetventa(p)}>Bajar de venta</button>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
{#if modificar}
|
|
||||||
<tr transition:fade={{duration:100}}>
|
|
||||||
<td colspan="10">
|
|
||||||
<ModificarPropiedadForm id={selprop.id} ubicacion={selprop.ubicacion}
|
|
||||||
canthabitaciones={selprop.canthabitaciones} letra={selprop.letra} piso={selprop.piso}
|
|
||||||
tipo={selprop.tipo} servicios={selprop.servicios} monto={selprop.monto} iddivisa={selprop.iddivisa}/>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
{/if}
|
|
||||||
{/each}
|
{/each}
|
||||||
{/if}
|
{/if}
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|||||||
@@ -106,6 +106,6 @@
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<div class="d-flex justify-content-center">
|
<div class="d-flex justify-content-center">
|
||||||
<PaginacionStepper currentPag={pagina} {cantpag} {queryPag}/>
|
<PaginacionStepper currentPag={pagina} {cantpag} {queryPag} centrado={true}/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ public class AuditoriaFacade {
|
|||||||
var logDetalles = new List<LogDetalle>();
|
var logDetalles = new List<LogDetalle>();
|
||||||
foreach (var cambio in cambios) {
|
foreach (var cambio in cambios) {
|
||||||
var nombreTabla = cambio.Entity.GetType().Name;
|
var nombreTabla = cambio.Entity.GetType().Name;
|
||||||
Console.WriteLine($"Entidad: {cambio.Entity.GetType().Name}, Estado: {cambio.State}");
|
//Console.WriteLine($"Entidad: {cambio.Entity.GetType().Name}, Estado: {cambio.State}");
|
||||||
|
|
||||||
switch (cambio.State) {
|
switch (cambio.State) {
|
||||||
case EntityState.Modified:
|
case EntityState.Modified:
|
||||||
@@ -110,7 +110,7 @@ public class AuditoriaFacade {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
Console.WriteLine($"Estado no manejado: {cambio.State}");
|
//Console.WriteLine($"Estado no manejado: {cambio.State}");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ using Entidades.Admin;
|
|||||||
namespace Modelo;
|
namespace Modelo;
|
||||||
|
|
||||||
public class RepositorioUsuarios: RepositorioBase<RepositorioUsuarios> {
|
public class RepositorioUsuarios: RepositorioBase<RepositorioUsuarios> {
|
||||||
public bool AltaInquilino(Cliente cli) {
|
public bool AltaInquilino(Cliente cli, long dni) {
|
||||||
var con = Context;
|
var con = Context;
|
||||||
|
|
||||||
Grupo? grupo;
|
Grupo? grupo;
|
||||||
@@ -29,11 +29,11 @@ public class RepositorioUsuarios: RepositorioBase<RepositorioUsuarios> {
|
|||||||
if (cli.Dni == 0) return false;
|
if (cli.Dni == 0) return false;
|
||||||
|
|
||||||
cli.Idgrupos.Add(grupo);
|
cli.Idgrupos.Add(grupo);
|
||||||
GenerarLog(con, cli.Dni, $"Alta Inquilino: {cli.Dni}");
|
GenerarLog(con, dni, $"Alta Inquilino: {cli.Dni}");
|
||||||
return Guardar(con);
|
return Guardar(con);
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool AltaPropietario(Cliente cli) {
|
public bool AltaPropietario(Cliente cli, long dni) {
|
||||||
var con = Context;
|
var con = Context;
|
||||||
|
|
||||||
Grupo? grupo;
|
Grupo? grupo;
|
||||||
@@ -54,7 +54,7 @@ public class RepositorioUsuarios: RepositorioBase<RepositorioUsuarios> {
|
|||||||
if (cli.Dni == 0) return false;
|
if (cli.Dni == 0) return false;
|
||||||
|
|
||||||
cli.Idgrupos.Add(grupo);
|
cli.Idgrupos.Add(grupo);
|
||||||
GenerarLog(con, cli.Dni, $"Alta Propietario: {cli.Dni}");
|
GenerarLog(con, dni, $"Alta Propietario: {cli.Dni}");
|
||||||
return Guardar(con);
|
return Guardar(con);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user