示例#1
0
 /**
  * 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;
 }