/** * Retorna os orgãoes e seus respectivos filhos. * o serviço necessita de um parametros: * pOrgao -> CO_ORGAO -> id do orgão -> obtido pelo serviço ConsultaOrgao * @param int $id * @return array */ public function getWsConsultaOrgaoFilhos($objPai) { if (isset($objPai->co_orgao) && $objPai->co_orgao) { $wsFilhos = $this->_wsConsultaOrgao->consultaFilhos(array('pCo_Orgao_Pai' => $objPai->co_orgao)); if (isset($wsFilhos->consultaFilhosResult) && !empty($wsFilhos->consultaFilhosResult)) { $arrRs = $wsFilhos->consultaFilhosResult; $arrFilhos = explode('^', $arrRs); $siorg = $this; array_walk($arrFilhos, function ($value, $key) use(&$objPai, $siorg) { $match = array(); $string = Siorg::trataCaracteres($value); $regex = '/[0-9]{0,6}/'; preg_match($regex, $string, $match); $value = $match[0]; if (isset($value) && !empty($value)) { $obj = $siorg->getWsConsultaOrgao($value); $objPai->filhos["{$value}"] = $siorg->getWsConsultaOrgaoFilhos($obj); } }); } } return $objPai; }
<?php include "./include.db.php"; include "./Siorg.php"; include "./ConfigSiorg.php"; $siorg = new Siorg(); $db = new DB(); $dados = $db->obterDados('sgdoc.tb_pessoa_siorg', 'co_orgao::int', '(sg_uf is null or ch_email_internet is null)', 'co_orgao'); //$dados[0]['CO_ORGAO'] = 123335; foreach ($dados as $k => $unidade) { $enderecoContato = $siorg->consultarEnderecoContato($unidade['CO_ORGAO']); $uf = $mail = null; if ($enderecoContato['sucesso']) { $uf = isset($enderecoContato['registros']['endereco']['uf']) ? $enderecoContato['registros']['endereco']['uf'] : ''; $email = isset($enderecoContato['registros']['contato']['email']) ? $enderecoContato['registros']['contato']['email'] : ''; echo "{$unidade['CO_ORGAO']}: {$uf} - {$email}\n"; $out = $db->atualizarDados('sgdoc.tb_pessoa_siorg', "co_orgao::int = {$unidade['CO_ORGAO']}", "sg_uf = '{$uf}', ch_email_internet = '{$email}'"); echo "Número de registros alterados: {$out['count']}\n"; } }