Example #1
0
 /// <summary>
 /// Método estatico que carga las listas con datos provenientes de la base de datos
 /// </summary>
 public static void CargarListas()
 {
     listaDeProductos = HelperBD.TraerProductos();
     listaDeClientes  = HelperBD.TraerClientes();
     listaDeEmpleados = HelperBD.TraerEmpleados();
     listaDePedidos   = HelperBD.TraerPedidos();
 }
Example #2
0
        /// <summary>
        /// Método que valida el stock disponible de un producto que se esta solicitando en una venta determinada contra una lista actualizada de la base de datos
        /// </summary>
        /// <param name="auxVenta">Objeto de tipo Venta</param>
        /// <returns>Devuelve un booleano para control de ejecucion</returns>
        public static bool ConfirmarStockVentasExternas(Venta auxVenta)
        {
            bool retValue = false;

            try
            {
                List <Articulo> auxListaDeArticulos = HelperBD.TraerArticulos();
                if (auxListaDeArticulos != null)
                {
                    foreach (Articulo unArticulo in auxListaDeArticulos)
                    {
                        if (unArticulo.IdArticulo == auxVenta.IdArticulo)
                        {
                            if (unArticulo.Cantidad >= auxVenta.Cantidad)
                            {
                                retValue = true;
                            }
                        }
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
            return(retValue);
        }
Example #3
0
 /// <summary>
 /// Metodo que permite generar en la base de datos ventas en estado pendiente en funcion de las ordenes de compra recibidas
 /// </summary>
 /// <param name="listaDeOrdenesDeCompra">Lista de objetos de tipo OrdenDeCompra</param>
 public static void GenerarVentasPendientes(List <OrdenDeCompra> listaDeOrdenesDeCompra)
 {
     foreach (OrdenDeCompra item in listaDeOrdenesDeCompra)
     {
         HelperBD.GenerarVenta(item.IdTienda, item.IdArticulo, item.Cantidad, item.Monto, Venta.EEstadoVenta.Pendiente.ToString());
     }
 }
Example #4
0
        public bool ModificarStockProductos(Producto unProducto)
        {
            bool retValue = false;

            retValue = HelperBD.ActualizarStockProducto(unProducto);
            return(retValue);
        }
Example #5
0
        /// <summary>
        /// Este método permite emular el procesamiento de ventas de manera automatica mediante el uso de un hilo pero haciendolo visible desde la consola y depurando algunas especificidades del front de windows forms
        /// </summary>
        public static void ProcesarVentasConsola()
        {
            bool continuar = true;

            try
            {
                hiloActivoConsola = true;
                while (continuar == true)
                {
                    //Se valida que existan ventas pendientes en la cola
                    if (Distribuidora.colaVentasPendientes.Count > 0)
                    {
                        //Se obtiene un elemento de la cola de ventas pendientes
                        Venta auxVenta = Distribuidora.colaVentasPendientes.Dequeue();
                        //Calida si hay stock disponible del producto solicitado en la venta
                        if (Distribuidora.ConfirmarStockVentasExternas(auxVenta))
                        {
                            //Procesa una venta dejandola como conforme en la base de datos y actualizando el stock
                            Articulo auxArticulo = Distribuidora.buscarArticuloPorId(auxVenta.IdArticulo);
                            auxArticulo.Cantidad = auxArticulo.Cantidad - auxVenta.Cantidad;
                            HelperBD.ActualizarStockArticulo(auxArticulo);
                            auxVenta.EstadoVenta = Venta.EEstadoVenta.Conforme;
                            HelperBD.ActualizarEstadoVenta(auxVenta);
                            Distribuidora.colaVentasProcesadas.Enqueue(auxVenta);
                        }
                        else
                        {
                            //Establece el estado de la venta como rechazada
                            auxVenta.EstadoVenta = Venta.EEstadoVenta.Rechazada;
                            HelperBD.ActualizarEstadoVenta(auxVenta);
                            //Asigna la venta a la cola de ventas procesadas.
                            Distribuidora.colaVentasProcesadas.Enqueue(auxVenta);
                            //Suscirbe al Delegado ventaRechazada el metodo GenerarLogVentasRechazadas
                            Distribuidora.ventaRechazada += Distribuidora.GenerarLogVentasRechazadas;
                            //Llamada al metodo que invoca al evento para generar el registro en el log de ventas rechazadas.
                            Distribuidora.InvocarEvento(auxVenta);
                        }
                    }
                    else
                    {
                        continuar = false;
                    }
                }
                hiloActivoConsola = false;
            }
            catch (StockException)
            {
            }
            catch (Exception)
            {
            }
        }