AppConfig =& $AppConfig;
$this->ManejaBD =& $ManejadorBaseDatos;
}
/** METODOS DE LA CLASE */
/**
* Empieza una transaccion
* @return array Retorna un arreglo multidimensional de la forma arreglo[codigo][descrip]
*/
/*function Begin_Transaction()
{
$SQL_BEGIN = 'BEGIN;';
return $this->obtenerDatos($SQL_BEGIN);
}*/
/**
* Termina un bloque de transaccion
* @return array Retorna un arreglo multidimensional de la forma arreglo[codigo][descrip]
*/
/*function End_Transaction()
{
$SQL_END = 'COMMIT;';
return $this->obtenerDatos($SQL_END);
}*/
/**
* Vuelve atras las operaciones de un bloque de transaccion
* @return array Retorna un arreglo multidimensional de la forma arreglo[codigo][descrip]
*/
/*function Rollback_Transaction()
{
$SQL_END = 'ROLLBACK;';
return $this->obtenerDatos($SQL_END);
}*/
/**
* Obtiene de la base de datos los domicilios disponibles para un socio
* @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
*/
function TiposDomiciliosDisponibles()
{
$SQL_TIPOSDOMICILIOS = 'SELECT td_cod, td_desc FROM acde.tipdom WHERE td_cod != \'C\' ORDER BY td_cod ASC';
return $this->obtenerDatos($SQL_TIPOSDOMICILIOS);
}
/**
* Obtiene de la base de datos los domicilios disponibles para un socio
* @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
*/
function DomiciliosDisponibles($codsoc)
{
$SQL_DOMICILIOS = 'SELECT dom_tipdom, dom_dom FROM acde.domsoc WHERE dom_soc =\'' . $codsoc . '\' AND dom_tipdom != \'C\' ORDER BY dom_soc, dom_tipdom ASC';
return $this->obtenerDatos($SQL_DOMICILIOS);
}
/**
* Obtiene de la base el ultimo codigo de socio de la tabla de socios (el maximo)
* @return array Retorna un arreglo bidimensional de la forma arreglo[codigo]
*/
function Ultimo_Socio()
{
$SQL_ULTIMOSOCIO = 'SELECT max(soc_cod) FROM acde.socio;;';
return $this->obtenerDatos($SQL_ULTIMOSOCIO);
}
/**
* Obtiene de la base el importe de la tabla cuotas
* @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
*/
function ImporteDeCuota($p_CodCatSoc, $p_Anio)
{
$SQL_IMPORTEDECUOTA = 'SELECT cuo_imp FROM acde.cuotas WHERE cuo_cat=\''. $p_CodCatSoc . '\' and cuo_fecvig=\''.$p_Anio.'\';';
return $this->obtenerDatos($SQL_IMPORTEDECUOTA);
}
/**
* Obtiene de la base de datos la lista de familiares disponibles para ser generados
* @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
*/
function FamiliaresDisponibles()
{
$SQL_FAMILIAR = 'SELECT rf_cod, rf_desc FROM acde.relfam ORDER BY rf_desc asc';
return $this->obtenerDatos($SQL_FAMILIAR);
}
/**
* Obtiene de la base de datos la lista de paises disponibles para ser generados
* @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
*/
function PaisesDisponibles()
{
$SQL_PAISES = 'SELECT pais_cod, pais_desc FROM acde.pais ORDER BY pais_desc asc';
return $this->obtenerDatos($SQL_PAISES);
}
/**
* Obtiene de la base de datos la lista de provincias disponibles para ser generados
* @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
*/
function ProvinciasDisponibles($pais)
{
$SQL_PROVINCIAS = 'SELECT prov_cod, prov_desc FROM acde.provincia WHERE prov_pais =\'' . $pais . '\' ORDER BY prov_desc asc';
return $this->obtenerDatos($SQL_PROVINCIAS);
}
/**
* Obtiene de la base de datos la lista de tratos disponibles para ser generados
* @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
*/
function TratamientosDisponibles()
{
$SQL_TRATAMIENTOS = 'SELECT tra_cod, tra_descr, tra_desc FROM acde.trato ORDER BY tra_cod asc';
return $this->obtenerDatos($SQL_TRATAMIENTOS);
}
/**
* Obtiene de la base de datos la lista de tipos de documentos disponibles para ser generados
* @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
*/
function TiposDeDocumentosDisponibles()
{
$SQL_TIPDOC = 'SELECT td_cod, td_descr FROM acde.tipdoc ORDER BY td_cod asc';
return $this->obtenerDatos($SQL_TIPDOC);
}
/**
* Obtiene de la base de datos la lista de tipos de estados civiles disponibles para ser generados
* @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
*/
function EstadosCivilesDisponibles()
{
$SQL_ESTCIV = 'SELECT ec_cod, ec_desc FROM acde.estciv ORDER BY ec_cod asc';
return $this->obtenerDatos($SQL_ESTCIV);
}
/**
* Obtiene de la base de datos la lista de sexos disponibles para ser generados
* @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
*/
function SexosDisponibles()
{
$SQL_SEXO = 'SELECT sex_cod, sex_desc FROM acde.sexo ORDER BY sex_cod asc';
return $this->obtenerDatos($SQL_SEXO);
}
/**
* Obtiene de la base de datos la lista de estados societarios disponibles para ser generados
* @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
*/
function EstadosSocietariosDisponibles()
{
$SQL_ESTSOC = 'SELECT es_cod, es_desc, es_factu FROM acde.estsoc ORDER BY es_cod asc';
return $this->obtenerDatos($SQL_ESTSOC);
}
/**
* Obtiene de la base de datos la lista de grupos disponibles para ser generados
* @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
*/
function GruposDisponibles()
{
$SQL_GRUPOS = 'SELECT gru_cod, gru_desc FROM acde.grupo ORDER BY gru_cod asc';
return $this->obtenerDatos($SQL_GRUPOS);
}
/**
* Obtiene de la base de datos la lista profesiones disponibles para ser generados
* @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
*/
function ProfesionesDisponibles()
{
$SQL_PROFESION = 'SELECT pro_cod, pro_desc FROM acde.profesion ORDER BY pro_cod asc';
return $this->obtenerDatos($SQL_PROFESION);
}
/**
* Obtiene de la base de datos la lista socios disponibles para ser generados
* @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
*/
function SociosDisponibles()
{
$SQL_SOCIOS = 'SELECT soc_cod, soc_apel, soc_nom FROM acde.socio ORDER BY soc_cod asc';
return $this->obtenerDatos($SQL_SOCIOS);
}
/**
* Obtiene de la base de datos la lista de tipos de comprobantes disponibles para ser generados
* @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
*/
function TipComDisponibles()
{
$SQL_TIPCOM = 'SELECT atc_tcom, atc_dtcom FROM admin.atipcom ORDER BY atc_tcom asc';
return $this->obtenerDatos($SQL_TIPCOM);
}
/**
* Obtiene de la base de datos la lista de despachos disponibles para ser generados
* @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
*/
function DespachosDisponibles()
{
$SQL_DESPACHOS = 'SELECT des_cod, des_desc FROM acde.despacho ORDER BY des_cod asc';
return $this->obtenerDatos($SQL_DESPACHOS);
}
/**
* Obtiene de la base de datos la lista categorias disponibles para ser generados
* @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
*/
function CatSocDisponibles()
{
$SQL_CATSOC = 'SELECT cs_cod, cs_dcat FROM acde.catsoc ORDER BY cs_cod asc';
return $this->obtenerDatos($SQL_CATSOC);
}
/**
* Obtiene de la base de datos de las versiones de facturacion
* @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
*/
function VersionesDisponibles()
{
$SQL_VERFAC = 'SELECT * FROM acde.verfac WHERE ver_mabi=true ORDER BY ver_cod asc';
return $this->obtenerDatos($SQL_VERFAC);
}
/**
* Obtiene de la base de datos la lista de tipos de categorias disponibles para ser generados
* @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
*/
function TipCatSocDisponibles()
{
$SQL_TIPCATSOC = 'SELECT tcs_cod, tcs_desc FROM acde.ticaso ORDER BY tcs_cod asc';
return $this->obtenerDatos($SQL_TIPCATSOC);
}
/**
* Obtiene de la base de datos la lista de tipos de tarjetas disponibles para ser generados
* @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
*/
function TiposDeTarjetasDisponibles()
{
$SQL_TARJETAS = 'SELECT tt_cod, tt_desc FROM acde.tiptar ORDER BY tt_cod asc';
return $this->obtenerDatos($SQL_TARJETAS);
}
/**
* Obtiene de la base de datos la lista de tipos de tarjetas disponibles para ser generados
* @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
*/
function TarjetasDisponibles()
{
$SQL_TARJETAS = 'SELECT tar_cod, tar_desc, tar_tipo FROM acde.tarjeta ORDER BY tar_cod asc';
return $this->obtenerDatos($SQL_TARJETAS);
}
/**
* Obtiene de la base de datos la lista de tipos de tarjetas disponibles para ser generados
* @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
*/
function CantidadVersionesActivadas()
{
$SQL_CANTACTI = 'SELECT count(*) FROM acde.verfac WHERE ver_mabi=true';
return $this->obtenerDatos($SQL_CANTACTI);
}
/**
* Obtiene de la base de datos la lista de tipos de tarjetas disponibles para ser generados
* @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
*/
function BuscaVersionActiva()
{
$SQL_VERACTIVA = 'SELECT * FROM acde.verfac WHERE ver_mabi=true';
return $this->obtenerDatos($SQL_VERACTIVA);
}
/**
* Obtiene de la base de datos la lista operaciones
* @param string Tipo de comprobante
* @return array Retorna un arreglo multidimensional:
*/
function OperacionesDisponibles($TipCom)
{
//El parametro no puede ser vacio
if(!empty($TipCom))
{
//'Sanea' la entrada para evitar ataques SQL-Injection
$TipComSano = $this->sanearTextoSQL($TipCom);
$SQL_OPE = "SELECT op_ope, op_dope FROM admin.operac WHERE op_tcom = " . $TipComSano . "ORDER BY op_ope asc";
}
else
{
//Si es vacio, genera el warning y devuelvo vacio
if($this->AppConfig->DEBUG["nivel"] >1)
{
$war_msg = "Error en parametros: TipCom";
trigger_error($war_msg, E_USER_WARNING);
}
}
return $this->obtenerDatos($SQL_OPE);
}
/**
* Obtiene de la base de datos la lista conceptos relacionados con las operaciones
* @param string Tipo de comprobante
* @param string Operacion
* @return array Retorna un arreglo multidimensional:
*/
function OperConDisponibles($TipCom, $Ope)
{
//El parametro no puede ser vacio
if( !empty($TipCom) && !empty($Ope) )
{
//'Sanea' la entrada para evitar ataques SQL-Injection
$TipComSano = $this->sanearTextoSQL($TipCom);
//$OpeSano = $this->sanearTextoSQL($Ope);
$SQL_OPERCON = "SELECT oc_conc, oc_dopco FROM admin.opercon WHERE oc_tcom = " . $TipComSano ." and oc_ope =". $Ope . " ORDER BY oc_conc asc";
}
else
{
//Si es vacio, genera el warning y devuelvo vacio
if($this->AppConfig->DEBUG["nivel"] >1)
{
$war_msg = "Error en parametros: TipCom";
trigger_error($war_msg, E_USER_WARNING);
}
}
return $this->obtenerDatos($SQL_OPERCON);
}
/**
* Obtiene de la base de datos el importe correspondiente
* @param string Tipo de comprobante
* @param string Operacion
* @param string Evento
* @return array Retorna un arreglo multidimensional:
*/
function ImporteGasto($TipCom, $Ope, $Eve)
{
//El parametro no puede ser vacio
if( !empty($TipCom) && !empty($Ope) && !empty($Eve) )
{
//'Sanea' la entrada para evitar ataques SQL-Injection
$TipComSano = $this->sanearTextoSQL($TipCom);
$EveSano = $this->sanearTextoSQL($Eve);
$SQL_IMPO = "SELECT ri_imp FROM acde.relimp WHERE ri_tcom = " . $TipComSano . " AND ri_ope =". $Ope . " AND ri_conc =". $EveSano . " ORDER BY ri_imp asc";
}
else
{
//Si es vacio, genera el warning y devuelvo vacio
if($this->AppConfig->DEBUG["nivel"] >1)
{
$war_msg = "Error en parametros: TipCom";
trigger_error($war_msg, E_USER_WARNING);
}
}
return $this->obtenerDatos($SQL_IMPO);
}
/**
* FUNCIONES LEO: Obtienen campos para ser cargados en formularios completos y asi
* poder modificarlos. Se pasan siempre campos clave para recuperarlos.
*/
/**
* Obtiene de la base de datos la categoria de socio
* @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
*/
function Leo_DOMSOC($codsoc, $tipdom)
{
$SQL_DOMSOC = 'SELECT * FROM acde.domsoc WHERE dom_soc = ' . $codsoc . ' AND dom_tipdom = \'' . $tipdom . '\';';
return $this->obtenerDatos($SQL_DOMSOC);
}
/**
* Obtiene de la base de datos la categoria de socio
* @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
*/
function Leo_CATSOC($p_categ)
{
$SQL_CATSOC = 'SELECT cs_cod, cs_dcat, cs_tipo, cs_edadd, cs_edadh FROM acde.catsoc WHERE cs_cod = \'' . $p_categ . '\';';
return $this->obtenerDatos($SQL_CATSOC);
}
/**
* Obtiene de la base de datos el estado del socio
* @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
*/
function Leo_ESTSOC($p_estsoc)
{
$SQL_ESTSOC = 'SELECT * FROM acde.estsoc WHERE es_cod = \'' . $p_estsoc . '\';';
return $this->obtenerDatos($SQL_ESTSOC);
}
/**
* Obtiene de la base de datos el tipo de categoria del socio
* @return array Retorna un arreglo multidimensional de la forma arreglo[codigo][descrip]
*/
function Leo_TICASO($p_TipCat)
{
$SQL_TICASO = 'SELECT tcs_cod, tcs_desc, tcs_perrec FROM acde.ticaso WHERE tcs_cod = \'' . $p_TipCat . '\';';
return $this->obtenerDatos($SQL_TICASO);
}
/**
* Obtiene de la base de datos el socio
* @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][campo1][campo2]
*/
function Leo_SOCIO($p_Socio)
{
$SQL_SOCIO = "SELECT * FROM acde.socio WHERE soc_cod=".$p_Socio. ";";
return $this->obtenerDatos($SQL_SOCIO);
}
/**
* Obtiene de la base de datos la version de facturacion
* @return array Retorna un arreglo multidimensional de la forma arreglo[codigo][descrip]
*/
function Leo_VERFAC($p_Ver)
{
$SQL_VERFAC = 'SELECT * FROM acde.verfac WHERE ver_cod=' . $p_Ver . ';';
return $this->obtenerDatos($SQL_VERFAC);
}
/**
* Obtiene de la base de datos la gral de acde
* @return array Retorna un arreglo multidimensional de la forma arreglo[codigo][descrip]
*/
function Leo_GRALACDE($p_Ver)
{
$v_SQL = 'SELECT * FROM acde.gralacde WHERE gr_ver='.$p_Ver.';';
return $this->obtenerDatos($v_SQL);
}
/**
* Obtiene de la base los datos de la tabla relimp
* @return array Retorna un arreglo multidimensional de la forma arreglo[codigo][descrip]
*/
function Leo_RELIMP($p_TipCom, $p_Ope, $p_Conc)
{
$SQL_RELIMP = 'SELECT * FROM acde.relimp WHERE ri_tcom= \'' . $p_TipCom . '\' AND ri_ope=' . $p_Ope . ' AND ri_conc= \''. $p_Conc. '\' ;';
return $this->obtenerDatos($SQL_RELIMP);
}
/**
* Obtiene de la base los datos de la tabla TIPTAR
* @param string $p_TipTar
* @return una matriz del tipo Matriz[v_Item][campo0][campo1] ...[campon]
*/
function Leo_TIPTAR($p_TipTar)
{
$SQL_TIPTAR = 'SELECT * FROM acde.tiptar WHERE tt_cod = \'' . $p_TipTar . '\';';
return $this->obtenerDatos($SQL_TIPTAR);
}
/**
* Obtiene de la base los datos de la tabla
* @param num $p_Tar Código de tarjeta
* @return una matriz del tipo Matriz[v_Item][campo0][campo1] ...[campon]
*/
function Leo_TARJETA($p_Tar, $v_sql)
{
$SQL_TARJETA = 'SELECT * FROM acde.tarjeta WHERE tar_cod = ' . $p_Tar . ';';
$v_sql = $SQL_TARJETA;
return $this->obtenerDatos($SQL_TARJETA);
}
//-------------------------------------INTERFAZ PRIVADA-------------------------------------/
/**
* Accede a la BD y obtiene los resultados de la consulta identificando si existen errores
* de conexion o consulta
* @param string consulta sentencia SQL a enviar a la base de datos
* @return array Retorna un arreglo bidimensional de la forma arreglo[empresa][descrip]
*/
function obtenerDatos(&$consulta)
{
//Retorno de la funcion
$ret_datos = "";
//Para manejar errores
$NIVEL_DEBUG = $this->AppConfig->DEBUG["nivel"];
$this->ManejaBD->procesoCorrecto = true;
$procesoCorrecto = $this->ManejaBD->conectarBD();
if($procesoCorrecto)
{
$procesoCorrecto = $this->ManejaBD->consultarBD($consulta);
if($procesoCorrecto)
{
if($NIVEL_DEBUG>2)
{
trigger_error("Consulta realizada: $consulta", E_USER_NOTICE);
}
//Obtiene un arreglo asociativo de toda la tabla resultado
$ret_datos = $this->ManejaBD->obtenerTotalFilasArray();
$this->ManejaBD->procesoCorrecto = true;
}
else
{
if($NIVEL_DEBUG>2)
{
trigger_error($this->DB_QUERY_NULL."(NULO): $consulta - Result_error: " . pg_result_error($this->ManejaBD->consulta) .
"Last error: " . pg_last_error($this->ManejaBD->enlace) , E_USER_NOTICE);
}
$this->ManejaBD->procesoCorrecto = false;
}
$this->ManejaBD->liberarConsulta();
$this->ManejaBD->desconectarBD();
}
else
{
trigger_error("Error: Matando proceso". $this->DB_CONNECT_ERROR, E_USER_NOTICE);
$this->ManejaBD->procesoCorrecto = false;
//die("Error: ". $this->DB_CONNECT_ERROR);//Podria retornarse un valor especifico que indique error
}
return $ret_datos;
}
/**
*Filtra las cadenas recibidas, que formaran parte e una consulta SQL, para evitar SQL-Injection
*@param string Texto Texto a filtrar
*@return string Texto filtrado con los caracteres criticos escapados/eliminados
*/
function sanearTextoSQL($texto)
{
$ret_sts = "";
if(!empty($texto))
{
//Si esta activado MagicQuotes se eliminan todas las contrabarras que escapan comillas (ej: '\"' )
if (get_magic_quotes_gpc())
{
$texto = stripslashes($texto);
}
//Si el valor NO es numerico, se le agregan comillas simples y se escapan los caracteres criticos
if (!is_numeric($texto))
{
$ret_sts = "'"; //comilla incial
//Chequea si existe la funcion mysql_real_escape_string (PHP >= 4.3) para filtrar el texto
if (function_exists("mysql_real_escape_string"))
{
$ret_sts .= mysql_real_escape_string($texto);
}
else
{
//Si no existe se agregan contrabarras para escapar posibles comillas
$ret_sts .= addslashes($texto); //IMPLEMENTAR UNA FUNCION ALTERNATIVA A LA INEXISTENTE
}
$ret_sts .= "'"; //comilla final
}
}
return $ret_sts;
}
/**
* Obtiene de la base los datos el importe de la cuota del socio
* @param string $p_Cat Categoria del socio
* @return array Retorna una matriz de la forma matriz[item_registro][campo1][campo2]...[campon]
*/
function Busca_Importe_Cuota($p_Cat, $p_FecVig)
{
if( $p_FecVig == '' )
$SQL_CUOTAS = "SELECT * FROM acde.cuotas WHERE cuo_cat='" . $p_Cat . "' ORDER BY DESC";
else
$SQL_CUOTAS = "SELECT * FROM acde.cuotas WHERE cuo_cat='" . $p_Cat . "' AND cuo_fecvig<= '" . $p_FecVig. "' ORDER BY cuo_fecvig DESC LIMIT 1";
return $this->obtenerDatos($SQL_CUOTAS);
}
function Busca_Importe_CuotasCat($p_FecVig)
{
$SQL_CUOTAS = "SELECT * FROM acde.cuotas WHERE cuo_fecvig<= '" . $p_FecVig. "' ORDER BY cuo_fecvig DESC";
return $this->obtenerDatos($SQL_CUOTAS);
}
/**
* Obtiene de la base los datos el importe de la cuota del socio
* @param string $p_Cat Categoria del socio
* @return array Retorna una matriz de la forma matriz[item_registro][campo1][campo2]...[campon]
*/
function Busca_Categoria_Socio($p_Edad)
{
$SQL_CATSOC = "SELECT * FROM acde.catsoc WHERE cs_edadd<=" . $p_Edad . " AND cs_edadh>=" . $p_Edad;
return $this->obtenerDatos($SQL_CATSOC);
}
/**
* Actualiza de la tabla TARJETAS los campos de generación de archivos.
* @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
*/
function HabilitaEnvioDeArchivo($p_Tarjeta)
{
$v_SQL = 'UPDATE acde.tarjeta SET tar_ulfeen=null WHERE tar_cod='.$p_Tarjeta;
return $this->obtenerDatos($v_SQL);
}
}
?>