feat: ahora se pueden ver las propiedades dadas de baja y añadido el tema de los servicios

Signed-off-by: fede <federico.nicolas.polidoro@gmail.com>
This commit is contained in:
2024-12-06 00:01:31 -03:00
parent 5289c07d84
commit dee2031d87
12 changed files with 291 additions and 135 deletions

View File

@@ -68,7 +68,7 @@ public bool AñadirPropiedad(Propiedade? prop) {
public bool PatchPropiedad(Propiedade prop) {
var con = Context;
Propiedade? propi = con.Propiedades.FirstOrDefault(x=>x.Id == prop.Id);
Propiedade? propi = con.Propiedades.Include(x=>x.IdServicios).FirstOrDefault(x=>x.Id == prop.Id);
if (propi == null) return false;
@@ -78,17 +78,45 @@ public bool AñadirPropiedad(Propiedade? prop) {
propi.Piso = prop.Piso;
propi.Letra = prop.Letra;
propi.IdServicios.Clear();
foreach(Servicio ser in prop.IdServicios) {
var servi = con.Servicios.FirstOrDefault(x=>x.Id == ser.Id);
if (servi == null) return false;
propi.IdServicios.Add(servi);
}
return Guardar(con);
}
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 From Propiedades p
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
FROM Propiedades p
JOIN Clientes c ON c.dni = p.dnipropietario
JOIN TipoPropiedad tp ON tp.id = p.idtipropiedad
LEFT JOIN Servicio_Propiedad ps ON ps.idPropiedad = p.id
LEFT JOIN Servicios s ON s.Id = ps.idServicio
WHERE c.email = {email} AND p.idestado = 1
GROUP BY p.id
""";
var ret = Context.Database.SqlQuery<PropiedadesDto>(sqlq);
return ret;
}
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
FROM Propiedades p
JOIN Clientes c ON c.dni = p.dnipropietario
JOIN TipoPropiedad tp ON tp.id = p.idtipropiedad
LEFT JOIN Servicio_Propiedad ps ON ps.idPropiedad = p.id
LEFT JOIN Servicios s ON s.Id = ps.idServicio
WHERE c.email = {email} AND p.idestado = 3
GROUP BY p.id
""";
var ret = Context.Database.SqlQuery<PropiedadesDto>(sqlq);
return ret;
}
@@ -114,7 +142,12 @@ public bool AñadirPropiedad(Propiedade? prop) {
Propiedade? prop = con.Propiedades.FirstOrDefault(x=>x.Id == id);
if (prop == null) return false;
if (prop.Dnipropietario != cli.Dni) return false;
prop.Idestado = 3;
if(prop.Idestado == 1){
prop.Idestado = 3;
}else{
prop.Idestado = 1;
}
return Guardar(con);

View File

@@ -8,4 +8,9 @@ public class RepositorioServicios: RepositorioBase<RepositorioServicios> {
.SelectMany(x => x.IdServicios)
.Select(x=>x.Id);
}
public List<Servicio> ObtenerServiciosPorDescripcion(List<string> servs){
var servicios = Context.Servicios.Where(x=> servs.Contains(x.Descripcion)).ToList();
return servicios;
}
}