示例#1
0
 /**
  * Tramitar processo para destino externo
  */
 public function consolidarTramiteExternoProcesso()
 {
     try {
         /**
          * Remover informacoes de tramites anteriores
          */
         Session::destroy('_processos_recibo');
         Session::destroy('_processos_recibo_destinatario');
         Session::destroy('_processos_recibo_local');
         Session::destroy('_processos_recibo_endereco');
         Session::destroy('_processos_recibo_telefone');
         Session::destroy('_processos_recibo_cep');
         Session::destroy('_processos_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 => $processo) {
             if (Processo::validarProcessoAreaDeTrabalho($processo)) {
                 $stmt = Controlador::getInstance()->getConnection()->connection->prepare("UPDATE TB_PROCESSOS_CADASTRO SET ID_UNID_AREA_TRABALHO = NULL, ID_UNID_CAIXA_ENTRADA = NULL, ID_UNID_CAIXA_SAIDA = NULL, EXTERNO = ?, ULTIMO_TRAMITE = ? WHERE NUMERO_PROCESSO = ?");
                 $stmt->bindParam(1, $this->tramite->nm_destino, PDO::PARAM_STR);
                 $stmt->bindParam(2, $this->tramite->ultimo_tramite, PDO::PARAM_STR);
                 $stmt->bindParam(3, $processo, PDO::PARAM_STR);
                 $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_PROCESSOS" . " (NUMERO_PROCESSO,USUARIO,ACAO,ORIGEM,DESTINO,DT_TRAMITE,DIRETORIA,ID_UNIDADE,ID_USUARIO)" . " VALUES (?,?,?,?,?,CLOCK_TIMESTAMP(),?,?,?)");
                 $historico->bindParam(1, $processo, PDO::PARAM_STR);
                 //numero processo
                 $historico->bindParam(2, $nome_usuario, PDO::PARAM_STR);
                 //nm_usuario
                 $historico->bindParam(3, $acao, PDO::PARAM_STR);
                 //acao
                 $historico->bindParam(4, $tx_diretoria, PDO::PARAM_STR);
                 //origem
                 $historico->bindParam(5, $this->tramite->nm_destino, PDO::PARAM_STR);
                 //destino
                 $historico->bindParam(6, $nome_unidade_original, PDO::PARAM_STR);
                 //nome unidade
                 $historico->bindParam(7, $id_unidade_original, PDO::PARAM_INT);
                 //id unidade
                 $historico->bindParam(8, $id_usuario, PDO::PARAM_INT);
                 //id usuario
                 $historico->execute();
                 Tramite::setProcessosGuiaRecibo($processo);
                 //Adicionar numero processo para confeccionar a guia de recibo!
             }
         }
         /**
          * Setar novas informacoes do tramite
          */
         Session::set('_processos_recibo_destinatario', $this->tramite->destinatario);
         Session::set('_processos_recibo_local', $this->tramite->local);
         Session::set('_processos_recibo_endereco', $this->tramite->endereco);
         Session::set('_processos_recibo_telefone', $this->tramite->telefone);
         Session::set('_processos_recibo_cep', $this->tramite->cep);
         Session::set('_processos_recibo_prioridade', $this->tramite->prioridade);
         Controlador::getInstance()->getConnection()->connection->commit();
         return new Output(array('success' => 'true', 'message' => "Processo(s) tramitados com sucesso!", 'ticket' => 'true'));
     } catch (PDOException $e) {
         throw new BasePDOException($e);
         return new Output(array('success' => 'false', 'error' => $e->getMessage()));
     }
 }