Yii 1.1: yii-correios

Busca por um determinado endereço usando o CEP
7 followers

Busca por um determinado endereço usando o CEP. A busca é realizada diretamente no website dos correios

Links

Instação e configuração

Copie a extensão para o diretório de extensões de sua aplicação: extensions/correios

Adicione no arquivo de configuração de sua aplicação o seguinte código.

<?php
    array(
        ...
        'components'=>array(
            'buscaPorCep'=>array(
                'class'=>'ext.correios.BuscaPorCepApp'
            ),
        ...
    );
?>

Adicione no seu controller:

<?php
    public function actions()
    {
        return array(
            'buscaPorCep'=>'ext.correios.actions.BuscaPorCepAction'
        );
    }
?>

Como usar

Adione na view:

<?php echo CHtml::button("Buscar endereço", array("id"=>"btnBuscarCep")); ?>
 
<?php $this->widget('ext.correios.BuscaPorCep', array(
    'target'=>'#btnBuscarCep',
    'model'=>$modelEndereco,
    'attribute'=>'cep',
    'url'=>'/seu_controller/buscaPorCep',
    'config'=>array(
        'location'=>'logradouro',
        'district'=>'bairro',
        'city'=>'cidade',
        'state'=>'estado',
    ),
)); ?>

Total 5 comments

#19825 report it
Huntz at 2016/04/06 01:38am
Fix URL 404

Usei essa extensão por dois anos, infelizmente a URL fonte foi removida.

Então fiz essa correção no BuscaPorCepApp.php

public function run($postalCode)
{
    $postalCode = str_replace('-', '', $postalCode);
    if( empty($postalCode) || strlen($postalCode) != 8 ){
        $out = $this->fieldsMap;
        $out['result_text'] = Yii::t('BuscaPorCepApp.correios', 'Invalid postcode.');
        $out['result'] = 0; 
        return $out;
    }else{
        $out = $this->parseWS($postalCode);
    }
    return $out;
}

/**
 * Realiza parse do WS dos Correios.
 * @param string $cep
 */
protected function parseWS($postalCode)
{
    $soap = new SoapClient('https://apps.correios.com.br/SigepMasterJPA/AtendeClienteService/AtendeCliente?wsdl');
    $soapArgs = array(
        'cep'  => $postalCode
    );
    $result = $soap->consultaCEP($soapArgs);   

    $out['location']    = $result->return->end;
    $out['district']    = $result->return->bairro;
    $out['city']        = $result->return->cidade;
    $out['state']       = $result->return->uf;
    $out['result']      = 1;
    $out['result_text'] = Yii::t('BuscaPorCepApp.correios', 'Address found.');

    return $out;
}
#14404 report it
Darlecio Almeida at 2013/08/08 10:42pm
Parabéns!!

Excelente trabalho.. funciona 100% .. . uma pequena observação: poderia colocar um Loanding... Ou um Mensagem apos concluído a pesquisa.

Abração.

#12669 report it
Rodrigo Coelho at 2013/04/04 10:16am
Liked

That's a very nice idea, Wanderson. Thanks!

#12630 report it
Newerton at 2013/04/02 08:44am
Parabéns

Ótima contribuição!

#12629 report it
Gustavo Andrade at 2013/04/02 08:32am
Very Good!

Excellent contribution my friend!

Leave a comment

Please to leave your comment.

Create extension