Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }
Пример #4
0
        //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
        }
Пример #5
0
        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);
        }
Пример #6
0
        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);
        }
Пример #7
0
        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);
        }
Пример #8
0
        //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);
        }
Пример #9
0
        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);
        }
Пример #10
0
 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));
         }
     }
 }
Пример #11
0
        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);
        }
Пример #12
0
        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);
            }
        }