예제 #1
0
function desfazerPassos(Documento $doc, $passo)
{
    $out1 = array();
    switch ((int) $passo) {
        case 3:
            // Deu erro no trâmite ou em outra etapa
            // desfazer tudo
            $tram = new Tramite();
            $out1 = $tram->removerTramite($doc->digital)->toArray();
        case 2:
            // Deu erro na criação do prazo
            // apagar qualquer prazo que tenha sido cadastrado
            // e o historico do prazo
            $out1 = DaoPrazo::removerPrazo($doc->digital)->toArray();
            // e fazer todo o resto
        // e fazer todo o resto
        case 1:
            // Deu erro na persistência das imagens
            // desfazer aqui cadastro do documento e anexação de imagens
            $out1 = DaoDocumento::removerImagensDocumento($doc)->toArray();
            if ($out1['success'] == 'true') {
                // e deletar pastas e arquivos das imagens
                $out1 = DaoDocumento::removerDocumento($doc)->toArray();
            }
    }
    return $out1;
}
예제 #2
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 {
    $out = DaoDocumento::numDigitalDisponivelSic()->toArray();
    print json_encode($out);
} catch (Exception $e) {
    $erro = new Output(array('success' => 'false', 'error' => $e->getMessage()));
    print json_encode($erro->toArray());
}
 /**
  * @todo Verifica se existe vínculo entre os documentos.
  * @param int $digitalPai
  * @param int $digitalFilho
  * @return bool
  */
 public static function isDocumentosVinculados($digitalPai, $digitalFilho)
 {
     $documentoPai = DaoDocumento::getDocumento($digitalPai);
     $documentoFilho = DaoDocumento::getDocumento($digitalFilho);
     $stmt = Controlador::getInstance()->getConnection()->connection->prepare("select st_ativo from tb_documentos_vinculacao \n                                                                                  where id_documento_pai   = ?\n                                                                                    and id_documento_filho = ? ");
     $stmt->bindParam(1, $documentoPai["id"], PDO::PARAM_INT);
     $stmt->bindParam(2, $documentoFilho["id"], PDO::PARAM_INT);
     $stmt->execute();
     return (bool) $stmt->fetch(PDO::FETCH_ASSOC);
 }
예제 #4
0
 /**
  *  Verificar se o documento informado eh peca de processo 
  */
 public static function validarDocumentoPecaProcesso($digital)
 {
     try {
         $stmt = Controlador::getInstance()->getConnection()->connection->prepare("SELECT ID FROM TB_PROCESSOS_DOCUMENTOS WHERE ID_DOCUMENTOS_CADASTRO = ? LIMIT 1");
         $stmt->bindParam(1, DaoDocumento::getDocumento($digital, 'id'), PDO::PARAM_INT);
         $stmt->execute();
         $out = $stmt->fetchAll(PDO::FETCH_ASSOC);
         if (!empty($out)) {
             return true;
         }
         return false;
     } catch (PDOException $e) {
         throw new BasePDOException($e);
     }
 }
예제 #5
0
     /**
      * @deprecated
      * Uma vez que os arquivos PDF serão tratados como documento, ou o documento é confidencial ou é público
      */
 /**
  * @deprecated
  * Uma vez que os arquivos PDF serão tratados como documento, ou o documento é confidencial ou é público
  */
 case 'alterar-status-imagem':
     /* Validar se a operacao esta autorizada */
     if (AclFactory::checaPermissao(Controlador::getInstance()->acl, Controlador::getInstance()->usuario, DaoRecurso::getRecursoById(998))) {
         if (isset($_REQUEST)) {
             $hashs = explode(',', $_REQUEST['hash']);
             foreach ($hashs as $hash) {
                 $hash = explode('|', $hash);
                 $out = DaoDocumento::updateStatusDocumentosImagens($hash[1], $hash[0], $_REQUEST['status']);
             }
         } else {
             $out = array('success' => 'false', 'error' => Util::fixErrorString('Informações importantes estão ausentes!'));
         }
     } else {
         $out = array('success' => 'false', 'error' => Util::fixErrorString('Acesso negado!'));
     }
     break;
 case 'atualiza-ordem':
     /* Validar se a operacao esta autorizada */
     if (AclFactory::checaPermissao(Controlador::getInstance()->acl, Controlador::getInstance()->usuario, DaoRecurso::getRecursoById(998))) {
         if (isset($_REQUEST)) {
             $extraConditional = '';
             $temporaryOrdemValue = 2222;
             $fieldValue = '';
예제 #6
0
                    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;
        }
        print json_encode($out);
    } catch (Exception $e) {
    }
}
 * 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
 * */
include "function/auto_load_statics.php";
$controller = Controlador::getInstance();
$auth = $controller->usuario;
$objeto = DaoDocumento::getDocumento($_REQUEST['digital']);
$controller->setContexto($objeto);
$controller->botoes = Util::getMenus($auth, $controller->recurso, $controller->acl);
foreach ($controller->recurso->dependencias as $arquivo) {
    include_once 'interfaces/' . $arquivo;
}
?>

<html>
    <head>
        <script type="text/javascript" src="plugins/datatable/media/js/jquery.dataTables.js"></script>
        <style type="text/css">
            @import "plugins/datatable/media/css/demo_table_tabs.css";
            body{
                margin: 10px;
                background-color: #101c01;
예제 #8
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 {
    if (DaoDocumento::checaDocumentoExisteDigital((string) $_POST['digital'])) {
        if (Tramite::registrarHistoricoDeTramiteDocumentos($_POST['digital'], 'Código de Rastreamento', $origem = 'XXXXX', sprintf('<span>%s - </span><a href="%s%s"><blink><strong>%s</strong></blink></a>', $_POST['servico'], __RASTREAMENTO__, $_POST['codigo'], $_POST['codigo']))) {
            $response = array('status' => 'success', 'message' => 'Rastreamento registrado com sucesso!');
        } else {
            $response = array('status' => 'error', 'message' => 'Não foi possivel efetuar o registro do rastreamento!');
        }
    } else {
        $response = array('status' => 'error', 'message' => 'Este documento nao foi cadastrado ainda!');
    }
} catch (Exception $e) {
    $response = array('status' => 'error', 'message' => $e->getMessage());
}
print json_encode($response);
예제 #9
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) {
}
 * 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
 * */
include "function/auto_load_statics.php";
$controller = Controlador::getInstance();
$auth = $controller->usuario;
$objeto = DaoDocumento::getDocumento($_GET['digital']);
$controller->setContexto($objeto);
$controller->botoes = Util::getMenus($auth, $controller->recurso, $controller->acl);
foreach ($controller->recurso->dependencias as $arquivo) {
    include_once 'interfaces/' . $arquivo;
}
?>

<html>
    <head>
        <script type="text/javascript" src="plugins/datatable/media/js/jquery.dataTables.js"></script>
        <style type="text/css">
            @import "plugins/datatable/media/css/demo_table_tabs.css";
            body{
                margin: 10px;
                background-color: #101c01;
 * 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
 * */
include "function/auto_load_statics.php";
$digital = $_REQUEST['digital'];
$controller = Controlador::getInstance();
$auth = $controller->usuario;
$objeto = DaoDocumento::getDocumento($digital);
$controller->setContexto($objeto);
$controller->recurso->abas = null;
$controller->botoes = Util::getMenus($auth, $controller->recurso, $controller->acl);
?>

<html>
    <head>
        <title>Anexos/Apensos</title>
        <style type="text/css">
            body {
                background-color: #101c01;
                background-image: url('imagens/<?php 
print __BACKGROUND__;
?>
');
예제 #12
0
 /**
  * Operacao Vincular documentos a documentos
  * @return Output
  * @param string $pai
  * @param string $filho
  * @param integer $vinculacao
  */
 public function vincularDocumento($pai, $filho, $vinculacao)
 {
     try {
         /* Validar se os documentos pai e filho ainda estao na area de trabalho do usuario */
         if (Documento::validarDocumentoAreaDeTrabalho($pai)) {
             if (Documento::validarDocumentoAreaDeTrabalho($filho)) {
                 /* 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 FROM TB_DOCUMENTOS_VINCULACAO WHERE ID_DOCUMENTO_FILHO = ? AND FG_ATIVO = 1 AND ST_ATIVO = 1 LIMIT 1");
                 $stmt->bindParam(1, DaoDocumento::getDocumento($filho, 'id'), PDO::PARAM_INT);
                 $stmt->execute();
                 $out = $stmt->fetchAll(PDO::FETCH_ASSOC);
                 if (empty($out)) {
                     $dt_ativacao = date('Y-m-d');
                     $operacao = $vinculacao == 1 ? 'anexado' : 'apensado';
                     $acao0 = "Este documento foi {$operacao} ao documento {$pai}";
                     $acao1 = "O documento {$filho} foi {$operacao}.";
                     $acao2 = "Este documento foi {$operacao} ao documento {$pai}.";
                     $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;
                     $diretoria = DaoUnidade::getUnidade($id_unidade_historico, 'nome');
                     /* Historico - Documento Pai */
                     $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, $pai, 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, $acao1, PDO::PARAM_STR);
                     $stmt->bindParam(7, $origem, PDO::PARAM_STR);
                     $stmt->bindParam(8, $destino, PDO::PARAM_STR);
                     $stmt->execute();
                     /**/
                     $id_pai = Controlador::getInstance()->getConnection()->connection->lastInsertId('TB_HISTORICO_TRAMITE_DOCUMENTOS_ID_SEQ');
                     /* Historico - Documento Filho */
                     $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, $filho, 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, $acao0, PDO::PARAM_STR);
                     $stmt->bindParam(7, $origem, PDO::PARAM_STR);
                     $stmt->bindParam(8, $destino, PDO::PARAM_STR);
                     $stmt->execute();
                     /**/
                     $id_filho = Controlador::getInstance()->getConnection()->connection->lastInsertId('TB_HISTORICO_TRAMITE_DOCUMENTOS_ID_SEQ');
                     /* Ultimo tramite - Documento Filho */
                     $stmt = Controlador::getInstance()->getConnection()->connection->prepare("UPDATE TB_DOCUMENTOS_CADASTRO SET ULTIMO_TRAMITE = ? WHERE DIGITAL = ?");
                     $stmt->bindParam(1, $acao2, PDO::PARAM_STR);
                     $stmt->bindParam(2, $filho, PDO::PARAM_STR);
                     $stmt->execute();
                     $id_unidade = Controlador::getInstance()->usuario->ID_UNIDADE;
                     /* Vincular */
                     $sttm = Controlador::getInstance()->getConnection()->connection->prepare("INSERT INTO TB_DOCUMENTOS_VINCULACAO (ID_DOCUMENTO_PAI,ID_DOCUMENTO_FILHO,ID_USUARIO,ID_HISTORICO_TRAMITE_PAI,ID_HISTORICO_TRAMITE_FILHO,ID_VINCULACAO,DT_ATIVACAO,ID_UNIDADE) VALUES (?,?,?,?,?,?,?,?)");
                     $sttm->bindParam(1, DaoDocumento::getDocumento($pai, 'id'), PDO::PARAM_INT);
                     $sttm->bindParam(2, DaoDocumento::getDocumento($filho, 'id'), PDO::PARAM_INT);
                     $sttm->bindParam(3, $id_usuario, PDO::PARAM_INT);
                     $sttm->bindParam(4, $id_pai, PDO::PARAM_INT);
                     $sttm->bindParam(5, $id_filho, PDO::PARAM_INT);
                     $sttm->bindParam(6, $vinculacao, PDO::PARAM_INT);
                     $sttm->bindParam(7, $dt_ativacao, PDO::PARAM_INT);
                     $sttm->bindParam(8, $id_unidade, PDO::PARAM_INT);
                     $sttm->execute();
                     /* Comitar */
                     Controlador::getInstance()->getConnection()->connection->commit();
                     return new Output(array('success' => 'true', 'message' => "Documento {$operacao} com sucesso!"));
                 } else {
                     return new Output(array('success' => 'false', 'error' => 'Este documento já está vinculado a outro documento!'));
                 }
             } 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()));
     }
 }
예제 #13
0
 * 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
 * */
/**
 * @author Michael F. Rodrigues <*****@*****.**>
 */
$_REQUEST['assunto_complementar'] = '';
$_REQUEST['data_documento'] = date('d/m/Y');
if ($_REQUEST['procedencia'] == 'E') {
    $_REQUEST['data_entrada'] = date('d/m/Y');
    $_REQUEST['recibo'] = Controlador::getInstance()->usuario->NOME;
}
/**
 * Registrar Documento
 */
$response = DaoDocumento::salvarDocumento(new Documento($_REQUEST))->toArray();
/**
 * Registrar Comentario
 */
if ($_REQUEST['comentario'] != '' && $response['success'] == 'true') {
    DaoComentario::inserirComentarioDocumento(new Comentario(array('digital' => $_REQUEST['digital'], 'texto' => $_REQUEST['comentario'])));
}
/**
 * Printar Saida
 */
print json_encode($response);
예제 #14
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!');
     }
 }