public List <DO_ProductoEnFactura> obtenerProductosFactura(int codigoFactura) { SqlDataAdapter adapterCodigos = new SqlDataAdapter(); adapterCodigos.SelectCommand = new SqlCommand("select PRO_CODIGO, CANTIDAD_COMPRADA from FAC_TIENE_PRO where FAC_CODIGO = @codigoFactura", conexion); adapterCodigos.SelectCommand.Parameters.AddWithValue("@codigoFactura", codigoFactura); DataTable datatableCodigos = new DataTable(); List <DO_ProductoEnFactura> listaProductos = new List <DO_ProductoEnFactura>(); try { if (conexion.State != ConnectionState.Open) { conexion.Open(); } adapterCodigos.Fill(datatableCodigos); foreach (DataRow row in datatableCodigos.Rows) { DO_ProductoEnFactura nuevoProducto = new DO_ProductoEnFactura(); nuevoProducto.cantidadComprada = Convert.ToInt32(row["CANTIDAD_COMPRADA"]); String codProducto = (String)row["PRO_CODIGO"]; SqlDataAdapter adapterProductos = new SqlDataAdapter(); adapterProductos.SelectCommand = new SqlCommand("select * from PRODUCTO where PRO_CODIGO = @codProducto", conexion); adapterProductos.SelectCommand.Parameters.AddWithValue("@codProducto", codProducto); DataTable datatableProductos = new DataTable(); adapterProductos.Fill(datatableProductos); foreach (DataRow prodRow in datatableProductos.Rows) { nuevoProducto.producto = new DO_Producto(); nuevoProducto.producto.codigo = (String)prodRow["PRO_CODIGO"]; nuevoProducto.producto.descripcion = (String)prodRow["PRO_DESCRIPCION"]; nuevoProducto.producto.cantMinBodega = Convert.ToInt32(prodRow["PRO_CANTIDAD_MINIMA_STOCK"]); nuevoProducto.producto.cantidadDisponible = Convert.ToInt32(prodRow["PRO_CANTIDAD_DISPONIBLE"]); nuevoProducto.producto.precioCosto = Convert.ToDouble(prodRow["PRO_PRECIO_COSTO"]); nuevoProducto.producto.precioVenta = Convert.ToDouble(prodRow["PRO_PRECIO_VENTA"]); listaProductos.Add(nuevoProducto); } } return(listaProductos); } catch (SqlException) { return(null); } finally { if (conexion.State != ConnectionState.Closed) { conexion.Close(); } } }
/// <summary> /// Agrega productos a la factura de forma lógica /// </summary> /// <param name="factura">La factura a la que se le quiere agregar el producto</param> /// <param name="producto">El producto a agregar</param> /// <param name="cantidad">La cantidad del producto</param> /// <returns>La factura con sus producto agregados (DO_Factura)</returns> public DO_Factura AgregarProductoAFactura(DO_Factura factura, DO_Producto producto, int cantidad) { DO_ProductoEnFactura nuevoProducto = new DO_ProductoEnFactura(producto, cantidad); factura.listaProducto.Add(nuevoProducto); return(factura); }
public DO_Factura confeccionarFactura() { factura.listaProducto = new List <DO_ProductoEnFactura>(); DataTable tablaProductos = (DataTable)gridProductos.DataSource; foreach (DataRow row in tablaProductos.Rows) { DO_ProductoEnFactura prodFactura = new DO_ProductoEnFactura(); prodFactura.producto = new DO_Producto(); prodFactura.producto.codigo = (String)row["Código"]; prodFactura.producto.descripcion = (String)row["Descripción"]; prodFactura.producto.precioVenta = Convert.ToInt32(row["Precio"]); prodFactura.producto.cantidadDisponible = Convert.ToInt32(row["Disponibles"]); prodFactura.cantidadComprada = Convert.ToInt32(row["Cantidad"]); factura.listaProducto.Add(prodFactura); } factura.fecha = DateTime.Now; factura.totalFactura = Convert.ToInt32(lblTotal.Text.Substring(1)); factura.saldo = factura.totalFactura; return(factura); }
/// <summary> /// Agrega los productos de determinada factura /// </summary> /// <param name="codigoFactura">Codigo de la factura a la cual pertenecen los productos</param> /// <param name="listaProductos">La lista de los producto comprados de la factura</param> /// <returns>(True) si se agregaron correctamente.(False) si no se agregaron</returns> public bool AgregarProductoAFactura(int codigoFactura, DateTime fecha, DO_ProductoEnFactura productoVendido) { SqlCommand consulta = new SqlCommand("insert into FAC_TIENE_PRO (PRO_CODIGO,FAC_CODIGO,FAC_FECHA, CANTIDAD_COMPRADA) values (@codigoProducto,@codigoFactura,@fecha, @cantComprada)", conexion); consulta.Parameters.AddWithValue("@codigoFactura", codigoFactura); consulta.Parameters.AddWithValue("@fecha", fecha); consulta.Parameters.AddWithValue("@codigoProducto", productoVendido.producto.codigo); consulta.Parameters.AddWithValue("@cantComprada", productoVendido.cantidadComprada); try { if (conexion.State != ConnectionState.Open) { conexion.Open(); } if (consulta.ExecuteNonQuery() > 0) { ActualizarInventario(productoVendido.producto.codigo, productoVendido.producto.cantidadDisponible, productoVendido.cantidadComprada); return(true); } else { return(false); } } catch (SqlException) { return(false); } finally { if (conexion.State != ConnectionState.Closed) { conexion.Close(); } } }