PHP

Você está em: Home » Desenvolvimento » PHP » Behavior com métodos dos Correios

« Voltar

Behavior com métodos dos Correios

21 de April de 2009 - 19:35


Após criar o plugin para validações de itens brasileiros, duas funçõezinhas para verificar itens dos Correios.

O código está junto do projeto Cake PT-BR, no GitHub.

Similar ao Behavior de Validação, as funções dos Correios foram colocadas dentro de um Behavior. O nome dele é Correios (sugestivo :-) ). Nesse behavior há dois métodos:

  • valorFrete: calcula o valor do frete. Parâmetros:
    • servico: define o tipo de serviço que será feito. Os valores válidos são através das constantes: CORREIOS_SEDEX, CORREIOS_SEDEX_A_COBRAR, CORREIOS_SEDEX_10, CORREIOS_SEDEX_HOJE, CORREIOS_E_SEDEX, CORREIOS_ENCOMENDA_NORMAL, CORREIOS_PAC.
    • cepOrigem: Cep de origem no formato XXXXX-XXX.
    • cepDestino: Cep de destino no formato XXXXX-XXX.
    • peso: Peso, em quilos, do item a ser transportado. O valor deve ser um número e não deve ultrapassar 30.
    • maoPropria:(opcional. Padrão falso) Valor boleano para indicar se o transporte é com mão prórpria.
    • valorDeclarado: (opcional. Padrão 0.00) Valor do item a ser transportado.
    • avisoRecebimento: (opcional. Padrão falso) Calculo com aviso de recebimento.

    O retorno será negativo em caso de erro, que podem ser as constantes:

    • ERRO_CORREIOS_PARAMETROS_INVALIDOS: Um ou mais parâmetros com formato ou conteúdo inválido.
    • ERRO_CORREIOS_EXCESSO_PESO: Peso acima do limite (30 Kg).
    • ERRO_CORREIOS_FALHA_COMUNICACAO: Problema de comunicação com o site dos Correios.
    • ERRO_CORREIOS_CONTEUDO_INVALIDO: O conteúdo retornado pelo Correios não é o esperado.

    Em caso de sucesso, será retornado um array com os seguintes indices:

    • ufOrigem: UF da Origem
    • ufDestino: UF do Destino
    • capitalOrigem: Valor booleano indicando se a origem é considerada capital
    • capitalDestino: Valor booleando indicando se o destino é considerado capital
    • valorMaoPropria: Valor, em reais, da mão própria
    • valorTarifaValorDeclarado: Valor da tarifa pelo valor declarado
    • valorFrete: Valor apenas do frente, sem incluir os valores de mão própria e tarifa do valor declarado
    • valorTotal: Soma de todos os valores anteriores
  • endereco: Informa o endereço baseado em algum CEP. O único parâmetro é o CEP no formato XXXXX-XXX. Os valores de retorno podem ser as constantes ERRO_CORREIOS_PARAMETROS_INVALIDOS, ERRO_CORREIOS_FALHA_COMUNICACAO ou ERRO_CORREIOS_CONTEUDO_INVALIDO em caso de erro. Em caso de sucesso, o retorno será um array com os indices logradouro, bairro, cidade e uf.

Bem, agora vamos aos códigos. Um exemplo usando o behavior:

?View Code PHP
class Correios extends AppModel { var $name = 'Correios'; var $useTable = false; var $actsAs = array('CakeBr.Correios');
  function frete($cepDestino) { // Supondo que é uma loja que transporta produtos pequenos (até 1Kg) return $this->valorFrete(CORREIOS_SEDEX, Configure::read('Loja.CEP'), $cepDestino, 1.0); }
}
 
// Outro caso
class Endereco extends AppModel { var $name = 'Endereco'; var $actsAs = array('CakeBr.Correios');
  function beforeSave($options) { $endereco = $this->endereco($this->data['Endereco']['CEP']); if ($endereco < 0) { return false; } $this->data['Endereco'] = array_merge($this->data['Endereco'], $endereco); // Aqui serão incluídas as informações de logradouro, bairro, cidade e uf. }
}

Qualquer dúvida, estamos aí.

Fonte: CakePHP Brasil

O que você achou deste conteúdo?

  • Bom
  • Ruim
 

  • del.icio.us
  • Digg
  • reddit
  • StumbleUpon
  • Technorati
 

Comentários (0)

Comente

 

Trocar imagem

 

Importante: Os comentários publicados através deste website são de exclusiva e integral responsabilidade de seus autores.

publicidade

Fonte

CakePHP Brasil

CakePHP Brasil

Comunidade CakePHP brasileira

publicidade

IMD Auditoria