* * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo * sob os termos da Licença Pública Geral GNU conforme publicada pela Free * Software Foundation; tanto a versão 2 da Licença, como (a seu critério) * qualquer versão posterior. * * Este programa é distribuí­do na expectativa de que seja útil, porém, SEM * NENHUMA GARANTIA; nem mesmo a garantia implí­cita de COMERCIABILIDADE OU * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral * do GNU para mais detalhes. * * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto * com este programa; se não, escreva para a Free Software Foundation, Inc., no * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. * * @author Prefeitura Municipal de Itajaí * @category i-Educar * @license @@license@@ * @package iEd_Pessoa * @since Arquivo disponível desde a versão 1.0.0 * @version $Id$ */ require_once 'include/clsBanco.inc.php'; require_once 'include/Geral.inc.php'; /** * clsEnderecoExterno class. * * @author Prefeitura Municipal de Itajaí * @category i-Educar * @license @@license@@ * @package iEd_Pessoa * @since Classe disponível desde a versão 1.0.0 * @version @@package_version@@ */ class clsEnderecoExterno { var $idpes; var $idpes_cad; var $idpes_rev; var $tipo; var $idtlog; var $logradouro; var $numero; var $letra; var $complemento; var $bairro; var $cep; var $cidade; var $sigla_uf; var $reside_desde; var $bloco; var $apartamento; var $andar; var $zona_localizacao; var $tabela; var $schema = 'cadastro'; /** * Construtor. */ function clsEnderecoExterno($idpes = FALSE, $tipo = FALSE, $idtlog = FALSE, $logradouro = FALSE, $numero = FALSE, $letra = FALSE, $complemento = FALSE, $bairro = FALSE, $cep = FALSE, $cidade = FALSE, $sigla_uf = FALSE, $reside_desde = FALSE, $bloco = FALSE, $apartamento = FALSE, $andar = FALSE, $idpes_cad = FALSE, $idpes_rev = FALSE, $zona_localizacao = 1) { $idtlog = urldecode($idtlog); $objPessoa = new clsPessoa_($idpes); if ($objPessoa->detalhe()) { $this->idpes = $idpes; } $this->tipo = $tipo; $objTipoLog = new clsTipoLogradouro($idtlog); if ($objTipoLog->detalhe()) { $this->idtlog = $idtlog; } $this->logradouro = pg_escape_string($logradouro); $this->numero = $numero; $this->letra = $letra; $this->complemento = pg_escape_string($complemento); $this->bairro = pg_escape_string($bairro); $this->cep = $cep; $this->cidade = pg_escape_string($cidade); $objSiglaUf = new clsUf($sigla_uf); if ($objPessoa->detalhe()) { $this->sigla_uf = $sigla_uf; } $this->idpes_cad = $idpes_cad ? $idpes_cad : $_SESSION['id_pessoa']; $this->idpes_rev = $idpes_rev ? $idpes_rev : $_SESSION['id_pessoa']; $this->reside_desde = $reside_desde; $this->bloco = $bloco; $this->apartamento = $apartamento; $this->andar = $andar; $this->zona_localizacao = $zona_localizacao; $this->tabela = 'endereco_externo'; } /** * Cria um novo registro. * @return bool */ function cadastra() { $db = new clsBanco(); if ( is_numeric($this->tipo) && is_string($this->idtlog) && is_string($this->logradouro) && is_string($this->cidade) && is_string($this->sigla_uf) && is_numeric($this->idpes_cad)) { $campos = ''; $values = ''; if (is_numeric($this->numero)) { $campos .= ', numero'; $values .= ", '{$this->numero}'"; } if (is_string($this->letra)) { $campos .= ', letra'; $values .= ", '{$this->letra}'"; } if (is_string($this->complemento)) { $campos .= ', complemento'; $values .= ", '{$this->complemento}'"; } if (is_string($this->bairro)) { $campos .= ', bairro'; $values .= ", '{$this->bairro}'"; } if ($this->cep) { $campos .= ', cep'; $values .= ", '{$this->cep}'"; } if (is_string($this->reside_desde)) { $campos .= ', reside_desde'; $values .= ", '{$this->reside_desde}'"; } if (is_string($this->bloco)) { $campos .= ', bloco'; $values .= ", '{$this->bloco}'"; } if (is_numeric($this->apartamento)) { $campos .= ', apartamento'; $values .= ", '{$this->apartamento}'"; } if (is_numeric($this->andar)) { $campos .= ', andar'; $values .= ", '{$this->andar}'"; } if (is_numeric($this->zona_localizacao)) { $campos .= ', zona_localizacao'; $values .= ", '{$this->zona_localizacao}'"; } $sql = sprintf( 'INSERT INTO %s.%s (idpes, tipo, idtlog, logradouro, cidade, sigla_uf, ' . 'origem_gravacao, idsis_cad, data_cad, operacao, idpes_cad %s) ' . 'VALUES (\'%d\', 1, \'%s\', \'%s\', \'%s\', \'%s\', \'M\', 17, NOW(), \'I\', \'%d\' %s)', $this->schema, $this->tabela, $campos, $this->idpes, $this->idtlog, $this->logradouro, $this->cidade, $this->sigla_uf, $this->idpes_cad, $values ); $db->Consulta($sql); return TRUE; } return FALSE; } /** * Edita os dados de um registro. * @return bool */ function edita() { if ( is_numeric($this->tipo) && is_string($this->idtlog) && is_string($this->logradouro) && is_string($this->cidade) && is_string($this->sigla_uf) && is_numeric($this->idpes_rev) ) { $set = sprintf( 'SET tipo = \'%d\', idtlog = \'%s\', logradouro = \'%s\', cidade = \'%s\', sigla_uf = \'%s\'', $this->tipo, $this->idtlog, $this->logradouro, $this->cidade, $this->sigla_uf ); if (is_numeric($this->numero)) { $set .= ", numero = '{$this->numero}'"; } else { $set .= ", numero = NULL"; } if (is_string($this->letra)) { $set .= ", letra = '{$this->letra}'"; } else { $set .= ", letra = NULL"; } if (is_string($this->complemento)) { $set .= ", complemento = '{$this->complemento}'"; } else { $set .= ", complemento = NULL"; } if (is_string($this->bairro)) { $set .= ", bairro = '{$this->bairro}'"; } else { $set .= ", bairro = NULL"; } if (is_numeric($this->cep)) { $set .= ", cep = '{$this->cep}'"; } else { $set .= ", cep = NULL"; } if (is_string($this->reside_desde)) { $set .= ", reside_desde = '{$this->reside_desde}'"; } else { $set .= ", reside_desde = NULL"; } if (is_string($this->bloco)) { $set .= ", bloco = '{$this->bloco}'"; } else { $set .= ", bloco = NULL"; } if (is_numeric($this->apartamento)) { $set .= ", apartamento = '{$this->apartamento}'"; } else { $set .= ", apartamento = NULL"; } if (is_numeric($this->andar)) { $set .= ", andar = '{$this->andar}'"; } else { $set .= ", andar = NULL"; } if (is_numeric($this->zona_localizacao)) { $set .= ", zona_localizacao = '{$this->zona_localizacao}'"; } if (is_numeric($this->idpes_rev)) { $set .= ", idpes_rev = '$this->idpes_rev'"; } $sql = sprintf( 'UPDATE %s.%s %s WHERE idpes = \'%d\' AND tipo = 1', $this->schema, $this->tabela, $set, $this->idpes ); $db = new clsBanco(); $db->Consulta($sql); return TRUE; } return FALSE; } /** * Exclui um registro. * @return bool */ function exclui() { if (is_numeric($this->idpes)) { $db = new clsBanco(); $db->Consulta(sprintf( 'DELETE FROM %s.%s WHERE idpes = \'%d\'', $this->schema, $this->tabela, $this->idpes )); return TRUE; } return FALSE; } /** * Retorna uma lista de registros filtrados de acordo com os parâmetros. * @return array */ function lista($str_idtlog = FALSE, $str_logradouro = FALSE, $int_numero = FALSE, $str_letra = FALSE, $str_complemento = FALSE, $str_bairro = FALSE, $int_cep = FALSE, $str_cidade = FALSE, $sigla_uf = FALSE, $str_reside_desde = FALSE, $str_bloco = FALSE, $int_apartamento = FALSE, $int_andar = FALSE, $int_limite_ini = 0, $int_limite_qtd = 20, $str_orderBy = FALSE, $int_idpes = FALSE, $zona_localizacao = NULL ) { $whereAnd = ' WHERE '; if (is_string($int_idpes)) { $where .= "{$whereAnd}idpes IN ({$int_idpes})"; $whereAnd = ' AND '; } if (is_string($str_idtlog)) { $where .= "{$whereAnd}idtlog LIKE '%$str_idtlog%'"; $whereAnd = ' AND '; } if (is_string($str_logradouro)) { $where .= "{$whereAnd}logradouro LIKE '%$str_logradouro%'"; $whereAnd = ' AND '; } if (is_numeric($int_numero)) { $where .= "{$whereAnd}numero = '$int_numero'"; $whereAnd = ' AND '; } if (is_string($str_letra)) { $where .= "{$whereAnd}letra LIKE '%$str_letra%'"; $whereAnd = ' AND '; } if (is_string($str_complemento)) { $where .= "{$whereAnd}complemento LIKE '%$str_complemento%'"; $whereAnd = ' AND '; } if (is_string($str_bairro)) { $where .= "{$whereAnd}bairro LIKE '%$str_bairro%'"; $whereAnd = ' AND '; } if (is_numeric($int_cep)) { $where .= "{$whereAnd}cep = '$int_cep'"; $whereAnd = ' AND '; } if (is_string($str_cidade)) { $where .= "{$whereAnd}cidade LIKE '%$str_cidade%'"; $whereAnd = ' AND '; } if (is_string($sigla_uf)) { $where .= "{$whereAnd}sigla_uf LIKE '%$sigla_uf%'"; $whereAnd = ' AND '; } if (is_string($str_reside_desde)) { $where .= "{$whereAnd}reside_desde LIKE '%$str_reside_desde%'"; $whereAnd = ' AND '; } if (is_string($str_bloco)) { $where .= "{$whereAnd}bloco = '$str_bloco'"; $whereAnd = ' AND '; } if (is_numeric($int_apartamento)) { $where .= "{$whereAnd}apartamento = '$int_apartamento'"; $whereAnd = ' AND '; } if (is_numeric($int_andar)) { $where .= "{$whereAnd}andar = '$int_andar'"; $whereAnd = ' AND '; } if (is_numeric($zona_localizacao)) { $where .= "{$whereAnd}zona_localizacao = '$zona_localizacao'"; $whereAnd = ' AND '; } if ($str_orderBy) { $orderBy = "ORDER BY $str_orderBy"; } $limit = ''; if (is_numeric($int_limite_ini) && is_numeric($int_limite_qtd)) { $limit = " LIMIT $int_limite_ini, $int_limite_qtd"; } $db = new clsBanco(); $db->Consulta("SELECT COUNT(0) AS total FROM {$this->schema}.{$this->tabela} $where"); $db->ProximoRegistro(); $total = $db->Campo('total'); $sql = sprintf( 'SELECT idpes, tipo, idtlog, logradouro, numero, letra, complemento, ' . 'bairro, cep, cidade, sigla_uf, reside_desde, bloco, apartamento, ' . 'andar, zona_localizacao FROM %s.%s %s %s %s', $this->schema, $this->tabela, $where, $orderBy, $limit ); $db->Consulta($sql); $resultado = array(); while ($db->ProximoRegistro()) { $tupla = $db->Tupla(); $tupla['idpes'] = new clsPessoa_($tupla["idpes"]); $tupla['idtlog'] = new clsTipoLogradouro($tupla['idtlog']); $tupla['sigla_uf'] = new clsUf($tupla['sigla_uf']); $tupla['total'] = $total; $resultado[] = $tupla; } if (count($resultado)) { return $resultado; } return FALSE; } /** * Retorna um array com os dados de um registro * @return array */ function detalhe() { if ($this->idpes) { $db = new clsBanco(); $sql = sprintf( 'SELECT idpes, tipo, idtlog, logradouro, numero, letra, complemento, ' . 'bairro, cep, cidade, sigla_uf, reside_desde, bloco, apartamento, '. 'andar, zona_localizacao FROM %s.%s WHERE idpes = %d', $this->schema, $this->tabela, $this->idpes ); $db->Consulta($sql); if ($db->ProximoRegistro()) { $tupla = $db->Tupla(); $this->idpes = $tupla['idpes']; $this->tipo = $tupla['tipo']; $this->idtlog = $tupla['idtlog']; $this->logradouro = $tupla['logradouro']; $this->numero = $tupla['numero']; $this->letra = $tupla['letra']; $this->complemento = $tupla['complemento']; $this->bairro = $tupla['bairro']; $this->cep = $tupla['cep']; $this->cidade = $tupla['cidade']; $this->sigla_uf = $tupla['sigla_uf']; $this->reside_desde = $tupla['reside_desde']; $this->bloco = $tupla['bloco']; $this->apartamento = $tupla['apartamento']; $this->andar = $tupla['andar']; $this->zona_localizacao = $tupla['zona_localizacao']; $tupla['idpes'] = new clsPessoa_($tupla['idpes']); $tupla['idtlog'] = new clsTipoLogradouro($tupla['idtlog']); $tupla['sigla_uf'] = new clsUf($tupla['sigla_uf']); return $tupla; } } return FALSE; } /** * Retorna um array com os dados de um registro. * @return array */ function existe() { if (is_numeric($this->idpes)) { $db = new clsBanco(); $sql = sprintf( 'SELECT 1 FROM %s.%s WHERE idpes = %d', $this->schema, $this->tabela, $this->idpes ); $db->Consulta($sql); $db->ProximoRegistro(); return $db->Tupla(); } return FALSE; } }