You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

655 lines
21 KiB

4 years ago
  1. <?php
  2. /*-----------------------------------*
  3. * Proyecto : SAI *
  4. * Autor : Federico A. Ocampo *
  5. * Desc: Interfaz web de Seleccion *
  6. * para Armado de Informes *
  7. *-----------------------------------*/
  8. //--------------------------------------
  9. require_once 'MysqlClass.php';
  10. require_once "AppConfig.php";
  11. //--------------------------------------
  12. /*****************************************************************************
  13. .::. Clase ObtieneDatos .::.
  14. @Autor: Federico A. Ocampo
  15. @Email: rguevara@mcanet.com.ar
  16. @Empresa: MCAnet
  17. @Descripcion: Esta clase provee los metodos para obtener, de la base de datos
  18. correspondiente, las diferentes tablas. Realiza las consultas
  19. necesarias y retorna, por cada consulta, un arreglo con toda la
  20. tabla resultado.
  21. *****************************************************************************/
  22. class ObtieneDatos_MY
  23. {
  24. var $AppConfig; //Configuracion de la aplicacion
  25. var $ManejaBD; //Clase que administra la conexion con la base de datos
  26. var $DB_CONNECT_ERROR = "FALLO AL CONECTAR CON LA BASE DE DATOS";
  27. var $DB_QUERY_NULL = "La consulta no obtuvo resultados";
  28. /**
  29. * Constructor: inicializa las propiedades de la clase
  30. * Recibe todos los parametros por referencia
  31. * @param AppConfig Objeto con la configuracion de la aplicacion
  32. * @param ManejadorBD clase para gestionar la conexion con la base de datos
  33. */
  34. function ObtieneDatos_MY(&$AppConfig, &$ManejadorBaseDatos)
  35. {
  36. $this->AppConfig =& $AppConfig;
  37. $this->ManejaBD =& $ManejadorBaseDatos;
  38. }
  39. /** METODOS DE LA CLASE */
  40. /**
  41. * Empieza una transaccion
  42. * @return array Retorna un arreglo multidimensional de la forma arreglo[codigo][descrip]
  43. */
  44. /*function Begin_Transaction()
  45. {
  46. $SQL_BEGIN = 'BEGIN;';
  47. return $this->obtenerDatos($SQL_BEGIN);
  48. }*/
  49. /**
  50. * Termina un bloque de transaccion
  51. * @return array Retorna un arreglo multidimensional de la forma arreglo[codigo][descrip]
  52. */
  53. /*function End_Transaction()
  54. {
  55. $SQL_END = 'COMMIT;';
  56. return $this->obtenerDatos($SQL_END);
  57. }*/
  58. /**
  59. * Vuelve atras las operaciones de un bloque de transaccion
  60. * @return array Retorna un arreglo multidimensional de la forma arreglo[codigo][descrip]
  61. */
  62. /*function Rollback_Transaction()
  63. {
  64. $SQL_END = 'ROLLBACK;';
  65. return $this->obtenerDatos($SQL_END);
  66. }*/
  67. /**
  68. * Obtiene de la base de datos los domicilios disponibles para un socio
  69. * @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
  70. */
  71. function TiposDomiciliosDisponibles()
  72. {
  73. $SQL_TIPOSDOMICILIOS = 'SELECT td_cod, td_desc FROM acde.tipdom WHERE td_cod != \'C\' ORDER BY td_cod ASC';
  74. return $this->obtenerDatos($SQL_TIPOSDOMICILIOS);
  75. }
  76. /**
  77. * Obtiene de la base de datos los domicilios disponibles para un socio
  78. * @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
  79. */
  80. function DomiciliosDisponibles($codsoc)
  81. {
  82. $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';
  83. return $this->obtenerDatos($SQL_DOMICILIOS);
  84. }
  85. /**
  86. * Obtiene de la base el ultimo codigo de socio de la tabla de socios (el maximo)
  87. * @return array Retorna un arreglo bidimensional de la forma arreglo[codigo]
  88. */
  89. function Ultimo_Socio()
  90. {
  91. $SQL_ULTIMOSOCIO = 'SELECT max(soc_cod) FROM acde.socio;;';
  92. return $this->obtenerDatos($SQL_ULTIMOSOCIO);
  93. }
  94. /**
  95. * Obtiene de la base el importe de la tabla cuotas
  96. * @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
  97. */
  98. function ImporteDeCuota($p_CodCatSoc, $p_Anio)
  99. {
  100. $SQL_IMPORTEDECUOTA = 'SELECT cuo_imp FROM acde.cuotas WHERE cuo_cat=\''. $p_CodCatSoc . '\' and cuo_fecvig=\''.$p_Anio.'\';';
  101. return $this->obtenerDatos($SQL_IMPORTEDECUOTA);
  102. }
  103. /**
  104. * Obtiene de la base de datos la lista de familiares disponibles para ser generados
  105. * @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
  106. */
  107. function FamiliaresDisponibles()
  108. {
  109. $SQL_FAMILIAR = 'SELECT rf_cod, rf_desc FROM acde.relfam ORDER BY rf_desc asc';
  110. return $this->obtenerDatos($SQL_FAMILIAR);
  111. }
  112. /**
  113. * Obtiene de la base de datos la lista de paises disponibles para ser generados
  114. * @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
  115. */
  116. function PaisesDisponibles()
  117. {
  118. $SQL_PAISES = 'SELECT pais_cod, pais_desc FROM acde.pais ORDER BY pais_desc asc';
  119. return $this->obtenerDatos($SQL_PAISES);
  120. }
  121. /**
  122. * Obtiene de la base de datos la lista de provincias disponibles para ser generados
  123. * @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
  124. */
  125. function ProvinciasDisponibles($pais)
  126. {
  127. $SQL_PROVINCIAS = 'SELECT prov_cod, prov_desc FROM acde.provincia WHERE prov_pais =\'' . $pais . '\' ORDER BY prov_desc asc';
  128. return $this->obtenerDatos($SQL_PROVINCIAS);
  129. }
  130. /**
  131. * Obtiene de la base de datos la lista de tratos disponibles para ser generados
  132. * @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
  133. */
  134. function TratamientosDisponibles()
  135. {
  136. $SQL_TRATAMIENTOS = 'SELECT tra_cod, tra_descr, tra_desc FROM acde.trato ORDER BY tra_cod asc';
  137. return $this->obtenerDatos($SQL_TRATAMIENTOS);
  138. }
  139. /**
  140. * Obtiene de la base de datos la lista de tipos de documentos disponibles para ser generados
  141. * @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
  142. */
  143. function TiposDeDocumentosDisponibles()
  144. {
  145. $SQL_TIPDOC = 'SELECT td_cod, td_descr FROM acde.tipdoc ORDER BY td_cod asc';
  146. return $this->obtenerDatos($SQL_TIPDOC);
  147. }
  148. /**
  149. * Obtiene de la base de datos la lista de tipos de estados civiles disponibles para ser generados
  150. * @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
  151. */
  152. function EstadosCivilesDisponibles()
  153. {
  154. $SQL_ESTCIV = 'SELECT ec_cod, ec_desc FROM acde.estciv ORDER BY ec_cod asc';
  155. return $this->obtenerDatos($SQL_ESTCIV);
  156. }
  157. /**
  158. * Obtiene de la base de datos la lista de sexos disponibles para ser generados
  159. * @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
  160. */
  161. function SexosDisponibles()
  162. {
  163. $SQL_SEXO = 'SELECT sex_cod, sex_desc FROM acde.sexo ORDER BY sex_cod asc';
  164. return $this->obtenerDatos($SQL_SEXO);
  165. }
  166. /**
  167. * Obtiene de la base de datos la lista de estados societarios disponibles para ser generados
  168. * @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
  169. */
  170. function EstadosSocietariosDisponibles()
  171. {
  172. $SQL_ESTSOC = 'SELECT es_cod, es_desc, es_factu FROM acde.estsoc ORDER BY es_cod asc';
  173. return $this->obtenerDatos($SQL_ESTSOC);
  174. }
  175. /**
  176. * Obtiene de la base de datos la lista de grupos disponibles para ser generados
  177. * @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
  178. */
  179. function GruposDisponibles()
  180. {
  181. $SQL_GRUPOS = 'SELECT gru_cod, gru_desc FROM acde.grupo ORDER BY gru_cod asc';
  182. return $this->obtenerDatos($SQL_GRUPOS);
  183. }
  184. /**
  185. * Obtiene de la base de datos la lista profesiones disponibles para ser generados
  186. * @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
  187. */
  188. function ProfesionesDisponibles()
  189. {
  190. $SQL_PROFESION = 'SELECT pro_cod, pro_desc FROM acde.profesion ORDER BY pro_cod asc';
  191. return $this->obtenerDatos($SQL_PROFESION);
  192. }
  193. /**
  194. * Obtiene de la base de datos la lista socios disponibles para ser generados
  195. * @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
  196. */
  197. function SociosDisponibles()
  198. {
  199. $SQL_SOCIOS = 'SELECT soc_cod, soc_apel, soc_nom FROM acde.socio ORDER BY soc_cod asc';
  200. return $this->obtenerDatos($SQL_SOCIOS);
  201. }
  202. /**
  203. * Obtiene de la base de datos la lista de tipos de comprobantes disponibles para ser generados
  204. * @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
  205. */
  206. function TipComDisponibles()
  207. {
  208. $SQL_TIPCOM = 'SELECT atc_tcom, atc_dtcom FROM admin.atipcom ORDER BY atc_tcom asc';
  209. return $this->obtenerDatos($SQL_TIPCOM);
  210. }
  211. /**
  212. * Obtiene de la base de datos la lista de despachos disponibles para ser generados
  213. * @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
  214. */
  215. function DespachosDisponibles()
  216. {
  217. $SQL_DESPACHOS = 'SELECT des_cod, des_desc FROM acde.despacho ORDER BY des_cod asc';
  218. return $this->obtenerDatos($SQL_DESPACHOS);
  219. }
  220. /**
  221. * Obtiene de la base de datos la lista categorias disponibles para ser generados
  222. * @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
  223. */
  224. function CatSocDisponibles()
  225. {
  226. $SQL_CATSOC = 'SELECT cs_cod, cs_dcat FROM acde.catsoc ORDER BY cs_cod asc';
  227. return $this->obtenerDatos($SQL_CATSOC);
  228. }
  229. /**
  230. * Obtiene de la base de datos de las versiones de facturacion
  231. * @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
  232. */
  233. function VersionesDisponibles()
  234. {
  235. $SQL_VERFAC = 'SELECT * FROM acde.verfac WHERE ver_mabi=true ORDER BY ver_cod asc';
  236. return $this->obtenerDatos($SQL_VERFAC);
  237. }
  238. /**
  239. * Obtiene de la base de datos la lista de tipos de categorias disponibles para ser generados
  240. * @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
  241. */
  242. function TipCatSocDisponibles()
  243. {
  244. $SQL_TIPCATSOC = 'SELECT tcs_cod, tcs_desc FROM acde.ticaso ORDER BY tcs_cod asc';
  245. return $this->obtenerDatos($SQL_TIPCATSOC);
  246. }
  247. /**
  248. * Obtiene de la base de datos la lista de tipos de tarjetas disponibles para ser generados
  249. * @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
  250. */
  251. function TiposDeTarjetasDisponibles()
  252. {
  253. $SQL_TARJETAS = 'SELECT tt_cod, tt_desc FROM acde.tiptar ORDER BY tt_cod asc';
  254. return $this->obtenerDatos($SQL_TARJETAS);
  255. }
  256. /**
  257. * Obtiene de la base de datos la lista de tipos de tarjetas disponibles para ser generados
  258. * @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
  259. */
  260. function TarjetasDisponibles()
  261. {
  262. $SQL_TARJETAS = 'SELECT tar_cod, tar_desc, tar_tipo FROM acde.tarjeta ORDER BY tar_cod asc';
  263. return $this->obtenerDatos($SQL_TARJETAS);
  264. }
  265. /**
  266. * Obtiene de la base de datos la lista de tipos de tarjetas disponibles para ser generados
  267. * @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
  268. */
  269. function CantidadVersionesActivadas()
  270. {
  271. $SQL_CANTACTI = 'SELECT count(*) FROM acde.verfac WHERE ver_mabi=true';
  272. return $this->obtenerDatos($SQL_CANTACTI);
  273. }
  274. /**
  275. * Obtiene de la base de datos la lista de tipos de tarjetas disponibles para ser generados
  276. * @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
  277. */
  278. function BuscaVersionActiva()
  279. {
  280. $SQL_VERACTIVA = 'SELECT * FROM acde.verfac WHERE ver_mabi=true';
  281. return $this->obtenerDatos($SQL_VERACTIVA);
  282. }
  283. /**
  284. * Obtiene de la base de datos la lista operaciones
  285. * @param string Tipo de comprobante
  286. * @return array Retorna un arreglo multidimensional:
  287. */
  288. function OperacionesDisponibles($TipCom)
  289. {
  290. //El parametro no puede ser vacio
  291. if(!empty($TipCom))
  292. {
  293. //'Sanea' la entrada para evitar ataques SQL-Injection
  294. $TipComSano = $this->sanearTextoSQL($TipCom);
  295. $SQL_OPE = "SELECT op_ope, op_dope FROM admin.operac WHERE op_tcom = " . $TipComSano . "ORDER BY op_ope asc";
  296. }
  297. else
  298. {
  299. //Si es vacio, genera el warning y devuelvo vacio
  300. if($this->AppConfig->DEBUG["nivel"] >1)
  301. {
  302. $war_msg = "Error en parametros: TipCom";
  303. trigger_error($war_msg, E_USER_WARNING);
  304. }
  305. }
  306. return $this->obtenerDatos($SQL_OPE);
  307. }
  308. /**
  309. * Obtiene de la base de datos la lista conceptos relacionados con las operaciones
  310. * @param string Tipo de comprobante
  311. * @param string Operacion
  312. * @return array Retorna un arreglo multidimensional:
  313. */
  314. function OperConDisponibles($TipCom, $Ope)
  315. {
  316. //El parametro no puede ser vacio
  317. if( !empty($TipCom) && !empty($Ope) )
  318. {
  319. //'Sanea' la entrada para evitar ataques SQL-Injection
  320. $TipComSano = $this->sanearTextoSQL($TipCom);
  321. //$OpeSano = $this->sanearTextoSQL($Ope);
  322. $SQL_OPERCON = "SELECT oc_conc, oc_dopco FROM admin.opercon WHERE oc_tcom = " . $TipComSano ." and oc_ope =". $Ope . " ORDER BY oc_conc asc";
  323. }
  324. else
  325. {
  326. //Si es vacio, genera el warning y devuelvo vacio
  327. if($this->AppConfig->DEBUG["nivel"] >1)
  328. {
  329. $war_msg = "Error en parametros: TipCom";
  330. trigger_error($war_msg, E_USER_WARNING);
  331. }
  332. }
  333. return $this->obtenerDatos($SQL_OPERCON);
  334. }
  335. /**
  336. * Obtiene de la base de datos el importe correspondiente
  337. * @param string Tipo de comprobante
  338. * @param string Operacion
  339. * @param string Evento
  340. * @return array Retorna un arreglo multidimensional:
  341. */
  342. function ImporteGasto($TipCom, $Ope, $Eve)
  343. {
  344. //El parametro no puede ser vacio
  345. if( !empty($TipCom) && !empty($Ope) && !empty($Eve) )
  346. {
  347. //'Sanea' la entrada para evitar ataques SQL-Injection
  348. $TipComSano = $this->sanearTextoSQL($TipCom);
  349. $EveSano = $this->sanearTextoSQL($Eve);
  350. $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";
  351. }
  352. else
  353. {
  354. //Si es vacio, genera el warning y devuelvo vacio
  355. if($this->AppConfig->DEBUG["nivel"] >1)
  356. {
  357. $war_msg = "Error en parametros: TipCom";
  358. trigger_error($war_msg, E_USER_WARNING);
  359. }
  360. }
  361. return $this->obtenerDatos($SQL_IMPO);
  362. }
  363. /**
  364. * FUNCIONES LEO: Obtienen campos para ser cargados en formularios completos y asi
  365. * poder modificarlos. Se pasan siempre campos clave para recuperarlos.
  366. */
  367. /**
  368. * Obtiene de la base de datos la categoria de socio
  369. * @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
  370. */
  371. function Leo_DOMSOC($codsoc, $tipdom)
  372. {
  373. $SQL_DOMSOC = 'SELECT * FROM acde.domsoc WHERE dom_soc = ' . $codsoc . ' AND dom_tipdom = \'' . $tipdom . '\';';
  374. return $this->obtenerDatos($SQL_DOMSOC);
  375. }
  376. /**
  377. * Obtiene de la base de datos la categoria de socio
  378. * @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
  379. */
  380. function Leo_CATSOC($p_categ)
  381. {
  382. $SQL_CATSOC = 'SELECT cs_cod, cs_dcat, cs_tipo, cs_edadd, cs_edadh FROM acde.catsoc WHERE cs_cod = \'' . $p_categ . '\';';
  383. return $this->obtenerDatos($SQL_CATSOC);
  384. }
  385. /**
  386. * Obtiene de la base de datos el estado del socio
  387. * @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
  388. */
  389. function Leo_ESTSOC($p_estsoc)
  390. {
  391. $SQL_ESTSOC = 'SELECT * FROM acde.estsoc WHERE es_cod = \'' . $p_estsoc . '\';';
  392. return $this->obtenerDatos($SQL_ESTSOC);
  393. }
  394. /**
  395. * Obtiene de la base de datos el tipo de categoria del socio
  396. * @return array Retorna un arreglo multidimensional de la forma arreglo[codigo][descrip]
  397. */
  398. function Leo_TICASO($p_TipCat)
  399. {
  400. $SQL_TICASO = 'SELECT tcs_cod, tcs_desc, tcs_perrec FROM acde.ticaso WHERE tcs_cod = \'' . $p_TipCat . '\';';
  401. return $this->obtenerDatos($SQL_TICASO);
  402. }
  403. /**
  404. * Obtiene de la base de datos el socio
  405. * @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][campo1][campo2]
  406. */
  407. function Leo_SOCIO($p_Socio)
  408. {
  409. $SQL_SOCIO = "SELECT * FROM acde.socio WHERE soc_cod=".$p_Socio. ";";
  410. return $this->obtenerDatos($SQL_SOCIO);
  411. }
  412. /**
  413. * Obtiene de la base de datos la version de facturacion
  414. * @return array Retorna un arreglo multidimensional de la forma arreglo[codigo][descrip]
  415. */
  416. function Leo_VERFAC($p_Ver)
  417. {
  418. $SQL_VERFAC = 'SELECT * FROM acde.verfac WHERE ver_cod=' . $p_Ver . ';';
  419. return $this->obtenerDatos($SQL_VERFAC);
  420. }
  421. /**
  422. * Obtiene de la base de datos la gral de acde
  423. * @return array Retorna un arreglo multidimensional de la forma arreglo[codigo][descrip]
  424. */
  425. function Leo_GRALACDE($p_Ver)
  426. {
  427. $v_SQL = 'SELECT * FROM acde.gralacde WHERE gr_ver='.$p_Ver.';';
  428. return $this->obtenerDatos($v_SQL);
  429. }
  430. /**
  431. * Obtiene de la base los datos de la tabla relimp
  432. * @return array Retorna un arreglo multidimensional de la forma arreglo[codigo][descrip]
  433. */
  434. function Leo_RELIMP($p_TipCom, $p_Ope, $p_Conc)
  435. {
  436. $SQL_RELIMP = 'SELECT * FROM acde.relimp WHERE ri_tcom= \'' . $p_TipCom . '\' AND ri_ope=' . $p_Ope . ' AND ri_conc= \''. $p_Conc. '\' ;';
  437. return $this->obtenerDatos($SQL_RELIMP);
  438. }
  439. /**
  440. * Obtiene de la base los datos de la tabla TIPTAR
  441. * @param string $p_TipTar
  442. * @return una matriz del tipo Matriz[v_Item][campo0][campo1] ...[campon]
  443. */
  444. function Leo_TIPTAR($p_TipTar)
  445. {
  446. $SQL_TIPTAR = 'SELECT * FROM acde.tiptar WHERE tt_cod = \'' . $p_TipTar . '\';';
  447. return $this->obtenerDatos($SQL_TIPTAR);
  448. }
  449. /**
  450. * Obtiene de la base los datos de la tabla
  451. * @param num $p_Tar Código de tarjeta
  452. * @return una matriz del tipo Matriz[v_Item][campo0][campo1] ...[campon]
  453. */
  454. function Leo_TARJETA($p_Tar, $v_sql)
  455. {
  456. $SQL_TARJETA = 'SELECT * FROM acde.tarjeta WHERE tar_cod = ' . $p_Tar . ';';
  457. $v_sql = $SQL_TARJETA;
  458. return $this->obtenerDatos($SQL_TARJETA);
  459. }
  460. //-------------------------------------INTERFAZ PRIVADA-------------------------------------/
  461. /**
  462. * Accede a la BD y obtiene los resultados de la consulta identificando si existen errores
  463. * de conexion o consulta
  464. * @param string <var>consulta</var> sentencia SQL a enviar a la base de datos
  465. * @return array Retorna un arreglo bidimensional de la forma arreglo[empresa][descrip]
  466. */
  467. function obtenerDatos(&$consulta)
  468. {
  469. //Retorno de la funcion
  470. $ret_datos = "";
  471. //Para manejar errores
  472. $NIVEL_DEBUG = $this->AppConfig->DEBUG["nivel"];
  473. $this->ManejaBD->procesoCorrecto = true;
  474. $procesoCorrecto = $this->ManejaBD->conectarBD();
  475. if($procesoCorrecto)
  476. {
  477. $procesoCorrecto = $this->ManejaBD->consultarBD($consulta);
  478. if($procesoCorrecto)
  479. {
  480. if($NIVEL_DEBUG>2) {
  481. trigger_error("Consulta realizada: $consulta", E_USER_NOTICE);
  482. }
  483. //Obtiene un arreglo asociativo de toda la tabla resultado
  484. $ret_datos = $this->ManejaBD->obtenerTotalFilasArray();
  485. $this->ManejaBD->procesoCorrecto = true;
  486. }
  487. else
  488. {
  489. if($NIVEL_DEBUG>2)
  490. {
  491. trigger_error($this->DB_QUERY_NULL."(NULO): $consulta - " .
  492. "Last error: " . mysql_error($this->ManejaBD->enlace) , E_USER_NOTICE);
  493. }
  494. $this->ManejaBD->procesoCorrecto = false;
  495. //echo "Estado nro " . mysql_errno($link) . ": " . mysql_error($this->ManejaBD->enlace) . "\n";
  496. }
  497. $this->ManejaBD->liberarConsulta();
  498. $this->ManejaBD->desconectarBD();
  499. }
  500. else
  501. {
  502. trigger_error("Error: Matando proceso". $this->DB_CONNECT_ERROR, E_USER_ERROR);
  503. $this->ManejaBD->procesoCorrecto = false;
  504. die("Error: ". $this->DB_CONNECT_ERROR);//Podria retornarse un valor especifico que indique error
  505. }
  506. return $ret_datos;
  507. }
  508. /**
  509. *Filtra las cadenas recibidas, que formaran parte e una consulta SQL, para evitar SQL-Injection
  510. *@param string <var>Texto</var> Texto a filtrar
  511. *@return string Texto filtrado con los caracteres criticos escapados/eliminados
  512. */
  513. function sanearTextoSQL($texto)
  514. {
  515. $ret_sts = "";
  516. if(!empty($texto))
  517. {
  518. //Si esta activado MagicQuotes se eliminan todas las contrabarras que escapan comillas (ej: '\"' )
  519. if (get_magic_quotes_gpc())
  520. {
  521. $texto = stripslashes($texto);
  522. }
  523. //Si el valor NO es numerico, se le agregan comillas simples y se escapan los caracteres criticos
  524. if (!is_numeric($texto))
  525. {
  526. $ret_sts = "'"; //comilla incial
  527. //Chequea si existe la funcion mysql_real_escape_string (PHP >= 4.3) para filtrar el texto
  528. if (function_exists("mysql_real_escape_string"))
  529. {
  530. $ret_sts .= mysql_real_escape_string($texto);
  531. }
  532. else
  533. {
  534. //Si no existe se agregan contrabarras para escapar posibles comillas
  535. $ret_sts .= addslashes($texto); //IMPLEMENTAR UNA FUNCION ALTERNATIVA A LA INEXISTENTE
  536. }
  537. $ret_sts .= "'"; //comilla final
  538. }
  539. }
  540. return $ret_sts;
  541. }
  542. /**
  543. * Obtiene de la base los datos el importe de la cuota del socio
  544. * @param string $p_Cat Categoria del socio
  545. * @return array Retorna una matriz de la forma matriz[item_registro][campo1][campo2]...[campon]
  546. */
  547. function Busca_Importe_Cuota($p_Cat, $p_FecVig)
  548. {
  549. if( $p_FecVig == '' )
  550. $SQL_CUOTAS = "SELECT * FROM acde.cuotas WHERE cuo_cat='" . $p_Cat . "' ORDER BY DESC";
  551. else
  552. $SQL_CUOTAS = "SELECT * FROM acde.cuotas WHERE cuo_cat='" . $p_Cat . "' AND cuo_fecvig<= '" . $p_FecVig. "' ORDER BY cuo_fecvig DESC LIMIT 1";
  553. return $this->obtenerDatos($SQL_CUOTAS);
  554. }
  555. function Busca_Importe_CuotasCat($p_FecVig)
  556. {
  557. $SQL_CUOTAS = "SELECT * FROM acde.cuotas WHERE cuo_fecvig<= '" . $p_FecVig. "' ORDER BY cuo_fecvig DESC";
  558. return $this->obtenerDatos($SQL_CUOTAS);
  559. }
  560. /**
  561. * Obtiene de la base los datos el importe de la cuota del socio
  562. * @param string $p_Cat Categoria del socio
  563. * @return array Retorna una matriz de la forma matriz[item_registro][campo1][campo2]...[campon]
  564. */
  565. function Busca_Categoria_Socio($p_Edad)
  566. {
  567. $SQL_CATSOC = "SELECT * FROM acde.catsoc WHERE cs_edadd<=" . $p_Edad . " AND cs_edadh>=" . $p_Edad;
  568. return $this->obtenerDatos($SQL_CATSOC);
  569. }
  570. /**
  571. * Actualiza de la tabla TARJETAS los campos de generaci�n de archivos.
  572. * @return array Retorna un arreglo bidimensional de la forma arreglo[codigo][descrip]
  573. */
  574. function HabilitaEnvioDeArchivo($p_Tarjeta)
  575. {
  576. $v_SQL = 'UPDATE acde.tarjeta SET tar_ulfeen=null WHERE tar_cod='.$p_Tarjeta;
  577. return $this->obtenerDatos($v_SQL);
  578. }
  579. }
  580. ?>