* Licença Pública Geral GNU/GPL em português para maiores detalhes. * Você deve ter recebido uma cópia da Licença Pública Geral GNU, sob o título "LICENCA.txt", * junto com este programa, se não, acesse o Portal do Software Público Brasileiro no endereço * www.softwarepublico.gov.br ou escreva para a Fundação do Software Livre(FSF) * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * */ try { $documento = new Documento($_POST); $numero_processo = $documento->numero; if ($documento->tipo_vinculacao != "") { $documento->numero .= " " . $documento->tipo_vinculacao . $documento->numero_peca; } unset($documento->documento->tipo_vinculacao); unset($documento->documento->numero_peca); $processo = DaoProcesso::getProcesso($numero_processo); if (!Processo::validarProcessoAreaDeTrabalho($numero_processo)) { $out = new Output(array('success' => 'false', 'error' => 'Processo não se encontra na área de trabalho do ARQUIVO')); print json_encode($out->toArray()); exit; } $processo['nm_interessado'] = Processo::getInteressado($processo['interessado'], 'interessado'); $processo['nm_assunto'] = Processo::getAssunto($processo['assunto'], 'assunto'); if ($processo['procedencia'] == 'I') { $processo['nm_origem'] = DaoUnidade::getUnidade($processo['origem'], 'nome'); } else { $tmp = Processo::getOrigemExterna($processo['origem'], 'origem'); $processo['nm_origem'] = $tmp['origem']; } $processo['dt_autuacao'] = Util::formatDate($processo['dt_autuacao']); $documento->data_documento = $processo['dt_autuacao']; $documento->data_entrada = $processo['dt_autuacao'];
color: red; } </style> <link rel="stylesheet" type="text/css" href="plugins/tree/css/style.css" /> </head> <body> <div class="contextMenu" id="menu-tree-apensos-processos"> <li class="expandAll"><img alt="" src="plugins/tree/css/images/expand.png"/></li> <li class="collapseAll"><img alt="" src="plugins/tree/css/images/collapse.png"/></li> </div> <ul id="tree-apensos-processos" class="arvoreDocumentos"> <?php $processo = current(CFModelProcesso::factory()->findByParam(array('NUMERO_PROCESSO' => $numero_processo))); $assuntoDao = DaoAssuntoProcesso::getAssunto((int) $processo->ASSUNTO); $assunto = $assuntoDao['assunto']; $classe = Processo::validarProcessoAreaDeTrabalho($numero_processo) ? 'root' : 'root root-ausente'; $data = Util::formatDate($processo->DT_AUTUACAO) ? Util::formatDate($processo->DT_AUTUACAO) : "Data Não informada"; ?> <li class="<?php print $classe; ?> " id='<?php print $arvore->getRootId(); ?> '> <span title="Processo mais relevante da arvore"><?php print $numero_processo; ?> </span> [ <?php print $assunto;
/** * Adicionar peca no processo * @return Output * @param string $numero_processo * @param string $digital * @param boolean $checar */ public function adicionarPecaProcesso($numero_processo, $digital, $checar = true) { try { if ($checar) { /* Validar se os documentos pai e filho ainda estao na area de trabalho do usuario */ $passou_proc = false; $passou_doc = false; if (Processo::validarProcessoAreaDeTrabalho($numero_processo)) { $passou_proc = true; if (Documento::validarDocumentoAreaDeTrabalho($digital)) { $passou_doc = true; } } } else { $passou_doc = true; $passou_proc = true; } if ($passou_proc == true) { if ($passou_doc == true) { /* Inicar transacao */ Controlador::getInstance()->getConnection()->connection->beginTransaction(); /* Verificar se o documento ja esta anexado ou apenso à outro documento */ $stmt = Controlador::getInstance()->getConnection()->connection->prepare("SELECT ID_PROCESSOS_CADASTRO FROM TB_PROCESSOS_DOCUMENTOS WHERE ID_DOCUMENTOS_CADASTRO = ? LIMIT 1"); $stmt->bindParam(1, DaoDocumento::getDocumento($digital, 'id'), PDO::PARAM_INT); $stmt->execute(); $out = $stmt->fetch(PDO::FETCH_ASSOC); if (empty($out)) { /* Variaveis do historico de tramite */ $acao_documento = "Este documento foi adicionado ao processo {$numero_processo}."; // historico filho $acao_processo = "O Documento {$digital} foi adicionado neste processo."; // historico pai $ultimo_tramite = "Este documento foi adicionado ao processo {$numero_processo}."; //ultimo tramite filho $destino = "XXXXX"; $origem = "XXXXX"; $id_usuario = Zend_Auth::getInstance()->getIdentity()->ID; $nome_usuario = Zend_Auth::getInstance()->getIdentity()->NOME; $id_unidade_historico = Zend_Auth::getInstance()->getIdentity()->ID_UNIDADE_ORIGINAL; $id_unidade_usuario = Controlador::getInstance()->usuario->ID_UNIDADE; $diretoria = DaoUnidade::getUnidade($id_unidade_historico, 'nome'); /* Historico - Documento */ $stmt = Controlador::getInstance()->getConnection()->connection->prepare("INSERT INTO TB_HISTORICO_TRAMITE_DOCUMENTOS" . " (DIGITAL,ID_USUARIO,USUARIO,ID_UNIDADE,DIRETORIA,ACAO,ORIGEM,DESTINO,DT_TRAMITE)" . " VALUES (?,?,?,?,?,?,?,?,CLOCK_TIMESTAMP())"); $stmt->bindParam(1, $digital, PDO::PARAM_STR); $stmt->bindParam(2, $id_usuario, PDO::PARAM_INT); $stmt->bindParam(3, $nome_usuario, PDO::PARAM_STR); $stmt->bindParam(4, $id_unidade_historico, PDO::PARAM_INT); $stmt->bindParam(5, $diretoria, PDO::PARAM_STR); $stmt->bindParam(6, $acao_documento, PDO::PARAM_STR); $stmt->bindParam(7, $origem, PDO::PARAM_STR); $stmt->bindParam(8, $destino, PDO::PARAM_STR); $stmt->execute(); /* Historico - Processo */ $stmt = Controlador::getInstance()->getConnection()->connection->prepare("INSERT INTO TB_HISTORICO_TRAMITE_PROCESSOS" . " (NUMERO_PROCESSO,ID_USUARIO,USUARIO,ID_UNIDADE,DIRETORIA,ACAO,ORIGEM,DESTINO,DT_TRAMITE)" . " VALUES (?,?,?,?,?,?,?,?,CLOCK_TIMESTAMP())"); $stmt->bindParam(1, $numero_processo, PDO::PARAM_STR); $stmt->bindParam(2, $id_usuario, PDO::PARAM_INT); $stmt->bindParam(3, $nome_usuario, PDO::PARAM_STR); $stmt->bindParam(4, $id_unidade_historico, PDO::PARAM_INT); $stmt->bindParam(5, $diretoria, PDO::PARAM_STR); $stmt->bindParam(6, $acao_processo, PDO::PARAM_STR); $stmt->bindParam(7, $origem, PDO::PARAM_STR); $stmt->bindParam(8, $destino, PDO::PARAM_STR); $stmt->execute(); /* Ultimo tramite - Documento */ $stmt = Controlador::getInstance()->getConnection()->connection->prepare("UPDATE TB_DOCUMENTOS_CADASTRO SET ULTIMO_TRAMITE = ? WHERE DIGITAL = ?"); $stmt->bindParam(1, $ultimo_tramite, PDO::PARAM_STR); $stmt->bindParam(2, $digital, PDO::PARAM_STR); $stmt->execute(); /* Adicionar Peça */ $sttm = Controlador::getInstance()->getConnection()->connection->prepare("INSERT INTO TB_PROCESSOS_DOCUMENTOS(ID_PROCESSOS_CADASTRO,ID_DOCUMENTOS_CADASTRO,ID_USUARIOS,ID_UNIDADE_USUARIO) VALUES (?,?,?,?)"); $sttm->bindParam(1, DaoProcesso::getProcesso($numero_processo, 'id'), PDO::PARAM_INT); $sttm->bindParam(2, DaoDocumento::getDocumento($digital, 'id'), PDO::PARAM_INT); $sttm->bindParam(3, $this->_usuario->id, PDO::PARAM_INT); $sttm->bindParam(4, $id_unidade_usuario, PDO::PARAM_INT); $sttm->execute(); /* Comitar */ Controlador::getInstance()->getConnection()->connection->commit(); return new Output(array('success' => 'true', 'message' => "Peça adicionada com sucesso!")); } else { $numero_processo = DaoProcesso::getProcesso($out['ID_PROCESSOS_CADASTRO'], 'numero_processo'); return new Output(array('success' => 'false', 'error' => "O documento {$digital} já é peça do processo {$numero_processo}!")); } } else { /* Retorna quando o documento filho nao esta na area de trabalho do usuario */ return new Output(array('success' => 'false', 'error' => "O documento {$digital} não está na sua área de trabalho!")); } } else { /* Retorna quando o documento pai nao esta na area de trabalho do usuario */ return new Output(array('success' => 'false', 'error' => "O processo {$numero_processo} não está na sua área de trabalho!")); } } catch (PDOException $e) { Controlador::getInstance()->getConnection()->connection->rollback(); return new Output(array('success' => 'false', 'error' => $e->getMessage())); } }
$('#menu-tree-apensos-processos .collapseAll').append(langManager.collapseAll); }); </script> </head> <body> <div class="contextMenu" id="menu-tree-apensos-processos"> <li class="expandAll"><img alt="" src="plugins/tree/css/images/expand.png"/></li> <li class="collapseAll"><img alt="" src="plugins/tree/css/images/collapse.png"/></li> </div> <ul id="tree-apensos-processos" class="arvoreProcessos"> <?php $processo = current(CFModelProcesso::factory()->findByParam(array('NUMERO_PROCESSO' => $root))); $assuntoDao = DaoAssuntoProcesso::getAssunto((int) $processo->ASSUNTO); $assunto = $assuntoDao['assunto']; $classe = Processo::validarProcessoAreaDeTrabalho($root) ? 'root' : 'root root-ausente'; $data = Util::formatDate($processo->DT_AUTUACAO) ? Util::formatDate($processo->DT_AUTUACAO) : "Data Não informada"; ?> <li class="<?php print $classe; ?> " id='<?php print $arvore->getRootId(); ?> '> <span title="Processo mais relevante da arvore"><?php print $root; ?> </span> [ <?php print $assunto;
* O SISICMBio é um software livre; você pode redistribuíção e/ou modifição dentro dos termos * da Licença Pública Geral GNU como publicada pela Fundação do Software Livre (FSF); na versão * 2 da Licença. * * Este programa é distribuíção na esperança que possa ser útil, mas SEM NENHUMA GARANTIA; sem * uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou APLICAÇÃO EM PARTICULAR. Veja a * Licença Pública Geral GNU/GPL em português para maiores detalhes. * Você deve ter recebido uma cópia da Licença Pública Geral GNU, sob o título "LICENCA.txt", * junto com este programa, se não, acesse o Portal do Software Público Brasileiro no endereço * www.softwarepublico.gov.br ou escreva para a Fundação do Software Livre(FSF) * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * */ /** * Verificar se o processo esta na area de trabalho */ if (!Processo::validarProcessoAreaDeTrabalho($_POST['processo'])) { print json_encode(array('success' => 'false', 'message' => Util::fixErrorString('Este processo não está na sua área de trabalho!'))); exit; } /** * Mensagens */ $stringOut = array(); $stringOut['PROC_INVALID_CAD'] = "Atenção! O processo <?> é inválido."; if ($_POST['acao'] == "desmem") { try { $resul = valCadProc($_POST['processo']); if (!empty($resul)) { if ($_POST['iddesmembrar'] == "null") { $idtermo = inserirDesmem($_POST); } else {
/** * Mensagens */ $stringOut = array(); $stringOut['AP_ERROR_ANEXO_PROC'] = "Atenção! Não foi possivel concluir sua solicitação. Um ou mais processos não podem ser anexados, os mesmos estão anexados em outro processo."; $stringOut['AP_ERROR_CAD_PROC'] = "Erro: Um ou mais processos são inválidos ou não estão cadastrado no sistema."; $stringOut['AP_ERROR_APENSO_PROC'] = "Atenção! Não foi possivel concluir sua solicitação. Um ou mais processos não podem ser apensados, os mesmos estão apensados em outro processo."; if ($_POST) { $error = array(); /* Instanciar sempre o objeto Base para ultilizar os metodos staticos das classes */ new Base(); /* Lista de processos envolvimentos */ $verificar = array_unique(explode(',', $_POST['processos'] . ',' . $_POST['numero_processo'])); /* Interromper a operacoes se pelo menos um processo nao constar na area de trabalho do usuario */ foreach ($verificar as $processo) { if (!Processo::validarProcessoAreaDeTrabalho($processo)) { $error = array($processo); } } /* Interromper a execucao e printar a lista de processo fora da area de trabalho do usuario */ if (count($error) > 0) { print json_encode(array('success' => 'false', 'message' => 'O(s) Processo(s) em vermelho não estão na Área de Trabalho!', 'processo' => $error)); exit(0); } $out = array(); $processos = array_unique(explode(',', $_POST['processos'])); try { /* verifica se o processo esta cadastrado no sistema */ $resul = valCadProc($_POST['numero_processo']); if (empty($resul)) { $out['message'] = $stringOut["AP_ERROR_CAD_PROC"];
/** * */ public function getVinculacaoProcesso($numero_processo, $pageName, $vinculacao) { try { $sttm = Controlador::getInstance()->getConnection()->connection->prepare("SELECT PCP.NUMERO_PROCESSO AS PAI, PCF.NUMERO_PROCESSO AS FILHO\n FROM TB_PROCESSOS_VINCULACAO PV\n INNER JOIN TB_PROCESSOS_CADASTRO PCP ON PCP.ID = PV.ID_PROCESSO_PAI\n INNER JOIN TB_PROCESSOS_CADASTRO PCF ON PCF.ID = PV.ID_PROCESSO_FILHO\n WHERE PCP.NUMERO_PROCESSO = ? AND PV.FG_ATIVO = 1 AND PV.ST_ATIVO = 1 AND ID_VINCULACAO = ?"); $sttm->bindParam(1, $numero_processo, PDO::PARAM_STR); $sttm->bindParam(2, $vinculacao, PDO::PARAM_INT); $sttm->execute(); $out = $sttm->fetchAll(PDO::FETCH_ASSOC); $str = null; if (!empty($out)) { foreach ($out as $key => $value) { $supp = null; $ausente = !Processo::validarProcessoAreaDeTrabalho($value['FILHO']) ? array('classe' => 'ausente', 'title' => 'Este processo nao esta na sua área de trabalho.', 'ausente' => 'true') : array('classe' => '', 'title' => '', 'ausente' => 'false'); $idElemento = str_replace(array('.', '/', '-'), array('', '', ''), $value['FILHO']); if (true) { $supp = "<ul class='ajax'>" . "<li id='{$idElemento}'>{url:'{$pageName}?action=getElementList&ownerEl={$value['FILHO']}',idElemento:'{$idElemento}',stAusente:{$ausente['ausente']}}</li>" . "</ul>"; } $str .= "<li class='text' title='{$ausente['title']}' id='{$idElemento}'><span class='{$ausente['classe']}'>{$value['FILHO']}</span>{$supp}</li>"; } } } catch (PDOException $e) { $str = FAILED; } return $str; }
/** * Tramitar processo para destino externo */ public function consolidarTramiteExternoProcesso() { try { /** * Remover informacoes de tramites anteriores */ Session::destroy('_processos_recibo'); Session::destroy('_processos_recibo_destinatario'); Session::destroy('_processos_recibo_local'); Session::destroy('_processos_recibo_endereco'); Session::destroy('_processos_recibo_telefone'); Session::destroy('_processos_recibo_cep'); Session::destroy('_processos_recibo_prioridade'); Controlador::getInstance()->getConnection()->connection->beginTransaction(); /** * BugFix Notice */ $id_usuario = $this->_usuario->id; $id_unidade = Zend_Auth::getInstance()->getIdentity()->ID_UNIDADE; $id_unidade_original = Zend_Auth::getInstance()->getIdentity()->ID_UNIDADE_ORIGINAL; $nome_usuario = Zend_Auth::getInstance()->getIdentity()->NOME; $nome_unidade_original = DaoUnidade::getUnidade($id_unidade_original, 'nome'); $oDiretoria = DaoUnidade::getUnidade($id_unidade); $tx_diretoria = $oDiretoria['nome'] . ' - ' . $oDiretoria['sigla']; /** * Tramitar Documentos */ foreach ($this->relacao as $key => $processo) { if (Processo::validarProcessoAreaDeTrabalho($processo)) { $stmt = Controlador::getInstance()->getConnection()->connection->prepare("UPDATE TB_PROCESSOS_CADASTRO SET ID_UNID_AREA_TRABALHO = NULL, ID_UNID_CAIXA_ENTRADA = NULL, ID_UNID_CAIXA_SAIDA = NULL, EXTERNO = ?, ULTIMO_TRAMITE = ? WHERE NUMERO_PROCESSO = ?"); $stmt->bindParam(1, $this->tramite->nm_destino, PDO::PARAM_STR); $stmt->bindParam(2, $this->tramite->ultimo_tramite, PDO::PARAM_STR); $stmt->bindParam(3, $processo, PDO::PARAM_STR); $stmt->execute(); /** * Inserir o historico de tramite do documento * Complemento do Historico do documento */ $acao = "Encaminhado"; $historico = Controlador::getInstance()->getConnection()->connection->prepare("INSERT INTO TB_HISTORICO_TRAMITE_PROCESSOS" . " (NUMERO_PROCESSO,USUARIO,ACAO,ORIGEM,DESTINO,DT_TRAMITE,DIRETORIA,ID_UNIDADE,ID_USUARIO)" . " VALUES (?,?,?,?,?,CLOCK_TIMESTAMP(),?,?,?)"); $historico->bindParam(1, $processo, PDO::PARAM_STR); //numero processo $historico->bindParam(2, $nome_usuario, PDO::PARAM_STR); //nm_usuario $historico->bindParam(3, $acao, PDO::PARAM_STR); //acao $historico->bindParam(4, $tx_diretoria, PDO::PARAM_STR); //origem $historico->bindParam(5, $this->tramite->nm_destino, PDO::PARAM_STR); //destino $historico->bindParam(6, $nome_unidade_original, PDO::PARAM_STR); //nome unidade $historico->bindParam(7, $id_unidade_original, PDO::PARAM_INT); //id unidade $historico->bindParam(8, $id_usuario, PDO::PARAM_INT); //id usuario $historico->execute(); Tramite::setProcessosGuiaRecibo($processo); //Adicionar numero processo para confeccionar a guia de recibo! } } /** * Setar novas informacoes do tramite */ Session::set('_processos_recibo_destinatario', $this->tramite->destinatario); Session::set('_processos_recibo_local', $this->tramite->local); Session::set('_processos_recibo_endereco', $this->tramite->endereco); Session::set('_processos_recibo_telefone', $this->tramite->telefone); Session::set('_processos_recibo_cep', $this->tramite->cep); Session::set('_processos_recibo_prioridade', $this->tramite->prioridade); Controlador::getInstance()->getConnection()->connection->commit(); return new Output(array('success' => 'true', 'message' => "Processo(s) tramitados com sucesso!", 'ticket' => 'true')); } catch (PDOException $e) { throw new BasePDOException($e); return new Output(array('success' => 'false', 'error' => $e->getMessage())); } }
//@todo Verificar se os administradores do sistema podem remover a primeira peca do processo se necessario! $out[] = array($key == 0 ? "X{$peca['DIGITAL']}" : $peca['DIGITAL'] => $peca['DIGITAL'] . ($key == 0 ? ' - Peça principal, não pode ser removida!' : '')); } break; case 'carregar-anexos': $vinculacao = new Vinculacao(); $anexos = $vinculacao->getAnexosProcesso($_REQUEST['numero_processo']); foreach ($anexos as $key => $anexo) { $out[] = array($anexo['ANEXOS'] => $anexo['ANEXOS']); } break; case 'adicionar-peca': /** * Verificar se o processo esta na area de trabalho */ if (!Processo::validarProcessoAreaDeTrabalho($_REQUEST['numero_processo'])) { print json_encode(array('success' => 'false', 'message' => 'Este processo não está na sua área de trabalho!')); exit; } /** * Verificar se o documento esta na area de trabalho */ if (!Documento::validarDigitalDocumento($_REQUEST['digital'])) { print json_encode(array('success' => 'false', 'message' => 'Este documento não está na sua área de trabalho!')); exit; } $vinculacao = new Vinculacao(); $out = $vinculacao->adicionarPecaProcesso($_REQUEST['numero_processo'], $_REQUEST['digital'])->toArray(); break; case 'remover-peca': $vinculacao = new Vinculacao();