falta mirar en la base de datos si guardo el tipo de moneda

This commit is contained in:
2025-01-14 04:13:13 -03:00
parent 7565e21df8
commit 013744d129
15 changed files with 131 additions and 43 deletions

View File

@@ -15,22 +15,25 @@ public class NotificacionesController: ControllerBase {
var cli = RepositorioUsuarios.Singleton.ObtenerClientePorToken(Auth);
if (cli == null) return BadRequest(new {message = "Fallo al intentar encontrar tu usuario (puede que te hayas logeado desde otro dispositivo?)"});
IQueryable<Notificacione> notificaciones = RepositorioNotificaciones.Singleton.ObtenerNotificacionesDeUsuario(cli.Dni)
.Where(x=>x.Leido == leido);
List<NotificacionDto> noti = new();
Parallel.ForEach(notificaciones, i => {
foreach (Notificacione i in notificaciones) {
if(i.DniclienteNavigation == null || i.DniremitenteNavigation==null) return BadRequest(new { message = "Esta mal cargado el precontrato"});
var dto = new NotificacionDtoBuilder()
.SetRemitente(i.DniremitenteNavigation.Email)
.SetAccion(i.Accion)
.SetMensaje(i.Mensaje)
.SetRemitente(i.DniremitenteNavigation.Email??"")
.SetAccion(i.Accion??"")
.SetMensaje(i.Mensaje??"")
.SetFecha(i.Fecha)
.SetPropiedad(i.IdpropiedadNavigation.Id.ToString())
.SetReceptor(i.DniclienteNavigation.Email)
.SetPropiedad(i.Idpropiedad.ToString()??"")
.SetReceptor(i.DniclienteNavigation.Email??"")
.Build();
noti.Add(dto);
});
}
return Ok(noti);
}

View File

@@ -43,7 +43,13 @@
<strong>Piso:</strong> {prop.piso || "N/A"}<br>
<strong>Letra:</strong> {prop.letra || "N/A"}<br>
<strong>Servicios:</strong> {prop.servicios || "Sin servicios especificados"}<br>
<strong>Monto:</strong> ${prop.monto}<br>
<strong>Monto:</strong>
{#if prop.iddivisa == 0}
AR$
{:else}
US$
{/if}
{prop.monto}<br>
<strong>Estado:</strong> {prop.estado}<br>
</p>
{#if prop.estado == "Disponible"}

View File

@@ -68,7 +68,13 @@
<strong>Piso:</strong> {prop.piso || "N/A"}<br>
<strong>Letra:</strong> {prop.letra || "N/A"}<br>
<strong>Servicios:</strong> {prop.servicios || "Sin servicios especificados"}<br>
<strong>Monto:</strong> ${prop.monto}<br>
<strong>Monto:</strong>
{#if prop.iddivisa == 0}
AR$
{:else}
US$
{/if}
{prop.monto}<br>
</p>
<button class="btn btn-primary" onclick={Consultar}>Alquilar</button>
</div>

View File

@@ -3,7 +3,7 @@
import ModalEstatico from "./ModalEstatico.svelte";
import ModificarPropiedadForm from "./modificarPropiedadForm.svelte";
let { id, ubicacion, tipo, letra, piso,canthabitaciones, servicios, btnbaja = "Baja", monto } = $props();
let { id, ubicacion, tipo, letra, piso,canthabitaciones, servicios, btnbaja = "Baja", monto, iddivisa = 0 } = $props();
import { urlG } from "../stores/urlStore";
@@ -45,10 +45,17 @@
<td>{piso}</td>
<td>{tipo}</td>
<td>{servicios}</td>
<td>
{#if iddivisa == 0}
AR$
{:else}
US$
{/if}
</td>
<td>{monto}</td>
<td class="text-end">
<button class="btn btn-outline-secondary" onclick={()=> setmod()}>Modificar</button>
<button class="btn btn-outline-danger" onclick={() => BajaPropiedad()}>{btnbaja}</button>
<button class="btn btn-outline-secondary btn-sm" onclick={()=> setmod()}>Modificar</button>
<button class="btn btn-outline-danger btn-sm" onclick={() => BajaPropiedad()}>{btnbaja}</button>
</td>
</tr>
{#if modal}
@@ -57,7 +64,7 @@
{#if modificar}
<tr transition:fade={{duration:100}}>
<td colspan="8">
<ModificarPropiedadForm {id} {ubicacion} {canthabitaciones} {letra} {piso} {tipo} {servicios} {monto}/>
<ModificarPropiedadForm {id} {ubicacion} {canthabitaciones} {letra} {piso} {tipo} {servicios} {monto} {iddivisa}/>
</td>
</tr>
{/if}

View File

@@ -2,7 +2,7 @@
import { urlG } from "../stores/urlStore";
import { onMount } from "svelte";
let { canthabitaciones, id, letra, piso, tipo, ubicacion, servicios, monto } = $props();
let { canthabitaciones, id, letra, piso, tipo, ubicacion, servicios, monto, iddivisa} = $props();
let serviciosSeleccionados: string[] = $state([]);
const serviciosDisponibles = ["Gas", "Internet", "Telefono", "Luz"];
@@ -53,7 +53,8 @@
ubicacion,
email,
servicios: serviciosSeleccionados,
monto
monto,
iddivisa
}),
});
if (response.ok) {
@@ -151,6 +152,29 @@
<label for="idtipopropiedad">Tipo de propiedad</label>
</div>
<div class="form-floating mb-3">
<h6 class="form-floating form-label">Moneda</h6>
<div class="form-check">
<input
type="radio"
class="form-check-input"
bind:group={iddivisa}
value={0}
id="moneda-ar"
/>
<label class="form-check-label" for="moneda-ar">AR$</label>
</div>
<div class="form-check">
<input
type="radio"
class="form-check-input"
bind:group={iddivisa}
value={1}
id="moneda-us"
/>
<label class="form-check-label" for="moneda-us">US$</label>
</div>
</div>
<div class="mb-3">
<h6 class="form-floating form-label">Servicios</h6>
{#each serviciosDisponibles as servicio}

View File

@@ -1,16 +1,22 @@
<script lang="ts">
import BarraHorizontalConTexto from "../Componentes/BarraHorizontalConTexto.svelte";
import NavBarAutocompletable from "../Componentes/NavBarAutocompletable.svelte";
import NavBarAutocompletable from "../Componentes/NavBarAutocompletable.svelte";
</script>
<NavBarAutocompletable/>
<div class="container">
<div class="container-fluid">
<BarraHorizontalConTexto text="Control Alquileres" />
<div class="row" >
<div class="row g-3">
<div class="col-md-6"><!--a-->
<div class="card">
<div class="card-body">
<p>a</p>
</div>
</div>
</div>
</div>
</div>

View File

@@ -52,13 +52,16 @@
<th>Piso</th>
<th>Tipo</th>
<th>Servicios</th>
<th>Divisa</th>
<th>Monto</th>
<th></th>
</tr>
</thead>
<tbody>
{#each $propiedades as propiedad}
<RowPropiedad id={propiedad.id} ubicacion={propiedad.ubicacion} letra={propiedad.letra} piso={propiedad.piso} tipo={propiedad.tipo} canthabitaciones={propiedad.canthabitaciones} servicios={propiedad.servicios} monto={propiedad.monto} />
<RowPropiedad id={propiedad.id} ubicacion={propiedad.ubicacion} letra={propiedad.letra} piso={propiedad.piso} tipo={propiedad.tipo}
canthabitaciones={propiedad.canthabitaciones} servicios={propiedad.servicios} monto={propiedad.monto}
iddivisa={propiedad.iddivisa}/>
{/each}
</tbody>
</table>

View File

@@ -53,13 +53,14 @@
<th>Piso</th>
<th>Tipo</th>
<th>Servicios</th>
<th>Divisa</th>
<th>Monto</th>
<th></th>
</tr>
</thead>
<tbody>
{#each $propiedades as propiedad}
<RowPropiedad id={propiedad.id} ubicacion={propiedad.ubicacion} letra={propiedad.letra} piso={propiedad.piso} tipo={propiedad.tipo} canthabitaciones={propiedad.canthabitaciones} servicios={propiedad.servicios} btnbaja={"Alta"} monto={propiedad.monto}/>
<RowPropiedad id={propiedad.id} ubicacion={propiedad.ubicacion} letra={propiedad.letra} piso={propiedad.piso} tipo={propiedad.tipo} canthabitaciones={propiedad.canthabitaciones} servicios={propiedad.servicios} btnbaja={"Alta"} monto={propiedad.monto} iddivisa={propiedad.iddivisa}/>
{/each}
</tbody>
</table>

View File

@@ -170,7 +170,7 @@
cantidadGarantes: data.cantGarantes,
idPropiedad: Selmens.propiedad,
fechaprimernotificacion: fecha,
emailInquilino: localStorage.getItem("email"),
emailInquilino: Selmens.remitente,
emailPropietario: Selmens.receptor,
};
@@ -459,7 +459,7 @@
<tbody>
{#if mensajes.length <= 0}
<tr>
<td colspan={mostrarleidos == false ? 6 : 5}>
<td colspan={mostrarleidos == false ? 7 : 6}>
<p>No hay Mensajes para leer</p>
</td>
</tr>
@@ -481,8 +481,8 @@
Expandir
</button>
{/if}
{#if men.accion === "ContratoCancelado" || men.accion === "Rechazo Contrato" ||
men.accion === "Aceptado Contrato"}
{#if (men.accion === "ContratoCancelado" || men.accion === "Rechazo Contrato" ||
men.accion === "Aceptado Contrato") && mostrarleidos == false}
<button
class="btn btn-outline-danger"
onclick={() => marcarleido(men.fecha, localStorage.getItem("email")|| "", men)}>

View File

@@ -5,15 +5,16 @@
import type { Propiedad } from "../types";
import { urlG } from "../stores/urlStore";
let propiedad: Propiedad = {
let propiedad = $state({
ubicacion: "",
canthabitaciones: 1,
piso: 0,
letra: "",
email: localStorage.getItem("email") || "",
idtipropiedad: 1,
iddivisa:0,
monto: 1,
};
});
let token = sessionStorage.getItem("token");
let mostrarModal = $state(false);
@@ -116,6 +117,31 @@
/>
<label for="letra">Letra</label>
</div>
<div class="form-floating mb-3">
<h6 class="form-floating form-label">Moneda</h6>
<div class="form-check">
<input
type="radio"
class="form-check-input"
bind:group={propiedad.iddivisa}
value={0}
id="moneda-ar"
/>
<label class="form-check-label" for="moneda-ar">AR$</label>
</div>
<div class="form-check">
<input
type="radio"
class="form-check-input"
bind:group={propiedad.iddivisa}
value={1}
id="moneda-us"
/>
<label class="form-check-label" for="moneda-us">US$</label>
</div>
</div>
<div class="form-floating mb-3">
<select
id="idtipropiedad"

View File

@@ -27,7 +27,7 @@ export type PropiedadAdmin = {
servicios: string,
monto: number,
estado: string,
iddvisa: number
iddivisa: number
}
export type Permiso = {
id: number;

View File

@@ -22,6 +22,7 @@ public class RepositorioContratos: RepositorioBase<RepositorioContratos> {
if (prop == null) return false;
prop.Idestado = 2;
c.Iddivisa = prop.Iddivisa;
c.Id = (con.Contratos.Any() ? con.Contratos.Max(x => x.Id) : 0) + 1;
c.Monto = prop.Monto;

View File

@@ -31,7 +31,8 @@ public class RepositorioNotificaciones : RepositorioBase<RepositorioNotificacion
var con = Context;
var notis = con.Notificaciones
.Include(x=>x.IdpropiedadNavigation)
.Include(x=>x.IdpropiedadNavigation)
.Include(x=>x.DniclienteNavigation)
.Include(x=>x.DniremitenteNavigation)
.Where(x => x.Dnicliente == dni);
return notis;
@@ -39,7 +40,7 @@ public class RepositorioNotificaciones : RepositorioBase<RepositorioNotificacion
public bool HayNotis(long dni) {
var con = Context;
bool hay = con.Notificaciones.Where(x=>x.Leido == false).Any();
bool hay = con.Notificaciones.Where(x=>x.Leido == false && x.Dnicliente == dni).Any();
return hay;
}
}

View File

@@ -14,7 +14,7 @@ public class RepositorioPropiedades: RepositorioBase<RepositorioPropiedades> {
FormattableString sqlq = $"""
SELECT DISTINCT p.id, p.ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion AS Tipo,
GROUP_CONCAT(DISTINCT s.descripcion SEPARATOR ', ') AS Servicios, p.monto as Monto,
p.iddivisa as Idivisa
p.iddivisa as Iddivisa
FROM Propiedades p
JOIN EstadoPropiedad ep ON p.idestado = 1
JOIN TipoPropiedad tp ON p.idtipropiedad = tp.id
@@ -82,7 +82,7 @@ public class RepositorioPropiedades: RepositorioBase<RepositorioPropiedades> {
propi.Piso = prop.Piso;
propi.Letra = prop.Letra;
propi.Monto = prop.Monto;
prop.Iddivisa = prop.Iddivisa;
propi.Iddivisa = prop.Iddivisa;
propi.IdServicios.Clear();
foreach(Servicio ser in prop.IdServicios) {
@@ -97,7 +97,7 @@ public class RepositorioPropiedades: RepositorioBase<RepositorioPropiedades> {
public IQueryable<PropiedadesDto> ObtenerPropiedadesPorEmail(string email) {
FormattableString sqlq = $"""
SELECT p.id, p.ubicacion as Ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion as Tipo, GROUP_CONCAT(IFNULL(s.descripcion, '') SEPARATOR ', ') AS Servicios, p.monto as Monto,
p.iddivisa as Idivisa
p.iddivisa as Iddivisa
FROM Propiedades p
JOIN Clientes c ON c.dni = p.dnipropietario
JOIN TipoPropiedad tp ON tp.id = p.idtipropiedad
@@ -114,7 +114,7 @@ public class RepositorioPropiedades: RepositorioBase<RepositorioPropiedades> {
public IQueryable<PropiedadesDto> ObtenerPropiedadesDeBajaPorEmail(string email) {
FormattableString sqlq = $"""
SELECT p.id, p.ubicacion as Ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion as Tipo, GROUP_CONCAT(IFNULL(s.descripcion, '') SEPARATOR ', ') AS Servicios, p.monto as Monto,
p.iddivisa as Idivisa
p.iddivisa as Iddivisa
FROM Propiedades p
JOIN Clientes c ON c.dni = p.dnipropietario
JOIN TipoPropiedad tp ON tp.id = p.idtipropiedad
@@ -195,7 +195,7 @@ public class RepositorioPropiedades: RepositorioBase<RepositorioPropiedades> {
FormattableString sqlq = $"""
SELECT DISTINCT p.id, p.ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion AS Tipo,
GROUP_CONCAT(DISTINCT s.descripcion SEPARATOR ', ') AS Servicios, p.monto as Monto,
p.iddivisa as Idivisa
p.iddivisa as Iddivisa
FROM Propiedades p
JOIN EstadoPropiedad ep ON p.idestado = 1
JOIN TipoPropiedad tp ON p.idtipropiedad = tp.id
@@ -220,7 +220,7 @@ public class RepositorioPropiedades: RepositorioBase<RepositorioPropiedades> {
FormattableString sqlq = $"""
SELECT DISTINCT p.id, p.ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion AS Tipo,
GROUP_CONCAT(DISTINCT s.descripcion SEPARATOR ', ') AS Servicios, p.monto as Monto,
p.iddivisa as Idivisa
p.iddivisa as Iddivisa
FROM Propiedades p
JOIN EstadoPropiedad ep ON p.idestado = 1
JOIN TipoPropiedad tp ON p.idtipropiedad = tp.id
@@ -240,7 +240,7 @@ public class RepositorioPropiedades: RepositorioBase<RepositorioPropiedades> {
FormattableString sqlq = $"""
SELECT DISTINCT p.id, p.ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion AS Tipo,
GROUP_CONCAT(DISTINCT s.descripcion SEPARATOR ', ') AS Servicios, p.monto as Monto,
p.iddivisa as Idivisa
p.iddivisa as Iddivisa
FROM Propiedades p
JOIN EstadoPropiedad ep ON p.idestado = 1
JOIN TipoPropiedad tp ON p.idtipropiedad = tp.id
@@ -264,7 +264,7 @@ public class RepositorioPropiedades: RepositorioBase<RepositorioPropiedades> {
FormattableString sqlq = $"""
SELECT DISTINCT p.id, p.ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion AS Tipo,
GROUP_CONCAT(DISTINCT s.descripcion SEPARATOR ', ') AS Servicios, p.monto as Monto,
p.iddivisa as Idivisa
p.iddivisa as Iddivisa
FROM Propiedades p
JOIN EstadoPropiedad ep ON p.idestado = 1
JOIN TipoPropiedad tp ON p.idtipropiedad = tp.id
@@ -282,7 +282,7 @@ public class RepositorioPropiedades: RepositorioBase<RepositorioPropiedades> {
FormattableString sqlq = $"""
SELECT DISTINCT p.id, p.ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion AS Tipo,
GROUP_CONCAT(DISTINCT s.descripcion SEPARATOR ', ') AS Servicios, p.monto as Monto,
p.iddivisa as Idivisa
p.iddivisa as Iddivisa
FROM Propiedades p
JOIN EstadoPropiedad ep ON p.idestado = 1
JOIN TipoPropiedad tp ON p.idtipropiedad = tp.id
@@ -301,7 +301,7 @@ public class RepositorioPropiedades: RepositorioBase<RepositorioPropiedades> {
FormattableString sqlq = $"""
SELECT DISTINCT p.id, p.ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion AS Tipo,
GROUP_CONCAT(DISTINCT s.descripcion SEPARATOR ', ') AS Servicios, p.monto as Monto,
p.iddivisa as Idivisa
p.iddivisa as Iddivisa
FROM Propiedades p
JOIN EstadoPropiedad ep ON p.idestado = 1
JOIN TipoPropiedad tp ON p.idtipropiedad = tp.id
@@ -327,7 +327,7 @@ public class RepositorioPropiedades: RepositorioBase<RepositorioPropiedades> {
FormattableString sqlq = $"""
SELECT DISTINCT p.id, p.ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion AS Tipo,
GROUP_CONCAT(DISTINCT s.descripcion SEPARATOR ', ') AS Servicios, p.monto as Monto,
p.iddivisa as Idivisa
p.iddivisa as Iddivisa
FROM Propiedades p
JOIN EstadoPropiedad ep ON p.idestado = 1
JOIN TipoPropiedad tp ON p.idtipropiedad = tp.id
@@ -365,7 +365,7 @@ public class RepositorioPropiedades: RepositorioBase<RepositorioPropiedades> {
FormattableString sqlq = $"""
SELECT DISTINCT p.id, p.ubicacion, p.canthabitaciones, p.piso, p.letra, tp.descripcion AS Tipo,
GROUP_CONCAT(DISTINCT s.descripcion SEPARATOR ', ') AS Servicios, p.monto as Monto,
p.iddivisa as Idivisa
p.iddivisa as Iddivisa
FROM Propiedades p
JOIN EstadoPropiedad ep ON p.idestado = 1
JOIN TipoPropiedad tp ON p.idtipropiedad = tp.id

View File

@@ -164,6 +164,10 @@ public class RepositorioUsuarios: RepositorioBase<RepositorioUsuarios> {
} else {
cli.Habilitado = 0;
}
if (cli.Idgrupos.Any()){
}
return Guardar(con);
}