/** * ====================================================================================================== * Obtendo a base de dados de execuções orçamentária * * Variáveis: * $metodo => método utilizado para obter os dados que consta do arquivo include.soap.php * $agrupamento => label para exibição * $destino => tabela no banco de dados onde são armazenados os dados obtidos * $dados => array com valores de entrada, composto por: * 'exercicio' => ano de exercício * 'programas' => array com todos os dados dos programas que serão consultados * */ function obterExecucoesOrcamentarias($metodo, $agrupamento, $destino, $dados) { $obtendo = "Obtendo execuções orçamentárias agrupadas por {$agrupamento} para o exercício de {$dados['exercicio']}."; agora(str_repeat("-", strlen($obtendo))); agora($obtendo); agora(str_repeat("-", strlen($obtendo))); limparDadosExecucoesOrcamentarias($destino, $dados['exercicio'], $dados['programas'], "Limpando base de dados das execuções orçamentárias agrupadas por {$agrupamento} para o ano de {$dados['exercicio']}."); $codigoPrograma = 0; foreach ($dados['programas'] as $programa) { if ($codigoPrograma !== $programa['CODIGOPROGRAMA']) { $codigoPrograma = $programa['CODIGOPROGRAMA']; do { $numRegistrosSalvos = 0; $execucoesOrcamentarias = $metodo($codigoPrograma, $dados['exercicio']); if (!$execucoesOrcamentarias['sucesso']) { agora("Houve um problema:"); echo "\n"; echo str_replace("<br>", "\n", $execucoesOrcamentarias['mensagensErro']); echo "\n"; } else { // Caso não tenha sido encontrado nenhum registro o webservice retorna um array com um único elemento de índice 0 e vazio. // Caso tenha sido encontrado apenas um registro o webservice retorna um array com os valores desse registro dentro da chave execucaoOrcamentaria // Se há mais de um registro o webservice retorna execucaoOrcamentaria como sendo um array de arrays if (isset($execucoesOrcamentarias['registros'][0]['execucaoOrcamentaria'])) { foreach ($execucoesOrcamentarias['registros'] as $k => $registrosExecucoesOrcamentarias) { if (isset($registrosExecucoesOrcamentarias['execucaoOrcamentaria']['acao'])) { $execucaoOrcamentaria = $registrosExecucoesOrcamentarias['execucaoOrcamentaria']; $dadosExecucaoOrcamentaria = montandoDadosDaExecucaoOrcamentaria($execucaoOrcamentaria, $dados['exercicio']); salvarDadosSiop($destino, $dadosExecucaoOrcamentaria); $numRegistrosSalvos++; } else { foreach ($registrosExecucoesOrcamentarias as $j => $registros) { foreach ($registros as $execucaoOrcamentaria) { $dadosExecucaoOrcamentaria = montandoDadosDaExecucaoOrcamentaria($execucaoOrcamentaria, $dados['exercicio']); salvarDadosSiop($destino, $dadosExecucaoOrcamentaria); $numRegistrosSalvos++; } } } } } } } while (!$execucoesOrcamentarias['sucesso']); if ($numRegistrosSalvos > 0) { agora("\tSalvados {$numRegistrosSalvos} registro(s) da execução orçamentária agrupadas por {$agrupamento} do programa."); } else { agora("\tExecução orçamentária do programa agrupadas por {$agrupamento} sem registros."); } } reset($programas); } }
echo "\n"; } else { // Caso não tenha sido encontrado nenhum registro o webservice retorna um array com um único elemento de índice 0 e vazio. // Caso tenha sido encontrado apenas um registro o webservice retorna um array com os valores desse registro dentro da chave execucaoOrcamentaria // Se há mais de um registro o webservice retorna execucaoOrcamentaria como sendo um array de arrays if (isset($execucoesOrcamentarias['registros'][0]['execucaoOrcamentaria'])) { foreach ($execucoesOrcamentarias['registros'] as $k => $registrosExecucoesOrcamentarias) { if (isset($registrosExecucoesOrcamentarias['execucaoOrcamentaria']['acao'])) { $execucaoOrcamentaria = $registrosExecucoesOrcamentarias['execucaoOrcamentaria']; $dadosExecucaoOrcamentaria = montandoDadosDaExecucaoOrcamentaria($execucaoOrcamentaria, $exercicio); salvarDadosSiop('execucao_orcamentaria', $dadosExecucaoOrcamentaria); $numRegistrosSalvos++; } else { foreach ($registrosExecucoesOrcamentarias as $j => $registros) { foreach ($registros as $execucaoOrcamentaria) { $dadosExecucaoOrcamentaria = montandoDadosDaExecucaoOrcamentaria($execucaoOrcamentaria, $exercicio); salvarDadosSiop('execucao_orcamentaria', $dadosExecucaoOrcamentaria); $numRegistrosSalvos++; } } } } } } } while (!$execucoesOrcamentarias['sucesso']); if ($numRegistrosSalvos > 0) { agora("\tSalvados {$numRegistrosSalvos} registro(s) da execução orçamentária do programa."); } else { agora("\tExecução orçamentária do programa sem registros."); } }