feat: terminado tema desabilitacion cliente

This commit is contained in:
2024-12-31 20:24:08 -03:00
parent f1c9632855
commit 872415cdde
19 changed files with 320 additions and 48 deletions

View File

@@ -0,0 +1,15 @@
using Entidades;
using Microsoft.EntityFrameworkCore;
namespace Modelo;
public class RepositorioContratos: RepositorioBase<RepositorioContratos> {
public IQueryable<Contrato>? ObtenerContratosPorEmailInquilino(string email){
var con = Context;
try{
var listcont = con.Contratos.Where(x=>x.DniinquilinoNavigation.Email == email);
return listcont;
} catch {
return null;
}
}
}

View File

@@ -12,7 +12,7 @@ public class RepositorioPropiedades: RepositorioBase<RepositorioPropiedades> {
public IQueryable<PropiedadesDto> ListarPropiedades(){
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
GROUP_CONCAT(DISTINCT s.descripcion SEPARATOR ', ') AS Servicios, p.monto as Monto
FROM Propiedades p
JOIN EstadoPropiedad ep ON p.idestado = 1
JOIN TipoPropiedad tp ON p.idtipropiedad = tp.id
@@ -41,35 +41,36 @@ public class RepositorioPropiedades: RepositorioBase<RepositorioPropiedades> {
return prop;
}
public bool AñadirPropiedad(Propiedade? prop) {
if (prop == null) return false;
public bool AñadirPropiedad(Propiedade? prop) {
if (prop == null) return false;
var con = Context;
var con = Context;
if (string.IsNullOrEmpty(prop.Letra)) prop.Letra = "_";
if (string.IsNullOrEmpty(prop.Letra)) prop.Letra = "_";
var filasInsertadasParam = new MySqlParameter("@p_filas_insertadas", SqlDbType.Int)
{
Direction = ParameterDirection.Output
};
var filasInsertadasParam = new MySqlParameter("@p_filas_insertadas", SqlDbType.Int)
{
Direction = ParameterDirection.Output
};
// 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
);
// 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_monto, @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),
new MySqlParameter("@p_monto",prop.Monto),
filasInsertadasParam
);
return (int)filasInsertadasParam.Value == 1? true: false;
}
return (int)filasInsertadasParam.Value == 1? true: false;
}
public bool PatchPropiedad(Propiedade prop) {
var con = Context;
@@ -82,6 +83,7 @@ public bool AñadirPropiedad(Propiedade? prop) {
propi.Ubicacion = prop.Ubicacion;
propi.Piso = prop.Piso;
propi.Letra = prop.Letra;
propi.Monto = prop.Monto;
propi.IdServicios.Clear();
foreach(Servicio ser in prop.IdServicios) {
@@ -95,7 +97,7 @@ public bool AñadirPropiedad(Propiedade? prop) {
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
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
FROM Propiedades p
JOIN Clientes c ON c.dni = p.dnipropietario
JOIN TipoPropiedad tp ON tp.id = p.idtipropiedad
@@ -111,7 +113,7 @@ public bool AñadirPropiedad(Propiedade? prop) {
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
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
FROM Propiedades p
JOIN Clientes c ON c.dni = p.dnipropietario
JOIN TipoPropiedad tp ON tp.id = p.idtipropiedad
@@ -326,4 +328,17 @@ public bool AñadirPropiedad(Propiedade? prop) {
var ret = Context.Database.SqlQuery<PropiedadesDto>(sqlq);
return ret;
}
public bool BajaPropiedades(string email) {
var con = Context;
try {
IQueryable<Propiedade> listprop = con.Propiedades.Where(x=>x.DnipropietarioNavigation.Email == email);
foreach (var item in listprop) {
item.Idestado = 3;
}
} catch {
return false;
}
return Guardar(con);
}
}

View File

@@ -129,4 +129,48 @@ public class RepositorioUsuarios: RepositorioBase<RepositorioUsuarios> {
Habilitado = x.Habilitado});
return list;
}
public bool AñadirClienteAGrupo(string email, string grupo) {
var con = Context;
var cli = con.Clientes.Include(x => x.Idgrupos).FirstOrDefault(x => x.Email == email);
var gru = con.Grupos.FirstOrDefault(x => x.Nombre == grupo);
if (cli == null || gru == null) {
return false;
}
cli.Idgrupos.Add(gru);
return Guardar(con);
}
public bool EliminarClienteAGrupo(string email, string grupo) {
var con = Context;
var cli = con.Clientes.Include(x => x.Idgrupos).FirstOrDefault(x => x.Email == email);
var gru = con.Grupos.FirstOrDefault(x => x.Nombre == grupo);
if (cli == null || gru == null) {
return false;
}
cli.Idgrupos.Remove(gru);
return Guardar(con);
}
public bool BajaCliente(long dni) {
var con = Context;
Cliente? cli = con.Clientes.Include(x=>x.Idgrupos).FirstOrDefault(x=>x.Dni == dni);
if (cli == null) return false;
cli.Habilitado = 0;
return Guardar(con);
}
public Cliente? ObtenerClientePorDni(long dni) {
var con = Context;
Cliente? cli = con.Clientes.FirstOrDefault(x=>x.Dni == dni);
return cli;
}
}