Advertisement
Guest User

Untitled

a guest
Jan 28th, 2020
249
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.05 KB | None | 0 0
  1. class CronotacografoController extends Controller {
  2.  
  3. public function __construct() {
  4.  
  5. }
  6.  
  7. private function formataDataBrParaEn($data) {
  8. $tmp = explode("/", $data);
  9. if (strlen($tmp[2]) == 2) {
  10. if ($tmp[2] > 50) {
  11. // ano maior que 50 entendese que é antes do ano 2000
  12. $tmp[2] = "19{$tmp[2]}";
  13. } else {
  14. // ano menos que 50 entendese que é depois do ano 2000
  15. $tmp[2] = "20{$tmp[2]}";
  16. }
  17. }
  18. return implode('-', array_reverse($tmp));
  19. }
  20.  
  21. private function crawler($placa) {
  22. $curl = curl_init();
  23. curl_setopt_array($curl, array(
  24. CURLOPT_URL => "http://www.inmetro.rs.gov.br/app/inmetromobileapi/consulta_cronotacografo.php",
  25. CURLOPT_RETURNTRANSFER => true,
  26. CURLOPT_POST => true,
  27. CURLOPT_POSTFIELDS => "placa={$placa}&veiculo_situacao=A",
  28. CURLOPT_PROXYUSERPWD => 'fabrika162:fabrika162',
  29. CURLOPT_PROXY => '196.18.198.23:31849',
  30. CURLOPT_PROXYTYPE => CURLPROXY_HTTP,
  31. CURLOPT_HTTPHEADER => array(
  32. "Host: www.inmetro.rs.gov.br",
  33. "Connection: keep-alive",
  34. "Accept: application/json",
  35. "Origin: http://localhost:8080",
  36. "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",
  37. "Content-Type: application/x-www-form-urlencoded;charset=UTF-8",
  38. "Referer: http://localhost:8080/",
  39. "X-Requested-With: io.ionic.starter",
  40. ),
  41. ));
  42.  
  43. $response = curl_exec($curl);
  44. $err = curl_error($curl);
  45. $info = curl_getinfo($curl);
  46. curl_close($curl);
  47.  
  48. if (in_array($info['http_code'], [200, 201]) && !$err && !empty($response)) {
  49. return (object) ['success' => true, "data" => json_decode($response)];
  50. } else {
  51. return (object) ['success' => false, "msg" => $err, "data" => ['info' => $info, "response" => $response]];
  52. }
  53. }
  54.  
  55. public function consulta($placa) {
  56. $cronotacografo = $this->crawler($placa);
  57.  
  58. if ($cronotacografo->success) {
  59. $result = [];
  60. if (!empty($cronotacografo->data)) {
  61. foreach ($cronotacografo->data as $item) {
  62. $tmp = [
  63. "gru_tipo" => "",
  64. "ensaio_uf" => "-",
  65. "gru_valor" => "",
  66. "gru_numero" => "",
  67. "leitura_uf" => "-",
  68. "selagem_uf" => $item->POSTO_UF,
  69. "crono_marca" => $item->DS_INSTRUMENTO_MARCA,
  70. "crono_serie" => $item->NR_SERIE,
  71. "leitura_obs" => "-",
  72. "veiculo_ano" => "",
  73. "veiculo_aro" => $item->VEICULO_ARO,
  74. "certificados" => [
  75. [
  76. "situacao" => (strtotime($this->formataDataBrParaEn($item->DATA_VALIDADE)) >= time() ? "ativo" : "vencido"),
  77. "documento" => "CERTIFICADO",
  78. "protocolo" => "",
  79. "data_validade" => $this->formataDataBrParaEn($item->DATA_VALIDADE),
  80. "data_documento" => $this->formataDataBrParaEn($item->DATA_DOCUMENTO),
  81. "numero_documento" => $item->DOCUMENTO
  82. ],
  83. ],
  84. "crono_modelo" => $item->DS_INSTRUMENTO_MODELO,
  85. "ensaio_posto" => "-",
  86. "leitura_data" => $this->formataDataBrParaEn($item->DATA_DOCUMENTO) . " 00:00",
  87. "resultado_uf" => $item->POSTO_UF,
  88. "selagem_data" => "",
  89. "veiculo_pneu" => $item->VEICULO_PNEU,
  90. "crono_redutor" => "-",
  91. "ensaio_padrao" => "",
  92. "veiculo_marca" => $item->VEICULO_MARCA,
  93. "veiculo_placa" => $item->DS_PLACA,
  94. "leitura_imagem" => " ",
  95. "veiculo_chassi" => $item->DS_CHASSI,
  96. "veiculo_modelo" => $item->VEICULO_MODELO,
  97. "veiculo_renavam" => $item->NR_RENAVAM,
  98. "crono_constante_k" => "",
  99. "gru_data_documento" => "",
  100. "gru_data_pagamento" => "",
  101. "leitura_velocidade" => "",
  102. "gru_data_vencimento" => "",
  103. "leitura_responsavel" => "",
  104. "resultado_documento" => $item->DS_CERTIFICADO,
  105. "selagem_responsavel" => "",
  106. "ensaio_data_validado" => "",
  107. "ensaio_data_realizado" => "",
  108. "ensaio_velocidade_max" => "",
  109. "resultado_responsavel" => "",
  110. "ensaio_data_modificado" => "",
  111. "resultado_data_emissao" => $this->formataDataBrParaEn($item->DATA_DOCUMENTO) . "00:00",
  112. "selagem_selos_adesivos" => "",
  113. "resultado_data_validade" => $this->formataDataBrParaEn($item->DATA_VALIDADE),
  114. "selagem_selos_plasticos" => "",
  115. "ensaio_data_horario_foto" => "",
  116. "leitura_grupo_responsavel" => "",
  117. "resultado_numero_documento" => $item->DOCUMENTO
  118. ];
  119. $result[] = $tmp;
  120. }
  121. }
  122.  
  123. return $result;
  124. } else {
  125. return ["data" => ["erro" => "Ocorreu um erro inesperado."], "errorCode" => "01", "msg" => "Ocorreu um erro inesperado."];
  126. }
  127. }
  128.  
  129. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement