using Entidades; using Microsoft.EntityFrameworkCore; namespace Modelo; public class RepositorioVentas: RepositorioBase { public bool EfectuarVenta(long idventa) { var con = Context; var vent = con.Ventas.Include(x=>x.IdpropiedadNavigation).FirstOrDefault(x => x.Id == idventa); if (vent == null||vent.Idestado != 2) return false; vent.IdpropiedadNavigation.Dnipropietario = vent.IdComprador; vent.IdpropiedadNavigation.Idestado=3; vent.Idestado=3; return Guardar(con); } public Contrato? ObtenerVentaPorContrato(long idcontrato) { var con = Context; var c = con.Contratos.Include(x=>x.Idcanons).Include(x=>x.IdventaNavigation).ThenInclude(x=>x.IddivisaNavigation) .FirstOrDefault(x=>x.Id == idcontrato); if (c == null || c.IdventaNavigation == null) return null; return c; } public Venta? ObtenerVentaPorId(long idventa) { var con = Context; var vent = con.Ventas .Include(x=>x.IddivisaNavigation) .Include(x=>x.IdestadoNavigation) .Include(x=>x.IdVendedorNavigation) .Include(x=>x.IdCompradorNavigation) .Include(x=>x.IdpropiedadNavigation) .Where(x=>x.Idestado != 1) .FirstOrDefault(x=>x.Id == idventa); if (vent == null) return null; return vent; } public IQueryable? ObtenerVentasPorDni(long dni) { var con = Context; var venta = con.Ventas .Include(x=>x.IddivisaNavigation) .Include(x=>x.IdestadoNavigation) .Include(x=>x.IdVendedorNavigation) .Include(x=>x.IdCompradorNavigation) .Include(x=>x.IdpropiedadNavigation) .Where(x=>(x.IdComprador == dni || x.IdVendedor == dni) && x.Idestado!=1 ) .Distinct(); return venta; } public bool PatchVenta(Venta venta) { var con = Context; var a = con.Ventas.FirstOrDefault(x=>x.Id == venta.Id); a.IdVendedor = venta.IdVendedor; a.IdComprador = venta.IdComprador; a.Idpropiedad = venta.Idpropiedad; a.Fechainicio = venta.Fechainicio; a.Idestado=2; return Guardar(con); } public bool SetUrlRecibo(long id, string nuevoNombreArchivo) { var con = Context; var venta = con.Ventas.FirstOrDefault(x=>x.Id == id); if (venta==null) return false; venta.UrlRecibo = nuevoNombreArchivo; return Guardar(con); } }