Exemplo n.º 1
0
 /**
  *  Operacao Desvincular documentos
  */
 public function desvincularDocumento($pai, $filho, $vinculacao)
 {
     try {
         /* Validar se os documentos pai e filho ainda estao na area de trabalho do usuario
            OU
            /* Privilegio total para usuarios com permissao */
         $controller = Controlador::getInstance();
         $auth = $controller->usuario;
         // permissao desanexar documento = 310114
         if (Documento::validarDocumentoAreaDeTrabalho($pai) || $vinculacao == 1 && AclFactory::checaPermissao($controller->acl, $auth, DaoRecurso::getRecursoById(3101114))) {
             if (Documento::validarDocumentoAreaDeTrabalho($filho) || $vinculacao == 1 && AclFactory::checaPermissao($controller->acl, $auth, DaoRecurso::getRecursoById(3101114))) {
                 $operacao = $vinculacao == 1 ? 'desanexado' : 'desapensado';
                 /* Inicar transacao */
                 Controlador::getInstance()->getConnection()->connection->beginTransaction();
                 /* Verificar se existe um vinculo existe ativo e quais sao os historicos de tramite */
                 $stmt = Controlador::getInstance()->getConnection()->connection->prepare("SELECT\n                            DV.ID AS ID_VINCULO,\n                            HF.ID AS ID_HISTORICO_FILHO,\n                             HP.ID AS ID_HISTORICO_PAI,\n                             DCF.DIGITAL AS FILHO,\n                             DCP.DIGITAL AS PAI\n                            FROM TB_DOCUMENTOS_VINCULACAO DV\n                             INNER JOIN TB_DOCUMENTOS_CADASTRO DCP ON DV.ID_DOCUMENTO_PAI = DCP.ID\n                             INNER JOIN TB_DOCUMENTOS_CADASTRO DCF ON DV.ID_DOCUMENTO_FILHO = DCF.ID\n                             LEFT JOIN TB_HISTORICO_TRAMITE_DOCUMENTOS HP ON DV.ID_HISTORICO_TRAMITE_PAI = HP.ID\n                             LEFT JOIN TB_HISTORICO_TRAMITE_DOCUMENTOS HF ON DV.ID_HISTORICO_TRAMITE_FILHO = HF.ID\n                            WHERE\n                             DCP.DIGITAL = ? AND\n                             DCF.DIGITAL = ? AND\n                             DV.ID_VINCULACAO = ? AND\n                             DV.FG_ATIVO = 1 AND DV.ST_ATIVO = 1 LIMIT 1");
                 $stmt->bindParam(1, $pai, PDO::PARAM_STR);
                 $stmt->bindParam(2, $filho, PDO::PARAM_STR);
                 $stmt->bindParam(3, $vinculacao, PDO::PARAM_INT);
                 $stmt->execute();
                 $out = $stmt->fetch(PDO::FETCH_ASSOC);
                 /* Se desanexacao */
                 if (!empty($out) && $vinculacao == 1) {
                     /* Desvincular */
                     $sthp = Controlador::getInstance()->getConnection()->connection->prepare("UPDATE TB_DOCUMENTOS_VINCULACAO SET FG_ATIVO = 0 WHERE ID = ?");
                     $sthp->bindParam(1, $out['ID_VINCULO'], PDO::PARAM_INT);
                     $sthp->execute();
                     /* Log Vinculo */
                     new Log('TB_DOCUMENTOS_VINCULACAO', $out['ID_VINCULO'], $auth->ID, 'desanexar');
                     /* Remover historico tramite pai */
                     if (!is_null($out['ID_HISTORICO_PAI'])) {
                         $sthp = Controlador::getInstance()->getConnection()->connection->prepare("UPDATE TB_HISTORICO_TRAMITE_DOCUMENTOS SET ST_ATIVO = 0 WHERE ID = ?");
                         $sthp->bindParam(1, $out['ID_HISTORICO_PAI'], PDO::PARAM_INT);
                         $sthp->execute();
                         /* Log Historico Pai */
                         new Log('HISTORICO_TRAMITE', $out['ID_HISTORICO_PAI'], $auth->ID, 'excluir');
                     }
                     /* Remover historico tramite filho */
                     if (!is_null($out['ID_HISTORICO_FILHO'])) {
                         $sthf = Controlador::getInstance()->getConnection()->connection->prepare("UPDATE TB_HISTORICO_TRAMITE_DOCUMENTOS SET ST_ATIVO = 0 WHERE ID = ?");
                         $sthf->bindParam(1, $out['ID_HISTORICO_FILHO'], PDO::PARAM_INT);
                         $sthf->execute();
                         /* Log Historico Filho */
                         new Log('HISTORICO_TRAMITE', $out['ID_HISTORICO_FILHO'], $auth->ID, 'excluir');
                     }
                 }
                 /* Se desapensacao */
                 if (!empty($out) && $vinculacao == 2) {
                     /* Variaveis do historico de tramite */
                     $acao_filho = "Este documento foi {$operacao} do documento {$pai}";
                     // historico filho
                     $acao_pai = "O documento {$filho} foi {$operacao}.";
                     // historico pai
                     $ultimo_tramite = "Este documento foi {$operacao} do documento {$pai}.";
                     //ultimo tramite filho
                     $destino = "XXXXX";
                     $origem = "XXXXX";
                     $id_usuario = $auth->ID;
                     $id_unidade = $auth->ID_UNIDADE_ORIGINAL;
                     $nome_usuario = $auth->NOME;
                     $diretoria = DaoUnidade::getUnidade($id_unidade, 'nome');
                     /* Desvincular */
                     $sthp = Controlador::getInstance()->getConnection()->connection->prepare("UPDATE TB_DOCUMENTOS_VINCULACAO SET FG_ATIVO = 0 WHERE ID = ?");
                     $sthp->bindParam(1, $out['ID_VINCULO'], PDO::PARAM_INT);
                     $sthp->execute();
                     /* Adicionar historico tramite pai */
                     $sthp = 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())");
                     $sthp->bindParam(1, $pai, PDO::PARAM_STR);
                     //digital pai
                     $sthp->bindParam(2, $id_usuario, PDO::PARAM_INT);
                     //id usuario
                     $sthp->bindParam(3, $nome_usuario, PDO::PARAM_STR);
                     //nome usuario
                     $sthp->bindParam(4, $id_unidade, PDO::PARAM_INT);
                     //id unidade
                     $sthp->bindParam(5, $diretoria, PDO::PARAM_STR);
                     //nome diretoria
                     $sthp->bindParam(6, $acao_pai, PDO::PARAM_STR);
                     //acao pai
                     $sthp->bindParam(7, $origem, PDO::PARAM_STR);
                     //origem
                     $sthp->bindParam(8, $destino, PDO::PARAM_STR);
                     //destino
                     $sthp->execute();
                     /* Adicionar historico tramite filho */
                     $sthf = 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())");
                     $sthf->bindParam(1, $filho, PDO::PARAM_STR);
                     //digital filho
                     $sthf->bindParam(2, $id_usuario, PDO::PARAM_INT);
                     //id usuario
                     $sthf->bindParam(3, $nome_usuario, PDO::PARAM_STR);
                     //nome usuario
                     $sthf->bindParam(4, $id_unidade, PDO::PARAM_INT);
                     //id unidade
                     $sthf->bindParam(5, $diretoria, PDO::PARAM_STR);
                     //nome diretoria
                     $sthf->bindParam(6, $acao_filho, PDO::PARAM_STR);
                     //acao filho
                     $sthf->bindParam(7, $origem, PDO::PARAM_STR);
                     //origem
                     $sthf->bindParam(8, $destino, PDO::PARAM_STR);
                     //destino
                     $sthf->execute();
                     /* Ultimo tramite - Documento Filho */
                     $stmt = Controlador::getInstance()->getConnection()->connection->prepare("UPDATE TB_DOCUMENTOS_CADASTRO SET ULTIMO_TRAMITE = ? WHERE DIGITAL = ?");
                     $stmt->bindParam(1, $ultimo_tramite, PDO::PARAM_STR);
                     //acao
                     $stmt->bindParam(2, $filho, PDO::PARAM_STR);
                     //digital filho
                     $stmt->execute();
                 }
                 /* Comitar */
                 Controlador::getInstance()->getConnection()->connection->commit();
                 return new Output(array('success' => 'true', 'message' => "Documento {$operacao} com sucesso!"));
             } else {
                 /* Retorna quando o documento filho nao esta na area de trabalho do usuario */
                 return new Output(array('success' => 'false', 'error' => "O documento {$filho} 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 documento {$pai} 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-documentos-associados .expandAll').append(langManager.expandAll);
                $('#menu-tree-documentos-associados .collapseAll').append(langManager.collapseAll);

            });
        </script>
    </head>
    <body>
        <div class="contextMenu" id="menu-tree-documentos-associados">
            <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-documentos-associados" class="arvoreDocumentos">
            <li class='<?php 
print Documento::validarDocumentoAreaDeTrabalho($root) ? 'root' : 'root root-ausente';
?>
' id='<?php 
print $arvore->getRootId();
?>
'><span title="Documento mais relevante da arvore"><?php 
print $root;
?>
</span>
                <ul><?php 
print $elementos;
?>
</ul>
            </li>
        </ul>
    </body>
 * 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
 * */
$allowForever = AclFactory::checaPermissao(Controlador::getInstance()->acl, Controlador::getInstance()->usuario, DaoRecurso::getRecursoById(301206));
$session = unserialize($_SESSION['sgdoc']['_upload']);
if (Documento::validarDocumentoPecaProcesso($session['digital']) && !$allowForever) {
    die('<br /><br /><br /><span class="red"><strong>ESTE DOCUMENTO NÃO PODE RECEBER NOVAS IMAGENS ENQUANTO FOR PEÇA DE UM PROCESSO!</strong></span>');
}
if (!Documento::validarDocumentoAreaDeTrabalho($session['digital']) && !$allowForever) {
    die('<br /><br /><br /><span class="red"><strong>ESTE DOCUMENTO NÃO ESTÁ NA SUA ÁREA DE TRABALHO!</strong></span>');
}
if (Documento::validarDocumentoVinculadoDocumentoPrincipal($session['digital']) && !$allowForever) {
    die('<br /><br /><br /><span class="red"><strong>ESTE DOCUMENTO NÃO PODE RECEBER NOVAS IMAGENS ENQUANTO ESTIVER VINCULADO À OUTRO DOCUMENTO!</strong></span>');
}
?>

<!DOCTYPE HTML>
<html>
    <head>
        <meta charset="utf-8">
        <title>Upload de Imagens</title>

        <?php 
$allowScriptsMinifierCss = array("plugins/jquery-file-upload/css/bootstrap.min.css", "plugins/jquery-file-upload/css/style.css", "plugins/jquery-file-upload/css/jquery.fileupload-ui.css");
Exemplo n.º 4
0
 /**
  * 
  */
 public function salvarAutuacao()
 {
     $unidade = current(CFModelUnidade::factory()->find($this->_usuario->id_unidade));
     //verificar se a unidade autuadora é uma unidade protocolizadora...
     if (!$unidade->UP || !$unidade->CODIGO) {
         throw new Exception('Este processo não pode ser autuado porque você não está em uma unidade protocolizadora válida!');
     }
     if (!Documento::validarDocumentoPecaProcesso($this->digital)) {
         if (Documento::validarDocumentoAreaDeTrabalho($this->digital)) {
             if (Documento::getQuantidadeImagemDocumento($this->digital) > 0) {
                 try {
                     Controlador::getInstance()->getConnection()->connection->beginTransaction();
                     $id_unidade_usuario = (int) Controlador::getInstance()->usuario->ID_UNIDADE;
                     $numero_processo = $this->gerarNumeroProcesso();
                     /* Adicionar o novo Processo */
                     $stmt = Controlador::getInstance()->getConnection()->connection->prepare("INSERT INTO TB_PROCESSOS_CADASTRO(\n                            NUMERO_PROCESSO,ORIGEM,ASSUNTO,ASSUNTO_COMPLEMENTAR,DT_AUTUACAO,DT_PRAZO,\n                            DT_CADASTRO,USUARIO,INTERESSADO,ID_UNID_AREA_TRABALHO,ULTIMO_TRAMITE,PROCEDENCIA,ID_UNIDADE_USUARIO) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)");
                     $stmt->bindParam(1, $numero_processo, PDO::PARAM_STR);
                     $stmt->bindParam(2, $this->origem, PDO::PARAM_INT);
                     $stmt->bindParam(3, $this->assunto, PDO::PARAM_INT);
                     $stmt->bindParam(4, $this->assunto_complementar, PDO::PARAM_STR);
                     $stmt->bindParam(5, $this->dt_autuacao, PDO::PARAM_STR);
                     $stmt->bindParam(6, $this->dt_prazo, PDO::PARAM_STR);
                     $stmt->bindParam(7, $this->dt_autuacao, PDO::PARAM_STR);
                     $stmt->bindParam(8, $this->_usuario->id, PDO::PARAM_INT);
                     $stmt->bindParam(9, $this->interessado, PDO::PARAM_INT);
                     $stmt->bindParam(10, $this->area_trabalho, PDO::PARAM_INT);
                     $stmt->bindParam(11, $this->ultimo_tramite, PDO::PARAM_STR);
                     $stmt->bindParam(12, $this->procedencia, PDO::PARAM_STR);
                     $stmt->bindParam(13, $id_unidade_usuario, PDO::PARAM_STR);
                     $stmt->execute();
                     /* Armazenar o id do processo */
                     $id_processo = Controlador::getInstance()->getConnection()->connection->lastInsertId('TB_PROCESSOS_CADASTRO_ID_SEQ');
                     /* Registrar o primeiro volume do processo */
                     $volume = Controlador::getInstance()->getConnection()->connection->prepare("INSERT INTO TB_PROCESSOS_VOLUME (ID_PROCESSO_CADASTRO, NU_VOLUME, FL_INICIAL, DT_ABERTURA,ID_USUARIO,ID_UNIDADE) VALUES (?, 1, 1,?,?,?)");
                     $volume->bindParam(1, $id_processo, PDO::PARAM_INT);
                     //id do processo
                     $volume->bindParam(2, $this->dt_autuacao, PDO::PARAM_STR);
                     //usar a data da autuacao para informar a data de inicio do primeiro volume.
                     $volume->bindParam(3, $this->_usuario->id, PDO::PARAM_INT);
                     $volume->bindParam(4, $id_unidade_usuario, PDO::PARAM_INT);
                     $volume->execute();
                     /* Adicionar a documento no processo */
                     $peca = Controlador::getInstance()->getConnection()->connection->prepare("INSERT INTO TB_PROCESSOS_DOCUMENTOS(ID_PROCESSOS_CADASTRO,ID_DOCUMENTOS_CADASTRO,ID_USUARIOS,ID_UNIDADE_USUARIO)VALUES(?,?,?,?)");
                     $peca->bindParam(1, $id_processo, PDO::PARAM_INT);
                     //id_processo
                     $peca->bindParam(2, DaoDocumento::getDocumento($this->digital, 'id'), PDO::PARAM_INT);
                     //id_documento
                     $peca->bindParam(3, $this->_usuario->id, PDO::PARAM_INT);
                     $peca->bindParam(4, $id_unidade_usuario, PDO::PARAM_INT);
                     $peca->execute();
                     /* Inserir o historico de tramite do processo */
                     /* Complemento do Historico do Processo */
                     $acao = "Processo Autuado a partir do documento {$this->digital}";
                     $destino = "XXXXX";
                     $id_usuario = $this->_usuario->id;
                     $nome_usuario = $this->_usuario->nome;
                     $id_unidade = Zend_Auth::getInstance()->getIdentity()->ID_UNIDADE;
                     $objOrigem = DaoUnidade::getUnidade($id_unidade);
                     $diretoria = $objOrigem['nome'];
                     $tx_origem = $objOrigem['nome'] . ' - ' . $objOrigem['sigla'];
                     $historico_processo = 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())");
                     $historico_processo->bindParam(1, $this->numero_processo, PDO::PARAM_STR);
                     $historico_processo->bindParam(2, $id_usuario, PDO::PARAM_INT);
                     $historico_processo->bindParam(3, $nome_usuario, PDO::PARAM_STR);
                     $historico_processo->bindParam(4, $id_unidade, PDO::PARAM_INT);
                     $historico_processo->bindParam(5, $diretoria, PDO::PARAM_STR);
                     $historico_processo->bindParam(6, $acao, PDO::PARAM_STR);
                     $historico_processo->bindParam(7, $tx_origem, PDO::PARAM_STR);
                     $historico_processo->bindParam(8, $destino, PDO::PARAM_STR);
                     $historico_processo->execute();
                     /* Complemento do Historico do Documento */
                     $acao = "O processo {$this->numero_processo} foi autuado a partir deste documento.";
                     $destino = "XXXXX";
                     $historico_documento = 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())");
                     $historico_documento->bindParam(1, $this->digital, PDO::PARAM_STR);
                     $historico_documento->bindParam(2, $id_usuario, PDO::PARAM_INT);
                     $historico_documento->bindParam(3, $nome_usuario, PDO::PARAM_STR);
                     $historico_documento->bindParam(4, $id_unidade, PDO::PARAM_INT);
                     $historico_documento->bindParam(5, $diretoria, PDO::PARAM_STR);
                     $historico_documento->bindParam(6, $acao, PDO::PARAM_STR);
                     $historico_documento->bindParam(7, $tx_origem, PDO::PARAM_STR);
                     $historico_documento->bindParam(8, $destino, PDO::PARAM_STR);
                     $historico_documento->execute();
                     DaoDocumento::updateGenerico($this->digital, array('ultimo_tramite' => $acao));
                     Controlador::getInstance()->getConnection()->connection->commit();
                     $this->out = array('success' => 'true', 'numero_processo' => $this->numero_processo);
                     return true;
                 } catch (PDOException $e) {
                     Controlador::getInstance()->getConnection()->connection->rollback();
                     echo $e->getMessage();
                     return false;
                     throw new Exception($e);
                 }
             } else {
                 $this->out = array('success' => 'false', 'error' => 'Este documento não possui imagem!');
             }
         } else {
             $this->out = array('success' => 'false', 'error' => 'Este documento não está na Área de Trabalho!');
         }
     } else {
         $this->out = array('success' => 'false', 'error' => 'Este documento já é peça de outro processo!');
     }
 }
Exemplo n.º 5
0
 /**
  * 
  */
 public function getPecasProcesso($numero_processo, $pageName)
 {
     try {
         $sttm = Controlador::getInstance()->getConnection()->connection->prepare("SELECT DC.DIGITAL AS FILHO \n                FROM TB_PROCESSOS_DOCUMENTOS PXD\n                    INNER JOIN TB_DOCUMENTOS_CADASTRO DC ON DC.ID = PXD.ID_DOCUMENTOS_CADASTRO\n                    INNER JOIN TB_PROCESSOS_CADASTRO PC ON PC.ID = PXD.ID_PROCESSOS_CADASTRO\n                WHERE PC.NUMERO_PROCESSO = ? ORDER BY PXD.ID");
         $sttm->bindParam(1, $numero_processo, PDO::PARAM_STR);
         $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 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;
 }
<?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
 * */
print json_encode(array('response' => true == Documento::validarDocumentoAreaDeTrabalho($_POST['digital'], Controlador::getInstance()->usuario->ID_UNIDADE)));
Exemplo n.º 7
0
 /**
  * Tramitar documento para destino externo
  */
 public function consolidarTramiteExternoDocumento()
 {
     try {
         /**
          * Remover informacoes de tramites anteriores
          */
         Session::destroy('_digitais_recibo');
         Session::destroy('_digitais_recibo_destinatario');
         Session::destroy('_digitais_recibo_local');
         Session::destroy('_digitais_recibo_endereco');
         Session::destroy('_digitais_recibo_telefone');
         Session::destroy('_digitais_recibo_cep');
         Session::destroy('_digitais_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 => $digital) {
             if (Documento::validarDocumentoAreaDeTrabalho($digital)) {
                 $stmt = Controlador::getInstance()->getConnection()->connection->prepare("UPDATE TB_DOCUMENTOS_CADASTRO SET ID_UNID_AREA_TRABALHO = NULL, ID_UNID_CAIXA_ENTRADA = NULL, ID_UNID_CAIXA_SAIDA = NULL, EXTERNO = ?, ULTIMO_TRAMITE = ? WHERE DIGITAL = ?");
                 $stmt->bindParam(1, $this->tramite->nm_destino, PDO::PARAM_STR);
                 //destino
                 $stmt->bindParam(2, $this->tramite->ultimo_tramite, PDO::PARAM_STR);
                 //ultimo_tramite
                 $stmt->bindParam(3, $digital, PDO::PARAM_STR);
                 //digital
                 $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_DOCUMENTOS" . " (DIGITAL,ID_USUARIO,USUARIO,ID_UNIDADE,DIRETORIA,ACAO,ORIGEM,DESTINO,DT_TRAMITE)" . " VALUES (?,?,?,?,?,?,?,?,CLOCK_TIMESTAMP())");
                 $historico->bindParam(1, $digital, PDO::PARAM_STR);
                 //digital
                 $historico->bindParam(2, $id_usuario, PDO::PARAM_INT);
                 //id_usuario
                 $historico->bindParam(3, $nome_usuario, PDO::PARAM_STR);
                 //nm_usuario
                 $historico->bindParam(4, $id_unidade_original, PDO::PARAM_INT);
                 //id_unidade
                 $historico->bindParam(5, $nome_unidade_original, PDO::PARAM_STR);
                 //nm_unidade
                 $historico->bindParam(6, $acao, PDO::PARAM_STR);
                 //acao
                 $historico->bindParam(7, $tx_diretoria, PDO::PARAM_STR);
                 //origem
                 $historico->bindParam(8, $this->tramite->nm_destino, PDO::PARAM_STR);
                 //destino
                 $historico->execute();
                 Tramite::setDigitaisGuiaRecibo($digital);
                 //Adicionar digital para confeccionar a guia de recibo!
             }
         }
         /**
          * Setar novas informacoes do tramite 
          */
         Session::set('_digitais_recibo_destinatario', $this->tramite->destinatario);
         Session::set('_digitais_recibo_local', $this->tramite->local);
         Session::set('_digitais_recibo_endereco', $this->tramite->endereco);
         Session::set('_digitais_recibo_telefone', $this->tramite->telefone);
         Session::set('_digitais_recibo_cep', $this->tramite->cep);
         Session::set('_digitais_recibo_prioridade', $this->tramite->prioridade);
         Controlador::getInstance()->getConnection()->connection->commit();
         return new Output(array('success' => 'true', 'message' => "Documento(s) tramitados com sucesso!", 'ticket' => 'true'));
     } catch (PDOException $e) {
         new BasePDOException($e);
         return new Output(array('success' => 'false', 'error' => $e->getMessage()));
     }
 }