/// <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(); }
/// <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); }
/// <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()); } }
public bool ModificarStockProductos(Producto unProducto) { bool retValue = false; retValue = HelperBD.ActualizarStockProducto(unProducto); return(retValue); }
/// <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) { } }