Commit 80d95c0c6d9880a07029cc19c34a436fb8e8977b
1 parent
7777dc5e
Exists in
master
r28@erik: eriksen | 2009-04-24 19:57:24 -0300
#17 by Eriksen: Corrigido bug que não listava os clientes de uma bibliteca enquanto não houvesse uma entrada na tabela de suspensão. Foi criado um método auxiliar na classe clsBanco para fazer a contagem de registros de uma tabela, para facilitar a correção do bug.
Showing
2 changed files
with
352 additions
and
312 deletions
Show diff stats
ieducar/intranet/include/clsBanco.inc.php
| 1 | 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 | -if( ! class_exists( "clsBancoSql_" ) ) | |
| 28 | -{ | |
| 29 | - require_once ( "include/clsBancoPgSql.inc.php" ); | |
| 30 | -} | |
| 2 | +/** | |
| 3 | + * | |
| 4 | + * @author Prefeitura Municipal de Itajaí | |
| 5 | + * @version SVN: $Id$ | |
| 6 | + * | |
| 7 | + * Pacote: i-PLB Software Público Livre e Brasileiro | |
| 8 | + * | |
| 9 | + * Copyright (C) 2006 PMI - Prefeitura Municipal de Itajaí | |
| 10 | + * ctima@itajai.sc.gov.br | |
| 11 | + * | |
| 12 | + * Este programa é software livre, você pode redistribuí-lo e/ou | |
| 13 | + * modificá-lo sob os termos da Licença Pública Geral GNU, conforme | |
| 14 | + * publicada pela Free Software Foundation, tanto a versão 2 da | |
| 15 | + * Licença como (a seu critério) qualquer versão mais nova. | |
| 16 | + * | |
| 17 | + * Este programa é distribuído na expectativa de ser útil, mas SEM | |
| 18 | + * QUALQUER GARANTIA. Sem mesmo a garantia implícita de COMERCIALI- | |
| 19 | + * ZAÇÃO ou de ADEQUAÇÃO A QUALQUER PROPÓSITO EM PARTICULAR. Con- | |
| 20 | + * sulte a Licença Pública Geral GNU para obter mais detalhes. | |
| 21 | + * | |
| 22 | + * Você deve ter recebido uma cópia da Licença Pública Geral GNU | |
| 23 | + * junto com este programa. Se não, escreva para a Free Software | |
| 24 | + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA | |
| 25 | + * 02111-1307, USA. | |
| 26 | + * | |
| 27 | + */ | |
| 31 | 28 | |
| 32 | -class clsBanco extends clsBancoSQL_ | |
| 33 | -{ | |
| 34 | - | |
| 35 | - /*protected*/var $strHost = "localhost"; // Nome ou ip do servidor de dados | |
| 36 | - /*protected*/var $strBanco = "ieducardb"; // Nome do Banco de Dados | |
| 37 | - /*protected*/var $strUsuario = "ieducaruser"; // Usuário devidamente autorizado a acessar o Banco | |
| 38 | - /*protected*/var $strSenha = "ieducar"; // Senha do Usuário do Banco | |
| 39 | - | |
| 40 | - /*protected*/var $bLink_ID = 0; // Identificador de Conexão | |
| 41 | - /*protected*/var $bConsulta_ID = 0; // Identificador de Resultado de Consulta | |
| 42 | - /*protected*/var $arrayStrRegistro = array(); // Tupla resultante de uma consulta | |
| 43 | - /*protected*/var $iLinha = 0; // Ponteiro interno para a Tupla atual da consulta | |
| 44 | - | |
| 45 | - /*protected*/var $bErro_no = 0; // Se ocorreu erro na consulta, retorna Falso | |
| 46 | - /*protected*/var $strErro = ""; // Frase de descrição do Erro Retornado | |
| 47 | - /*protected*/var $bDepurar = false; // Ativa ou desativa funçoes de depuração | |
| 48 | - | |
| 49 | - /*protected*/var $bAuto_Limpa = false; //" 1" para limpar o resultado assim que chegar ao último registro | |
| 50 | - | |
| 51 | - /*private*/var $strStringSQL = ""; | |
| 52 | - | |
| 53 | - /*protected*/var $strType = ""; | |
| 54 | - /*protected*/var $arrayStrFields = array(); | |
| 55 | - /*protected*/var $arrayStrFrom = array(); | |
| 56 | - /*protected*/var $arrayStrWhere = array(); | |
| 57 | - /*protected*/var $arrayStrOrderBy = array(); | |
| 58 | - /*protected*/var $arrayStrGroupBy = array(); | |
| 59 | - /*protected*/var $iLimitInicio; | |
| 60 | - /*protected*/var $iLimitQtd; | |
| 61 | - /*protected*/var $arrayStrArquivo = ""; | |
| 62 | - | |
| 63 | - function clsBanco( $strDataBase = false ) | |
| 64 | - { | |
| 65 | - if( $strDataBase ) | |
| 66 | - { | |
| 67 | - //$this->strBanco = $strDataBase; | |
| 68 | - } | |
| 69 | - } | |
| 29 | +if (!class_exists('clsBancoSql_')) { | |
| 30 | + require_once 'include/clsBancoPgSql.inc.php'; | |
| 70 | 31 | } |
| 71 | -?> | |
| 32 | + | |
| 33 | +class clsBanco extends clsBancoSQL_ { | |
| 34 | + | |
| 35 | + public $strHost = "localhost"; // Nome ou endereço IP do servidor do banco de dados | |
| 36 | + public $strBanco = "ieducardb"; // Nome do banco de dados | |
| 37 | + public $strUsuario = "ieducaruser"; // Usuário devidamente autorizado a acessar o banco | |
| 38 | + public $strSenha = "ieducar"; // Senha do usuário do banco | |
| 39 | + | |
| 40 | + public $bLink_ID = 0; // Identificador da conexão | |
| 41 | + public $bConsulta_ID = 0; // Identificador do resultado da consulta | |
| 42 | + public $arrayStrRegistro = array(); // Tupla resultante de uma consulta | |
| 43 | + public $iLinha = 0; // Ponteiro interno para a tupla atual da consulta | |
| 44 | + | |
| 45 | + public $bErro_no = 0; // Se ocorreu erro na consulta, retorna FALSE | |
| 46 | + public $strErro = ""; // Frase de descrição do erro retornado | |
| 47 | + public $bDepurar = FALSE; // Ativa ou desativa funções de depuração | |
| 48 | + | |
| 49 | + public $bAuto_Limpa = FALSE; // '1' para limpar o resultado assim que chegar ao último registro | |
| 50 | + | |
| 51 | + public $strStringSQL = ""; | |
| 52 | + | |
| 53 | + var $strType = ""; | |
| 54 | + var $arrayStrFields = array(); | |
| 55 | + var $arrayStrFrom = array(); | |
| 56 | + var $arrayStrWhere = array(); | |
| 57 | + var $arrayStrOrderBy = array(); | |
| 58 | + var $arrayStrGroupBy = array(); | |
| 59 | + var $iLimitInicio; | |
| 60 | + var $iLimitQtd; | |
| 61 | + var $arrayStrArquivo = ""; | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + /** | |
| 66 | + * Construtor (PHP 4). | |
| 67 | + */ | |
| 68 | + public function clsBanco($strDataBase = FALSE) {} | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + /** | |
| 73 | + * Retorna a quantidade de registros de uma tabela baseado no objeto que a | |
| 74 | + * abstrai. Este deve ter um atributo público Object->_tabela. | |
| 75 | + * | |
| 76 | + * @param object Objeto que abstrai a tabela | |
| 77 | + * @param string Nome da coluna para cálculo COUNT() | |
| 78 | + * @return int Quantidade de registros da tabela | |
| 79 | + */ | |
| 80 | + public function doCountFromObj($obj, $column = '*') { | |
| 81 | + if ($obj->_tabela == NULL) { | |
| 82 | + return FALSE; | |
| 83 | + } | |
| 84 | + | |
| 85 | + $sql = sprintf('SELECT COUNT(%s) FROM %s', $column, $obj->_tabela); | |
| 86 | + $this->Consulta($sql); | |
| 87 | + | |
| 88 | + return (int)$this->UnicoCampo($sql); | |
| 89 | + } | |
| 90 | + | |
| 91 | +} | |
| 72 | 92 | \ No newline at end of file | ... | ... |
ieducar/intranet/include/pmieducar/clsPmieducarCliente.inc.php
| 1 | 1 | <?php |
| 2 | 2 | /** |
| 3 | 3 | * |
| 4 | - * @author Prefeitura Municipal de Itajaí | |
| 5 | - * @updated 29/03/2007 | |
| 6 | - * Pacote: i-PLB Software Público Livre e Brasileiro | |
| 4 | + * @author Prefeitura Municipal de Itajaí | |
| 5 | + * @version SVN: $Id$ | |
| 7 | 6 | * |
| 8 | - * Copyright (C) 2006 PMI - Prefeitura Municipal de Itajaí | |
| 9 | - * ctima@itajai.sc.gov.br | |
| 7 | + * Pacote: i-PLB Software Público Livre e Brasileiro | |
| 10 | 8 | * |
| 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. | |
| 9 | + * Copyright (C) 2006 PMI - Prefeitura Municipal de Itajaí | |
| 10 | + * ctima@itajai.sc.gov.br | |
| 15 | 11 | * |
| 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. | |
| 12 | + * Este programa é software livre, você pode redistribuí-lo e/ou | |
| 13 | + * modificá-lo sob os termos da Licença Pública Geral GNU, conforme | |
| 14 | + * publicada pela Free Software Foundation, tanto a versão 2 da | |
| 15 | + * Licença como (a seu critério) qualquer versão mais nova. | |
| 20 | 16 | * |
| 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. | |
| 17 | + * Este programa é distribuído na expectativa de ser útil, mas SEM | |
| 18 | + * QUALQUER GARANTIA. Sem mesmo a garantia implícita de COMERCIALI- | |
| 19 | + * ZAÇÃO ou de ADEQUAÇÃO A QUALQUER PROPÓSITO EM PARTICULAR. Con- | |
| 20 | + * sulte a Licença Pública Geral GNU para obter mais detalhes. | |
| 21 | + * | |
| 22 | + * Você deve ter recebido uma cópia da Licença Pública Geral GNU | |
| 23 | + * junto com este programa. Se não, escreva para a Free Software | |
| 24 | + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA | |
| 25 | + * 02111-1307, USA. | |
| 25 | 26 | * |
| 26 | 27 | */ |
| 27 | 28 | |
| 28 | -/* | |
| 29 | - * Criado em 17/07/2006 09:18 pelo gerador automatico de classes | |
| 30 | - */ | |
| 31 | - | |
| 32 | -require_once( "include/pmieducar/geral.inc.php" ); | |
| 29 | +require_once 'include/pmieducar/geral.inc.php'; | |
| 33 | 30 | |
| 34 | 31 | class clsPmieducarCliente |
| 35 | 32 | { |
| ... | ... | @@ -102,13 +99,16 @@ class clsPmieducarCliente |
| 102 | 99 | var $_campo_order_by; |
| 103 | 100 | |
| 104 | 101 | |
| 102 | + | |
| 105 | 103 | /** |
| 106 | 104 | * Construtor (PHP 4) |
| 107 | 105 | * |
| 108 | 106 | * @return object |
| 109 | 107 | */ |
| 110 | - function clsPmieducarCliente( $cod_cliente = null, $ref_usuario_exc = null, $ref_usuario_cad = null, $ref_idpes = null, $login = null, $senha = null, $data_cadastro = null, $data_exclusao = null, $ativo = null ) | |
| 111 | - { | |
| 108 | + function clsPmieducarCliente($cod_cliente = NULL, $ref_usuario_exc = NULL, | |
| 109 | + $ref_usuario_cad = NULL, $ref_idpes = NULL, $login = NULL, $senha = NULL, $data_cadastro = NULL, | |
| 110 | + $data_exclusao = NULL, $ativo = NULL) { | |
| 111 | + | |
| 112 | 112 | $db = new clsBanco(); |
| 113 | 113 | $this->_schema = "pmieducar."; |
| 114 | 114 | $this->_tabela = "{$this->_schema}cliente"; |
| ... | ... | @@ -479,228 +479,249 @@ class clsPmieducarCliente |
| 479 | 479 | return false; |
| 480 | 480 | } |
| 481 | 481 | |
| 482 | - /** | |
| 483 | - * Retorna uma lista filtrados de acordo com os parametros | |
| 484 | - * | |
| 485 | - * @return array | |
| 486 | - */ | |
| 487 | - function listaCompleta( $int_cod_cliente = null, $int_ref_usuario_exc = null, $int_ref_usuario_cad = null, $int_ref_idpes = null, $int_login = null, $str_senha = null, $date_data_cadastro_ini = null, $date_data_cadastro_fim = null, $date_data_exclusao_ini = null, $date_data_exclusao_fim = null, $int_ativo = 1, $str_nm_cliente = null, $str_suspenso = null, $int_cod_cliente_tipo = null, $int_cod_escola = null, $int_cod_biblioteca = null, $int_cod_instituicao = null ) | |
| 488 | - { | |
| 489 | - $tab_adicional = ''; | |
| 490 | - $condicao = ''; | |
| 491 | - $camp_adicional = ''; | |
| 492 | - | |
| 493 | - // Se suspenso não for nulo, seleciona clientes suspensos | |
| 494 | - if (!is_null($str_suspenso)) | |
| 495 | - { | |
| 496 | - $camp_adicional .= ", pmieducar.cliente_suspensao cs "; | |
| 497 | - $condicao .= " AND c.cod_cliente = cs.ref_cod_cliente"; | |
| 498 | - } | |
| 499 | - else | |
| 500 | - { | |
| 501 | - $camp_adicional .= ", pmieducar.cliente_suspensao cs "; | |
| 502 | - $condicao .= " AND c.cod_cliente <> cs.ref_cod_cliente"; | |
| 503 | - } | |
| 504 | - | |
| 505 | - $sql1 = "SELECT c.cod_cliente, | |
| 506 | - c.ref_idpes, | |
| 507 | - c.ref_usuario_cad, | |
| 508 | - c.login, | |
| 509 | - p.nome, | |
| 510 | - ct.nm_tipo, | |
| 511 | - ct.cod_cliente_tipo, | |
| 512 | - b.nm_biblioteca, | |
| 513 | - b.cod_biblioteca, | |
| 514 | - e.cod_escola as cod_escola, | |
| 515 | - i.cod_instituicao, | |
| 516 | - (SELECT 'S'::text | |
| 517 | - FROM pmieducar.cliente_suspensao cs | |
| 518 | - WHERE cs.ref_cod_cliente = c.cod_cliente | |
| 519 | - AND cs.data_liberacao IS NULL) AS id_suspensao | |
| 520 | - FROM pmieducar.cliente c, | |
| 521 | - pmieducar.cliente_tipo_cliente ctc, | |
| 522 | - pmieducar.cliente_tipo ct, | |
| 523 | - pmieducar.biblioteca b, | |
| 524 | - pmieducar.escola e, | |
| 525 | - pmieducar.instituicao i, | |
| 526 | - cadastro.pessoa p{$camp_adicional} | |
| 527 | - WHERE c.cod_cliente = ctc.ref_cod_cliente | |
| 528 | - AND ct.cod_cliente_tipo = ctc.ref_cod_cliente_tipo | |
| 529 | - AND b.cod_biblioteca = ct.ref_cod_biblioteca | |
| 530 | - AND e.cod_escola = b.ref_cod_escola | |
| 531 | - AND i.cod_instituicao = b.ref_cod_instituicao | |
| 532 | - AND e.ref_cod_instituicao = i.cod_instituicao{$condicao} | |
| 533 | - AND p.idpes = c.ref_idpes | |
| 534 | - AND c.ativo = '{$int_ativo}' | |
| 535 | - AND ctc.ativo = '{$int_ativo}'"; | |
| 536 | - | |
| 537 | - $sql2 = "SELECT c.cod_cliente, | |
| 538 | - c.ref_idpes, | |
| 539 | - c.ref_usuario_cad, | |
| 540 | - c.login, | |
| 541 | - p.nome, | |
| 542 | - ct.nm_tipo, | |
| 543 | - ct.cod_cliente_tipo, | |
| 544 | - b.nm_biblioteca, | |
| 545 | - b.cod_biblioteca, | |
| 546 | - null as cod_escola, | |
| 547 | - i.cod_instituicao, | |
| 548 | - (SELECT 'S'::text | |
| 549 | - FROM pmieducar.cliente_suspensao cs | |
| 550 | - WHERE cs.ref_cod_cliente = c.cod_cliente | |
| 551 | - AND cs.data_liberacao IS NULL) AS id_suspensao | |
| 552 | - FROM pmieducar.cliente c, | |
| 553 | - pmieducar.cliente_tipo_cliente ctc, | |
| 554 | - pmieducar.cliente_tipo ct, | |
| 555 | - pmieducar.biblioteca b, | |
| 556 | - pmieducar.instituicao i, | |
| 557 | - cadastro.pessoa p{$camp_adicional} | |
| 558 | - WHERE c.cod_cliente = ctc.ref_cod_cliente | |
| 559 | - AND ct.cod_cliente_tipo = ctc.ref_cod_cliente_tipo | |
| 560 | - AND b.cod_biblioteca = ct.ref_cod_biblioteca | |
| 561 | - AND i.cod_instituicao = b.ref_cod_instituicao | |
| 562 | - AND b.ref_cod_escola IS NULL | |
| 563 | - AND ct.ref_cod_biblioteca = b.cod_biblioteca{$condicao} | |
| 564 | - AND p.idpes = c.ref_idpes | |
| 565 | - AND c.ativo = '{$int_ativo}' | |
| 566 | - AND ctc.ativo = '{$int_ativo}'"; | |
| 567 | 482 | |
| 568 | - $filtros = ""; | |
| 569 | - $whereAnd = " AND "; | |
| 570 | 483 | |
| 571 | - if( is_numeric( $int_cod_cliente ) ) | |
| 572 | - { | |
| 573 | - $filtros .= "{$whereAnd} c.cod_cliente = '{$int_cod_cliente}'"; | |
| 574 | - $whereAnd = " AND "; | |
| 575 | - } | |
| 576 | - if( is_numeric( $int_ref_usuario_exc ) ) | |
| 577 | - { | |
| 578 | - $filtros .= "{$whereAnd} c.ref_usuario_exc = '{$int_ref_usuario_exc}'"; | |
| 579 | - $whereAnd = " AND "; | |
| 580 | - } | |
| 581 | - if( is_numeric( $int_ref_usuario_cad ) ) | |
| 582 | - { | |
| 583 | - $filtros .= "{$whereAnd} c.ref_usuario_cad = '{$int_ref_usuario_cad}'"; | |
| 584 | - $whereAnd = " AND "; | |
| 585 | - } | |
| 586 | - if( is_numeric( $int_ref_idpes ) ) | |
| 587 | - { | |
| 588 | - $filtros .= "{$whereAnd} c.ref_idpes = '{$int_ref_idpes}'"; | |
| 589 | - $whereAnd = " AND "; | |
| 590 | - } | |
| 591 | - if( is_numeric( $int_login ) ) | |
| 592 | - { | |
| 593 | - $filtros .= "{$whereAnd} c.login = '{$int_login}'"; | |
| 594 | - $whereAnd = " AND "; | |
| 595 | - } | |
| 596 | - if( is_string( $str_senha ) ) | |
| 597 | - { | |
| 598 | - $filtros .= "{$whereAnd} c.senha = '{$str_senha}'"; | |
| 599 | - $whereAnd = " AND "; | |
| 600 | - } | |
| 601 | - if( is_string( $date_data_cadastro_ini ) ) | |
| 602 | - { | |
| 603 | - $filtros .= "{$whereAnd} c.data_cadastro >= '{$date_data_cadastro_ini}'"; | |
| 604 | - $whereAnd = " AND "; | |
| 605 | - } | |
| 606 | - if( is_string( $date_data_cadastro_fim ) ) | |
| 607 | - { | |
| 608 | - $filtros .= "{$whereAnd} c.data_cadastro <= '{$date_data_cadastro_fim}'"; | |
| 609 | - $whereAnd = " AND "; | |
| 610 | - } | |
| 611 | - if( is_string( $date_data_exclusao_ini ) ) | |
| 612 | - { | |
| 613 | - $filtros .= "{$whereAnd} c.data_exclusao >= '{$date_data_exclusao_ini}'"; | |
| 614 | - $whereAnd = " AND "; | |
| 615 | - } | |
| 616 | - if( is_string( $date_data_exclusao_fim ) ) | |
| 617 | - { | |
| 618 | - $filtros .= "{$whereAnd} c.data_exclusao <= '{$date_data_exclusao_fim}'"; | |
| 619 | - $whereAnd = " AND "; | |
| 620 | - } | |
| 621 | - if( is_null( $int_ativo ) || $int_ativo ) | |
| 622 | - { | |
| 623 | - $filtros .= "{$whereAnd} c.ativo = '1'"; | |
| 624 | - $whereAnd = " AND "; | |
| 625 | - } | |
| 626 | - else | |
| 627 | - { | |
| 628 | - $filtros .= "{$whereAnd} c.ativo = '0'"; | |
| 629 | - $whereAnd = " AND "; | |
| 630 | - } | |
| 631 | - if( is_string( $str_nm_cliente ) ) | |
| 632 | - { | |
| 633 | - $filtros .= "{$whereAnd} p.nome LIKE '%{$str_nm_cliente}%'"; | |
| 634 | - $whereAnd = " AND "; | |
| 635 | - } | |
| 636 | - if ( is_numeric( $int_cod_cliente_tipo ) ) | |
| 637 | - { | |
| 638 | - $filtros .= "{$whereAnd} ct.cod_cliente_tipo = '{$int_cod_cliente_tipo}'"; | |
| 639 | - $whereAnd = " AND "; | |
| 640 | - } | |
| 641 | - if ( is_array( $int_cod_biblioteca ) ) | |
| 642 | - { | |
| 643 | - $array_biblioteca = implode(", ", $int_cod_biblioteca); | |
| 644 | - $filtros .= "{$whereAnd} b.cod_biblioteca IN ({$array_biblioteca})"; | |
| 645 | - $whereAnd = " AND "; | |
| 646 | - } | |
| 647 | - if ( is_numeric( $int_cod_biblioteca ) ) | |
| 648 | - { | |
| 649 | - $filtros .= "{$whereAnd} b.cod_biblioteca = '{$int_cod_biblioteca}'"; | |
| 650 | - $whereAnd = " AND "; | |
| 651 | - } | |
| 652 | - if ( is_numeric( $int_cod_escola ) ) | |
| 653 | - { | |
| 654 | - $filtros .= "{$whereAnd} e.cod_escola = '{$int_cod_escola}'"; | |
| 655 | - $whereAnd = " AND "; | |
| 656 | - } | |
| 657 | - if ( is_numeric( $int_cod_instituicao ) ) | |
| 658 | - { | |
| 659 | - $filtros .= "{$whereAnd} i.cod_instituicao = '{$int_cod_instituicao}'"; | |
| 660 | - $whereAnd = " AND "; | |
| 661 | - } | |
| 662 | - if( is_string( $str_suspenso ) ) { | |
| 663 | - $filtros .= "{$whereAnd} cs.data_liberacao IS NULL"; | |
| 664 | - $whereAnd = " AND "; | |
| 665 | - } | |
| 666 | - | |
| 667 | - $db = new clsBanco(); | |
| 668 | - $resultado = array(); | |
| 669 | - | |
| 670 | - $sql1 .= $filtros; /*. $this->getOrderby() . $this->getLimite();*/ | |
| 671 | - $sql2 .= $filtros; | |
| 672 | - | |
| 673 | - if(is_numeric($int_cod_escola)) | |
| 674 | - { | |
| 675 | - $this->_total = $db->CampoUnico( "SELECT count(0) FROM ( {$sql1} ) AS SUBQUERY" ); | |
| 676 | - } | |
| 677 | - else | |
| 678 | - { | |
| 679 | - $this->_total = $db->CampoUnico( "SELECT count(0) FROM ( ".$sql1." UNION ".$sql2." ) AS SUBQUERY" ); | |
| 680 | - } | |
| 681 | - | |
| 682 | - $sql2 .= $this->getOrderby() . $this->getLimite(); | |
| 683 | - | |
| 684 | - if ( is_numeric( $int_cod_escola ) ) | |
| 685 | - $sql = $sql1; | |
| 686 | - else | |
| 687 | - $sql = $sql1." UNION ".$sql2; | |
| 688 | - | |
| 689 | - $db->Consulta( $sql ); | |
| 484 | + /** | |
| 485 | + * Retorna uma lista filtrada de acordo com os argumentos. | |
| 486 | + * | |
| 487 | + * @return Array | |
| 488 | + */ | |
| 489 | + public function listaCompleta($int_cod_cliente = NULL, $int_ref_usuario_exc = NULL, | |
| 490 | + $int_ref_usuario_cad = NULL, $int_ref_idpes = NULL, $int_login = NULL, $str_senha = NULL, | |
| 491 | + $date_data_cadastro_ini = NULL, $date_data_cadastro_fim = NULL, $date_data_exclusao_ini = NULL, | |
| 492 | + $date_data_exclusao_fim = NULL, $int_ativo = 1, $str_nm_cliente = NULL, $str_suspenso = NULL, | |
| 493 | + $int_cod_cliente_tipo = NULL, $int_cod_escola = NULL, $int_cod_biblioteca = NULL, | |
| 494 | + $int_cod_instituicao = NULL) { | |
| 495 | + | |
| 496 | + $tab_adicional = ''; | |
| 497 | + $condicao = ''; | |
| 498 | + $camp_adicional = ''; | |
| 499 | + | |
| 500 | + // Executa filtragem por clientes suspensos somente quando houver registros na tabela | |
| 501 | + $clienteSuspenso = new clsPmieducarClienteSuspensao(); | |
| 502 | + $db = new clsBanco(); | |
| 503 | + | |
| 504 | + // Se suspenso não for nulo e existirem cliente suspensos, seleciona-os | |
| 505 | + // quando ainda estiverem no prazo de suspensão | |
| 506 | + if (!is_null($str_suspenso) && $db->doCountFromObj($clienteSuspenso) > 0) { | |
| 507 | + $camp_adicional .= ', pmieducar.cliente_suspensao cs '; | |
| 508 | + $condicao .= ' AND c.cod_cliente = cs.ref_cod_cliente AND | |
| 509 | + (cs.data_suspensao < current_date - cs.dias)'; | |
| 510 | + } | |
| 511 | + else { | |
| 512 | + $camp_adicional .= ', pmieducar.cliente_suspensao cs '; | |
| 513 | + $condicao .= ' AND (c.cod_cliente <> cs.ref_cod_cliente OR | |
| 514 | + (cs.data_suspensao > current_date - cs.dias))'; | |
| 515 | + } | |
| 516 | + | |
| 517 | + $sql1 = " | |
| 518 | + SELECT | |
| 519 | + c.cod_cliente, | |
| 520 | + c.ref_idpes, | |
| 521 | + c.ref_usuario_cad, | |
| 522 | + c.login, | |
| 523 | + p.nome, | |
| 524 | + ct.nm_tipo, | |
| 525 | + ct.cod_cliente_tipo, | |
| 526 | + b.nm_biblioteca, | |
| 527 | + b.cod_biblioteca, | |
| 528 | + e.cod_escola as cod_escola, | |
| 529 | + i.cod_instituicao, | |
| 530 | + (SELECT 'S'::text | |
| 531 | + FROM pmieducar.cliente_suspensao cs | |
| 532 | + WHERE cs.ref_cod_cliente = c.cod_cliente | |
| 533 | + AND cs.data_liberacao IS NULL) AS id_suspensao | |
| 534 | + FROM | |
| 535 | + pmieducar.cliente c, | |
| 536 | + pmieducar.cliente_tipo_cliente ctc, | |
| 537 | + pmieducar.cliente_tipo ct, | |
| 538 | + pmieducar.biblioteca b, | |
| 539 | + pmieducar.escola e, | |
| 540 | + pmieducar.instituicao i, | |
| 541 | + cadastro.pessoa p{$camp_adicional} | |
| 542 | + WHERE | |
| 543 | + c.cod_cliente = ctc.ref_cod_cliente | |
| 544 | + AND ct.cod_cliente_tipo = ctc.ref_cod_cliente_tipo | |
| 545 | + AND b.cod_biblioteca = ct.ref_cod_biblioteca | |
| 546 | + AND e.cod_escola = b.ref_cod_escola | |
| 547 | + AND i.cod_instituicao = b.ref_cod_instituicao | |
| 548 | + AND e.ref_cod_instituicao = i.cod_instituicao{$condicao} | |
| 549 | + AND p.idpes = c.ref_idpes | |
| 550 | + AND c.ativo = '{$int_ativo}' | |
| 551 | + AND ctc.ativo = '{$int_ativo}'"; | |
| 552 | + | |
| 553 | + $sql2 = " | |
| 554 | + SELECT | |
| 555 | + c.cod_cliente, | |
| 556 | + c.ref_idpes, | |
| 557 | + c.ref_usuario_cad, | |
| 558 | + c.login, | |
| 559 | + p.nome, | |
| 560 | + ct.nm_tipo, | |
| 561 | + ct.cod_cliente_tipo, | |
| 562 | + b.nm_biblioteca, | |
| 563 | + b.cod_biblioteca, | |
| 564 | + null as cod_escola, | |
| 565 | + i.cod_instituicao, | |
| 566 | + (SELECT 'S'::text | |
| 567 | + FROM pmieducar.cliente_suspensao cs | |
| 568 | + WHERE cs.ref_cod_cliente = c.cod_cliente | |
| 569 | + AND cs.data_liberacao IS NULL) AS id_suspensao | |
| 570 | + FROM | |
| 571 | + pmieducar.cliente c, | |
| 572 | + pmieducar.cliente_tipo_cliente ctc, | |
| 573 | + pmieducar.cliente_tipo ct, | |
| 574 | + pmieducar.biblioteca b, | |
| 575 | + pmieducar.instituicao i, | |
| 576 | + cadastro.pessoa p{$camp_adicional} | |
| 577 | + WHERE c.cod_cliente = ctc.ref_cod_cliente | |
| 578 | + AND ct.cod_cliente_tipo = ctc.ref_cod_cliente_tipo | |
| 579 | + AND b.cod_biblioteca = ct.ref_cod_biblioteca | |
| 580 | + AND i.cod_instituicao = b.ref_cod_instituicao | |
| 581 | + AND b.ref_cod_escola IS NULL | |
| 582 | + AND ct.ref_cod_biblioteca = b.cod_biblioteca{$condicao} | |
| 583 | + AND p.idpes = c.ref_idpes | |
| 584 | + AND c.ativo = '{$int_ativo}' | |
| 585 | + AND ctc.ativo = '{$int_ativo}'"; | |
| 586 | + | |
| 587 | + $filtros = ''; | |
| 588 | + $whereAnd = ' AND '; | |
| 589 | + | |
| 590 | + if (is_numeric($int_cod_cliente)) { | |
| 591 | + $filtros .= "{$whereAnd} c.cod_cliente = '{$int_cod_cliente}'"; | |
| 592 | + $whereAnd = " AND "; | |
| 593 | + } | |
| 594 | + | |
| 595 | + if (is_numeric($int_ref_usuario_exc)) { | |
| 596 | + $filtros .= "{$whereAnd} c.ref_usuario_exc = '{$int_ref_usuario_exc}'"; | |
| 597 | + $whereAnd = " AND "; | |
| 598 | + } | |
| 599 | + | |
| 600 | + if (is_numeric($int_ref_usuario_cad)) { | |
| 601 | + $filtros .= "{$whereAnd} c.ref_usuario_cad = '{$int_ref_usuario_cad}'"; | |
| 602 | + $whereAnd = " AND "; | |
| 603 | + } | |
| 604 | + | |
| 605 | + if (is_numeric($int_ref_idpes)) { | |
| 606 | + $filtros .= "{$whereAnd} c.ref_idpes = '{$int_ref_idpes}'"; | |
| 607 | + $whereAnd = " AND "; | |
| 608 | + } | |
| 609 | + | |
| 610 | + if (is_numeric($int_login)) { | |
| 611 | + $filtros .= "{$whereAnd} c.login = '{$int_login}'"; | |
| 612 | + $whereAnd = " AND "; | |
| 613 | + } | |
| 614 | + | |
| 615 | + if (is_string($str_senha)) { | |
| 616 | + $filtros .= "{$whereAnd} c.senha = '{$str_senha}'"; | |
| 617 | + $whereAnd = " AND "; | |
| 618 | + } | |
| 619 | + | |
| 620 | + if (is_string($date_data_cadastro_ini)) { | |
| 621 | + $filtros .= "{$whereAnd} c.data_cadastro >= '{$date_data_cadastro_ini}'"; | |
| 622 | + $whereAnd = " AND "; | |
| 623 | + } | |
| 624 | + | |
| 625 | + if (is_string($date_data_cadastro_fim)) { | |
| 626 | + $filtros .= "{$whereAnd} c.data_cadastro <= '{$date_data_cadastro_fim}'"; | |
| 627 | + $whereAnd = " AND "; | |
| 628 | + } | |
| 629 | + | |
| 630 | + if (is_string($date_data_exclusao_ini)) { | |
| 631 | + $filtros .= "{$whereAnd} c.data_exclusao >= '{$date_data_exclusao_ini}'"; | |
| 632 | + $whereAnd = " AND "; | |
| 633 | + } | |
| 634 | + | |
| 635 | + if (is_string($date_data_exclusao_fim)) { | |
| 636 | + $filtros .= "{$whereAnd} c.data_exclusao <= '{$date_data_exclusao_fim}'"; | |
| 637 | + $whereAnd = " AND "; | |
| 638 | + } | |
| 639 | + | |
| 640 | + if (is_null($int_ativo) || $int_ativo) { | |
| 641 | + $filtros .= "{$whereAnd} c.ativo = '1'"; | |
| 642 | + $whereAnd = " AND "; | |
| 643 | + } | |
| 644 | + else { | |
| 645 | + $filtros .= "{$whereAnd} c.ativo = '0'"; | |
| 646 | + $whereAnd = " AND "; | |
| 647 | + } | |
| 648 | + | |
| 649 | + if (is_string($str_nm_cliente)) { | |
| 650 | + $filtros .= "{$whereAnd} p.nome LIKE '%{$str_nm_cliente}%'"; | |
| 651 | + $whereAnd = " AND "; | |
| 652 | + } | |
| 653 | + | |
| 654 | + if (is_numeric($int_cod_cliente_tipo)) { | |
| 655 | + $filtros .= "{$whereAnd} ct.cod_cliente_tipo = '{$int_cod_cliente_tipo}'"; | |
| 656 | + $whereAnd = " AND "; | |
| 657 | + } | |
| 658 | + | |
| 659 | + if (is_array($int_cod_biblioteca)) { | |
| 660 | + $array_biblioteca = implode(", ", $int_cod_biblioteca); | |
| 661 | + $filtros .= "{$whereAnd} b.cod_biblioteca IN ({$array_biblioteca})"; | |
| 662 | + $whereAnd = " AND "; | |
| 663 | + } | |
| 664 | + | |
| 665 | + if (is_numeric($int_cod_biblioteca)) { | |
| 666 | + $filtros .= "{$whereAnd} b.cod_biblioteca = '{$int_cod_biblioteca}'"; | |
| 667 | + $whereAnd = " AND "; | |
| 668 | + } | |
| 669 | + | |
| 670 | + if (is_numeric($int_cod_escola)) { | |
| 671 | + $filtros .= "{$whereAnd} e.cod_escola = '{$int_cod_escola}'"; | |
| 672 | + $whereAnd = " AND "; | |
| 673 | + } | |
| 674 | + | |
| 675 | + if (is_numeric($int_cod_instituicao)) { | |
| 676 | + $filtros .= "{$whereAnd} i.cod_instituicao = '{$int_cod_instituicao}'"; | |
| 677 | + $whereAnd = " AND "; | |
| 678 | + } | |
| 679 | + | |
| 680 | + if (is_string($str_suspenso)) { | |
| 681 | + $filtros .= "{$whereAnd} cs.data_liberacao IS NULL"; | |
| 682 | + $whereAnd = " AND "; | |
| 683 | + } | |
| 684 | + | |
| 685 | + $db = new clsBanco(); | |
| 686 | + $resultado = array(); | |
| 687 | + | |
| 688 | + $sql1 .= $filtros; | |
| 689 | + $sql2 .= $filtros; | |
| 690 | + | |
| 691 | + if (is_numeric($int_cod_escola)) { | |
| 692 | + $this->_total = $db->CampoUnico("SELECT count(0) FROM ({$sql1}) AS SUBQUERY"); | |
| 693 | + } | |
| 694 | + else { | |
| 695 | + $this->_total = $db->CampoUnico("SELECT count(0) FROM (" . $sql1 . " UNION " . $sql2 . ") AS SUBQUERY"); | |
| 696 | + } | |
| 697 | + | |
| 698 | + // Aplica ordenação e limite | |
| 699 | + $sql2 .= $this->getOrderby() . $this->getLimite(); | |
| 700 | + | |
| 701 | + if (is_numeric($int_cod_escola)) { | |
| 702 | + $sql = $sql1; | |
| 703 | + } | |
| 704 | + else { | |
| 705 | + $sql = $sql1 . ' UNION ' . $sql2; | |
| 706 | + } | |
| 707 | + | |
| 708 | + $db->Consulta($sql); | |
| 709 | + | |
| 710 | + while ($db->ProximoRegistro()) { | |
| 711 | + $tupla = $db->Tupla(); | |
| 712 | + | |
| 713 | + $tupla["_total"] = $this->_total; | |
| 714 | + $resultado[] = $tupla; | |
| 715 | + } | |
| 716 | + | |
| 717 | + if (count($resultado) > 0) { | |
| 718 | + return $resultado; | |
| 719 | + } | |
| 720 | + | |
| 721 | + return FALSE; | |
| 722 | + } | |
| 690 | 723 | |
| 691 | - while ( $db->ProximoRegistro() ) | |
| 692 | - { | |
| 693 | - $tupla = $db->Tupla(); | |
| 694 | 724 | |
| 695 | - $tupla["_total"] = $this->_total; | |
| 696 | - $resultado[] = $tupla; | |
| 697 | - } | |
| 698 | - if( count( $resultado ) ) | |
| 699 | - { | |
| 700 | - return $resultado; | |
| 701 | - } | |
| 702 | - return false; | |
| 703 | - } | |
| 704 | 725 | |
| 705 | 726 | /** |
| 706 | 727 | * Retorna uma lista filtrados de acordo com os parametros |
| ... | ... | @@ -991,5 +1012,4 @@ class clsPmieducarCliente |
| 991 | 1012 | return false; |
| 992 | 1013 | } |
| 993 | 1014 | |
| 994 | -} | |
| 995 | -?> | |
| 1015 | +} | |
| 996 | 1016 | \ No newline at end of file | ... | ... |