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); } } ?>