/// <summary> /// Método para consultar los productos asociados a un determinado producto /// </summary> /// <param name="codigoPedido">(Int32) Código del pedido a consultar sus productos</param> /// <returns>(List<DO_ProductoEnPedido>) lista de los productos asociados al pedido</returns> public List <DO_ProductoEnPedido> listaProductos(Int32 codigoPedido) { List <DO_ProductoEnPedido> listaProductos = new List <DO_ProductoEnPedido>(); SqlCommand comandoConsultar = new SqlCommand("SELECT PED_POSEE_PRO.PPP_CANTIDAD, PRODUCTO.* " + "FROM PRODUCTO, PED_POSEE_PRO WHERE(PRODUCTO.PRO_CODIGO = PED_POSEE_PRO.PRO_CODIGO AND PED_POSEE_PRO.PED_CODIGO = @codigo)", conexion); comandoConsultar.Parameters.AddWithValue("@codigo", codigoPedido); try { if (conexion.State != ConnectionState.Open) { conexion.Open(); } SqlDataReader lector = comandoConsultar.ExecuteReader(); if (lector.HasRows) { while (lector.Read()) { DO_ProductoEnPedido producto = new DO_ProductoEnPedido(); DO_Producto detallesProducto = new DO_Producto(); producto.cantidad = Convert.ToInt32(lector["PPP_CANTIDAD"]); detallesProducto.codigo = Convert.ToInt32(lector["PRO_CODIGO"]); detallesProducto.estado = (String)(lector["EST_HAB_ESTADO"]); detallesProducto.nombre = (String)(lector["PRO_NOMBRE"]); detallesProducto.descripcion = (String)(lector["PRO_DESCRIPCION"]); producto.producto = detallesProducto; listaProductos.Add(producto); } } conexion.Close(); return(listaProductos); } catch (SqlException) { return(null); } finally { if (conexion.State != ConnectionState.Closed) { conexion.Close(); } } }
/// <summary> /// Método auxiliar para realizar la unificación de la lista /// </summary> /// <param name="listaFinal"></param> /// <param name="producto"></param> /// <returns></returns> public bool buscarProductoFinal(List <DO_ProductoEnPedido> listaFinal, DO_ProductoEnPedido producto) { foreach (DO_ProductoEnPedido productoFinal in listaFinal) { //producto =x producto final = x if (producto.producto.codigo.Equals(productoFinal.producto.codigo)) { productoFinal.cantidad += producto.cantidad; return(true); } } return(false); }
/// <summary> /// Método para obtener agregar los productos en la lista de pedidos de reporte /// </summary> /// <param name="listaPedidos"></param> public void obtenerProductos(List <DO_Pedido> listaPedidos) { foreach (DO_Pedido pedido in listaPedidos) { SqlCommand comandoBuscarProductos = new SqlCommand("SELECT PRODUCTO.PRO_NOMBRE, PRODUCTO.PRO_CODIGO,PRODUCTO.PRO_DESCRIPCION,PRODUCTO.EST_HAB_ESTADO, PED_POSEE_PRO.PPP_CANTIDAD " + "FROM PED_POSEE_PRO,PRODUCTO WHERE PED_POSEE_PRO.PRO_CODIGO = PRODUCTO.PRO_CODIGO AND (PED_POSEE_PRO.PED_CODIGO = @codigoPedido)", conexion); comandoBuscarProductos.Parameters.AddWithValue("@codigoPedido", pedido.codigo); List <DO_ProductoEnPedido> listaProductos = new List <DO_ProductoEnPedido>(); try { if (conexion.State != ConnectionState.Open) { conexion.Open(); } SqlDataReader lector = comandoBuscarProductos.ExecuteReader(); if (lector.HasRows) { while (lector.Read()) { DO_ProductoEnPedido productoEnPedido = new DO_ProductoEnPedido(); DO_Producto producto = new DO_Producto(); producto.codigo = Convert.ToInt32(lector["PRO_CODIGO"]); producto.nombre = (String)lector["PRO_NOMBRE"]; producto.descripcion = (String)lector["PRO_DESCRIPCION"]; producto.estado = (String)lector["EST_HAB_ESTADO"]; productoEnPedido.producto = producto; productoEnPedido.cantidad = Convert.ToInt32(lector["PPP_CANTIDAD"]); listaProductos.Add(productoEnPedido); } pedido.listaProductos = listaProductos; } } catch (SqlException) {} finally { if (conexion.State != ConnectionState.Closed) { conexion.Close(); } } } }