//obtener datos para el datagrid de detalle de movimiento
        public List <OrdenCompraDetalle> llenarDGVOrdenDetalle(int id_orden_compra_encabezado)
        {
            SQL_Producto              sql_Producto              = new SQL_Producto();
            SQL_Proveedor             sql_Proveedor             = new SQL_Proveedor();
            SQL_OrdenCompraEncabezado sql_OrdenCompraEncabezado = new SQL_OrdenCompraEncabezado();
            List <OrdenCompraDetalle> ordenCompraDetalle        = new List <OrdenCompraDetalle>();

            try
            {
                string sComando = string.Format("" +
                                                "SELECT " +
                                                "id_orden_compra_detalle, " +
                                                "id_orden_compra_encabezado, " +
                                                "id_proveedor, " +
                                                "id_producto, " +
                                                "cantidad, " +
                                                "precio_unitario " +
                                                "FROM ordenes_compras_detalle " +
                                                "WHERE id_orden_compra_encabezado = {0}; ",
                                                id_orden_compra_encabezado);

                OdbcDataReader reader = transaccion.ConsultarDatos(sComando);

                if (reader.HasRows)
                {
                    while (reader.Read())
                    {
                        OrdenCompraDetalle ordenCompraDetalleTmp = new OrdenCompraDetalle();
                        ordenCompraDetalleTmp.ID_ORDEN_COMPRA_DETALLE    = reader.GetInt32(0);
                        ordenCompraDetalleTmp.ID_ORDEN_COMPRA_ENCABEZADO = sql_OrdenCompraEncabezado.obtenerOrdenEncabezado(reader.GetInt32(1));
                        ordenCompraDetalleTmp.PROVEEDOR       = sql_Proveedor.obtenerProveedor(reader.GetInt32(2));
                        ordenCompraDetalleTmp.PRODUCTO        = sql_Producto.obtenerProducto(reader.GetInt32(3));
                        ordenCompraDetalleTmp.CANTIDAD        = reader.GetInt32(4);
                        ordenCompraDetalleTmp.PRECIO_UNITARIO = reader.GetDouble(5);
                        ordenCompraDetalle.Add(ordenCompraDetalleTmp);
                    }
                }
                return(ordenCompraDetalle);
            }
            catch (OdbcException ex)
            {
                mensaje = new Mensaje("Error en la operacion con la Base de Datos: \n" + ex.Message);
                mensaje.Show();
                return(null);
            }
        }
        //obtener datos para el datagrid de detalle de movimiento
        public List <MovimientoDetalle> llenarDGVMovimientoDetalle(int id_movimiento_inventario_encabezado)
        {
            SQL_Producto             producto = new SQL_Producto();
            List <MovimientoDetalle> movimientoDetalleList = new List <MovimientoDetalle>();

            try
            {
                string sComando = string.Format("" +
                                                "SELECT " +
                                                "id_movimiento_inventario_detalle, " +
                                                "id_producto, " +
                                                "cantidad_movimiento, " +
                                                "costo_producto, " +
                                                "precio_producto " +
                                                "FROM movimientos_inventario_detalle " +
                                                "WHERE id_movimiento_inventario_encabezado = {0}; ",
                                                id_movimiento_inventario_encabezado);

                OdbcDataReader reader = transaccion.ConsultarDatos(sComando);

                if (reader.HasRows)
                {
                    while (reader.Read())
                    {
                        MovimientoDetalle movimientoDetalleTmp = new MovimientoDetalle();
                        movimientoDetalleTmp.ID_MOVIMIENTO_INVENTARIO_DETALLE = reader.GetInt32(0);
                        movimientoDetalleTmp.PRODUCTO = producto.obtenerProducto(reader.GetInt32(1));
                        movimientoDetalleTmp.CANTIDAD = reader.GetInt32(2);
                        movimientoDetalleTmp.COSTO    = reader.GetDouble(3);
                        movimientoDetalleTmp.PRECIO   = reader.GetDouble(4);
                        movimientoDetalleList.Add(movimientoDetalleTmp);
                    }
                }
                return(movimientoDetalleList);
            }
            catch (OdbcException ex)
            {
                mensaje = new Mensaje("Error en la operacion con la Base de Datos: \n" + ex.Message);
                mensaje.Show();
                return(null);
            }

            return(null);
        }