Parametrización de tipos de radicación por Martha Mera)
*/
?>
Sistema de Gestión Documental Orfeo/GPL - Secuencias de radicación
conn;
} else if( $_POST['modoConexionBD'] === '1' ){
include( $ruta_raiz.'/adodb/adodb.inc.php' );
// Nombre de la base de datos de Orfeo.
$bd = $_POST['bd'];
// Usuario de conexión con permisos de modificación y creación de objetos en la base de datos.
$usuario = $_POST['usuario'];
// Contraseña del usuario de conexión a la BD.
$contrasena= $_POST['contrasena'];
// Nombre o IP del servidor de BD.
$servidor = $_POST['servidor'];
// Puerto de conexión a la BD.
$puerto = $_POST['puerto'];
// Conexión a la BD utilizando la información ingresada en el formulario.
$db = NewADOConnection( $_POST['driver'] );
if( $db->Connect( $servidor.':'.$puerto, $usuario, $contrasena, $bd ) == false ){
die( 'Error de conexión a la BD.' );
}
}
//$db->debug = true;
// Verifica que se haya establecido la conexión a la BD.
if( $db ){
// Arreglo con los nombre de las columnas que conforman la tabla DEPENDENCIA.
$arrColumnas = $db->MetaColumnNames( 'dependencia' );
}
$arrSQLColumnas = array();
// Verifica el arreglo con los nombre de las columnas que conforman la tabla DEPENDENCIA.
if( is_array( $arrColumnas ) ){
foreach( $arrColumnas as $arrColumnasClave => $arrColumnasValor ){
if( strlen( $arrColumnasClave ) > strlen( 'DEPE_RAD_TP') &&
( substr_compare( $arrColumnasClave, 'DEPE_RAD_TP', 0, strlen( 'DEPE_RAD_TP') ) === 0 ||
substr_compare( $arrColumnasValor, 'depe_rad_tp', 0, strlen( 'depe_rad_tp') ) === 0 ) ){
/**
*Arreglo que contiene los nombres de las columnas de la tabla DEPENDENCIA que coinciden con
* la cadena DEPE_RAD_TP o depe_rad_tp, asociadas a un tipo de radicado específico, p.e. depe_rad_tp1,
* depe_rad_tp2, depe_rad_tp3 o DEPE_RAD_TP1, DEPE_RAD_TP2, DEPE_RAD_TP3.
* El índice del arreglo corresponde al código asociado al tipo de radicado, p.e. 1, 2, 3.
*/
$arrSQLColumnas[ substr( $arrColumnasClave, strlen( 'DEPE_RAD_TP'), 1 ) ] = $arrColumnasValor;
/**
* Arreglo que contiene los códigos asociados a un tipo de radicado, p.e. 1,2,3.
* El índice del arreglo corresponde al nombre de la columna de la tabla DEPENDENCIA
* que coincide con la cadena DEPE_RAD_TP, asociadas a un tipo de radicado específico, p.e. DEPE_RAD_TP1,
* DEPE_RAD_TP2, DEPE_RAD_TP3.
*/
$arrTpRad[ $arrColumnasClave ] = substr( $arrColumnasClave, strlen( 'DEPE_RAD_TP'), 1 );
}
}
}
// Verifica que se haya establecido la conexión a la BD.
if( $db ){
/**
* Sentencia SQL para consultar los valores almacenados en las columnas de la tabla DEPENDENCIA asociadas a un
* tipo de radicado específico (depe_rad_tp1, depe_rad_tp2, depe_rad_tp3). Los valores corresponden al código de
* la dependencia de la cual toma la secuencia para generar el consecutivo de un tipo de radicado. p.e. depe_rad_tp1 = 100,
* depe_rad_tp2 = 100, depe_rad_tp3 = 900.
*/
$sqlCodDepeSecuencia = 'SELECT '.implode( ',', $arrSQLColumnas ) .
' FROM dependencia';
$rsCodDepeSecuencia = $db->Execute( $sqlCodDepeSecuencia );
$arrCodDepeSecuenciaTpRad = array();
$arrSQLEliminarSecuencia = array();
$arrSQLCrearSecuencia = array();
while( !$rsCodDepeSecuencia->EOF ){
/**
* Arreglo que contiene los valores almacenados en las columnas de la tabla DEPENDENCIA asociadas a un
* tipo de radicado específico (depe_rad_tp1, depe_rad_tp2, depe_rad_tp3). El índice del arreglo corresponde
* al nombre de la columna de la tabla DEPENDENCIA asociada a un tipo de radicado específico, p.e. DEPE_RAD_TP1,
* DEPE_RAD_TP2, DEPE_RAD_TP3.
*/
$arrCodDepeSecuenciaTpRad = $rsCodDepeSecuencia->GetRowAssoc();
foreach( $arrCodDepeSecuenciaTpRad as $claveArrCodDepeSecuenciaTpRad => $valorArrCodDepeSecuenciaTpRad ){
if( $valorArrCodDepeSecuenciaTpRad != '' &&
$valorArrCodDepeSecuenciaTpRad != NULL ){
// Nombre de la secuencia a crear o eliminar.
$nombreSecuencia = 'secr_tp'.$arrTpRad[ $claveArrCodDepeSecuenciaTpRad ].'_'.$valorArrCodDepeSecuenciaTpRad;
if( isset( $_POST['sqlReiniciarSecuencias'] ) || isset( $_POST['reiniciarSecuencias'] ) || isset( $_POST['reiniciarSecuenciasADOdb'] ) ){
/**
* Arreglo que contiene las sentencias SQL para eliminar secuencias.
* El índice del arreglo es el nombre de la secuencia, p.e. secr_tp1_900, secr_tp2_900, secr_tp3_900
*/
/*
$arrSQLEliminarSecuencia[ 'secr_tp'.$arrTpRad[ $claveArrCodDepeSecuenciaTpRad ].'_'.$valorArrCodDepeSecuenciaTpRad ] =
'DROP SEQUENCE secr_tp'.$arrTpRad[ $claveArrCodDepeSecuenciaTpRad ].'_'.$valorArrCodDepeSecuenciaTpRad.';';
*/
$arrSQLEliminarSecuencia[ $nombreSecuencia ] = 'DROP SEQUENCE '.$nombreSecuencia.';';
//print $sqlEliminarSecuencia.'
';
}
/**
* Arreglo que contiene las sentencias SQL para crear secuencias.
* El índice del arreglo es el nombre de la secuencia, p.e. secr_tp1_900, secr_tp2_900, secr_tp3_900
*/
/*
$arrSQLCrearSecuencia[ 'secr_tp'.$arrTpRad[ $claveArrCodDepeSecuenciaTpRad ].'_'.$valorArrCodDepeSecuenciaTpRad ] =
'CREATE SEQUENCE secr_tp'.$arrTpRad[ $claveArrCodDepeSecuenciaTpRad ].'_'.$valorArrCodDepeSecuenciaTpRad.'
INCREMENT 1
MINVALUE 1
MAXVALUE 9223372036854775807
START 1
CACHE 1;
ALTER TABLE secr_tp'.$arrTpRad[ $claveArrCodDepeSecuenciaTpRad ].'_'.$valorArrCodDepeSecuenciaTpRad.' OWNER TO '.$usuario.';';
*/
$arrSQLCrearSecuencia[ $nombreSecuencia ] =
'CREATE SEQUENCE '.$nombreSecuencia.'
INCREMENT 1
MINVALUE 1
MAXVALUE 9223372036854775807
START 1
CACHE 1;
ALTER TABLE '.$nombreSecuencia.' OWNER TO '.$usuario.';';
//print $sqlCrearSecuencia.'
';
}
}
$rsCodDepeSecuencia->MoveNext();
}
if( is_array( $arrSQLEliminarSecuencia ) && !isset( $_POST['reiniciarSecuenciasADOdb'] ) && !isset( $_POST['crearSecuenciasADOdb'] ) ){
foreach( $arrSQLEliminarSecuencia as $claveSQLEliminarSecuencia => $valorSQLEliminarSecuencia ){
print $valorSQLEliminarSecuencia.'
';
if( isset( $_POST['reiniciarSecuencias'] ) ){
// Ejecuta las sentencias SQL para eliminar secuencias.
if( $db->Execute( $valorSQLEliminarSecuencia ) === false ){
die( 'Error al eliminar la secuencia '.$claveSQLEliminarSecuencia.' '.$db->ErrorMsg() );
} else{
print 'Secuencia '.$claveSQLEliminarSecuencia.' eliminada.
';
}
}
}
}
if( is_array( $arrSQLCrearSecuencia ) && !isset( $_POST['reiniciarSecuenciasADOdb'] ) && !isset( $_POST['crearSecuenciasADOdb'] ) ){
foreach( $arrSQLCrearSecuencia as $claveSQLCrearSecuencia => $valorSQLCrearSecuencia ){
print $valorSQLCrearSecuencia.'
';
// Ejecuta las sentencias SQL para crear secuencias.
if( isset( $_POST['crearSecuencias'] ) || isset( $_POST['reiniciarSecuencias'] ) ){
if( $db->Execute( $valorSQLCrearSecuencia ) === false ){
die( 'Error al crear la secuencia '.$claveSQLCrearSecuencia.' '.$db->ErrorMsg() );
} else{
print 'Secuencia '.$claveSQLCrearSecuencia.' creada.
';
}
}
}
}
// Eliminar secuencia utilizando ADOdb.
if( isset( $_POST['reiniciarSecuenciasADOdb'] ) ){
foreach( $arrSQLEliminarSecuencia as $claveSQLEliminarSecuencia => $valorSQLEliminarSecuencia ){
$db->DropSequence( $claveSQLEliminarSecuencia );
if( $db->ErrorMsg() == '' ){
print 'Secuencia '.$claveSQLEliminarSecuencia.' eliminada.
';
}else{
print $db->ErrorMsg().'
';
}
}
}
// Crear secuencia utilizando ADOdb.
if( isset( $_POST['reiniciarSecuenciasADOdb'] ) || isset( $_POST['crearSecuenciasADOdb'] ) ){
foreach( $arrSQLCrearSecuencia as $claveSQLCrearSecuencia => $valorSQLCrearSecuencia ){
// Valor de inicio de la secuencia.
$inciarEn = 1;
$db->CreateSequence( $claveSQLCrearSecuencia, $inciarEn );
if( $db->ErrorMsg() == '' ){
print 'Secuencia '.$claveSQLCrearSecuencia.' creada.
';
}else{
print $db->ErrorMsg().'
';
}
}
}
}
?>