Example #1
0
 /**
  * Monta o comando SQL de registro de log.
  *
  * @param br\gov\sial\core\valueObject\ValueObjectAbstract $valueObject
  * @param char $operation
  * @return string
  */
 public function makeQuery(ValueObjectAbstract $valueObject, $operation)
 {
     $annon = $valueObject->annotation();
     $infor = $annon->getClassDoc();
     $fields = $this->fetch($valueObject);
     $module = self::$bootstrap->request()->getModule();
     $functionality = self::$bootstrap->request()->getFuncionality();
     $action = self::$bootstrap->request()->getAction();
     $route = implode('/', array($module, $functionality, $action));
     $userId = 0;
     $userIsExternal = 0;
     $sgSistema = NULL;
     $sessionUserData = \br\gov\sial\core\util\Session::getLiveSession('sisicmbio', 'USER');
     if ($sessionUserData) {
         $userId = (int) $sessionUserData->sqUsuario;
         $userIsExternal = (int) $sessionUserData->inPerfilExterno;
         if (isset($sessionUserData->sqSistema) && isset($sessionUserData->sistemas[$sessionUserData->sqSistema])) {
             $sgSistema = $sessionUserData->sistemas[$sessionUserData->sqSistema]['sgSistema'];
         } else {
             $sgSistema = isset($sessionUserData->sgSistema) ? $sessionUserData->sgSistema : NULL;
         }
     }
     $xml = pg_escape_string($this->_makeXml($infor['schema'], $infor['entity'], $route, $fields['field'], $fields['value']));
     return sprintf("SELECT auditoria.trilha_insere('%s', '%s', '%s', '%d'::INT, '%s', '%s'::BOOLEAN, '%s'::XML)", $sgSistema, "/{$module}/{$functionality}", $action, $userId, $operation[0], $userIsExternal, $xml);
 }
 /**
  * Gera Menus para a View
  */
 public function getMenu()
 {
     # Monto a opção de escolha dos sistemas do Usuario
     try {
         $sess = Session::getLiveSession('sisicmbio', 'USER');
         SIALException::ThrowsExceptionIfParamIsNull($sess, 'Não foi encontrada a sessão para o objeto informado');
     } catch (SIALException $e) {
         # Não foi encontrada a Sessão para Este Sistema
         header("Location: " . $this->bootstrap()->config()->get('app')->get('authSystem'));
     }
     $count = 0;
     foreach ($sess->sistemas as $sistema) {
         $arrSistema[$count]['href'] = $sistema['sqSistema'];
         $arrSistema[$count]['text'] = $sistema['sgSistema'];
         $count++;
     }
     $Menuoptions = array('__DIVIDER_VERTICAL__', 'Início' => array(), '__DIVIDER_VERTICAL__', 'Sistemas' => $arrSistema, '__DIVIDER_VERTICAL__');
     $menuParam = new \stdClass();
     $menuParam->options = $Menuoptions;
     $menuParam->type = 'h';
     $this->_SIALApplication->set('menuH', $this->getSAF()->create('menu', $menuParam));
     $this->_SIALApplication->set('param', array('nome' => $sess->noPessoa, 'perfil' => $sess->noPerfil, 'uorg' => isset($sess->noUnidadeOrg) ? $sess->noUnidadeOrg : NULL, 'help' => 'HTML', 'sysId' => $sess->sqSistema, 'multiProfile' => count($sess->allProfile) > 1 ? TRUE : FALSE));
     # Monta os Menus
     $menu = $sess->MenuExterno;
     $arrMenu = array();
     foreach ($menu as $no) {
         #Sq da Raíz
         $curr = $no['MenuPai']['sqMenu'];
         $arrMenu[$curr]['text'] = $no['MenuPai']['noMenu'];
         $arrMenu[$curr]['href'] = $no['Acao'];
         #adiciona cada filho
         if (isset($no['MenuFilho'])) {
             foreach ($no['MenuFilho'] as $filho) {
                 if (isset($filho['Acao']) && NULL !== $filho['Acao']) {
                     $arrMenu[$curr][$filho['MenuFilho']['sqMenu']]['href'] = $filho['Acao'];
                 }
                 if (!empty($filho['MenuFilho']['noMenu'])) {
                     $arrMenu[$curr][$filho['MenuFilho']['sqMenu']]['text'] = $filho['MenuFilho']['noMenu'];
                 }
             }
         }
         if (isset($no['MenuNeto'])) {
             foreach ($no['MenuNeto'] as $menuNeto) {
                 $netoList = current($menuNeto);
                 if (isset($arrMenu[$curr][$netoList['sqMenuPai']])) {
                     $arrMenu[$curr][$netoList['sqMenuPai']][$netoList['sqMenu']]['href'] = isset($menuNeto['Acao']) ? $menuNeto['Acao'] : '#';
                     if (isset($netoList['noMenu'])) {
                         $arrMenu[$curr][$netoList['sqMenuPai']][$netoList['sqMenu']]['text'] = $netoList['noMenu'];
                     }
                 }
             }
         }
     }
     $menuParam = new \stdClass();
     $menuParam->title = 'Menu';
     $menuParam->options = $arrMenu;
     $menuParam->type = 'v';
     $this->_SIALApplication->set('menuV', $this->getSAF()->create('menu', $menuParam));
 }