function salvarDadosSiop($destino, $valores) { try { $tabela = obterTabelaSiop($destino); $campos = obterCampos($destino); $colunas = implode("\",\"", array_keys($campos)); $auxValores = implode(",:", array_keys($campos)); $operacao = "insert into {$tabela} (\"{$colunas}\") values (:{$auxValores})"; $stmt = ConfigWs::factory()->getConnection()->prepare($operacao); $gravar = true; foreach ($campos as $chave => $tipo) { if ($chave == 'identificadorUnico' && $valores[$chave] == 0) { $gravar = false; } switch ($tipo) { case TIPO_NUMERAL: $valor = $valores[$chave]; $tipo_numeral = substr($valor, -3, 1); // Pega o separador de decimal se houver switch ($tipo_numeral) { case ',': $valor = str_replace('.', '', $valor); $valor = str_replace(',', '.', $valor); break; case '.': $valor = str_replace(',', '', $valor); break; default: break; } $pdo = \PDO::PARAM_STR; break; case TIPO_TEXTUAL: $valor = utf8_encode($valores[$chave]); $pdo = \PDO::PARAM_STR; break; case TIPO_BOOLEAN: $valor = $valores[$chave] == 'true' ? true : false; $pdo = \PDO::PARAM_BOOL; break; default: $valor = (int) $valores[$chave]; $pdo = \PDO::PARAM_INT; } $bind = ":{$chave}"; $stmt->bindValue($bind, $valor, $pdo); } if ($gravar) { $stmt->execute(); return $stmt->fetch(PDO::FETCH_ASSOC); } } catch (Exception $e) { agora("Erro ao salvar dados:"); var_dump($e->getMessage()); echo "Parâmetros passados:\n"; var_dump($destino, $valores); } return false; }
} } while (!$orgaosAux['sucesso']); } agora("Total de órgãos registrados: {$totalRegistrosOrgaos}."); } if ($baixar['programas']) { /** * ====================================================================== * Obtendo a base de dados de programas para o ano de exercício repassado * */ agora("Obtendo programas."); limparDadosSiop('programas', "exercicio = '{$exercicio}'", "Limpando base de dados dos programas para o ano de {$exercicio}."); $orgaosSiop = obterOrgaosSiopPorExercicio($exercicio); $programas = array(); $camposPrograma = obterCampos('programas'); $totalOrgaosSiop = count($orgaosSiop); $contadorProgramasPorOrgaoSiop = 0; foreach ($orgaosSiop as $k => $j) { $codigoSiop = $j['CODIGOSIOP']; $contadorProgramasPorOrgaoSiop++; do { $programasAux = obterProgramasPorOrgaoAnoExercicio($codigoSiop, $exercicio, $contadorProgramasPorOrgaoSiop, $totalOrgaosSiop); if (!$programasAux['sucesso']) { agora("\tNão foi possível obter os dados dos programas:"); echo "\n"; echo str_replace("<br>", "\n", $programasAux['mensagensErro']); echo "\n"; } else { $contadorProgramasPorOrgao = 0; foreach ($programasAux['registros'] as $programa) {