Beispiel #1
0
 public function ReprovaOk($id_doc)
 {
     $doc = knl_lib_doc_DocShow::getInstance()->getDocumento($id_doc);
     $pendencias = knl_lib_doc_DocShow::getInstance()->getDocumentoPend($doc);
     $Pend = knl_dao_doc_pendencia::getInstance();
     $Cred = knl_dao_doc_cred::getInstance();
     foreach ($pendencias as $v) {
         if ($v->get_id_doc_pendencia_tipo() == 5) {
             // excluir a pendencia em questao
             $Pend->deleteById($v->get_id());
             // retirar permissão de aprovação do grupo e de outros do documento em questao
             $mCred = $Cred->selectByIdDocUsuarioGrupo($v->get_id_doc(), $v->get_id_knl_usuario(), $v->get_id_knl_grupo());
             foreach ($mCred as $c) {
                 if ($c->get_perm_usuario() & 128) {
                     $c->set_perm_usuario($c->get_perm_usuario() - 128);
                 }
                 if ($c->get_perm_grupo() & 128) {
                     $c->set_perm_grupo($c->get_perm_grupo() - 128);
                 }
                 if ($c->get_perm_outros() & 128) {
                     $c->set_perm_outros($c->get_perm_outros() - 128);
                 }
                 $Cred->upsert($c);
             }
         }
     }
     $Regras = knl_lib_Regras::getInstance();
     // executar as regras de credenciais para a id_doc_pend_tipo atual
     $Regras->regraCred($id_doc, 6);
     // executar as regras de pendencias para o id_doc_pend_tipo atual + id_doc_pend_tipo seguinte
     $Regras->regraPend($id_doc, 6);
 }
Beispiel #2
0
 public function getDocumentoCred(knl_model_doc $mDoc)
 {
     $session = knl_lib_Registry::getSession();
     $DocCred = knl_dao_doc_cred::getInstance();
     $mDocCred = $DocCred->selectByIdDocUsuarioGrupo($mDoc->get_id(), $session->get_id_usuario(), $session->get_id_grupo(), $session->get_grupos());
     return $mDocCred;
 }
Beispiel #3
0
 public function regraCred($id_doc, $id_doc_pend_tipo)
 {
     $session = knl_lib_Registry::getSession();
     $DocShow = knl_lib_doc_DocShow::getInstance();
     $doc = $DocShow->getDocumento($id_doc);
     $DocCred = knl_dao_doc_cred::getInstance();
     $DocRegraCred = knl_dao_doc_sub_tipo_regra_cred::getInstance();
     $mDocRegraCred = $DocRegraCred->selectBySubTipoPendTipo($doc->get_id_doc_sub_tipo(), $id_doc_pend_tipo);
     foreach ($mDocRegraCred as $rc) {
         if ($rc->get_addrem() == 'A') {
             $newmRegraCred = new knl_model_doc_cred(0, $id_doc, $rc->get_id_knl_usuario(), $rc->get_id_knl_grupo(), $rc->get_perm_usuario(), $rc->get_perm_grupo(), $rc->get_perm_outros());
             $newRegraCred = knl_dao_doc_cred::getInstance()->upsert($newmRegraCred);
         }
         if ($rc->get_addrem() == 'R') {
             $mDocCred = $DocCred->selectByIdDoc($id_doc);
             foreach ($mDocCred as $c) {
                 if ($c->get_id_knl_usuario() == $session->get_id_usuario() and $c->get_perm_usuario() & $rc->get_perm_usuario()) {
                     $c->set_perm_usuario($c->get_perm_usuario() - $rc->get_perm_usuario());
                 }
                 if (($c->get_id_knl_grupo() == $session->get_id_grupo() or in_array($c->get_id_knl_grupo(), $session->get_grupos())) and $c->get_perm_grupo() & $rc->get_perm_grupo()) {
                     $c->set_perm_grupo($c->get_perm_grupo() - $rc->get_perm_grupo());
                 }
                 if ($c->get_perm_outros() & $rc->get_perm_outros()) {
                     $c->set_perm_outros($c->get_perm_outros() - $rc->get_perm_outros());
                 }
                 $newmRegraCred = new knl_model_doc_cred($c->get_id(), $id_doc, $c->get_id_knl_usuario(), $c->get_id_knl_grupo(), $c->get_perm_usuario(), $c->get_perm_grupo(), $c->get_perm_outros());
                 $newRegraCred = knl_dao_doc_cred::getInstance()->upsert($newmRegraCred);
             }
         }
     }
 }
Beispiel #4
0
 public static function getInstance()
 {
     if (!isset(self::$instance)) {
         self::$instance = new self();
     }
     return self::$instance;
 }
Beispiel #5
0
 public function LimpaDoc()
 {
     $request = knl_lib_Registry::getRequestObj();
     $id_doc = $request->getGet('id');
     $DocCred = knl_dao_doc_cred::getInstance();
     $DocCred->deleteByIdDoc($id_doc);
     $mDocCred = new knl_model_doc_cred(0, $id_doc, 1, 0, 511, 0, 0);
     $DocCred->upsert($mDocCred);
     $docAssina = knl_lib_doc_Assina::getInstance();
     $docAssina->gravaNoBanco($request->getget('id'), 5);
 }
Beispiel #6
0
 public function verificaDocVis($id)
 {
     $session = knl_lib_registry::getSession();
     $DocCred = knl_dao_doc_cred::getInstance();
     $mDocCred = $DocCred->selectByIdDocUsuarioGrupo($id, $session->get_id_usuario(), $session->get_id_grupo(), $session->get_grupos());
     $vis = 0;
     foreach ($mDocCred as $v) {
         if ($v->get_perm_usuario() && 2 or $v->get_perm_grupo() && 2 or $v->get_perm_outros() && 2) {
             $vis = 1;
         }
     }
     if ($vis == 0) {
         echo "Permissão negada! Documento não existente, ou sem permissões para visualizar.";
         die;
     }
 }