public DataTable ObtenerInformacionFacturaConDetallesPorIdDocumento(Decimal ID_DOCUMENTO)
        {
            DataSet   _dataSet   = new DataSet();
            DataView  _dataView  = new DataView();
            DataTable _dataTable = new DataTable();
            String    sql        = null;
            Boolean   ejecutar   = true;

            sql = "usp_alm_documentos_obtener_info_factura_por_id_documento ";

            #region validaciones
            if (ID_DOCUMENTO != 0)
            {
                sql += ID_DOCUMENTO;
            }
            else
            {
                MensajeError += "El campo ID_DOCUMENTO no puede ser nulo\n";
                ejecutar      = false;
            }
            #endregion

            if (ejecutar)
            {
                Conexion conexion = new Conexion(Empresa);
                try
                {
                    _dataSet   = conexion.ExecuteReader(sql);
                    _dataView  = _dataSet.Tables[0].DefaultView;
                    _dataTable = _dataView.Table;
                }
                catch (Exception e)
                {
                    MensajeError = e.Message;
                }
                finally
                {
                    conexion.Desconectar();
                }
            }

            _dataTable.Columns.Add("NOMBRE_PROVEEDOR");

            ordenCompra _ordenCompra = new ordenCompra(Empresa, Usuario);
            proveedor   _proveedor   = new proveedor(Empresa, Usuario);
            Decimal     ID_ORDEN     = 0;
            Decimal     ID_PROVEEDOR = 0;
            String[]    ordenesCompraPorDocumento;
            DataTable   tablaInfoOrden;
            DataRow     filaInfoOrdenCompra;
            DataTable   tablaInfoProveedor;
            DataRow     filaInfoProveedor;

            foreach (DataRow fila in _dataTable.Rows)
            {
                try
                {
                    ordenesCompraPorDocumento = fila["ORIGEN"].ToString().Split(',');
                    ID_ORDEN                 = Convert.ToDecimal(ordenesCompraPorDocumento[0]);
                    tablaInfoOrden           = _ordenCompra.ObtenerOrdenCompraPorId(ID_ORDEN);
                    filaInfoOrdenCompra      = tablaInfoOrden.Rows[0];
                    ID_PROVEEDOR             = Convert.ToDecimal(filaInfoOrdenCompra["ID_PROVEEDOR"]);
                    tablaInfoProveedor       = _proveedor.ObtenerAlmRegProveedorPorRegistro(ID_PROVEEDOR);
                    filaInfoProveedor        = tablaInfoProveedor.Rows[0];
                    fila["NOMBRE_PROVEEDOR"] = filaInfoProveedor["RAZON_SOCIAL"];
                }
                catch (Exception ex)
                {
                    fila["NOMBRE_PROVEEDOR"] = ex.Message;
                }
            }

            return(_dataTable);
        }
        public DataTable ObtenerAlmRegDocumentoPorTipoDoc(String TIPO_DOC)
        {
            DataSet _dataSet = new DataSet();
            DataView _dataView = new DataView();
            DataTable _dataTable = new DataTable();
            String sql = null;
            Boolean ejecutar = true;

            sql = "usp_alm_documentos_obtener_por_tipo_doc ";

            #region validaciones
            if (String.IsNullOrEmpty(TIPO_DOC) == false)
            {
                sql += "'" + TIPO_DOC + "'";
            }
            else
            {
                MensajeError += "El campo TIPO_DOC no puede ser nulo\n";
                ejecutar = false;
            }
            #endregion

            if (ejecutar)
            {
                Conexion conexion = new Conexion(Empresa);
                try
                {
                    _dataSet = conexion.ExecuteReader(sql);
                    _dataView = _dataSet.Tables[0].DefaultView;
                    _dataTable = _dataView.Table;
                }
                catch (Exception e)
                {
                    MensajeError = e.Message;
                }
                finally
                {
                    conexion.Desconectar();
                }
            }

            _dataTable.Columns.Add("NOMBRE_PROVEEDOR");

            ordenCompra _ordenCompra = new ordenCompra(Empresa, Usuario);
            proveedor _proveedor = new proveedor(Empresa, Usuario);
            Decimal ID_ORDEN = 0;
            Decimal ID_PROVEEDOR = 0;
            String[] ordenesCompraPorDocumento;
            DataTable tablaInfoOrden;
            DataRow filaInfoOrdenCompra;
            DataTable tablaInfoProveedor;
            DataRow filaInfoProveedor;

            foreach (DataRow fila in _dataTable.Rows)
            {
                try
                {
                    ordenesCompraPorDocumento = fila["ORIGEN"].ToString().Split(',');
                    ID_ORDEN = Convert.ToDecimal(ordenesCompraPorDocumento[0]);
                    tablaInfoOrden = _ordenCompra.ObtenerOrdenCompraPorId(ID_ORDEN);
                    filaInfoOrdenCompra = tablaInfoOrden.Rows[0];
                    ID_PROVEEDOR = Convert.ToDecimal(filaInfoOrdenCompra["ID_PROVEEDOR"]);
                    tablaInfoProveedor = _proveedor.ObtenerAlmRegProveedorPorRegistro(ID_PROVEEDOR);
                    filaInfoProveedor = tablaInfoProveedor.Rows[0];
                    fila["NOMBRE_PROVEEDOR"] = filaInfoProveedor["RAZON_SOCIAL"];
                }
                catch (Exception ex)
                {
                    fila["NOMBRE_PROVEEDOR"] = ex.Message;
                }
            }

            return _dataTable;
        }