D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
var
/
www
/
html
/
idoso
/
adm
/
vendor
/
api
/
Filename :
geraIndice.php
back
Copy
<?php function buscarIndice() { $dataAtual = new DateTime(); // Subtrai um mês $dataAtual->modify('-1 month'); // Obtém o ano e o mês $ano = $dataAtual->format('Y'); // Ano no formato 4 dígitos $mes = $dataAtual->format('m'); // Mês no formato 2 dígitos (01 a 12) include_once "ConectaApi.php"; $criado = "'".date("Y-m-d H:i:s")."'"; $sql = "select e.id empr_id, t.id id_tipo, LOWER(t.nome) nome from gre_empresa e inner join gre_tipo_reajuste t on e.indice_reajuste = t.id "; $resultado = (mysqli_query($link, $sql)); if ($resultado) { $dados = []; // Array para armazenar os resultados // Laço para buscar cada linha e armazenar no array while ($linha = mysqli_fetch_assoc($resultado)) { $dados[] = $linha; // Adiciona cada linha ao array $dados } } foreach ($dados as $tipo) { extract($tipo); $tabela = $nome; $empr = $empr_id; $tipo_reajuste = $id_tipo; $apikey = '2a11bf4b-0a8c-478c-a560-0f835eb7678f'; // Montando os parâmetros da requisição $params = [ 'tabela' => $tabela, 'apikey' => $apikey, ]; $url = 'https://client-api.debit.com.br/atualiza-v1/lerTabela'; // Criando o contexto para a requisição $options = [ 'http' => [ 'header' => "Content-Type: application/x-www-form-urlencoded\r\n", 'method' => 'POST', 'content' => http_build_query($params), ], ]; $context = stream_context_create($options); $response = file_get_contents($url, false, $context); if ($response === FALSE) { die('Erro na requisição'); } try { $data = json_decode($response, true); // Tente analisar a resposta como JSON $anoAtual = date('Y'); $soma = 0; if (is_array($data)) { $soma = array_reduce($data, function($acc, $item) use ($anoAtual) { $mesAno = explode('/', $item['data']); $mes = intval($mesAno[0]); $ano = intval($mesAno[1]); $dataItem = new DateTime("$ano-$mes-01"); if ($dataItem->format('Y') === $anoAtual && isset($item['valor'])) { return $acc + floatval($item['valor']); } return $acc; }, 0); } // Inserindo a soma na tabela gre_reajuste include_once "ConectaApi.php"; $link = mysqli_connect(HOST, USER, PASS); if (!$link) { die('Não conseguiu conectar: ' . mysql_error()); } // seleciona o banco devcodes $db_selected = mysqli_select_db( $link,DBNAME); if (!$db_selected) { die ('Não pode selecionar o banco '.DBNAME.' : ' . mysql_error()); } // Prepara a consulta para inserção $somaFormatada = number_format($soma, 2, '.', ''); $criado = date("Y-m-d H:i:s"); $sql = "INSERT INTO gre_reajuste (id, ano, mes, perc, gre_empr_princ_id, gre_tipo_reajuste_id, created) SELECT 0, $ano, $mes, $somaFormatada, $empr, $tipo_reajuste,'$criado' WHERE NOT EXISTS ( SELECT 1 FROM gre_reajuste x WHERE x.ano = $ano AND x.mes = $mes AND x.gre_empr_princ_id = $empr )"; mysqli_query($link, $sql); mysqli_close($link); } catch (Exception $e) { echo "Erro ao analisar JSON: " . $e->getMessage(); } //var_dump('ano: '.$ano .' mes: '.$mes .' empr: '.$gre_empr_princ_id . ' id:'.$id_tipo .' nome:'.$nome .' Soma: '.$soma.'<br>'); } } // Executa a função buscarIndice(); ?>