-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit a6302e6
Showing
6 changed files
with
470 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,266 @@ | ||
# kohana-rastreador-ECT | ||
|
||
Módulo Kohana para rastreamento de pacotes nos Correios (ECT) | ||
|
||
**Autor:** Luiz Alberto | ||
|
||
**URL:** https://github.com/madeinnordeste/kohana-rastreador-ECT | ||
|
||
|
||
Kohana version: 3.3.1 | ||
|
||
Mais informacoes sobre o Webservice dos Correios em docs/Guia-Tecnico-Rastreamento-XML-Cliente-Versão-e-commerce-v-1-5.pdf | ||
|
||
|
||
##Limites | ||
|
||
* O usuario ECT e senha SRO limitam-se a dois objetos por cosulta, outros usuários podem ser obtidos através de contratocom os Correios; | ||
* O número máximo de pacotes por consulta é 50. | ||
|
||
##Classes | ||
|
||
### ECT_Pacote | ||
|
||
Objeto pacote, usado pelo rastreador para realizar a consulta dos eventos. | ||
|
||
####- __construct($numero) | ||
|
||
$pacote = new ECT_Pacote('SW614400906BR'); | ||
|
||
####- numero() | ||
|
||
Retorna o numero do pacote | ||
|
||
$pacote = new ECT_Pacote('SW614400906BR'); | ||
echo $pacote->numero(); //SW614400906BR | ||
|
||
#### -md5() | ||
|
||
Retorna o hash md5 dos eventos do pacote | ||
|
||
$pacote = new ECT_Pacote('SW614400906BR'); | ||
echo $pacote->md5(); //d5ea9cd04fe80f8fb778ad06fabefc5e | ||
|
||
|
||
|
||
####- eventos() | ||
|
||
Retorna um array com a lista de eventos do objeto, se existir | ||
|
||
Exemplo de retorno: | ||
|
||
array(2) ( | ||
0 => object stdClass(13) { | ||
public tipo => string(3) "BDE" | ||
public status => string(2) "01" | ||
public data => string(10) "24/12/2013" | ||
public hora => string(5) "14:51" | ||
public descricao => string(8) "Entregue" | ||
public recebedor => object stdClass(0) { | ||
} | ||
public documento => object stdClass(0) { | ||
} | ||
public comentario => object stdClass(0) { | ||
} | ||
public local => string(23) "CEE VILA SANTA CATARINA" | ||
public codigo => string(8) "04368970" | ||
public cidade => string(9) "SAO PAULO" | ||
public uf => string(2) "SP" | ||
public sto => string(8) "72651300" | ||
} | ||
1 => object stdClass(10) { | ||
public tipo => string(3) "OEC" | ||
public status => string(2) "01" | ||
public data => string(10) "24/12/2013" | ||
public hora => string(5) "09:51" | ||
public descricao => string(34) "Saiu para entrega ao destinatário" | ||
public local => string(23) "CEE VILA SANTA CATARINA" | ||
public codigo => string(8) "04368970" | ||
public cidade => string(9) "SAO PAULO" | ||
public uf => string(2) "SP" | ||
public sto => string(8) "72651300" | ||
} | ||
) | ||
|
||
####- evento($index=0) | ||
|
||
Retorna o evento com $index do objeto, se existir | ||
|
||
Exemplo de retorno: | ||
|
||
object stdClass(13) { | ||
public tipo => string(3) "BDE" | ||
public status => string(2) "01" | ||
public data => string(10) "24/12/2013" | ||
public hora => string(5) "14:51" | ||
public descricao => string(8) "Entregue" | ||
public recebedor => object stdClass(0) {} | ||
public documento => object stdClass(0) {} | ||
public comentario => object stdClass(0) {} | ||
public local => string(23) "CEE VILA SANTA CATARINA" | ||
public codigo => string(8) "04368970" | ||
public cidade => string(9) "SAO PAULO" | ||
public uf => string(2) "SP" | ||
public sto => string(8) "72651300" | ||
} | ||
|
||
####- ultimo_evento() | ||
|
||
Retorna o último evento do pacote, se existir | ||
|
||
####- primeiro_evento() | ||
|
||
Retorna o primeiro evento do pacote, se existir | ||
|
||
### ECT_Rastreador | ||
|
||
Objeto rastreador de pacotes | ||
|
||
####- __counstruct($pacotes) | ||
|
||
Adicionar um pacote através do construtor: | ||
|
||
$pacote1 = new ECT_Pacote('SW614400906BR'); | ||
$rastreador = new ECT_Rastreador($pacote1); | ||
|
||
Adicionar uma lista de pacotes através do construtor: | ||
|
||
$pacote1 = new ECT_Pacote('SW614400906BR'); | ||
$pacote2 = new ECT_Pacote('SW624400906BR'); | ||
$pacote3 = new ECT_Pacote('SW634400906BR'); | ||
$pacotes = array($pacote1, $pacote2, $pacote3); | ||
$rastreador = new ECT_Rastreador($pacotes); | ||
|
||
|
||
####- add_pacote($pacotes = array()) | ||
|
||
Adiciona um objeto ECT_Pacote ao rastreador ou um array contendo objetos ECT_Pacotes | ||
|
||
Adicionar um pacote: | ||
|
||
$pacote = new ECT_Pacote('SW614400906BR'); | ||
$rastreador = new ECT_Rastreador; | ||
$rastreador->add_pacote($pacote); | ||
|
||
Adicionar uma lista de pacotes: | ||
|
||
$pacote = new ECT_Pacote('SW614400906BR'); | ||
$pacote2 = new ECT_Pacote('SW624400906BR'); | ||
$pacote3 = new ECT_Pacote('SW634400906BR'); | ||
$pacotes = array($pacote1, $pacote2, $pacote3); | ||
$rastreador = new ECT_Rastreador; | ||
$rastreador->add_pacote($pacotes); | ||
|
||
|
||
####- consultar() | ||
|
||
Realiza a consulta dos eventos do(s) pacotes contidos no rastreador. Insere esses eventos em cada pacote. | ||
|
||
$pacote = new ECT_Pacote('SW614400906BR'); | ||
$rastreador = new ECT_Rastreador($pacote); | ||
$rastreador->consultar(); | ||
|
||
####- pacotes() | ||
|
||
Retorna uma lista (Array) com os pacotes contidos no rastreador | ||
|
||
$pacote = new ECT_Pacote('SW614400906BR'); | ||
$rastreador = new ECT_Rastreador($pacote); | ||
$rastreador->consultar(); | ||
$pacotes = $rastreador->pacotes(); | ||
|
||
Exemplo de retorno: | ||
|
||
array(2) ( | ||
"SW914400906BR" => object ECT_Pacote(4) { | ||
protected numero => string(13) "SW914400906BR" | ||
protected json => string(1547) "[{"tipo":"BDE",…" | ||
protected json_md5 => string(32) "d5ea9cd04fe80f8fb778ad06fabefc5e" | ||
protected eventos => array(6) ( | ||
0 => object stdClass(13) { | ||
public tipo => string(3) "BDE" | ||
public status => string(2) "01" | ||
public data => string(10) "24/12/2013" | ||
public hora => string(5) "14:51" | ||
public descricao => string(8) "Entregue" | ||
public recebedor => object stdClass(0) { | ||
} | ||
public documento => object stdClass(0) { | ||
} | ||
public comentario => object stdClass(0) { | ||
} | ||
public local => string(23) "CEE VILA SANTA CATARINA" | ||
public codigo => string(8) "04368970" | ||
public cidade => string(9) "SAO PAULO" | ||
public uf => string(2) "SP" | ||
public sto => string(8) "72651300" | ||
} | ||
) | ||
} | ||
"SW914401331BR" => object ECT_Pacote(4) { | ||
protected numero => string(13) "SW914401331BR" | ||
protected json => string(1548) "[{"tipo":"BDE" …" | ||
protected json_md5 => string(32) "7173e94c3f23bb80fb95ed9a14778f11" | ||
protected eventos => array(6) ( | ||
0 => object stdClass(13) { | ||
public tipo => string(3) "BDE" | ||
public status => string(2) "01" | ||
public data => string(10) "24/12/2013" | ||
public hora => string(5) "17:28" | ||
public descricao => string(8) "Entregue" | ||
public recebedor => object stdClass(0) { | ||
} | ||
public documento => object stdClass(0) { | ||
} | ||
public comentario => object stdClass(0) { | ||
} | ||
public local => string(12) "CDD BARREIRO" | ||
public codigo => string(8) "30647970" | ||
public cidade => string(14) "BELO HORIZONTE" | ||
public uf => string(2) "MG" | ||
public sto => string(8) "20420005" | ||
} | ||
) | ||
} | ||
) | ||
|
||
|
||
|
||
##Exemplo completo | ||
|
||
Realizar a consulta de dois pacotes: | ||
|
||
$pacote1 = new ECT_Pacote('SW614400906BR'); | ||
$pacote2 = new ECT_Pacote('SW614401331BR'); | ||
$pacotes = array($pacote, $pacote2); | ||
|
||
$rastreador = new ECT_Rastreador($pacotes); | ||
|
||
$rastreador->consultar(); | ||
|
||
$lista_de_pacotes = $rastreador->pacotes(); | ||
|
||
//percorre todos os pacotes | ||
foreach($lista_de_pacotes as $pacote){ | ||
//numero do pacote | ||
echo Debug::vars($pacote->numero()); | ||
//hash md5 dos eventos do pacote | ||
echo Debug::vars($pacote->numero()); | ||
//ultimo evento do pacote | ||
echo Debug::vars($pacote->ultimo_evento()); | ||
//primeiro evento do pacote | ||
echo Debug::vars($pacote->primeiro_evento()); | ||
//eventos do pacote | ||
echo Debug::vars($pacote->eventos()); | ||
//penultimo evento do pacote | ||
echo Debug::vars($pacote->evento(1)); | ||
|
||
} | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
<?php defined('SYSPATH') OR die('No direct script access.'); | ||
|
||
class ECT_Base{ | ||
|
||
public function set($var, $value){ | ||
$this->$var = $value; | ||
return $this; | ||
} | ||
|
||
public function get($var){ | ||
return $this->$var; | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
<?php defined('SYSPATH') OR die('No direct script access.'); | ||
|
||
class ECT_Pacote extends ECT_Base{ | ||
|
||
protected $numero; | ||
protected $json; | ||
protected $json_md5; | ||
protected $eventos; | ||
|
||
public function __construct($numero=NULL){ | ||
$this->numero = $numero; | ||
} | ||
|
||
public function numero(){ | ||
return $this->numero; | ||
} | ||
|
||
public function md5(){ | ||
return $this->json_md5; | ||
} | ||
|
||
public function importar_json_eventos($json){ | ||
$this->json = $json; | ||
$this->json_md5 = md5($json); | ||
$this->eventos = json_decode($json); | ||
} | ||
|
||
public function eventos(){ | ||
return $this->eventos; | ||
} | ||
|
||
public function evento($index=0){ | ||
return isset($this->eventos[$index]) ? $this->eventos[$index] : NULL; | ||
} | ||
|
||
public function ultimo_evento(){ | ||
return $this->evento(0); | ||
} | ||
|
||
public function primeiro_evento(){ | ||
return $this->evento( (sizeof($this->eventos) - 1) ); | ||
|
||
} | ||
|
||
} |
Oops, something went wrong.