public double DevolverVenta(long idVenta) { double precio = 0; VentasDTO ventadto = null; ventadto = Read(idVenta); Venta venta = ventaDTOtoVenta(ventadto); if (ventadto != null) //Comprobación de que se ha realizado la lectura de la venta en la base de datos. { using (var context = new DatosDB()) { Devolucion devolucion = new Devolucion(); devolucion.ID = venta.ID; devolucion.NEntradas = venta.NEntradas; devolucion.NEntradasJoven = venta.NEntradasJoven; devolucion.Precio = venta.Precio; devolucion.SesionID = venta.SesionID; context.Devoluciones.Add(devolucion); context.SaveChanges(); } precio = venta.Precio; Delete(venta.ID); } return(precio); }
public VentasDTO Read(long idVenta) { Venta venta = null; VentasDTO DTO = null; using (var context = new DatosDB()) { venta = context.Ventas.Find(idVenta); DTO = ventaToDTO(venta); } return(DTO); }
public VentasDTO Create(VentasDTO venta) { Venta v = ventaDTOtoVenta(venta); using (var context = new DatosDB()) { v = context.Ventas.Add(v); context.SaveChanges(); venta = ventaToDTO(v); } return(venta); }
//cambio de entradas,implica cambio de sesion //venta ya existente id distinto de menos uno update // Venta Update(int idVenta,Sesion sesion); public VentasDTO Update(long idVenta, VentasDTO venta) { Venta nuevaVenta = ventaDTOtoVenta(venta); VentasDTO cambio = null; using (var context = new DatosDB()) { Venta antiguaventa = context.Ventas.Find(idVenta); context.Entry(antiguaventa).CurrentValues.SetValues(nuevaVenta); context.SaveChanges(); cambio = ventaToDTO(antiguaventa); } return(cambio);//devuelve objeto cambiado si existia una venta con ese id sino un null }
public VentasDTO ventaToDTO(Venta venta) { VentasDTO dto = new VentasDTO(); if (venta != null) { dto.VentaId = venta.ID; dto.NEntradas = venta.NEntradas; dto.NEntradasJoven = venta.NEntradasJoven; dto.Precio = venta.Precio; dto.SesionId = venta.SesionID; } return(dto); }
public VentasDTO Delete(long idVenta) { Venta venta = null; Venta devolucion; VentasDTO v = null; using (var context = new DatosDB()) { devolucion = context.Ventas.Find(idVenta); venta = context.Ventas.Remove(devolucion); context.SaveChanges(); v = ventaToDTO(venta); } return(v); }
private Venta ventaDTOtoVenta(VentasDTO ventaDto) { Venta v = new Venta(); if (ventaDto != null) { v.ID = ventaDto.VentaId; v.NEntradas = ventaDto.NEntradas; v.NEntradasJoven = ventaDto.NEntradasJoven; v.Precio = ventaDto.Precio; v.SesionID = ventaDto.SesionId; v.Sesion = null; } return(v); }
//public Sesion Cerrar(long id) //{ // Sesion s = ReadSesion(id); // if (s.Abierto) // { // using (var context = new DatosDB()) // { // s = context.Sesiones.Find(id); // s.Abierto = false; // context.SaveChanges(); // } // } // return s; //} //public Sesion Abrir(long id) //{ // Sesion s = ReadSesion(id); // if (!s.Abierto) // { // using (var context = new DatosDB()) // { // s = context.Sesiones.Find(id); // s.Abierto = true; // context.SaveChanges(); // } // } // return s; //} public bool HayButacas(int butacas, long sesionID, VentasDTO antiguaVenta = null) { int butacasVendidas = CalcularEntradasVendidasSesion(sesionID); //devuelve objeto sesion if (antiguaVenta != null) { if (antiguaVenta.SesionId == sesionID) { butacasVendidas -= antiguaVenta.NEntradas; } } Sesion sesiondb = ReadSesion(sesionID); long id = sesiondb.SalaId; int aforo = ReadSala(id).NButacas; return(butacasVendidas + butacas <= aforo); }
private IList <VentasDTO> conversionLista(IList <Venta> listaVentas) { IList <VentasDTO> listaDTO = new List <VentasDTO>(); foreach (Venta venta in listaVentas) { VentasDTO dto = new VentasDTO(); dto.VentaId = venta.ID; dto.NEntradas = venta.NEntradas; dto.NEntradasJoven = venta.NEntradasJoven; dto.Precio = venta.Precio; dto.SesionId = venta.SesionID; listaDTO.Add(dto); } return(listaDTO); }
public VentasDTO Create(VentasDTO venta) { if (!Repositorio.ReadSesion(venta.SesionId).Abierto) //Comprobamos si la sesión de destino se encuentra abierta. { throw new Exception("Imposible vender entradas: La sesión se encuentra cerrada."); } else { if (!Repositorio.HayButacas(venta.NEntradas, venta.SesionId)) //Comprobamos si quedan butacas disponibles en la sesión de destino. { throw new Exception("Imposible vender entradas: No quedan butacas disponibles."); } else { venta.Precio = CalculaPrecio(venta); return(Repositorio.Create(venta)); } } }
public VentasDTO Update(long idVenta, VentasDTO venta) { VentasDTO antiguaVenta = Repositorio.Read(venta.VentaId); if (antiguaVenta == null) { throw new Exception("Imposible actualizar entradas: No existe la venta a actualizar."); } if (!Repositorio.ReadSesion(venta.SesionId).Abierto) //Comprobamos si la sesión de destino se encuentra abierta. { throw new Exception("Imposible actualizar entradas: La sesión se encuentra cerrada."); } if (!Repositorio.HayButacas(venta.NEntradas, venta.SesionId, antiguaVenta)) //Comprobamos si quedan butacas disponibles en la sesión de destino. { throw new Exception("Imposible actualizar entradas: No quedan butacas disponibles."); } venta.Precio = CalculaPrecio(venta); Repositorio.Update(idVenta, venta); venta.Cambio = venta.Precio - antiguaVenta.Precio; return(venta); }
public double CalculaPrecio(VentasDTO venta) { double total = 0; double NEntradasNoJoven = venta.NEntradas - venta.NEntradasJoven; if ((venta.NEntradas <= 0) || (venta.NEntradas < venta.NEntradasJoven) || (NEntradasNoJoven < 0)) { throw new Exception("Venta incorrecta."); } else { if (NEntradasNoJoven >= 5) { total = Constantes.PRECIO * (venta.NEntradasJoven * Constantes.DESCUENTOJOVEN + NEntradasNoJoven * Constantes.DESCUENTOGRUPO); } else { total = Constantes.PRECIO * (venta.NEntradasJoven * Constantes.DESCUENTOJOVEN + NEntradasNoJoven); } return(total); } }