/** * */ 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!'); } }