Feat: commit antes de mostrar el codigo.
- Añadido alta propiedad - Arreglado alta inq/prop - Añadida pantalla de menu
This commit is contained in:
@@ -26,13 +26,13 @@ public class InquilinoController: ControllerBase
|
|||||||
|
|
||||||
[HttpPost("api/inquilino")]
|
[HttpPost("api/inquilino")]
|
||||||
public IActionResult Post([FromBody] CrearClienteDto cid, [FromHeader(Name = "Auth")] string Auth) {
|
public IActionResult Post([FromBody] CrearClienteDto cid, [FromHeader(Name = "Auth")] string Auth) {
|
||||||
if (!string.IsNullOrEmpty(Auth)) return BadRequest();
|
if (string.IsNullOrEmpty(Auth)) return BadRequest(new {message = "El String Auth Esta Vacio"});
|
||||||
var ret3 = RepositorioPermisos.Singleton.CheckPermisos(Auth, 4);
|
var ret3 = RepositorioPermisos.Singleton.CheckPermisos(Auth, 4);
|
||||||
if (ret3 == false) return BadRequest(ret3);
|
if (ret3 == false) return BadRequest(new {message = "Falló el permiso"});
|
||||||
|
|
||||||
|
|
||||||
var ret = verificarCrearUsuario(cid);
|
var ret = verificarCrearUsuario(cid);
|
||||||
if (ret != "") return BadRequest(ret);
|
if (ret != "") return BadRequest(new {message = ret});
|
||||||
|
|
||||||
var cli = new Cliente {
|
var cli = new Cliente {
|
||||||
Dni = cid.dni,
|
Dni = cid.dni,
|
||||||
@@ -45,7 +45,7 @@ public class InquilinoController: ControllerBase
|
|||||||
};
|
};
|
||||||
|
|
||||||
bool ret2 = RepositorioUsuarios.Singleton.AltaInquilino(cli);
|
bool ret2 = RepositorioUsuarios.Singleton.AltaInquilino(cli);
|
||||||
return (ret2) ? Ok() : BadRequest(ret);
|
return (ret2) ? Ok(new {message = "Se dio de alta la cuenta"}) : BadRequest(new {message = "Fallo Dar de Alta El inquilino"});
|
||||||
}
|
}
|
||||||
|
|
||||||
private string verificarCrearUsuario(CrearClienteDto cid) {
|
private string verificarCrearUsuario(CrearClienteDto cid) {
|
||||||
|
|||||||
@@ -24,10 +24,10 @@ public class PropiedadesController: ControllerBase {
|
|||||||
var validacion1 = RepositorioPermisos.Singleton.CheckPermisos(Auth, 12);
|
var validacion1 = RepositorioPermisos.Singleton.CheckPermisos(Auth, 12);
|
||||||
if (validacion1 == false) return Unauthorized();
|
if (validacion1 == false) return Unauthorized();
|
||||||
|
|
||||||
if (Id < 0) return BadRequest("la id de propiedad no puede ser negativa");
|
if (Id < 0) return BadRequest(new {message ="la id de propiedad no puede ser negativa"});
|
||||||
|
|
||||||
var ret = RepositorioPropiedades.Singleton.ObtenerPropiedadPorId(Id);
|
var ret = RepositorioPropiedades.Singleton.ObtenerPropiedadPorId(Id);
|
||||||
if (ret == null) return BadRequest("No existe la propiedad");
|
if (ret == null) return BadRequest(new {message ="No existe la propiedad"});
|
||||||
return Ok(ret);
|
return Ok(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -41,7 +41,7 @@ public class PropiedadesController: ControllerBase {
|
|||||||
if (validacion1 == false) return Unauthorized();
|
if (validacion1 == false) return Unauthorized();
|
||||||
|
|
||||||
email = email.Trim();
|
email = email.Trim();
|
||||||
if (String.IsNullOrEmpty(email)) return BadRequest("falta campo email");
|
if (String.IsNullOrEmpty(email)) return BadRequest(new {message ="falta campo email"});
|
||||||
|
|
||||||
var ret = RepositorioPropiedades.Singleton.ObtenerPropiedadesPorEmail(email);
|
var ret = RepositorioPropiedades.Singleton.ObtenerPropiedadesPorEmail(email);
|
||||||
|
|
||||||
@@ -58,21 +58,21 @@ public class PropiedadesController: ControllerBase {
|
|||||||
if (validacion2 != "") return BadRequest(new { message = validacion2 });
|
if (validacion2 != "") return BadRequest(new { message = validacion2 });
|
||||||
|
|
||||||
Cliente? cli = RepositorioPropietario.Singleton.ObtenerPropietarioPorEmail(propiedad.Email);
|
Cliente? cli = RepositorioPropietario.Singleton.ObtenerPropietarioPorEmail(propiedad.Email);
|
||||||
if (cli == null) return BadRequest("El email no corresponde a un propietario");
|
if (cli == null) return BadRequest(new { message = "El email no corresponde a un propietario"});
|
||||||
|
|
||||||
Propiedade Prop = new Propiedade{
|
Propiedade Prop = new Propiedade{
|
||||||
Canthabitaciones = propiedad.Canthabitaciones,
|
Canthabitaciones = propiedad.Canthabitaciones,
|
||||||
Dnipropietario = cli.Dni,
|
Dnipropietario = cli.Dni,
|
||||||
Idtipropiedad = propiedad.Idtipropiedad,
|
Idtipropiedad = propiedad.Idtipropiedad,
|
||||||
Ubicacion = propiedad.Ubicacion,
|
Ubicacion = propiedad.Ubicacion,
|
||||||
Letra = propiedad.Letra != null ? propiedad.Letra : null,
|
Letra = propiedad.Letra ?? null,
|
||||||
Piso = propiedad.Piso != null ? propiedad.Piso : null,
|
Piso = propiedad.Piso ?? null,
|
||||||
};
|
};
|
||||||
|
|
||||||
var ret = RepositorioPropiedades.Singleton.AñadirPropiedad(Prop);
|
var ret = RepositorioPropiedades.Singleton.AñadirPropiedad(Prop);
|
||||||
return (ret)?
|
return (ret)?
|
||||||
Ok("Fue Cargado Correctamente") :
|
Ok(new { message = "Fue Cargado Correctamente"}) :
|
||||||
BadRequest("Fallo al momento de añadir la propiedad a la base de datos");
|
BadRequest(new { message = "Fallo al momento de añadir la propiedad a la base de datos"});
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpDelete("api/propiedad")]
|
[HttpDelete("api/propiedad")]
|
||||||
@@ -81,13 +81,13 @@ public class PropiedadesController: ControllerBase {
|
|||||||
var validacion1 = RepositorioPermisos.Singleton.CheckPermisos(Auth, 2);
|
var validacion1 = RepositorioPermisos.Singleton.CheckPermisos(Auth, 2);
|
||||||
if (validacion1 == false) return Unauthorized();
|
if (validacion1 == false) return Unauthorized();
|
||||||
|
|
||||||
if (id <= 0) return BadRequest("No es una id valida");
|
if (id <= 0) return BadRequest(new { message = "No es una id valida"});
|
||||||
|
|
||||||
var ret = RepositorioPropiedades.Singleton.BajaPropiedad(id);
|
var ret = RepositorioPropiedades.Singleton.BajaPropiedad(id);
|
||||||
|
|
||||||
return ret ?
|
return ret ?
|
||||||
Ok(new {message = $"la propiedad con id {id} fue dada de baja"}):
|
Ok(new {message = $"la propiedad con id {id} fue dada de baja"}):
|
||||||
BadRequest("Fallo al dar de baja la propiedad");
|
BadRequest(new {message="Fallo al dar de baja la propiedad"});
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpPut("api/propiedades/addServicio")]
|
[HttpPut("api/propiedades/addServicio")]
|
||||||
@@ -96,21 +96,21 @@ public class PropiedadesController: ControllerBase {
|
|||||||
var validacion1 = RepositorioPermisos.Singleton.CheckPermisos(Auth, 8);
|
var validacion1 = RepositorioPermisos.Singleton.CheckPermisos(Auth, 8);
|
||||||
if (validacion1 == false) return Unauthorized();
|
if (validacion1 == false) return Unauthorized();
|
||||||
|
|
||||||
if (Servicios.propiedadid <= 0) return BadRequest("No puede tener una id negativa o cero");
|
if (Servicios.propiedadid <= 0) return BadRequest(new {message ="No puede tener una id negativa o cero"});
|
||||||
if (Servicios.idServicios.Count() < 1) return BadRequest("Falta añadir servicios");
|
if (Servicios.idServicios.Count() < 1) return BadRequest(new {message ="Falta añadir servicios"});
|
||||||
if (Servicios.idServicios.Any(x => x<= 0)) return BadRequest("No tienen haber ids negativas o cero de servicio");
|
if (Servicios.idServicios.Any(x => x<= 0)) return BadRequest(new {message ="No tienen haber ids negativas o cero de servicio"});
|
||||||
|
|
||||||
var serv = RepositorioServicios.Singleton.ObtenerServiciosPorPropiedad(Servicios.propiedadid);
|
var serv = RepositorioServicios.Singleton.ObtenerServiciosPorPropiedad(Servicios.propiedadid);
|
||||||
|
|
||||||
bool validacion2 = Servicios.idServicios.Any(x => serv.Contains(x));
|
bool validacion2 = Servicios.idServicios.Any(x => serv.Contains(x));
|
||||||
|
|
||||||
if (validacion2 == true) return BadRequest("Hay elementos repetidos");
|
if (validacion2 == true) return BadRequest(new {message ="Hay elementos repetidos"});
|
||||||
|
|
||||||
bool ret = RepositorioPropiedades.
|
bool ret = RepositorioPropiedades.
|
||||||
Singleton.AñadirServicioAPropiedad(Servicios.propiedadid, Servicios.idServicios);
|
Singleton.AñadirServicioAPropiedad(Servicios.propiedadid, Servicios.idServicios);
|
||||||
|
|
||||||
return ret ?
|
return ret ?
|
||||||
Ok("Los Servicios Se Cargaron correctamente a la propiedad") : BadRequest("No se pudo Cargar los Servicios a la propiedad");
|
Ok(new {message ="Los Servicios Se Cargaron correctamente a la propiedad"}) : BadRequest(new {message ="No se pudo Cargar los Servicios a la propiedad"});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -120,9 +120,9 @@ public class PropiedadesController: ControllerBase {
|
|||||||
var validacion1 = RepositorioPermisos.Singleton.CheckPermisos(Auth, 13);
|
var validacion1 = RepositorioPermisos.Singleton.CheckPermisos(Auth, 13);
|
||||||
if (validacion1 == false) return Unauthorized();
|
if (validacion1 == false) return Unauthorized();
|
||||||
|
|
||||||
if (servicio.propiedadid <= 0) return BadRequest("No puede tener una id negativa o cero");
|
if (servicio.propiedadid <= 0) return BadRequest(new {message ="No puede tener una id negativa o cero"});
|
||||||
if (servicio.idServicios.Count() < 1) return BadRequest("Falta añadir servicios");
|
if (servicio.idServicios.Count() < 1) return BadRequest(new {message ="Falta añadir servicios"});
|
||||||
if (servicio.idServicios.Any(x => x<= 0)) return BadRequest("No tienen haber ids negativas o cero de servicio");
|
if (servicio.idServicios.Any(x => x<= 0)) return BadRequest(new {message ="No tienen haber ids negativas o cero de servicio"});
|
||||||
|
|
||||||
var serv = RepositorioServicios.Singleton.ObtenerServiciosPorPropiedad(servicio.propiedadid);
|
var serv = RepositorioServicios.Singleton.ObtenerServiciosPorPropiedad(servicio.propiedadid);
|
||||||
|
|
||||||
@@ -131,7 +131,7 @@ public class PropiedadesController: ControllerBase {
|
|||||||
bool ret = RepositorioPropiedades.Singleton.BajaServiciosAPropiedad(servicio.propiedadid, servicio.idServicios);
|
bool ret = RepositorioPropiedades.Singleton.BajaServiciosAPropiedad(servicio.propiedadid, servicio.idServicios);
|
||||||
|
|
||||||
return ret ?
|
return ret ?
|
||||||
Ok("Se Eliminaron los servicios seleccionados de la propiedad") : BadRequest("Fallo al eliminarse los servicios de la propiedad");
|
Ok(new {message ="Se Eliminaron los servicios seleccionados de la propiedad"}) : BadRequest(new {message ="Fallo al eliminarse los servicios de la propiedad"});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ public class PropietarioController: ControllerBase {
|
|||||||
return Ok(ret);
|
return Ok(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpPost("api/propietarios")]
|
[HttpPost("api/propietario")]
|
||||||
public IActionResult AltaPropietario([FromBody]CrearClienteDto Propietario,
|
public IActionResult AltaPropietario([FromBody]CrearClienteDto Propietario,
|
||||||
[FromHeader(Name = "Auth")] string Auth) {
|
[FromHeader(Name = "Auth")] string Auth) {
|
||||||
if (String.IsNullOrEmpty(Auth)) return Unauthorized();
|
if (String.IsNullOrEmpty(Auth)) return Unauthorized();
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
import InqPage from "./paginas/inquilino.svelte";
|
import InqPage from "./paginas/inquilino.svelte";
|
||||||
import PropPage from "./paginas/propietario.svelte";
|
import PropPage from "./paginas/propietario.svelte";
|
||||||
import FrontAdmin from "./paginas/grupos/AdminG.svelte";
|
import FrontAdmin from "./paginas/grupos/AdminG.svelte";
|
||||||
import FrontEstadistica from "./paginas/grupos/EstadisticaG.svelte";
|
import FrontInformes from "./paginas/grupos/InformesG.svelte";
|
||||||
import FrontInquilino from "./paginas/grupos/InquilinoG.svelte";
|
import FrontInquilino from "./paginas/grupos/InquilinoG.svelte";
|
||||||
import FrontPropietario from "./paginas/grupos/PropietarioG.svelte";
|
import FrontPropietario from "./paginas/grupos/PropietarioG.svelte";
|
||||||
import PublicarPropiedad from "./paginas/PublicarPropiedad.svelte";
|
import PublicarPropiedad from "./paginas/PublicarPropiedad.svelte";
|
||||||
@@ -52,8 +52,8 @@
|
|||||||
<Route path="/grupo/Admin">
|
<Route path="/grupo/Admin">
|
||||||
<ProteRoute componente={FrontAdmin}/>
|
<ProteRoute componente={FrontAdmin}/>
|
||||||
</Route>
|
</Route>
|
||||||
<Route path="/grupo/Estadistica">
|
<Route path="/grupo/Informes">
|
||||||
<ProteRoute componente={FrontEstadistica}/>
|
<ProteRoute componente={FrontInformes}/>
|
||||||
</Route>
|
</Route>
|
||||||
|
|
||||||
</Router>
|
</Router>
|
||||||
|
|||||||
@@ -18,16 +18,24 @@
|
|||||||
let domicilio: string = $state("")
|
let domicilio: string = $state("")
|
||||||
let celular: string = $state("")
|
let celular: string = $state("")
|
||||||
|
|
||||||
|
const token = sessionStorage.getItem("token");
|
||||||
|
|
||||||
async function submitForm(event: any) {
|
async function submitForm(event: any) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
try {
|
try {
|
||||||
let response = await fetch(url, {
|
let response = await fetch(url, {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers: {
|
headers: {
|
||||||
|
'Auth' : String(token),
|
||||||
'Content-Type' : 'application/json',
|
'Content-Type' : 'application/json',
|
||||||
},
|
},
|
||||||
body: JSON.stringify({dni, nombre, apellido, domicilio, celular, email, contraseña})
|
body: JSON.stringify({dni, nombre, apellido, domicilio, celular, email, contraseña})
|
||||||
});
|
});
|
||||||
|
if (response.ok){
|
||||||
|
const errorData = await response.json();
|
||||||
|
errorMessage = errorData.message;
|
||||||
|
showAlert = true;
|
||||||
|
}
|
||||||
if (!response.ok) {
|
if (!response.ok) {
|
||||||
const errorData = await response.json();
|
const errorData = await response.json();
|
||||||
errorMessage = errorData.message;
|
errorMessage = errorData.message;
|
||||||
|
|||||||
@@ -0,0 +1,13 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
import { Button, Modal } from '@sveltestrap/sveltestrap';
|
||||||
|
|
||||||
|
let {payload} = $props();
|
||||||
|
let open = $state(true);
|
||||||
|
const toggle = () => (open = !open);
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<Modal body isOpen={open} {toggle}>
|
||||||
|
{payload}
|
||||||
|
</Modal>
|
||||||
|
</div>
|
||||||
@@ -1,5 +1,8 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
import { writable } from "svelte/store"; // Importar writable para los estados
|
||||||
|
import ModalEstatico from "../Componentes/ModalEstatico.svelte";
|
||||||
import NavBarAutocompletable from "../Componentes/NavBarAutocompletable.svelte";
|
import NavBarAutocompletable from "../Componentes/NavBarAutocompletable.svelte";
|
||||||
|
|
||||||
type Propiedad = {
|
type Propiedad = {
|
||||||
ubicacion: string,
|
ubicacion: string,
|
||||||
canthabitaciones: number,
|
canthabitaciones: number,
|
||||||
@@ -7,26 +10,50 @@
|
|||||||
letra: string,
|
letra: string,
|
||||||
email: string,
|
email: string,
|
||||||
idtipropiedad: number,
|
idtipropiedad: number,
|
||||||
}
|
};
|
||||||
|
|
||||||
let propiedad: Propiedad = {
|
let propiedad: Propiedad = {
|
||||||
ubicacion: "",
|
ubicacion: "",
|
||||||
canthabitaciones: 1,
|
canthabitaciones: 1,
|
||||||
piso: 0,
|
piso: 0,
|
||||||
letra: "",
|
letra: "",
|
||||||
email: "",
|
email: localStorage.getItem("email") || "",
|
||||||
idtipropiedad: 1,
|
idtipropiedad: 1,
|
||||||
};
|
};
|
||||||
|
|
||||||
const submitForm = () => {
|
let token = sessionStorage.getItem("token");
|
||||||
console.log("Formulario enviado:", propiedad);
|
let mostrarModal = $state(false);
|
||||||
};
|
let datosModal = $state("");
|
||||||
|
|
||||||
|
const submitForm = async (e: Event) => {
|
||||||
|
e.preventDefault();
|
||||||
|
try {
|
||||||
|
const response = await fetch("http://localhost:5007/api/propiedad", {
|
||||||
|
method: 'POST',
|
||||||
|
headers: {
|
||||||
|
'Auth': String(token),
|
||||||
|
'Content-Type': "application/json"
|
||||||
|
},
|
||||||
|
body: JSON.stringify(propiedad),
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
const json = await response.json();
|
||||||
|
datosModal = json.message;
|
||||||
|
mostrarModal =true;
|
||||||
|
|
||||||
|
} catch (e) {
|
||||||
|
console.error(e);
|
||||||
|
}
|
||||||
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<NavBarAutocompletable />
|
<NavBarAutocompletable />
|
||||||
|
|
||||||
|
|
||||||
<div class="container mt-4">
|
<div class="container mt-4">
|
||||||
<h2>Registrar Propiedad</h2>
|
<h2>Registrar Propiedad</h2>
|
||||||
<form on:submit|preventDefault={submitForm}>
|
<form class="card card-body" onsubmit={submitForm}>
|
||||||
<div class="form-floating mb-3">
|
<div class="form-floating mb-3">
|
||||||
<input
|
<input
|
||||||
type="text"
|
type="text"
|
||||||
@@ -72,7 +99,6 @@
|
|||||||
/>
|
/>
|
||||||
<label for="letra">Letra</label>
|
<label for="letra">Letra</label>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-floating mb-3">
|
<div class="form-floating mb-3">
|
||||||
<select
|
<select
|
||||||
id="idtipropiedad"
|
id="idtipropiedad"
|
||||||
@@ -81,11 +107,17 @@
|
|||||||
required
|
required
|
||||||
>
|
>
|
||||||
<option value="1">Casa</option>
|
<option value="1">Casa</option>
|
||||||
<option value="2">Departamento</option>
|
<option value="2">Piso</option>
|
||||||
<option value="3">Oficina</option>
|
<option value="3">Departamento</option>
|
||||||
|
<option value="4">Galpon</option>
|
||||||
|
<option value="5">LocalComercial</option>
|
||||||
|
<option value="6">Oficina</option>
|
||||||
</select>
|
</select>
|
||||||
<label for="idtipropiedad">Tipo de Propiedad</label>
|
<label for="idtipropiedad">Tipo de Propiedad</label>
|
||||||
</div>
|
</div>
|
||||||
<button type="submit" class="btn btn-primary">Enviar</button>
|
<button type="submit" class="btn btn-primary">Enviar</button>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
{#if mostrarModal == true}
|
||||||
|
<ModalEstatico payload={datosModal} />
|
||||||
|
{/if}
|
||||||
@@ -7,7 +7,7 @@ import NavBarAutocompletable from "../../Componentes/NavBarAutocompletable.svelt
|
|||||||
<NavBarAutocompletable/>
|
<NavBarAutocompletable/>
|
||||||
<div class="container mt-5">
|
<div class="container mt-5">
|
||||||
<div class="text-center mb-4">
|
<div class="text-center mb-4">
|
||||||
<h1>Perfil del Administrador</h1>
|
<h1>Menu del Administrador</h1>
|
||||||
<p>Gestiona las cuentas de usuarios, propiedades y permisos desde aquí.</p>
|
<p>Gestiona las cuentas de usuarios, propiedades y permisos desde aquí.</p>
|
||||||
</div>
|
</div>
|
||||||
<ListaAcciones/>
|
<ListaAcciones/>
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
<script lang="ts">
|
|
||||||
import NavBarAutocompletable from "../../Componentes/NavBarAutocompletable.svelte";
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<NavBarAutocompletable/>
|
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
import ListaAcciones from "../../Componentes/ListaAcciones.svelte";
|
||||||
|
import NavBarAutocompletable from "../../Componentes/NavBarAutocompletable.svelte";
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<NavBarAutocompletable/>
|
||||||
|
<div class="container mt-5">
|
||||||
|
<div class="text-center mb-4">
|
||||||
|
<h1>Menu Informes</h1>
|
||||||
|
<p>Visualice estadisticas e informes aqui.</p>
|
||||||
|
</div>
|
||||||
|
<ListaAcciones/>
|
||||||
|
</div>
|
||||||
@@ -7,7 +7,7 @@ import NavBarAutocompletable from "../../Componentes/NavBarAutocompletable.svelt
|
|||||||
|
|
||||||
<div class="container mt-5">
|
<div class="container mt-5">
|
||||||
<div class="text-center mb-4">
|
<div class="text-center mb-4">
|
||||||
<h1>Perfil del Inquilino</h1>
|
<h1>Menu del Inquilino</h1>
|
||||||
<p>Gestiona tus Pagos y Busca Propiedades desde aquí.</p>
|
<p>Gestiona tus Pagos y Busca Propiedades desde aquí.</p>
|
||||||
</div>
|
</div>
|
||||||
<ListaAcciones/>
|
<ListaAcciones/>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
<NavBarAutocompletable/>
|
<NavBarAutocompletable/>
|
||||||
<div class="container mt-5">
|
<div class="container mt-5">
|
||||||
<div class="text-center mb-4">
|
<div class="text-center mb-4">
|
||||||
<h1>Perfil del Propietario</h1>
|
<h1>Menu del Propietario</h1>
|
||||||
<p>Gestiona tus propiedades y servicios desde aquí.</p>
|
<p>Gestiona tus propiedades y servicios desde aquí.</p>
|
||||||
</div>
|
</div>
|
||||||
<ListaAcciones/>
|
<ListaAcciones/>
|
||||||
|
|||||||
@@ -1,6 +1,15 @@
|
|||||||
<script>
|
<script>
|
||||||
|
import BarraHorizontalConTexto from "../Componentes/BarraHorizontalConTexto.svelte";
|
||||||
import NavBarAuto from "../Componentes/NavBarAutocompletable.svelte";
|
import NavBarAuto from "../Componentes/NavBarAutocompletable.svelte";
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<NavBarAuto/>
|
<NavBarAuto/>
|
||||||
hol
|
<div class="container d-flex justify-content-center align-items-center h-50 text-center">
|
||||||
|
<div>
|
||||||
|
<br><br>
|
||||||
|
<BarraHorizontalConTexto text={"¡Bienvenido a AlquilaFacil!"} />
|
||||||
|
|
||||||
|
<p class="lead mt-3">Por favor, elige una de las opciones disponibles en la barra de navegación superior.</p>
|
||||||
|
<BarraHorizontalConTexto text={""}/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
@@ -18,7 +18,7 @@ public abstract class RepositorioBase<S>
|
|||||||
context.SaveChanges();
|
context.SaveChanges();
|
||||||
context.Dispose();
|
context.Dispose();
|
||||||
ret = true;
|
ret = true;
|
||||||
} catch (DbUpdateException ex)
|
} catch (Exception ex)
|
||||||
{
|
{
|
||||||
Console.Error.WriteLine(ex.Message);
|
Console.Error.WriteLine(ex.Message);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Reflection.Metadata.Ecma335;
|
using System.Data;
|
||||||
using System.Runtime.ConstrainedExecution;
|
|
||||||
using Entidades;
|
using Entidades;
|
||||||
using Entidades.Dto;
|
using Entidades.Dto;
|
||||||
|
using Microsoft.Data.SqlClient;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Modelo;
|
using Modelo;
|
||||||
|
using MySql.Data.MySqlClient;
|
||||||
|
|
||||||
public class RepositorioPropiedades: RepositorioBase<RepositorioPropiedades>
|
public class RepositorioPropiedades: RepositorioBase<RepositorioPropiedades>
|
||||||
{
|
{
|
||||||
@@ -41,12 +42,29 @@ public class RepositorioPropiedades: RepositorioBase<RepositorioPropiedades>
|
|||||||
|
|
||||||
var con = Context;
|
var con = Context;
|
||||||
|
|
||||||
int count = con.Propiedades.Count()+1;
|
if (string.IsNullOrEmpty(prop.Letra)) prop.Letra = "_";
|
||||||
|
|
||||||
prop.Id = count;
|
var filasInsertadasParam = new MySqlParameter("@p_filas_insertadas", SqlDbType.Int)
|
||||||
prop.Idestado = 1;
|
{
|
||||||
con.Propiedades.Add(prop);
|
Direction = ParameterDirection.Output
|
||||||
return Guardar(con);
|
};
|
||||||
|
|
||||||
|
// Ejecutar el procedimiento almacenado
|
||||||
|
var row = con.Database.ExecuteSqlRaw(
|
||||||
|
$"""
|
||||||
|
CALL InsertarPropiedad(@p_ubicacion, @p_cant_habitaciones, @p_piso, @p_letra,
|
||||||
|
@p_dni_propietario, @p_id_tipo_propiedad, @p_filas_insertadas)
|
||||||
|
""",
|
||||||
|
new MySqlParameter("@p_ubicacion", prop.Ubicacion),
|
||||||
|
new MySqlParameter("@p_cant_habitaciones", prop.Canthabitaciones),
|
||||||
|
new MySqlParameter("@p_piso", prop.Piso),
|
||||||
|
new MySqlParameter("@p_letra", prop.Letra),
|
||||||
|
new MySqlParameter("@p_dni_propietario", prop.Dnipropietario),
|
||||||
|
new MySqlParameter("@p_id_tipo_propiedad", prop.Idtipropiedad),
|
||||||
|
filasInsertadasParam
|
||||||
|
);
|
||||||
|
|
||||||
|
return (int)filasInsertadasParam.Value == 1? true: false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public IQueryable<PropiedadesDto> ObtenerPropiedadesPorEmail(string email) {
|
public IQueryable<PropiedadesDto> ObtenerPropiedadesPorEmail(string email) {
|
||||||
|
|||||||
@@ -24,15 +24,8 @@ public class RepositorioPropietario: RepositorioBase<RepositorioPropietario> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Cliente? ObtenerPropietarioPorEmail(string email){
|
public Cliente? ObtenerPropietarioPorEmail(string email){
|
||||||
|
var con = Context;
|
||||||
FormattableString sqlq = $"""
|
Cliente? cli = con.Clientes.FirstOrDefault(x=>x.Email == email);
|
||||||
SELECT * FROM Clientes c
|
|
||||||
JOIN cliente_Grupos cg ON cg.idgrupo = 1
|
|
||||||
WHERE c.email = {email}
|
|
||||||
LIMIT 1
|
|
||||||
""";
|
|
||||||
|
|
||||||
Cliente? cli = Context.Database.SqlQuery<Cliente?>(sqlq).First();
|
|
||||||
if (cli == null|| cli.Dni == 0) return null;
|
if (cli == null|| cli.Dni == 0) return null;
|
||||||
if (cli.Dni == 0 || cli == null) return null;
|
if (cli.Dni == 0 || cli == null) return null;
|
||||||
return cli;
|
return cli;
|
||||||
|
|||||||
@@ -10,45 +10,45 @@ public class RepositorioUsuarios: RepositorioBase<RepositorioUsuarios> {
|
|||||||
public bool AltaInquilino(Cliente cli) {
|
public bool AltaInquilino(Cliente cli) {
|
||||||
var con = Context;
|
var con = Context;
|
||||||
|
|
||||||
|
Grupo? grupo;
|
||||||
//check por si la cuenta ya existe (puede ser propietario)
|
//check por si la cuenta ya existe (puede ser propietario)
|
||||||
Cliente? cli2 = con.Clientes.Find(cli.Dni);
|
Cliente? cli2 = con.Clientes.Find(cli.Dni);
|
||||||
if (cli2 != null) {
|
if (cli2 != null) {
|
||||||
cli = cli2;
|
grupo = con.Grupos.Find(2);
|
||||||
|
if (grupo == null || grupo.Id == 0) return false;
|
||||||
|
cli2.Idgrupos.Add(grupo);
|
||||||
|
return Guardar(con);
|
||||||
}
|
}
|
||||||
|
|
||||||
var grupo = con.Grupos.Find(2);
|
grupo = con.Grupos.Find(2);
|
||||||
if (grupo == null || grupo.Id == 0) return false;
|
if (grupo == null || grupo.Id == 0) return false;
|
||||||
|
|
||||||
con.Clientes.Add(cli);
|
con.Clientes.Add(cli);
|
||||||
Guardar(con);
|
|
||||||
|
|
||||||
con = Context;
|
|
||||||
cli = con.Clientes.Find(cli.Dni) ?? new();
|
|
||||||
if (cli.Dni == 0) return false;
|
if (cli.Dni == 0) return false;
|
||||||
|
|
||||||
cli.Idgrupos.Add(grupo);
|
cli.Idgrupos.Add(grupo);
|
||||||
return Guardar(con);
|
return Guardar(con);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool AltaPropietario(Cliente cli) {
|
public bool AltaPropietario(Cliente cli) {
|
||||||
var con = Context;
|
var con = Context;
|
||||||
|
|
||||||
|
Grupo? grupo;
|
||||||
//check por si la cuenta ya existe (puede ser propietario)
|
//check por si la cuenta ya existe (puede ser propietario)
|
||||||
Cliente? cli2 = con.Clientes.Find(cli.Dni);
|
Cliente? cli2 = con.Clientes.Find(cli.Dni);
|
||||||
if (cli2 != null) {
|
if (cli2 != null) {
|
||||||
cli = cli2;
|
grupo = con.Grupos.Find(1);
|
||||||
|
if (grupo == null || grupo.Id == 0) return false;
|
||||||
|
cli2.Idgrupos.Add(grupo);
|
||||||
|
return Guardar(con);
|
||||||
}
|
}
|
||||||
|
|
||||||
var grupo = con.Grupos.Find(1);
|
grupo = con.Grupos.Find(1);
|
||||||
if (grupo == null || grupo.Id == 0) return false;
|
if (grupo == null || grupo.Id == 0) return false;
|
||||||
|
|
||||||
con.Clientes.Add(cli);
|
con.Clientes.Add(cli);
|
||||||
Guardar(con);
|
|
||||||
|
|
||||||
con = Context;
|
|
||||||
cli = con.Clientes.Find(cli.Dni) ?? new();
|
|
||||||
if (cli.Dni == 0) return false;
|
if (cli.Dni == 0) return false;
|
||||||
|
|
||||||
cli.Idgrupos.Add(grupo);
|
cli.Idgrupos.Add(grupo);
|
||||||
|
|||||||
Reference in New Issue
Block a user