Example #1
0
 /**
  * 
  */
 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;
     }
 }
Example #7
0
<?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;
 }
Example #10
0
<?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);