/ieducar/intranet/include/clsParametrosPesquisas.inc.php

https://github.com/gtinfo/ieducar · PHP · 495 lines · 187 code · 46 blank · 262 comment · 5 complexity · 0981b9bba550e4aa3f5e0000431d3f8a MD5 · raw file

  1. <?php
  2. /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  3. * *
  4. * @author Prefeitura Municipal de Itajaí *
  5. * @updated 29/03/2007 *
  6. * Pacote: i-PLB Software Público Livre e Brasileiro *
  7. * *
  8. * Copyright (C) 2006 PMI - Prefeitura Municipal de Itajaí *
  9. * ctima@itajai.sc.gov.br *
  10. * *
  11. * Este programa é software livre, você pode redistribuí-lo e/ou *
  12. * modificá-lo sob os termos da Licença Pública Geral GNU, conforme *
  13. * publicada pela Free Software Foundation, tanto a versão 2 da *
  14. * Licença como (a seu critério) qualquer versão mais nova. *
  15. * *
  16. * Este programa é distribuído na expectativa de ser útil, mas SEM *
  17. * QUALQUER GARANTIA. Sem mesmo a garantia implícita de COMERCIALI- *
  18. * ZAÇÃO ou de ADEQUAÇÃO A QUALQUER PROPÓSITO EM PARTICULAR. Con- *
  19. * sulte a Licença Pública Geral GNU para obter mais detalhes. *
  20. * *
  21. * Você deve ter recebido uma cópia da Licença Pública Geral GNU *
  22. * junto com este programa. Se não, escreva para a Free Software *
  23. * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA *
  24. * 02111-1307, USA. *
  25. * *
  26. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
  27. require_once( "include/Geral.inc.php" );
  28. /**
  29. * Classe de parametrização dos dados a serem informados para as listagens genéricas.
  30. *
  31. * @author Adriano Erik Weiguert Nagasava
  32. */
  33. class clsParametrosPesquisas
  34. {
  35. /**
  36. * Deve ser utilizado para informar se haverá submit (1) ou não na página (0).
  37. *
  38. * @var int
  39. */
  40. var $submit;
  41. /**
  42. * Deve ser usado para informar os nomes dos campos a serem utilizados.
  43. *
  44. * @var array
  45. */
  46. var $campo_nome;
  47. /**
  48. * Deve ser utilizado para informar o tipo do campo ("text" ou "select");
  49. *
  50. * @var array
  51. */
  52. var $campo_tipo;
  53. /**
  54. * Deve ser usado para informar os nomes dos campos a serem utilizados como indice.
  55. *
  56. * @var array
  57. */
  58. var $campo_indice;
  59. /**
  60. * Deve ser usado para informar os nomes dos campos a serem utilizados como valores.
  61. *
  62. * @var array
  63. */
  64. var $campo_valor;
  65. /**
  66. * Deve ser utilizado para informar se será uma pesquisa de pessoa física (F), pessoa jurídica (J) ou pessoa física e jurídica (FJ).
  67. *
  68. * @var char
  69. */
  70. var $pessoa;
  71. /**
  72. * Deve ser usado para indicar se deseja que apareça o botão de novo (S) ou não (N) na pesquisa de pessoa.
  73. *
  74. * @var char
  75. */
  76. var $pessoa_novo;
  77. /**
  78. * Deve ser usado para indicar se deseja que a tela seja aberta num iframe ("frame") ou para abrir na própria janela ("window").
  79. *
  80. * @var string
  81. */
  82. var $pessoa_tela;
  83. /**
  84. * Deve ser usado para informar o nome do campo para onde será retornado o valor "0", indicando que deve ser feito um novo cadastro de pessoa.
  85. *
  86. * @var string
  87. */
  88. var $pessoa_campo;
  89. /**
  90. * Deve ser usado para indicar se deseja que após o usuário selecionar uma pessoa, ela seja redirecionada pra uma tela de cadastro com as informações da pessoa selecionada (S) ou não (N).
  91. *
  92. * @var char
  93. */
  94. var $pessoa_editar;
  95. /**
  96. * Deve ser usado para indicar em qual sistema a pessoa física está/será cadastrada.
  97. *
  98. * @var int
  99. */
  100. var $ref_cod_sistema;
  101. /**
  102. * Deve ser usado para indicar se na inclusão o CPF da pessoa é obrigatório ("S") ou não ("N").
  103. *
  104. * @var int
  105. */
  106. var $pessoa_cpf;
  107. /**
  108. * Construtor da classe
  109. *
  110. * @return clsParametrosPesquisas
  111. */
  112. function clsParametrosPesquisas() {
  113. $this->campo_nome = array();
  114. $this->campo_tipo = array();
  115. $this->campo_valor = array();
  116. $this->campo_indice = array();
  117. }
  118. /**
  119. * Pega todos os atributos da classe e joga num array e retorna este array serializado e codificado para url.
  120. *
  121. * @return array
  122. */
  123. function serializaCampos() {
  124. $parametros_serializados["submit"] = $this->submit;
  125. $parametros_serializados["campo_nome"] = $this->campo_nome;
  126. $parametros_serializados["campo_tipo"] = $this->campo_tipo;
  127. $parametros_serializados["campo_indice"] = $this->campo_indice;
  128. $parametros_serializados["campo_valor"] = $this->campo_valor;
  129. $parametros_serializados["pessoa"] = $this->pessoa;
  130. $parametros_serializados["pessoa_novo"] = $this->pessoa_novo;
  131. $parametros_serializados["pessoa_tela"] = $this->pessoa_tela;
  132. $parametros_serializados["pessoa_campo"] = $this->pessoa_campo;
  133. $parametros_serializados["pessoa_editar"] = $this->pessoa_editar;
  134. $parametros_serializados["ref_cod_sistema"] = $this->ref_cod_sistema;
  135. $parametros_serializados["pessoa_cpf"] = $this->pessoa_cpf;
  136. $parametros_serializados = serialize( $parametros_serializados );
  137. $parametros_serializados = urlencode( $parametros_serializados );
  138. return $parametros_serializados;
  139. }
  140. /**
  141. * Recebe os atributos em um array serializado, "deserializa o array e preenche os atributos.
  142. *
  143. * @param array $parametros_serializados
  144. */
  145. function deserializaCampos( $parametros_serializados ) {
  146. $parametros_serializados = str_replace( "\\", null, $parametros_serializados );
  147. $parametros_serializados = unserialize( $parametros_serializados );
  148. $this->submit = $parametros_serializados["submit"];
  149. $this->campo_nome = $parametros_serializados["campo_nome"];
  150. $this->campo_tipo = $parametros_serializados["campo_tipo"];
  151. $this->campo_indice = $parametros_serializados["campo_indice"];
  152. $this->campo_valor = $parametros_serializados["campo_valor"];
  153. $this->pessoa = $parametros_serializados["pessoa"];
  154. $this->pessoa_novo = $parametros_serializados["pessoa_novo"];
  155. $this->pessoa_tela = $parametros_serializados["pessoa_tela"];
  156. $this->pessoa_campo = $parametros_serializados["pessoa_campo"];
  157. $this->pessoa_editar = $parametros_serializados["pessoa_editar"];
  158. $this->ref_cod_sistema = $parametros_serializados["ref_cod_sistema"];
  159. $this->pessoa_cpf = $parametros_serializados["pessoa_cpf"];
  160. }
  161. /**
  162. * Gera um array com todos os atributos da classe.
  163. *
  164. * @return array
  165. */
  166. function geraArrayComAtributos() {
  167. $parametros_serializados["submit"] = $this->submit;
  168. $parametros_serializados["campo_nome"] = $this->campo_nome;
  169. $parametros_serializados["campo_tipo"] = $this->campo_tipo;
  170. $parametros_serializados["campo_indice"] = $this->campo_indice;
  171. $parametros_serializados["campo_valor"] = $this->campo_valor;
  172. $parametros_serializados["pessoa"] = $this->pessoa;
  173. $parametros_serializados["pessoa_novo"] = $this->pessoa_novo;
  174. $parametros_serializados["pessoa_tela"] = $this->pessoa_tela;
  175. $parametros_serializados["pessoa_campo"] = $this->pessoa_campo;
  176. $parametros_serializados["pessoa_editar"] = $this->pessoa_editar;
  177. $parametros_serializados["ref_cod_sistema"] = $this->ref_cod_sistema;
  178. $parametros_serializados["pessoa_cpf"] = $this->pessoa_cpf;
  179. return $parametros_serializados;
  180. }
  181. /**
  182. * Preenche os atributos com os valores de um array.
  183. *
  184. * @param array $parametros_serializados
  185. */
  186. function preencheAtributosComArray( $parametros_serializados ) {
  187. $this->submit = $parametros_serializados["submit"];
  188. $this->campo_nome = $parametros_serializados["campo_nome"];
  189. $this->campo_tipo = $parametros_serializados["campo_tipo"];
  190. $this->campo_indice = $parametros_serializados["campo_indice"];
  191. $this->campo_valor = $parametros_serializados["campo_valor"];
  192. $this->pessoa = $parametros_serializados["pessoa"];
  193. $this->pessoa_novo = $parametros_serializados["pessoa_novo"];
  194. $this->pessoa_tela = $parametros_serializados["pessoa_tela"];
  195. $this->pessoa_campo = $parametros_serializados["pessoa_campo"];
  196. $this->pessoa_editar = $parametros_serializados["pessoa_editar"];
  197. $this->ref_cod_sistema = $parametros_serializados["ref_cod_sistema"];
  198. $this->pessoa_cpf = $parametros_serializados["pessoa_cpf"];
  199. }
  200. /**
  201. * Adiciona um novo campo do tipo texto a ser buscado na pesquisa e setado após ela.
  202. *
  203. * @param string $campo_nome
  204. * @param string $campo_valor
  205. */
  206. function adicionaCampoTexto( $campo_nome, $campo_valor ) {
  207. $this->campo_nome[] = $campo_nome;
  208. $this->campo_tipo[] = "text";
  209. $this->campo_indice[] = 0;
  210. $this->campo_valor[] = $campo_valor;
  211. }
  212. /**
  213. * Adiciona um novo campo do tipo select a ser buscado na pesquisa e setado após ela.
  214. *
  215. * @param string $campo_nome
  216. * @param string $campo_indice
  217. * @param string $campo_valor
  218. */
  219. function adicionaCampoSelect( $campo_nome, $campo_indice, $campo_valor ) {
  220. $this->campo_nome[] = $campo_nome;
  221. $this->campo_tipo[] = "select";
  222. $this->campo_indice[] = $campo_indice;
  223. $this->campo_valor[] = $campo_valor;
  224. }
  225. /**
  226. * Seta o nome do campo especificado na posição indicada.
  227. *
  228. * @param int $posicao
  229. * @param string $valor
  230. */
  231. function setCampoNome( $posicao, $valor ) {
  232. $this->campo_nome[$posicao] = $valor;
  233. }
  234. /**
  235. * Caso seja passada a posição do campo por parâmetro, retorna o nome do campo especificado, senão, retorna um array com os nomes de todos os campos.
  236. *
  237. * @param int $posicao
  238. * @return string or array
  239. */
  240. function getCampoNome( $posicao = null ) {
  241. if ( is_numeric( $posicao ) )
  242. return $this->campo_nome[$posicao];
  243. else {
  244. return $this->campo_nome;
  245. }
  246. }
  247. /**
  248. * Seta o tipo do campo especificado na posição indicada como "text".
  249. *
  250. * @param int $posicao
  251. */
  252. function setCampoTipoTexto( $posicao ) {
  253. $this->campo_tipo[$posicao] = "text";
  254. }
  255. /**
  256. * Seta o tipo do campo especificado na posição indicada como "select".
  257. *
  258. * @param int $posicao
  259. */
  260. function setCampoTipoSelect( $posicao ) {
  261. $this->campo_tipo[$posicao] = "select";
  262. }
  263. /**
  264. * Caso seja passada a posição do campo por parâmetro, retorna o tipo do campo especificado, senão, retorna um array com os tipos de todos os campos.
  265. *
  266. * @param int $posicao
  267. * @return string or array
  268. */
  269. function getCampoTipo( $posicao = null ) {
  270. if ( is_numeric( $posicao ) ) {
  271. return $this->campo_tipo[$posicao];
  272. }
  273. else
  274. return $this->campo_tipo;
  275. }
  276. /**
  277. * Seta o indice do campo especificado na posição indicada.
  278. *
  279. * @param int $posicao
  280. * @param string $valor
  281. */
  282. function setCampoIndice( $posicao, $valor ) {
  283. $this->campo_indice[$posicao] = $valor;
  284. }
  285. /**
  286. * Caso seja passada a posição do campo por parâmetro, retorna o indice do campo especificado, senão, retorna um array com os indices de todos os campos.
  287. *
  288. * @param int $posicao
  289. * @return int or array
  290. */
  291. function getCampoIndice( $posicao = null ) {
  292. if ( is_numeric( $posicao ) )
  293. return $this->campo_indice[$posicao];
  294. else
  295. return $this->campo_indice;
  296. }
  297. /**
  298. * Seta o nome do campo que será buscado na tabela na posição indicada.
  299. *
  300. * @param int $posicao
  301. * @param string $valor
  302. */
  303. function setCampoValor( $posicao, $valor ) {
  304. $this->campo_valor[$posicao] = $valor;
  305. }
  306. /**
  307. * Caso seja passada a posição do campo por parâmetro, retorna o nome do campo que será buscado na tabela, senão, retorna um array com todos os nomes dos campos que irão ser buscados na tabela.
  308. *
  309. * @param int $posicao
  310. * @return string or array
  311. */
  312. function getCampoValor( $posicao = null ) {
  313. if ( is_numeric( $posicao ) )
  314. return $this->campo_valor[$posicao];
  315. else
  316. return $this->campo_valor;
  317. }
  318. /**
  319. * Deve ser passado o valor 1 caso a página tenha "auto-submit" ou o valor 0 caso não tenha.
  320. *
  321. * @param int $submit
  322. */
  323. function setSubmit( $submit ) {
  324. $this->submit = $submit;
  325. }
  326. /**
  327. * Retorna 1 caso a página tenha "auto-submit" ou o 0 caso não tenha.
  328. *
  329. * @return int
  330. */
  331. function getSubmit() {
  332. return $this->submit;
  333. }
  334. /**
  335. * Deve ser passado 'F' se for pesquisar uma pessoa física, 'J' se for pesquisar uma pessoa jurídica e 'FJ' se não importar o tipo da pessoa que irá ser pesquisada.
  336. * opcoes: ('F' || 'J' || "FJ" || "FUNC")
  337. *
  338. * @param string $pessoa
  339. */
  340. function setPessoa( $pessoa ) {
  341. $this->pessoa = $pessoa;
  342. }
  343. /**
  344. * Retorna 'F' se for pesquisar uma pessoa física, 'J' se for pesquisar uma pessoa jurídica e 'FJ' se não importar o tipo da pessoa que irá ser pesquisada.
  345. *
  346. * @return string
  347. */
  348. function getPessoa() {
  349. return $this->pessoa;
  350. }
  351. /**
  352. * Deve ser passado 'S' se deseja que apareça o botão de novo na pesquisa de pessoa ou 'N' caso não deseje.
  353. *
  354. * @param char $pessoa_novo
  355. */
  356. function setPessoaNovo( $pessoa_novo ) {
  357. $this->pessoa_novo = $pessoa_novo;
  358. }
  359. /**
  360. * Retorna 'S' se deseja que apareça o botão de novo na pesquisa de pessoa ou 'N' caso não deseje.
  361. *
  362. * @return char
  363. */
  364. function getPessoaNovo() {
  365. return $this->pessoa_novo;
  366. }
  367. /**
  368. * Deve ser passado "frame" para indicar se deseja que a tela seja aberta num iframe ou "window" para abrir na própria janela.
  369. *
  370. * @param string $pessoa_tela
  371. */
  372. function setPessoaTela( $pessoa_tela ) {
  373. $this->pessoa_tela = $pessoa_tela;
  374. }
  375. /**
  376. * Retorna "frame" para indicar se deseja que a tela seja aberta num iframe ou "window" para abrir na própria janela.
  377. *
  378. * @return string
  379. */
  380. function getPessoaTela() {
  381. return $this->pessoa_tela;
  382. }
  383. /**
  384. * Deve ser passado o nome do campo para onde será retornado o valor "0", indicando que deve ser feito um novo cadastro de pessoa.
  385. *
  386. * @param string $pessoa_campo
  387. */
  388. function setPessoaCampo( $pessoa_campo ) {
  389. $this->pessoa_campo = $pessoa_campo;
  390. }
  391. /**
  392. * Retorna o nome do campo para onde será retornado o valor "0", indicando que deve ser feito um novo cadastro de pessoa.
  393. *
  394. * @return string
  395. */
  396. function getPessoaCampo() {
  397. return $this->pessoa_campo;
  398. }
  399. /**
  400. * Deve ser passado 'S' para indicar se deseja que após o usuário selecionar uma pessoa, ela seja redirecionada pra uma tela de cadastro com as informações da pessoa selecionada ou 'N' caso não deseje.
  401. *
  402. * @param char $pessoa_editar
  403. */
  404. function setPessoaEditar( $pessoa_editar ) {
  405. $this->pessoa_editar = $pessoa_editar;
  406. }
  407. /**
  408. * Retorna 'S' para indicar se deseja que após o usuário selecionar uma pessoa, ela seja redirecionada pra uma tela de cadastro com as informações da pessoa selecionada ou 'N' caso não deseje.
  409. *
  410. * @return char
  411. */
  412. function getPessoaEditar() {
  413. return $this->pessoa_editar;
  414. }
  415. /**
  416. * Deve ser usado para passar o código do sistema em que a pessoa física está/será cadastrada.
  417. *
  418. * @param int $ref_cod_sistema
  419. */
  420. function setCodSistema( $ref_cod_sistema ) {
  421. $this->ref_cod_sistema = $ref_cod_sistema;
  422. }
  423. /**
  424. * Retorna o código do sistema em que a pessoa física está/será cadastrada.
  425. *
  426. * @return int
  427. */
  428. function getCodSistema() {
  429. return $this->ref_cod_sistema;
  430. }
  431. /**
  432. * Deve ser usado para passar o "S" caso o CPF seja obrigatório na inclusão de uma pessoa ou "N"
  433. * caso contrário.
  434. *
  435. * @param int $pessoa_cpf
  436. */
  437. function setPessoaCPF( $pessoa_cpf ) {
  438. $this->pessoa_cpf = $pessoa_cpf;
  439. }
  440. /**
  441. * Retorna o "S" se o CPF for obrigatório na inclusão de uma pessoa ou "N" caso não seja.
  442. *
  443. * @return char
  444. */
  445. function getPessoaCPF() {
  446. return $this->pessoa_cpf;
  447. }
  448. }
  449. ?>