Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class CronotacografoController extends Controller {
- public function __construct() {
- }
- private function formataDataBrParaEn($data) {
- $tmp = explode("/", $data);
- if (strlen($tmp[2]) == 2) {
- if ($tmp[2] > 50) {
- // ano maior que 50 entendese que é antes do ano 2000
- $tmp[2] = "19{$tmp[2]}";
- } else {
- // ano menos que 50 entendese que é depois do ano 2000
- $tmp[2] = "20{$tmp[2]}";
- }
- }
- return implode('-', array_reverse($tmp));
- }
- private function crawler($placa) {
- $curl = curl_init();
- curl_setopt_array($curl, array(
- CURLOPT_URL => "http://www.inmetro.rs.gov.br/app/inmetromobileapi/consulta_cronotacografo.php",
- CURLOPT_RETURNTRANSFER => true,
- CURLOPT_POST => true,
- CURLOPT_POSTFIELDS => "placa={$placa}&veiculo_situacao=A",
- CURLOPT_PROXYUSERPWD => 'fabrika162:fabrika162',
- CURLOPT_PROXY => '196.18.198.23:31849',
- CURLOPT_PROXYTYPE => CURLPROXY_HTTP,
- CURLOPT_HTTPHEADER => array(
- "Host: www.inmetro.rs.gov.br",
- "Connection: keep-alive",
- "Accept: application/json",
- "Origin: http://localhost:8080",
- "User-Agent: Mozilla/5.0 (Linux; Android 5.1.1; A5010 Build/LMY48Z) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/39.0.0.0 Mobile Safari/537.36",
- "Content-Type: application/x-www-form-urlencoded;charset=UTF-8",
- "Referer: http://localhost:8080/",
- "X-Requested-With: io.ionic.starter",
- ),
- ));
- $response = curl_exec($curl);
- $err = curl_error($curl);
- $info = curl_getinfo($curl);
- curl_close($curl);
- if (in_array($info['http_code'], [200, 201]) && !$err && !empty($response)) {
- return (object) ['success' => true, "data" => json_decode($response)];
- } else {
- return (object) ['success' => false, "msg" => $err, "data" => ['info' => $info, "response" => $response]];
- }
- }
- public function consulta($placa) {
- $cronotacografo = $this->crawler($placa);
- if ($cronotacografo->success) {
- $result = [];
- if (!empty($cronotacografo->data)) {
- foreach ($cronotacografo->data as $item) {
- $tmp = [
- "gru_tipo" => "",
- "ensaio_uf" => "-",
- "gru_valor" => "",
- "gru_numero" => "",
- "leitura_uf" => "-",
- "selagem_uf" => $item->POSTO_UF,
- "crono_marca" => $item->DS_INSTRUMENTO_MARCA,
- "crono_serie" => $item->NR_SERIE,
- "leitura_obs" => "-",
- "veiculo_ano" => "",
- "veiculo_aro" => $item->VEICULO_ARO,
- "certificados" => [
- [
- "situacao" => (strtotime($this->formataDataBrParaEn($item->DATA_VALIDADE)) >= time() ? "ativo" : "vencido"),
- "documento" => "CERTIFICADO",
- "protocolo" => "",
- "data_validade" => $this->formataDataBrParaEn($item->DATA_VALIDADE),
- "data_documento" => $this->formataDataBrParaEn($item->DATA_DOCUMENTO),
- "numero_documento" => $item->DOCUMENTO
- ],
- ],
- "crono_modelo" => $item->DS_INSTRUMENTO_MODELO,
- "ensaio_posto" => "-",
- "leitura_data" => $this->formataDataBrParaEn($item->DATA_DOCUMENTO) . " 00:00",
- "resultado_uf" => $item->POSTO_UF,
- "selagem_data" => "",
- "veiculo_pneu" => $item->VEICULO_PNEU,
- "crono_redutor" => "-",
- "ensaio_padrao" => "",
- "veiculo_marca" => $item->VEICULO_MARCA,
- "veiculo_placa" => $item->DS_PLACA,
- "leitura_imagem" => " ",
- "veiculo_chassi" => $item->DS_CHASSI,
- "veiculo_modelo" => $item->VEICULO_MODELO,
- "veiculo_renavam" => $item->NR_RENAVAM,
- "crono_constante_k" => "",
- "gru_data_documento" => "",
- "gru_data_pagamento" => "",
- "leitura_velocidade" => "",
- "gru_data_vencimento" => "",
- "leitura_responsavel" => "",
- "resultado_documento" => $item->DS_CERTIFICADO,
- "selagem_responsavel" => "",
- "ensaio_data_validado" => "",
- "ensaio_data_realizado" => "",
- "ensaio_velocidade_max" => "",
- "resultado_responsavel" => "",
- "ensaio_data_modificado" => "",
- "resultado_data_emissao" => $this->formataDataBrParaEn($item->DATA_DOCUMENTO) . "00:00",
- "selagem_selos_adesivos" => "",
- "resultado_data_validade" => $this->formataDataBrParaEn($item->DATA_VALIDADE),
- "selagem_selos_plasticos" => "",
- "ensaio_data_horario_foto" => "",
- "leitura_grupo_responsavel" => "",
- "resultado_numero_documento" => $item->DOCUMENTO
- ];
- $result[] = $tmp;
- }
- }
- return $result;
- } else {
- return ["data" => ["erro" => "Ocorreu um erro inesperado."], "errorCode" => "01", "msg" => "Ocorreu um erro inesperado."];
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement