From a842dd57663e540d4c2c67b5503333b072d746d6 Mon Sep 17 00:00:00 2001 From: Caroline Salib Date: Fri, 20 Nov 2015 19:59:09 -0200 Subject: [PATCH] Correções e melhorias na sessão de endereçamento da pessoa física; Portabilis/ieducar#549 --- ieducar/intranet/atendidos_cad.php | 25 ++++++++++++++++++------- ieducar/intranet/educar_pesquisa_cep_log_bairro.php | 31 ++++++++----------------------- ieducar/intranet/educar_pesquisa_cep_log_bairro2.php | 346 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ieducar/modules/Cadastro/Assets/Javascripts/Endereco.js | 330 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ieducar/modules/Cadastro/Assets/Javascripts/PessoaFisica.js | 292 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 5 files changed, 703 insertions(+), 321 deletions(-) create mode 100644 ieducar/intranet/educar_pesquisa_cep_log_bairro2.php create mode 100644 ieducar/modules/Cadastro/Assets/Javascripts/Endereco.js diff --git a/ieducar/intranet/atendidos_cad.php b/ieducar/intranet/atendidos_cad.php index 0edf5f3..79bda66 100755 --- a/ieducar/intranet/atendidos_cad.php +++ b/ieducar/intranet/atendidos_cad.php @@ -698,7 +698,7 @@ class indice extends clsCadastro // Caso o cep j esteja definido, os campos j vem desbloqueados inicialmente $desativarCamposDefinidosViaCep = empty($this->cep); - $this->campoRotulo('','Enderaamento', 'Digite um cep ou clique na lupa para busca avanada'); + $this->campoRotulo('',' Endereamento', '', '', 'Digite um CEP ou clique na lupa para
busca avanada para comear'); $this->campoCep( 'cep_', @@ -706,7 +706,7 @@ class indice extends clsCadastro $this->cep, $enderecamentoObrigatorio, '-', - " ');\">", + " ');\">", false ); @@ -719,12 +719,12 @@ class indice extends clsCadastro $helperOptions = array('hiddenInputOptions' => array('options' => array('value' => $this->bairro_id))); - $options = array( 'label' => Portabilis_String_Utils::toLatin1('Bairro / Zona de Localizao - Buscar'), 'required' => $enderecamentoObrigatorio, 'disabled' => $desativarCamposDefinidosViaCep); + $options = array( 'label' => Portabilis_String_Utils::toLatin1('Bairro / Zona de Localizao - Buscar'), 'required' => $enderecamentoObrigatorio, 'disabled' => $desativarCamposDefinidosViaCep); $this->inputsHelper()->simpleSearchBairro('bairro', $options, $helperOptions); $options = array( - 'label' => 'Bairro / Zona de Localizao - Cadastrar', + 'label' => 'Bairro / Zona de Localizao - Cadastrar', 'placeholder' => 'Bairro', 'value' => $this->bairro, 'max_length' => 40, @@ -755,14 +755,14 @@ class indice extends clsCadastro $helperOptions = array('hiddenInputOptions' => array('options' => array('value' => $this->logradouro_id))); - $options = array('label' => 'Tipo / Logradouro - Buscar', 'required' => $enderecamentoObrigatorio, 'disabled' => $desativarCamposDefinidosViaCep); + $options = array('label' => 'Tipo / Logradouro - Buscar', 'required' => $enderecamentoObrigatorio, 'disabled' => $desativarCamposDefinidosViaCep); $this->inputsHelper()->simpleSearchLogradouro('logradouro', $options, $helperOptions); // tipo logradouro $options = array( - 'label' => 'Tipo / Logradouro - Cadastrar', + 'label' => 'Tipo / Logradouro - Cadastrar', 'value' => $this->idtlog, 'disabled' => $desativarCamposDefinidosViaCep, 'inline' => true, @@ -895,8 +895,19 @@ class indice extends clsCadastro Portabilis_View_Helper_Application::loadStylesheet($this, $styles); - $script = '/modules/Cadastro/Assets/Javascripts/PessoaFisica.js'; + $script = array('/modules/Cadastro/Assets/Javascripts/PessoaFisica.js', + '/modules/Cadastro/Assets/Javascripts/Endereco.js'); Portabilis_View_Helper_Application::loadJavascript($this, $script); + + $this->campoCep( + 'cep_', + 'CEP', + $this->cep, + $enderecamentoObrigatorio, + '-', + " ');\">", + false + ); } function Novo() { diff --git a/ieducar/intranet/educar_pesquisa_cep_log_bairro.php b/ieducar/intranet/educar_pesquisa_cep_log_bairro.php index 8d6c125..b47fb54 100644 --- a/ieducar/intranet/educar_pesquisa_cep_log_bairro.php +++ b/ieducar/intranet/educar_pesquisa_cep_log_bairro.php @@ -131,7 +131,7 @@ class miolo1 extends clsListagem // consulta dados $pre_select = ' SELECT - c.idlog, c.cep, c.idbai, u.sigla_uf, m.nome, t.idtlog, m.idmun, b.zona_localizacao, t.descricao '; + c.idlog, c.cep, c.idbai, u.sigla_uf, m.nome, t.idtlog, m.idmun, b.zona_localizacao '; $select = ' FROM @@ -176,7 +176,7 @@ class miolo1 extends clsListagem $result = Portabilis_Utils_Database::fetchPreparedQuery($pre_select.$select, array('params' => array_values($params))); foreach ($result as $record) { - list($idlog, $cep, $idbai, $uf, $cidade, $tipoLogradouroId, $id_mun, $zona, $descricao) = $record; + list($idlog, $cep, $idbai, $uf, $cidade, $tipoLogradouroId, $id_mun, $zona) = $record; $cidade = addslashes($cidade); @@ -193,15 +193,15 @@ class miolo1 extends clsListagem $url = sprintf( '%%s', - $_SESSION['campo1'], $bairro.' / Zona'.$zona, $_SESSION['campo2'], + $_SESSION['campo1'], $bairro, $_SESSION['campo2'], $idbai, $_SESSION['campo3'], $cep, - $_SESSION['campo4'], $descricao." ".$logradouro, + $_SESSION['campo4'], $logradouro, $_SESSION['campo5'], $idlog, - '', '', '', '', - '', '', '', '', - $_SESSION['campo10'], $cep2, $_SESSION['campo11'], $id_mun.' - '.$cidade.' ('.$uf.')', + $_SESSION['campo6'], $uf, $_SESSION['campo7'], $cidade, + $_SESSION['campo8'], $tipoLogradouroId, $_SESSION['campo9'], $s_end, + $_SESSION['campo10'], $cep2, $_SESSION['campo11'], $uf, $_SESSION['campo12'], $_SESSION['campo13'], $id_mun, - '', '' + $_SESSION['campo14'], $zona ); $this->addLinhas(array( @@ -408,19 +408,4 @@ function liberaCamposOuvidoria() window.parent.fechaExpansivel('div_dinamico_' + (parent.DOM_divs.length * 1 - 1)); } -function liberaCampos(){ - - parent.document.getElementById('municipio_municipio').disabled = false; - parent.document.getElementById('bairro_bairro').disabled = false; - parent.document.getElementById('logradouro_logradouro').disabled = false; - parent.document.getElementById('logradouro').disabled = false; - parent.document.getElementById('bairro').disabled = false; - parent.document.getElementById('idtlog').disabled = false; - parent.document.getElementById('zona_localizacao').disabled = false; - parent.document.getElementById('logradouro').value = ''; - parent.document.getElementById('bairro').value = ''; - parent.document.getElementById('idtlog').value = ''; - parent.document.getElementById('zona_localizacao').value = ''; - -} \ No newline at end of file diff --git a/ieducar/intranet/educar_pesquisa_cep_log_bairro2.php b/ieducar/intranet/educar_pesquisa_cep_log_bairro2.php new file mode 100644 index 0000000..a6ef243 --- /dev/null +++ b/ieducar/intranet/educar_pesquisa_cep_log_bairro2.php @@ -0,0 +1,346 @@ + + * + * 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_Pmieducar + * @since Arquivo disponível desde a versão 1.0.0 + * @version $Id$ + */ +require_once 'include/clsBase.inc.php'; +require_once 'include/clsListagem.inc.php'; +/** + * clsIndex class. + * + * @author Prefeitura Municipal de Itajaí + * @category i-Educar + * @license @@license@@ + * @package iEd_Pmieducar + * @since Classe disponível desde a versão 1.0.0 + * @version @@package_version@@ + */ +class clsIndex extends clsBase +{ + function Formular() + { + $this->SetTitulo($this->_instituicao . ' i-Educar - Listagem de Ruas'); + $this->processoAp = 0; + $this->renderMenu = FALSE; + $this->renderMenuSuspenso = FALSE; + } +} +/** + * miolo1 class. + * + * @author Prefeitura Municipal de Itajaí + * @category i-Educar + * @license @@license@@ + * @package iEd_Pmieducar + * @since Classe disponível desde a versão 1.0.0 + * @version @@package_version@@ + */ +class miolo1 extends clsListagem +{ + var $funcao_js = 'cv_libera_campos(\'cep_\', \'ref_sigla_uf_\', \'cidade\', \'nm_bairro\', \'ref_idtlog\', \'nm_logradouro\', \'isEnderecoExterno\', \'zona_localizacao\')'; + function Gerar() + { + global $coreExt; + @session_start(); + $_SESSION['campo1'] = $_GET['campo1'] ? $_GET['campo1'] : $_SESSION['campo1']; + $_SESSION['campo2'] = $_GET['campo2'] ? $_GET['campo2'] : $_SESSION['campo2']; + $_SESSION['campo3'] = $_GET['campo3'] ? $_GET['campo3'] : $_SESSION['campo3']; + $_SESSION['campo4'] = $_GET['campo4'] ? $_GET['campo4'] : $_SESSION['campo4']; + $_SESSION['campo5'] = $_GET['campo5'] ? $_GET['campo5'] : $_SESSION['campo5']; + $_SESSION['campo6'] = $_GET['campo6'] ? $_GET['campo6'] : $_SESSION['campo6']; + $_SESSION['campo7'] = $_GET['campo7'] ? $_GET['campo7'] : $_SESSION['campo7']; + $_SESSION['campo8'] = $_GET['campo8'] ? $_GET['campo8'] : $_SESSION['campo8']; + $_SESSION['campo9'] = $_GET['campo9'] ? $_GET['campo9'] : $_SESSION['campo9']; + $_SESSION['campo10'] = $_GET['campo10'] ? $_GET['campo10'] : $_SESSION['campo10']; + $_SESSION['campo11'] = $_GET['campo11'] ? $_GET['campo11'] : $_SESSION['campo11']; + $_SESSION['campo12'] = $_GET['campo12'] ? $_GET['campo12'] : $_SESSION['campo12']; + $_SESSION['campo13'] = $_GET['campo13'] ? $_GET['campo13'] : $_SESSION['campo13']; + $_SESSION['campo14'] = $_GET['campo14'] ? $_GET['campo14'] : $_SESSION['campo14']; + $this->nome = 'form1'; + $this->funcao_js = sprintf( + 'cv_libera_campos(\'%s\', \'%s\', \'%s\', \'%s\', \'%s\', \'%s\', \'%s\', \'%s\')', + $_SESSION['campo10'], $_SESSION['campo11'], $_SESSION['campo7'], + $_SESSION['campo1'], $_SESSION['campo12'], $_SESSION['campo4'], + $_SESSION['campo9'], $_SESSION['campo14'] + ); + $this->titulo = 'Endereço'; + // Paginador + $limite = 7; + $iniciolimit = $_GET['pagina_' . $this->nome] ? + ($_GET['pagina_' . $this->nome] * $limite - $limite) : 0; + // Filtros + $this->campoTexto('nm_bairro', 'Bairro', $_GET['nm_bairro'], 40, 255); + $this->campoCep('nr_cep', 'CEP', $_GET['nr_cep']); + $this->campoTexto('nm_logradouro', 'Logradouro', $_GET['nm_logradouro'], 50, 255); + $this->campoTexto('cidade', 'Cidade', $_GET['cidade'], 60, 60); + // uf + $defaultProvince = isset($_GET['ref_sigla_uf']) ? $_GET['ref_sigla_uf'] : $coreExt['Config']->app->locale->province; + $options = array( + 'required' => false, + 'label' => 'Estado', + 'value' => $defaultProvince + ); + $helperOptions = array( + 'attrName' => 'ref_sigla_uf' + ); + $this->inputsHelper()->uf($options, $helperOptions); + $this->addCabecalhos(array('Bairro', 'CEP', 'Logradouro', 'UF', 'Cidade')); + // consulta dados + $pre_select = ' + SELECT + c.idlog, c.cep, c.idbai, u.sigla_uf, m.nome, t.idtlog, m.idmun, b.zona_localizacao, t.descricao '; + + $select = ' + FROM + urbano.cep_logradouro_bairro c, public.bairro b, public.logradouro l, + public.municipio m, public.uf u, urbano.tipo_logradouro t + WHERE + c.idlog = l.idlog AND + c.idbai = b.idbai AND + l.idmun = b.idmun AND + l.idmun = m.idmun AND + l.idtlog = t.idtlog AND + m.sigla_uf = u.sigla_uf'; + $params = array(); + if (isset($_GET['nr_cep'])) + $params['c.cep'] = idFederal2int($_GET['nr_cep']); + if (isset($_GET['nm_bairro'])) + $params['b.nome'] = $_GET['nm_bairro']; + if (isset($_GET['nm_logradouro'])) + $params['l.nome'] = $_GET['nm_logradouro']; + if (isset($_GET['ref_sigla_uf'])) + $params['u.sigla_uf'] = $_GET['ref_sigla_uf']; + if (isset($_GET['cidade'])) + $params['m.nome'] = $_GET['cidade']; + $paramCount = 1; + foreach ($params as $name => $value) { + $select .= " AND $name ILIKE '%'||\$$paramCount||'%'"; + $paramCount++; + } + $total = Portabilis_Utils_Database::selectField(' SELECT COUNT(0) '.$select, array('params' => array_values($params))); + $select .= sprintf(' LIMIT %s OFFSET %s', $limite, $iniciolimit); + $result = Portabilis_Utils_Database::fetchPreparedQuery($pre_select.$select, array('params' => array_values($params))); + + foreach ($result as $record) { + list($idlog, $cep, $idbai, $uf, $cidade, $tipoLogradouroId, $id_mun, $zona, $descricao) = $record; + $cidade = addslashes($cidade); + $logradouro = new clsLogradouro($idlog); + $logradouro = $logradouro->detalhe(); + $logradouro = addslashes($logradouro['nome']); + $bairro = new clsBairro($idbai); + $bairro = $bairro->detalhe(); + $bairro = addslashes($bairro['nome']); + $cep2 = int2CEP($cep); + $s_end = '0'; + $url = sprintf( + '%%s', + $_SESSION['campo1'], $bairro.' / Zona'.$zona, $_SESSION['campo2'], + $idbai, $_SESSION['campo3'], $cep, + $_SESSION['campo4'], $descricao." ".$logradouro, + $_SESSION['campo5'], $idlog, + '', '', '', '', + '', '', '', '', + $_SESSION['campo10'], $cep2, $_SESSION['campo11'], $id_mun.' - '.$cidade.' ('.$uf.')', + $_SESSION['campo12'], $_SESSION['campo13'], $id_mun, + '', '' + ); + $this->addLinhas(array( + sprintf($url, $bairro), + sprintf($url, $cep2), + sprintf($url, $logradouro), + sprintf($url, $uf), + sprintf($url, $cidade) + )); + } + $this->largura = '100%'; + $this->addPaginador2('educar_pesquisa_cep_log_bairro.php', $total, $_GET, + $this->nome, $limite); + +/* + if ($_GET['param']) { + $this->rodape = ' + + + + +
+ +
'; + } + else { + $this->rodape = sprintf(' + + + + +
+ +
', + $this->funcao_js + ); + }*/ + @session_write_close(); + } +} +// Instancia objeto de página +$pagina = new clsIndex(); +// Instancia objeto de conteúdo +$miolo = new miolo1(); +// Atribui o conteúdo à página +$pagina->addForm($miolo); +// Gera o código HTML +$pagina->MakeAll(); +?> + \ No newline at end of file diff --git a/ieducar/modules/Cadastro/Assets/Javascripts/Endereco.js b/ieducar/modules/Cadastro/Assets/Javascripts/Endereco.js new file mode 100644 index 0000000..b7e1938 --- /dev/null +++ b/ieducar/modules/Cadastro/Assets/Javascripts/Endereco.js @@ -0,0 +1,330 @@ +// --------------------------------- SCRIPTS ENDEREÇAMENTO ---------------------------------------- // + + $j('') .html('Não sei meu CEP') + .attr('target', '_blank') + .css('color', 'blue') + .css('margin-left', '10px') + .attr('href', 'http://www.buscacep.correios.com.br/servicos/dnec/menuAction.do?Metodo=menuLogradouro') + .appendTo($j('#cep_').closest('td')); + +function hideEnderecoFields(){ + if($j('#cep_').val()){ + + if ($j('#bairro_id').val()) + bloqueiaCadastroBairro(); + else + bloqueiaBuscaBairro(); + + if ($j('#logradouro_id').val()) + bloqueiaCadastroLogradouro(); + else + bloqueiaBuscaLogradouro(); + + }else{ + + $j('#bairro').closest('tr').hide(); + $j('#logradouro').closest('tr').hide(); + } +} + +function preenchaCampoCepPrimeiro(){ + messageUtils.error('Digite um CEP primeiro...'); +} + + +// Campo CEP + +var handleGetCep = function(dataResponse) { + + if (dataResponse['cep']){ + $j('#municipio_id').val(dataResponse['idmun']); + $j('#municipio_municipio').val(dataResponse['idmun'] + ' - ' + dataResponse['nome'] + ' (' + dataResponse['sigla_uf'] + ')'); + $j('#bairro_id').val(dataResponse['idbai']); + $j('#bairro_bairro').val(dataResponse['nome_bairro']+' / Zona '+(dataResponse['zona_localizacao'] == 1 ? 'Urbana' : 'Rural')); + $j('#logradouro_id').val(dataResponse['idlog']); + $j('#logradouro_logradouro').val(dataResponse['tipo_logradouro']+' '+dataResponse['nome_logradouro']); + + }else{ + $j('#municipio_id').val(''); + $j('#municipio_municipio').val(''); + $j('#bairro_id').val(''); + $j('#bairro_bairro').val(''); + $j('#logradouro_id').val(''); + $j('#logradouro_logradouro').val(''); + } + + $j('#municipio_municipio').removeAttr('disabled'); + $j('#bairro_bairro').removeAttr('disabled'); + $j('#logradouro_logradouro').removeAttr('disabled'); + $j('#bairro').removeAttr('disabled'); + $j('#zona_localizacao').removeAttr('disabled'); + $j('#idtlog').removeAttr('disabled'); + $j('#logradouro').removeAttr('disabled'); + bloqueiaCadastroBairro(); + bloqueiaCadastroLogradouro(); + fixUpPlaceholderEndereco(); +} + +// Caso cep seja válido dispara ajax para recuperar dados do primeiro cep encontrado +var searchCep = function() { + + var cep = $j('#cep_').val(); + + if (checkCepFields(cep)) { + + var additionalVars = { + cep : cep, + }; + + var options = { + url : getResourceUrlBuilder.buildUrl('/module/Api/endereco', 'primeiro_endereco_cep', additionalVars), + dataType : 'json', + data : {}, + success : handleGetCep + }; + + getResource(options); + }else + clearEnderecoFields(); + +} +// Ao digitar um cep inválido todos os campos de endereçamento são bloqueados e limpados +function clearEnderecoFields(){ + $j('#bairro').attr('disabled','disabled'); + $j('#zona_localizacao').attr('disabled','disabled'); + $j('#bairro_bairro').attr('disabled','disabled'); + $j('#logradouro_logradouro').attr('disabled','disabled'); + $j('#idtlog').attr('disabled','disabled'); + $j('#logradouro').attr('disabled','disabled'); + $j('#municipio_municipio').attr('disabled','disabled'); + $j('#bairro').val(''); + $j('#zona_localizacao').val(''); + $j('#bairro_bairro').val(''); + $j('#logradouro_logradouro').val(''); + $j('#idtlog').val(''); + $j('#logradouro').val(''); + $j('#bairro_id').val(''); + $j('#logradouro_id').val(''); + $j('#municipio_municipio').val(''); + $j('#municipio_id').val(''); +} +// Verifica se o formato do cep é válido +function checkCepFields(cep) { + var regexp = /[0-9]{5}\-[0-9]{3}/; + var valid = regexp.test(cep); + return valid; +} + +// Eventos que escondem//apagam campos não usados na alternância entre cadastro/busca +function bloqueiaCadastroBairro(){ + if (checkCepFields($j('#cep_').val())){ + $j('#bairro').closest('tr').hide(); + $j('#bairro_bairro').closest('tr').show(); + $j('#zona_localizacao').val(''); + $j('#bairro').val(''); + } + else + preenchaCampoCepPrimeiro(); +} + +function bloqueiaBuscaBairro(){ + if (checkCepFields($j('#cep_').val())){ + $j('#bairro_bairro').closest('tr').hide(); + $j('#bairro').closest('tr').show(); + $j('#bairro').val($j('#bairro_bairro').val()); + $j('#bairro_bairro').val(''); + $j('#bairro_id').val(''); + } + else + preenchaCampoCepPrimeiro(); +} + +function bloqueiaCadastroLogradouro(){ + if (checkCepFields($j('#cep_').val())){ + $j('#idtlog').closest('tr').hide(); + $j('#logradouro_logradouro').closest('tr').show(); + $j('#idtlog').val(''); + $j('#logradouro').val(''); + }else + preenchaCampoCepPrimeiro(); +} + +function bloqueiaBuscaLogradouro(){ + if (checkCepFields($j('#cep_').val())){ + $j('#logradouro_logradouro').closest('tr').hide(); + $j('#idtlog').closest('tr').show(); + $j('#logradouro').val($j('#logradouro_logradouro').val()); + $j('#logradouro_logradouro').val(''); + $j('#logradouro_id').val(''); + }else{ + preenchaCampoCepPrimeiro(); + } +} + +// Dispara evento para buscar CEP quando o mesmo for preenchido sem utilizar a lupa +$j('#cep_').keyup(searchCep); +$j('#cep_').change(searchCep); + +// Limpa campos logradouro e bairro simpleSearch +function clearLogradouroAndBairroFields(){ + $j('#logradouro_logradouro').val(''); + $j('#logradouro_id').val(''); + $j('#bairro_bairro').val(''); + $j('#bairro_id').val(''); +} + +// Adiciona links para Informar/Atualizar troca entre cadastro ou busca +function addLinksEnderecamento(){ + $j('') .html('ou cadastre um novo bairro') + .attr('id', 'span-busca-bairro') + .css('color','blue') + .css('margin-left','5px') + .css('cursor','pointer') + .addClass('decorated') + .appendTo($j('#bairro_bairro').closest('td')); + + $j('').html('ou busque um bairro existente') + .attr('id', 'span-cad-bairro') + .css('color','blue') + .css('margin-left','5px') + .css('cursor','pointer') + .addClass('decorated') + .appendTo($j('#zona_localizacao').closest('td')); + + $j('').html('ou cadastre um novo logradouro') + .attr('id', 'span-busca-logradouro') + .css('color','blue') + .css('margin-left','5px') + .css('cursor','pointer') + .addClass('decorated') + .appendTo($j('#logradouro_logradouro').closest('td')); + + $j('').html('ou busque logradouro existente') + .attr('id', 'span-cad-logradouro') + .css('color','blue') + .css('margin-left','5px') + .css('cursor','pointer') + .addClass('decorated') + .appendTo($j('#idtlog').closest('td')); +} + +addLinksEnderecamento(); + +function desativaAutoComplete(){ + + $j('#logradouro').attr('autocomplete', 'off'); + $j('#bairro').attr('autocomplete', 'off'); + $j('#cep_').attr('autocomplete', 'off'); + +} + +desativaAutoComplete(); + +// Dispara evento para alterar entre Cadastro/Busca +$j('#span-busca-bairro').click(bloqueiaBuscaBairro); +$j('#span-cad-bairro').click(bloqueiaCadastroBairro); +$j('#span-busca-logradouro').click(bloqueiaBuscaLogradouro); +$j('#span-cad-logradouro').click(bloqueiaCadastroLogradouro); + +// Altera zebrado para não interferir quando for trocado entre cadastro/busca de bairro/logradouro +function alteraZebradoEnderacamento(){ + if ($j('#bairro').closest('td').hasClass('formmdtd')) + $j('#bairro').closest('tr').find('td').toggleClass('formmdtd formlttd'); + else + $j('#bairro').closest('tr').find('td').toggleClass('formlttd formmdtd'); + + if ($j('#logradouro_logradouro').closest('td').hasClass('formmdtd')) + $j('#logradouro_logradouro').closest('tr').find('td').toggleClass('formmdtd formlttd'); + else + $j('#logradouro_logradouro').closest('tr').find('td').toggleClass('formlttd formmdtd'); +} + +alteraZebradoEnderacamento(); + +// Correções para apagarem o valor do campo ID quando for deletado o valor do simpleSearch +$j('#municipio_municipio').keyup( function(){ + if ($j('#municipio_municipio').val() == '') + $j('#municipio_id').val('').trigger('change'); +}); + +$j('#bairro_bairro').focusout( function(){ + if ($j('#bairro_bairro').val() == '') + $j('#bairro_id').val(''); +}); + +$j('#logradouro_logradouro').focusout( function(){ + if ($j('#logradouro_logradouro').val() == '') + $j('#logradouro_id').val(''); +}); + +/* Como os campos SimpleSearchBairro e SimpleSearchLogradouro dependem do valor do municipio_id, + quando o mesmo for alterado dispara um evento para apagar esses campos dependentes */ +$j('#municipio_id').change(clearLogradouroAndBairroFields); + +function fixUpPlaceholderEndereco(){ + $j('#municipio_municipio').attr('placeholder' , 'Digite o nome de um munic\u00edpio para buscar'); + $j('#bairro_bairro').attr('placeholder' , 'Digite o nome de um bairro para buscar'); + $j('#logradouro_logradouro').attr('placeholder' , 'Digite o nome de um logradouro para buscar'); + $j('#bairro').attr('placeholder' , 'Digite o nome do novo bairro'); + $j('#logradouro').attr('placeholder' , 'Digite o nome do novo logradouro'); +} + +function validateEndereco(){ + + var err = false; + + if (!$j('#municipio_id').val()){ + $j('#municipio_municipio').addClass('error'); + $j('#municipio_id').addClass('error'); + messageUtils.error('Selecione um município corretamente'); + err = true; + } + + if ($j('#logradouro_logradouro').closest('tr').is(':visible')){ + + if (!$j('#logradouro_id').val()){ + $j('#logradouro_logradouro').addClass('error'); + $j('#logradouro_id').addClass('error'); + messageUtils.error('Selecione um logradouro ou utilize a opção ao lado para cadastrar um novo.'); + err = true; + } + }else{ + if (!$j('#logradouro').val()){ + $j('#logradouro').addClass('error'); + messageUtils.error('Digite o nome do logradouro.'); + err = true; + } + if (!$j('#idtlog').val()){ + $j('#idtlog').addClass('error'); + messageUtils.error('Selecione o tipo do logradouro.'); + err = true; + } + } + if ($j('#bairro_bairro').closest('tr').is(':visible')){ + if (!$j('#bairro_id').val()){ + $j('#bairro_bairro').addClass('error'); + $j('#bairro_id').addClass('error'); + messageUtils.error('Selecione um bairro ou utilize a opção ao lado para cadastrar um novo.'); + err = true; + } + + }else{ + + if (!$j('#bairro').val()){ + $j('#bairro').addClass('error'); + messageUtils.error('Digite o nome do bairro.'); + err = true; + } + + if (!$j('#zona_localizacao').val()){ + $j('#zona_localizacao').addClass('error'); + messageUtils.error('Selecione a zona de localização.'); + err = true; + } + } + + return !err; + +} + +// --------------------------------- FIM SCRIPTS ENDEREÇAMENTO ---------------------------------------- // \ No newline at end of file diff --git a/ieducar/modules/Cadastro/Assets/Javascripts/PessoaFisica.js b/ieducar/modules/Cadastro/Assets/Javascripts/PessoaFisica.js index 09dab17..2adedaf 100644 --- a/ieducar/modules/Cadastro/Assets/Javascripts/PessoaFisica.js +++ b/ieducar/modules/Cadastro/Assets/Javascripts/PessoaFisica.js @@ -165,7 +165,6 @@ var validatesUniquenessOfCpf = function() { var submitForm = function(event) { if ($j('#cep_').val()){ if (!validateEndereco()){ - alert('Preencha os campos de endera\u00e7amento corretamente.') return; } } @@ -295,293 +294,4 @@ var simpleSearchMaeOptions = { }; $paiNomeField.focusout(changeVisibilityOfLinksToPessoaPai); -$maeNomeField.focusout(changeVisibilityOfLinksToPessoaMae); - -// --------------------------------- SCRIPTS ENDEREÇAMENTO ---------------------------------------- // - -function hideEnderecoFields(){ - if($j('#cep_').val()){ - - if ($j('#bairro_id').val()) - bloqueiaCadastroBairro(); - else - bloqueiaBuscaBairro(); - - if ($j('#logradouro_id').val()) - bloqueiaCadastroLogradouro(); - else - bloqueiaBuscaLogradouro(); - - }else{ - - $j('#bairro').closest('tr').hide(); - $j('#logradouro').closest('tr').hide(); - } -} - - -// Campo CEP - -var handleGetCep = function(dataResponse) { - - if (dataResponse['cep']){ - $j('#municipio_id').val(dataResponse['idmun']); - $j('#municipio_municipio').val(dataResponse['idmun'] + ' - ' + dataResponse['nome'] + ' (' + dataResponse['sigla_uf'] + ')'); - $j('#bairro_id').val(dataResponse['idbai']); - $j('#bairro_bairro').val(dataResponse['nome_bairro']+' / Zona '+(dataResponse['zona_localizacao'] == 1 ? 'Urbana' : 'Rural')); - $j('#logradouro_id').val(dataResponse['idlog']); - $j('#logradouro_logradouro').val(dataResponse['tipo_logradouro']+' '+dataResponse['nome_logradouro']); - - }else{ - $j('#municipio_id').val(''); - $j('#municipio_municipio').val(''); - $j('#bairro_id').val(''); - $j('#bairro_bairro').val(''); - $j('#logradouro_id').val(''); - $j('#logradouro_logradouro').val(''); - } - - $j('#municipio_municipio').removeAttr('disabled'); - $j('#bairro_bairro').removeAttr('disabled'); - $j('#logradouro_logradouro').removeAttr('disabled'); - $j('#bairro').removeAttr('disabled'); - $j('#zona_localizacao').removeAttr('disabled'); - $j('#idtlog').removeAttr('disabled'); - $j('#logradouro').removeAttr('disabled'); - bloqueiaCadastroBairro(); - bloqueiaCadastroLogradouro(); - fixUpPlaceholderEndereco(); -} - -// Caso cep seja válido dispara ajax para recuperar dados do primeiro cep encontrado -var searchCep = function() { - - var cep = $j('#cep_').val(); - - if (checkCepFields(cep)) { - var additionalVars = { - cep : cep, - }; - - var options = { - url : getResourceUrlBuilder.buildUrl('/module/Api/endereco', 'primeiro_endereco_cep', additionalVars), - dataType : 'json', - data : {}, - success : handleGetCep - }; - - getResource(options); - }else - clearEnderecoFields(); - -} -// Ao digitar um cep inválido todos os campos de endereçamento são bloqueados e limpados -function clearEnderecoFields(){ - $j('#bairro').attr('disabled','disabled'); - $j('#zona_localizacao').attr('disabled','disabled'); - $j('#bairro_bairro').attr('disabled','disabled'); - $j('#logradouro_logradouro').attr('disabled','disabled'); - $j('#idtlog').attr('disabled','disabled'); - $j('#logradouro').attr('disabled','disabled'); - $j('#municipio_municipio').attr('disabled','disabled'); - $j('#bairro').val(''); - $j('#zona_localizacao').val(''); - $j('#bairro_bairro').val(''); - $j('#logradouro_logradouro').val(''); - $j('#idtlog').val(''); - $j('#logradouro').val(''); - $j('#bairro_id').val(''); - $j('#logradouro_id').val(''); - $j('#municipio_municipio').val(''); - $j('#municipio_id').val(''); -} -// Verifica se o formato do cep é válido -function checkCepFields(cep) { - var regexp = /[0-9]{5}\-[0-9]{3}/; - var valid = regexp.test(cep); - return valid; -} - -// Eventos que escondem//apagam campos não usados na alternância entre cadastro/busca -function bloqueiaCadastroBairro(){ - if (checkCepFields($j('#cep_').val())){ - $j('#bairro').closest('tr').hide(); - $j('#bairro_bairro').closest('tr').show(); - $j('#zona_localizacao').val(''); - $j('#bairro').val(''); - } -} - -function bloqueiaBuscaBairro(){ - if (checkCepFields($j('#cep_').val())){ - $j('#bairro_bairro').closest('tr').hide(); - $j('#bairro').closest('tr').show(); - $j('#bairro_bairro').val(''); - $j('#bairro_id').val(''); - } -} - -function bloqueiaCadastroLogradouro(){ - if (checkCepFields($j('#cep_').val())){ - $j('#idtlog').closest('tr').hide(); - $j('#logradouro_logradouro').closest('tr').show(); - $j('#idtlog').val(''); - $j('#logradouro').val(''); - } -} - -function bloqueiaBuscaLogradouro(){ - if (checkCepFields($j('#cep_').val())){ - $j('#logradouro_logradouro').closest('tr').hide(); - $j('#idtlog').closest('tr').show(); - $j('#logradouro_logradouro').val(''); - $j('#logradouro_id').val(''); - } -} - -// Dispara evento para buscar CEP quando o mesmo for preenchido sem utilizar a lupa -$j('#cep_').keyup(searchCep); -$j('#cep_').change(searchCep); - -// Limpa campos logradouro e bairro simpleSearch -function clearLogradouroAndBairroFields(){ - $j('#logradouro_logradouro').val(''); - $j('#logradouro_id').val(''); - $j('#bairro_bairro').val(''); - $j('#bairro_id').val(''); -} - -// Adiciona links para Informar/Atualizar troca entre cadastro ou busca -function addLinksEnderecamento(){ - $j('') .html('ou cadastre um novo bairro') - .attr('id', 'span-busca-bairro') - .css('color','blue') - .css('margin-left','5px') - .addClass('decorated') - .appendTo($j('#bairro_bairro').closest('td')); - - $j('').html('ou busque um bairro existente') - .attr('id', 'span-cad-bairro') - .css('color','blue') - .css('margin-left','5px') - .addClass('decorated') - .appendTo($j('#zona_localizacao').closest('td')); - - $j('').html('ou cadastre um novo logradouro') - .attr('id', 'span-busca-logradouro') - .css('color','blue') - .css('margin-left','5px') - .addClass('decorated') - .appendTo($j('#logradouro_logradouro').closest('td')); - - $j('').html('ou busque logradouro existente') - .attr('id', 'span-cad-logradouro') - .css('color','blue') - .css('margin-left','5px') - .addClass('decorated') - .appendTo($j('#idtlog').closest('td')); -} - -addLinksEnderecamento(); - -// Dispara evento para alterar entre Cadastro/Busca -$j('#span-busca-bairro').click(bloqueiaBuscaBairro); -$j('#span-cad-bairro').click(bloqueiaCadastroBairro); -$j('#span-busca-logradouro').click(bloqueiaBuscaLogradouro); -$j('#span-cad-logradouro').click(bloqueiaCadastroLogradouro); - -// Altera zebrado para não interferir quando for trocado entre cadastro/busca de bairro/logradouro -function alteraZebradoEnderacamento(){ - if ($j('#bairro').closest('td').hasClass('formmdtd')) - $j('#bairro').closest('tr').find('td').toggleClass('formmdtd formlttd'); - else - $j('#bairro').closest('tr').find('td').toggleClass('formlttd formmdtd'); - - if ($j('#logradouro_logradouro').closest('td').hasClass('formmdtd')) - $j('#logradouro_logradouro').closest('tr').find('td').toggleClass('formmdtd formlttd'); - else - $j('#logradouro_logradouro').closest('tr').find('td').toggleClass('formlttd formmdtd'); -} - -alteraZebradoEnderacamento(); - -// Correções para apagarem o valor do campo ID quando for deletado o valor do simpleSearch -$j('#municipio_municipio').keyup( function(){ - if ($j('#municipio_municipio').val() == '') - $j('#municipio_id').val('').trigger('change'); -}); - -$j('#bairro_bairro').focusout( function(){ - if ($j('#bairro_bairro').val() == '') - $j('#bairro_id').val(''); -}); - -$j('#logradouro_logradouro').focusout( function(){ - if ($j('#logradouro_logradouro').val() == '') - $j('#logradouro_id').val(''); -}); - -/* Como os campos SimpleSearchBairro e SimpleSearchLogradouro dependem do valor do municipio_id, - quando o mesmo for alterado dispara um evento para apagar esses campos dependentes */ -$j('#municipio_id').change(clearLogradouroAndBairroFields); - -function fixUpPlaceholderEndereco(){ - $j('#municipio_municipio').attr('placeholder' , 'Digite o nome de um munic\u00edpio para buscar'); - $j('#bairro_bairro').attr('placeholder' , 'Digite o nome de um bairro para buscar'); - $j('#logradouro_logradouro').attr('placeholder' , 'Digite o nome de um logradouro para buscar'); - $j('#bairro').attr('placeholder' , 'Digite o nome do novo bairro'); - $j('#logradouro').attr('placeholder' , 'Digite o nome do novo logradouro'); -} - -function validateEndereco(){ - - var err = false; - - if (!$j('#municipio_id').val()){ - $j('#municipio_municipio').addClass('error'); - $j('#municipio_id').addClass('error'); - err = true; - } - - if ($j('#logradouro_logradouro').closest('tr').is(':visible')){ - - if (!$j('#logradouro_id').val()){ - $j('#logradouro_logradouro').addClass('error'); - $j('#logradouro_id').addClass('error'); - err = true; - } - }else{ - if (!$j('#logradouro').val()){ - $j('#logradouro').addClass('error'); - err = true; - } - if (!$j('#idtlog').val()){ - $j('#idtlog').addClass('error'); - err = true; - } - } - if ($j('#bairro_bairro').closest('tr').is(':visible')){ - if (!$j('#bairro_id').val()){ - $j('#bairro_bairro').addClass('error'); - $j('#bairro_id').addClass('error'); - err = true; - } - - }else{ - - if (!$j('#bairro').val()){ - $j('#bairro').addClass('error'); - err = true; - } - - if (!$j('#zona_localizacao').val()){ - $j('#zona_localizacao').addClass('error'); - err = true; - } - } - - return !err; - -} - -// --------------------------------- FIM SCRIPTS ENDEREÇAMENTO ---------------------------------------- // +$maeNomeField.focusout(changeVisibilityOfLinksToPessoaMae); \ No newline at end of file -- libgit2 0.21.2