/** * */ public function getVinculacaoDocumento($digital, $pageName, $vinculacao) { try { $sttm = Controlador::getInstance()->getConnection()->connection->prepare("SELECT DCP.DIGITAL AS PAI, DCF.DIGITAL AS FILHO FROM TB_DOCUMENTOS_VINCULACAO DV\nINNER JOIN TB_DOCUMENTOS_CADASTRO DCP ON DCP.ID = DV.ID_DOCUMENTO_PAI\nINNER JOIN TB_DOCUMENTOS_CADASTRO DCF ON DCF.ID = DV.ID_DOCUMENTO_FILHO\nWHERE DCP.DIGITAL = ? AND DV.FG_ATIVO = 1 AND ST_ATIVO = 1 AND ID_VINCULACAO = ?"); $sttm->bindParam(1, $digital, 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 = !Documento::validarDocumentoAreaDeTrabalho($value['FILHO']) ? array('classe' => 'ausente', 'title' => 'Este documento nao esta na sua área de trabalho.', 'ausente' => 'true') : array('classe' => '', 'title' => '', 'ausente' => 'false'); if (true) { $supp = "\n \t\t<ul class='ajax'>\n \t\t\t<li id='{$value['FILHO']}'><span class='{$ausente['classe']}'>\n \t\t\t\t{url:'{$pageName}?action=getElementList&ownerEl={$value['FILHO']}',idElemento:'{$value['FILHO']}',stAusente:{$ausente['ausente']}}</span>\n \t\t\t</li>\n \t\t</ul>\n \t\t"; } $documento = current(CFModelDocumento::factory()->findByParam(array('DIGITAL' => $value['FILHO']))); $data = Util::formatDate($documento->DT_DOCUMENTO) ? Util::formatDate($documento->DT_DOCUMENTO) : "Data Não informada"; $str .= "\n \t\t<li class='text' title='{$ausente['title']}' id='{$value['FILHO']}'>\n \t\t\t<span class='{$ausente['classe']}'>{$value['FILHO']}</span>\n \t\t\t[ {$documento->ASSUNTO} - {$data} ] \n \t\t\t{$supp}\n \t\t</li>\n \t\t"; } } } catch (PDOException $e) { $str = FAILED; } return $str; }
/** * @return boolean * @param array $array */ public function edit($array) { try { return CFModelDocumento::factory()->update($array); } catch (Exception $e) { throw $e; } }
public static function alterarDocumento(Documento $documento) { try { $usuario = Controlador::getInstance()->usuario; Controlador::getInstance()->getConnection()->connection->beginTransaction(); $documento->documento->fg_prazo = $documento->documento->fg_prazo == 'true' ? 1 : 0; $stmt = Controlador::getInstance()->getConnection()->connection->prepare("\n UPDATE TB_DOCUMENTOS_CADASTRO \n SET \n DT_DOCUMENTO = ?, DT_ENTRADA = ?, TIPO = ?, NUMERO = ?, ORIGEM = ?, \n INTERESSADO = ?, ID_ASSUNTO = ?, ASSUNTO_COMPLEMENTAR = ?, CARGO = ?, \n ASSINATURA = ?, DESTINO = ?, RECIBO = ?, TECNICO_RESPONSAVEL = ?, \n PROCEDENCIA = ?, DT_PRAZO = ?, FG_PRAZO = ?, PRIORIDADE = ? \n WHERE DIGITAL = ?\n "); //Trata a prioridade quando for do tipo PAUTA para se ter múltiplas if ($documento->documento->tipo == "ATA" && ($prioridade == 'null' || strlen(trim($prioridade)) == 0)) { $prioridade = NULL; $prioridadeType = PDO::PARAM_NULL; } #10491 if ($documento->documento->conteudo != '') { $sqDocumentoDemanda = current(CFModelDocumento::factory()->findByParam(array('DIGITAL' => $documento->documento->digital)))->ID; $stff = Controlador::getInstance()->getConnection()->connection->prepare("SELECT 1 FROM SGDOC.ext__snas__tb_documentos_conteudo WHERE id = ? LIMIT 1"); $stff->bindParam(1, $sqDocumentoDemanda, PDO::PARAM_INT); $stff->execute(); if (false == $stff->fetch(PDO::FETCH_ASSOC)) { //inserir conteudo... $stff = Controlador::getInstance()->getConnection()->connection->prepare("insert into SGDOC.ext__snas__tb_documentos_conteudo (id,conteudo) values (?,?)"); $stff->bindParam(1, $sqDocumentoDemanda, PDO::PARAM_INT); $stff->bindParam(2, $documento->documento->conteudo, PDO::PARAM_STR); $stff->execute(); } else { //atualizar conteudo... $stff = Controlador::getInstance()->getConnection()->connection->prepare("UPDATE sgdoc.ext__snas__tb_documentos_conteudo set conteudo = ? WHERE id = ?"); $stff->bindParam(1, $documento->documento->conteudo, PDO::PARAM_STR); $stff->bindParam(2, $sqDocumentoDemanda, PDO::PARAM_INT); $stff->execute(); } } $stmt->bindParam(1, Util::formatDate($documento->documento->dt_documento), PDO::PARAM_STR); //DATA_DOCUMENTO' , $stmt->bindParam(2, Util::formatDate($documento->documento->dt_entrada), PDO::PARAM_STR); //DATA_ENTRADA' , $stmt->bindParam(3, $documento->documento->tipo, PDO::PARAM_STR); //TIPO' , $stmt->bindParam(4, $documento->documento->numero, PDO::PARAM_STR); //NUMERO' , $stmt->bindParam(5, $documento->documento->origem, PDO::PARAM_STR); //ORIGEM' , $stmt->bindParam(6, $documento->documento->interessado, PDO::PARAM_STR); //INTERESSADO' , $stmt->bindParam(7, $documento->documento->assunto, PDO::PARAM_INT); //ID_ASSUNTO' , $stmt->bindParam(8, $documento->documento->assunto_complementar, PDO::PARAM_STR); //ASSUNTO_COMPLEMENTAR' , $stmt->bindParam(9, $documento->documento->cargo, PDO::PARAM_STR); //CARGO' , $stmt->bindParam(10, $documento->documento->assinatura, PDO::PARAM_STR); //ASSINATURA' , $stmt->bindParam(11, $documento->documento->destino, PDO::PARAM_STR); //DESTINO' , $stmt->bindParam(12, $documento->documento->recibo, PDO::PARAM_STR); //RECIBO' , $stmt->bindParam(13, $documento->documento->tecnico_responsavel, PDO::PARAM_STR); //TECNICO_RESPONSAVEL' , $stmt->bindParam(14, $documento->documento->procedencia, PDO::PARAM_STR); //PROCEDENCIA' , $stmt->bindParam(15, Util::formatDate($documento->documento->dt_prazo), PDO::PARAM_STR); //PRAZO' , $stmt->bindParam(16, $documento->documento->fg_prazo, PDO::PARAM_STR); //FG_PRAZO' , $stmt->bindParam(17, $prioridade, $prioridadeType); //PRIORIDADE' , $stmt->bindParam(18, $documento->documento->digital, PDO::PARAM_STR); //DIGITAL' , $stmt->execute(); $acao = "Cadastrado complementado."; $destino = "XXXXX"; $origem = "XXXXX"; /* Atualiza prioridade e participantes */ //tratar PRIORIDADES if (isset($documento->documento->extras[PRIORIDADES])) { $prioridades = $documento->documento->extras[PRIORIDADES]; if (is_array($prioridades)) { //desabilitar todos os vinculos do documento com as campos extras CFModelDocumentoCamposDemanda::factory()->disassociateAllByDigital($documento->documento->digital, "PR"); for ($i = 0; $i < count($prioridades["id"]); $i++) { if (CFModelDocumentoCamposDemanda::factory()->isExists($documento->documento->digital, $prioridades["id_campo"][$i], "PR")) { //Se existir atualiza CFModelDocumentoCamposDemanda::factory()->updateAssociationWithDigital($documento->documento->digital, $prioridades["id_campo"][$i], 1, "PR"); } else { //Se não cria CFModelDocumentoCamposDemanda::factory()->createAssociationWithDigital($documento->documento->digital, $prioridades["id_campo"][$i], "PR"); } } } } //tratar PARTICIPANTES if (isset($documento->documento->extras[PARTICIPANTES])) { $participantes = $documento->documento->extras[PARTICIPANTES]; if (is_array($participantes)) { //desabilitar todos os vinculos do documento com as campos extras CFModelDocumentoCamposDemanda::factory()->disassociateAllByDigital($documento->documento->digital, "PA"); for ($i = 0; $i < count($participantes["id"]); $i++) { if (CFModelDocumentoCamposDemanda::factory()->isExists($documento->documento->digital, $participantes["id_campo"][$i], "PA")) { //Se existir atualiza CFModelDocumentoCamposDemanda::factory()->updateAssociationWithDigital($documento->documento->digital, $participantes["id_campo"][$i], 1, "PA"); } else { //Se não cria CFModelDocumentoCamposDemanda::factory()->createAssociationWithDigital($documento->documento->digital, $participantes["id_campo"][$i], "PA"); } } } } /** * BugFix : Lancava Notice */ $id_usuario = $usuario->ID; $nome_usuario = Zend_Auth::getInstance()->getIdentity()->NOME; $id_unidade = $usuario->ID_UNIDADE; $diretoria = DaoUnidade::getUnidade($id_unidade, 'nome'); $stmm = Controlador::getInstance()->getConnection()->connection->prepare("\n INSERT INTO TB_HISTORICO_TRAMITE_DOCUMENTOS \n (DIGITAL, ID_USUARIO, USUARIO, ID_UNIDADE, DIRETORIA, \n ACAO, ORIGEM, DESTINO, DT_TRAMITE) \n VALUES \n ( ?, ?, ?, ?, ?, ?, ?, ?, CURRENT_TIMESTAMP(0) )\n "); $stmm->bindParam(1, $documento->documento->digital, PDO::PARAM_STR); $stmm->bindParam(2, $id_usuario, PDO::PARAM_INT); $stmm->bindParam(3, $nome_usuario, PDO::PARAM_STR); $stmm->bindParam(4, $id_unidade, PDO::PARAM_INT); $stmm->bindParam(5, $diretoria, PDO::PARAM_STR); $stmm->bindParam(6, $acao, PDO::PARAM_STR); $stmm->bindParam(7, $origem, PDO::PARAM_STR); $stmm->bindParam(8, $destino, PDO::PARAM_STR); $stmm->execute(); Controlador::getInstance()->getConnection()->connection->commit(); return new Output(array('success' => 'true')); } catch (PDOException $e) { Controlador::getInstance()->getConnection()->connection->rollback(); return new Output(array('success' => 'false', 'error' => $e->getMessage())); } }
<?php /* * Copyright 2008 ICMBio * Este arquivo é parte do programa SISICMBio * 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 * */ $contexto = Controlador::getInstance()->getContexto(); $usuario = Zend_Auth::getInstance()->getStorage()->read(); $digital = current(CFModelDocumento::factory()->find($_REQUEST['DIGITAL_PAI'])); $aColumns = array('DEMANDA', 'SOLICITACAO_DEMANDA', 'RESPOSTA_DEMANDA', 'INTERESSADO', 'ORGAO', 'PRAZO_DEMANDA', 'FG_ATIVO', 'PRAZO_PAI', 'UNIDADE_DESTINO'); $aColumnsFTS = array('DIGITAL_FILHO', 'ID_VINCULO', 'RESPOSTA', 'ID_VINCULO', 'TEXTO_DEMANDA', 'NOME_USUARIO', 'FG_ATIVO'); $sIndexColumn = "ID_VINCULO"; $sTable = "EXT__SNAS__VW_VINCULO_DOCUMENTOS"; $sExtraQuery = "DOCUMENTO_VINCULO_PAI = '{$digital->DIGITAL}'"; print Grid::getGrid($_GET, $aColumns, $sIndexColumn, $sTable, null, $sExtraQuery, $aColumnsFTS);
$_SESSION['PESQUISAR_DOCUMENTOS_QUERY_PEDIODO']['dt_inicial'] = '0001-01-01'; $_SESSION['PESQUISAR_DOCUMENTOS_QUERY_PEDIODO']['dt_final'] = date('Y-m-d'); $_SESSION['PESQUISAR_DOCUMENTOS_QUERY_PEDIODO']['tp_periodo'] = 'DT_CADASTRO'; foreach ($_REQUEST as $key => $value) { if ($key != 'acao' && ($value && $value != 'null') && $key != 'dt_inicial' && $key != 'dt_final' && $key != 'tp_periodo' && $key != 'tp_pesquisa') { $_SESSION['PESQUISAR_DOCUMENTOS'][$key] = $value; } else { if ($value != '') { $_SESSION['PESQUISAR_DOCUMENTOS_QUERY_PEDIODO'][$key] = $value; } } } $out = array('success' => 'true'); break; case 'listar-extras': $extras = current(CFModelDocumento::factory()->findByParam(array('DIGITAL' => $_REQUEST['id']))); $prioridades = CFModelDocumentoDemanda::factory()->retrieveCamposExtraPrioridadeByDigital($_REQUEST['id']); $participantes = CFModelDocumentoDemanda::factory()->retrieveCamposExtraParticipantesByDigital($_REQUEST['id']); $extras->PARTICIPANTES = $participantes; $extras->PRIORIDADES = $prioridades; $extras->CONTEUDO = CFModelDocumentoDemanda::factory()->retrieveConteudoDocumentoById($extras->ID); $out = array('success' => 'true', 'extras' => $extras); break; case 'exportar': $documento = new Documento($_REQUEST); $out = DaoDocumento::uniqueDocumento($documento)->toArray(); break; default: $out = array('success' => 'false', 'error' => 'Opção Inválida!'); break; }
/** * Cria um histórico de associação do documento. * @author Bruno Pedreira * Data: 11/12/2013 * @param int $idDocumento * @param int $idUsuario * @param string $usuario * @param int $idUnidade * @param string $diretoria * @param string $origem * @param string $destino * @throws Exception */ public function criarHistoricoDocumentoAssociado($idDocumentoPai, $idDocumentoFilho, $idUsuario, $usuario, $idUnidade, $diretoria, $origem, $destino, $isPai) { try { $idDocumento = $isPai ? $idDocumento = $idDocumentoPai : ($idDocumento = $idDocumentoFilho); $digital = current(CFModelDocumento::factory()->find($idDocumento))->DIGITAL; $acao = ""; $_REQUEST['DIGITAL'] = $digital; $_REQUEST['ID_USUARIO'] = $idUsuario; $_REQUEST['USUARIO'] = $usuario; $_REQUEST['ID_UNIDADE'] = $idUnidade; $_REQUEST['DIRETORIA'] = $diretoria; $_REQUEST['ORIGEM'] = $origem; $_REQUEST['DESTINO'] = $destino; if ($isPai != true) { $digitalPai = current(CFModelDocumento::factory()->find($idDocumentoPai))->DIGITAL; $acao = "Associado ao documento principal {$digitalPai}."; } else { $digitalFilho = current(CFModelDocumento::factory()->find($idDocumentoFilho))->DIGITAL; $acao = "O documento {$digitalFilho} foi associado."; } return CFModelDocumentoHistoricoTramite::factory()->insert(array('DIGITAL' => $_REQUEST['DIGITAL'], 'ID_USUARIO' => $_REQUEST['ID_USUARIO'], 'USUARIO' => $_REQUEST['USUARIO'], 'ID_UNIDADE' => $_REQUEST['ID_UNIDADE'], 'DIRETORIA' => $_REQUEST['DIRETORIA'], 'ACAO' => $acao, 'ORIGEM' => $_REQUEST['ORIGEM'], 'DESTINO' => $_REQUEST['DESTINO'], 'DT_TRAMITE' => date('Y-m-d H:i:s'), 'ST_ATIVO' => 1)); } catch (Exception $ex) { throw $ex; } }
<?php /* * Copyright 2008 ICMBio * Este arquivo é parte do programa SISICMBio * 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 * */ try { $documento = new Documento($_POST); $out = DaoDocumento::salvarDocumento($documento)->toArray(); $out['digital'] = current(CFModelDocumento::factory()->find($out['id']))->DIGITAL; print json_encode($out); } catch (Exception $e) { }
}); $('#menu-tree-anexos-documentos .expandAll').append(langManager.expandAll); $('#menu-tree-anexos-documentos .collapseAll').append(langManager.collapseAll); }); </script> </head> <body> <div class="contextMenu" id="menu-tree-anexos-documentos"> <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-anexos-documentos" class="arvoreDocumentos"> <?php $documento = current(CFModelDocumento::factory()->findByParam(array('DIGITAL' => $root))); $classe = Documento::validarDocumentoAreaDeTrabalho($root) ? 'root' : 'root root-ausente'; $rootId = $arvore->getRootId(); ?> <li class='<?php print $classe; ?> ' id='<?php print $rootId; ?> '> <span title="Documento mais relevante da arvore"><?php print $root; ?> </span> [ <?php
/** * @return boolean * @param integer $id */ private function _existsProcessesOrDocumentsInUnitById($id) { $documentos = CFModelDocumento::factory()->findByParam(array('ID_UNID_AREA_TRABALHO' => $id, 'ID_UNID_CAIXA_ENTRADA' => $id, 'ID_UNID_CAIXA_SAIDA' => $id), true); if (!empty($documentos)) { return true; } $processos = CFModelProcesso::factory()->findByParam(array('ID_UNID_AREA_TRABALHO' => $id, 'ID_UNID_CAIXA_ENTRADA' => $id, 'ID_UNID_CAIXA_SAIDA' => $id), true); if (!empty($processos)) { return true; } return false; }
<?php $response = array(); try { $persist = CFModelDocumento::factory(); $persist->beginTransaction(); $factory = TPDocumento::factory(); $priority = current(CFModelPrioridade::factory()->find($_REQUEST['PRIORIDADE'])); $usuario = Zend_Auth::getInstance()->getStorage()->read(); $digital = CFModelDigital::factory()->next($usuario->ID_UNIDADE); if (!$digital) { throw new Exception('Não existe digitais disponíveis!'); } $_REQUEST['SOLICITACAO'] = $_REQUEST['SOLICITACAO']; $_REQUEST['PROCEDENCIA'] = 'I'; $_REQUEST['TIPO'] = 'MONITORAMENTO'; # MONITORAMENTO! @todo parametrizar... $_REQUEST['NUMERO'] = $digital; $_REQUEST['DT_DOCUMENTO'] = Util::formatDate($_REQUEST['DT_DOCUMENTO']); $_REQUEST['DT_PRAZO'] = Util::formatDate($_REQUEST['DT_PRAZO']); $_REQUEST['DIRETORIA'] = $usuario->DIRETORIA; $_REQUEST['ORIGEM'] = $usuario->DIRETORIA; $_REQUEST['DT_CADASTRO'] = date('Y-m-d'); $_REQUEST['DIGITAL'] = $digital; $_REQUEST['ULTIMO_TRAMITE'] = sprintf('Área de Trabalho - %s', $usuario->DIRETORIA); $_REQUEST['ID_UNIDADE'] = $usuario->ID_UNIDADE; $_REQUEST['ID_USUARIO'] = $usuario->ID; $_REQUEST['ID_UNID_CAIXA_SAIDA'] = $usuario->ID_UNIDADE; $_REQUEST['USUARIO'] = $usuario->NOME; $_REQUEST['NM_PRIORIDADE'] = $priority->PRIORIDADE; $lastId = $factory->create($_REQUEST);