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); }
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); } } } }
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; }
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); }
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; } }