/** * 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; }