public string agregarVentaYDetalle(Venta nuevaVenta)
        {
            DetalleVentaNegocio negocioDetalleVenta = new DetalleVentaNegocio();
            ProductoNegocio     negocioProducto     = new ProductoNegocio();
            string response = "";

            if (ValidarStock(nuevaVenta) == true)
            {
                string IDVenta = this.agregar(nuevaVenta);
                if (IDVenta != "")
                {
                    foreach (Detalle detalleVenta in nuevaVenta.Detalle)
                    {
                        negocioDetalleVenta.agregar(detalleVenta, nuevaVenta.Cliente.ID.ToString(), IDVenta);
                        negocioProducto.modificarStock(detalleVenta.Producto, detalleVenta.Cantidad, false); // alta = true / baja = false
                    }
                }
                else
                {
                    response = "Se encontro una falla al generar la venta! Por favor, intente nuevamente.";
                }
            }
            else
            {
                response = "Whoops! Al parecer no hay stock suficiente para al menos 1 de los productos detallados";
            }
            return(response);
        }
        public void StockSegunTipoOperacion(string TipoOperacion, Producto unProducto, List <DetalleVenta> ListadoDetalle, int Cantidad)
        {
            ValidadorDatos      Validar = new ValidadorDatos();
            DetalleVentaNegocio unDetalleVentaNegocio = new DetalleVentaNegocio();

            if (TipoOperacion == "Ventas")
            {
                Validar.Stock(unProducto.Stock);
                unDetalleVentaNegocio.ControlStock(ListadoDetalle, unProducto, Cantidad);
                Validar.MaximoValor(unProducto.Stock, "Stock", Cantidad);
            }
        }
        public List <Venta> listar()
        {
            SqlConnection conexion = new SqlConnection();
            SqlCommand    comando  = new SqlCommand();
            SqlDataReader lector;
            List <Venta>  listado = new List <Venta>();
            Venta         venta;

            try
            {
                conexion.ConnectionString = AccesoDatosManager.cadenaConexion;
                comando.CommandType       = System.Data.CommandType.Text;
                comando.CommandText       = "SELECT * FROM[TPC_ESPINOLA].[dbo].[Ventas]";
                comando.Connection        = conexion;
                conexion.Open();
                lector = comando.ExecuteReader();
                ClienteNegocio      negocioCliente      = new ClienteNegocio();
                DetalleVentaNegocio negocioDetalleVenta = new DetalleVentaNegocio();
                while (lector.Read())
                {
                    venta         = new Venta();
                    venta.ID      = Convert.ToInt32(lector["Id"]);
                    venta.Cliente = negocioCliente.traerCliente(lector["ClienteID"].ToString());
                    venta.Detalle = negocioDetalleVenta.listar(lector["Id"].ToString());
                    venta.Fecha   = Convert.ToDateTime(lector["Fecha"]);
                    venta.Total   = negocioDetalleVenta.calcularTotal(lector["ID"].ToString());

                    listado.Add(venta);
                }

                return(listado);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                conexion.Close();
            }
        }