Commit f925f3bf8d7561af5edf2c4926dcdb641f2fabe1
1 parent
5153aeb5
Exists in
master
and in
19 other branches
[Fixed #53] Ajuste em IDs de tarefas customizadas pelo módulo
Showing
2 changed files
with
105 additions
and
2 deletions
Show diff stats
rn/PenAtualizarSeiRN.php
@@ -62,6 +62,7 @@ class PenAtualizarSeiRN extends PenAtualizadorRN { | @@ -62,6 +62,7 @@ class PenAtualizarSeiRN extends PenAtualizadorRN { | ||
62 | case '1.1.13': $this->instalarV1114(); | 62 | case '1.1.13': $this->instalarV1114(); |
63 | case '1.1.14': $this->instalarV1115(); | 63 | case '1.1.14': $this->instalarV1115(); |
64 | case '1.1.15': $this->instalarV1116(); | 64 | case '1.1.15': $this->instalarV1116(); |
65 | + case '1.1.16': $this->instalarV1117(); | ||
65 | 66 | ||
66 | break; | 67 | break; |
67 | default: | 68 | default: |
@@ -1411,4 +1412,93 @@ class PenAtualizarSeiRN extends PenAtualizadorRN { | @@ -1411,4 +1412,93 @@ class PenAtualizarSeiRN extends PenAtualizadorRN { | ||
1411 | $objInfraParametroDTO->setStrValor('1.1.16'); | 1412 | $objInfraParametroDTO->setStrValor('1.1.16'); |
1412 | $objInfraParametroBD->alterar($objInfraParametroDTO); | 1413 | $objInfraParametroBD->alterar($objInfraParametroDTO); |
1413 | } | 1414 | } |
1415 | + | ||
1416 | + /* Contêm atualizações da versao 1.1.17 do módulo */ | ||
1417 | + protected function instalarV1117() { | ||
1418 | + | ||
1419 | + // Definição de função anônima responsável por realizar as seguintes tarefas: | ||
1420 | + // (1) Identificar a tarefa com ID conflitante do SEI | ||
1421 | + // (2) Criar nova tarefa identica mas com ID correto dentro das faixas definidas pelo SEI (maior que 1000) | ||
1422 | + // (3) Atualizar o id_tarefa de todas as atividades relacionadas | ||
1423 | + // (4) Remover a tarefa anterior com ID inválido | ||
1424 | + // (5) Atualizar o campo id_tarefa_modulo com o valor correspondente | ||
1425 | + $fnCadastrar = function($numIdTarefa, $strIdTarefaModulo) { | ||
1426 | + | ||
1427 | + // Identificar a tarefa com ID conflitante do SEI | ||
1428 | + $objTarefaRN = new TarefaRN(); | ||
1429 | + $objTarefaBD = new TarefaBD(BancoSEI::getInstance()); | ||
1430 | + $objTarefaDTOAntigo = new TarefaDTO(); | ||
1431 | + $objTarefaDTOAntigo->retTodos(); | ||
1432 | + $objTarefaDTOAntigo->setStrIdTarefaModulo($strIdTarefaModulo); | ||
1433 | + $objTarefaDTOAntigo = $objTarefaBD->consultar($objTarefaDTOAntigo); | ||
1434 | + | ||
1435 | + if(isset($objTarefaDTOAntigo)) { | ||
1436 | + try { | ||
1437 | + // Criar nova tarefa identica mas com ID correto dentro das faixas definidas pelo SEI (maior que 1000) | ||
1438 | + InfraDebug::getInstance()->gravar("Duplicando tarefa customizadas $strIdTarefaModulo utilizando o controle de sequência 1000"); | ||
1439 | + $objTarefaDTO = new TarefaDTO(); | ||
1440 | + $objTarefaDTO->setNumIdTarefa($numIdTarefa); | ||
1441 | + $objTarefaDTO->setStrNome($objTarefaDTOAntigo->getStrNome()); | ||
1442 | + $objTarefaDTO->setStrSinHistoricoResumido($objTarefaDTOAntigo->getStrSinHistoricoResumido()); | ||
1443 | + $objTarefaDTO->setStrSinHistoricoCompleto($objTarefaDTOAntigo->getStrSinHistoricoCompleto()); | ||
1444 | + $objTarefaDTO->setStrSinFecharAndamentosAbertos($objTarefaDTOAntigo->getStrSinFecharAndamentosAbertos()); | ||
1445 | + $objTarefaDTO->setStrSinLancarAndamentoFechado($objTarefaDTOAntigo->getStrSinLancarAndamentoFechado()); | ||
1446 | + $objTarefaDTO->setStrSinPermiteProcessoFechado($objTarefaDTOAntigo->getStrSinPermiteProcessoFechado()); | ||
1447 | + $objTarefaDTO->setStrIdTarefaModulo(null); | ||
1448 | + $objTarefaBD->cadastrar($objTarefaDTO); | ||
1449 | + | ||
1450 | + // Atualizar o id_tarefa de todas as atividades relacionadas | ||
1451 | + InfraDebug::getInstance()->gravar("Atualizando atividades com chave da nova tarefa $strIdTarefaModulo"); | ||
1452 | + $numIdTarefaAnterior = $objTarefaDTOAntigo->getNumIdTarefa(); | ||
1453 | + BancoSEI::getInstance()->executarSql("UPDATE atividade SET id_tarefa = $numIdTarefa where id_tarefa = $numIdTarefaAnterior"); | ||
1454 | + | ||
1455 | + // Remover a tarefa anterior com ID inválido | ||
1456 | + InfraDebug::getInstance()->gravar("Apagando a tarefa anterior $strIdTarefaModulo"); | ||
1457 | + $objTarefaBD->excluir($objTarefaDTOAntigo); | ||
1458 | + | ||
1459 | + // Atualizar o campo id_tarefa_modulo com o valor correspondente | ||
1460 | + $objTarefaDTOUpdate = new TarefaDTO(); | ||
1461 | + $objTarefaDTOUpdate->setNumIdTarefa($numIdTarefa); | ||
1462 | + $objTarefaDTOUpdate->setStrIdTarefaModulo($strIdTarefaModulo); | ||
1463 | + $objTarefaBD->alterar($objTarefaDTOUpdate); | ||
1464 | + | ||
1465 | + } catch (Exception $e) { | ||
1466 | + throw new InfraException($e); | ||
1467 | + } | ||
1468 | + } | ||
1469 | + }; | ||
1470 | + | ||
1471 | + $rsTabelaTarefa = BancoSEI::getInstance()->consultarSql('select max(id_tarefa) as ultimo from tarefa'); | ||
1472 | + $numMaxId = $rsTabelaTarefa[0]['ultimo']; | ||
1473 | + if (!isset($numMaxId) || $numMaxId < 1000){ | ||
1474 | + $numMaxId = 1000; | ||
1475 | + } | ||
1476 | + | ||
1477 | + $fnCadastrar($numMaxId++, 'PEN_PROCESSO_EXPEDIDO'); | ||
1478 | + $fnCadastrar($numMaxId++, 'PEN_PROCESSO_RECEBIDO'); | ||
1479 | + $fnCadastrar($numMaxId++, 'PEN_PROCESSO_RECUSADO'); | ||
1480 | + $fnCadastrar($numMaxId++, 'PEN_PROCESSO_CANCELADO'); | ||
1481 | + $fnCadastrar($numMaxId++, 'PEN_OPERACAO_EXTERNA'); | ||
1482 | + $fnCadastrar($numMaxId++, 'PEN_EXPEDICAO_PROCESSO_ABORTADA'); | ||
1483 | + | ||
1484 | + InfraDebug::getInstance()->gravar('Atualizando sequencia da tabela TAREFA'); | ||
1485 | + $rsTabelaTarefa = BancoSEI::getInstance()->consultarSql('select max(id_tarefa) as ultimo from tarefa'); | ||
1486 | + if ($rsTabelaTarefa[0]['ultimo'] !== null){ | ||
1487 | + $rsSeq = BancoSEI::getInstance()->consultarSql('select max(id) as ultimo from seq_tarefa'); | ||
1488 | + | ||
1489 | + if (($rsTabelaTarefa[0]['ultimo'] > $rsSeq[0]['ultimo']) || $rsSeq[0]['ultimo'] === null){ | ||
1490 | + BancoSEI::getInstance()->executarSql('alter table seq_tarefa AUTO_INCREMENT = ' . ($rsTabelaTarefa[0]['ultimo'] + 1)); | ||
1491 | + } | ||
1492 | + | ||
1493 | + BancoSEI::getInstance()->executarSql('INSERT INTO seq_tarefa (campo) VALUES (null)'); | ||
1494 | + $rsSeq = BancoSEI::getInstance()->consultarSql('select max(id) as ultimo from seq_tarefa'); | ||
1495 | + } | ||
1496 | + | ||
1497 | + //Altera o parâmetro da versão de banco | ||
1498 | + $objInfraParametroBD = new InfraParametroBD(BancoSEI::getInstance()); | ||
1499 | + $objInfraParametroDTO = new InfraParametroDTO(); | ||
1500 | + $objInfraParametroDTO->setStrNome(self::PARAMETRO_VERSAO_MODULO); | ||
1501 | + $objInfraParametroDTO->setStrValor('1.1.17'); | ||
1502 | + $objInfraParametroBD->alterar($objInfraParametroDTO); | ||
1503 | + } | ||
1414 | } | 1504 | } |
sip_atualizar_versao_modulo_pen.php
@@ -98,6 +98,7 @@ class PenAtualizarSipRN extends InfraRN { | @@ -98,6 +98,7 @@ class PenAtualizarSipRN extends InfraRN { | ||
98 | case '1.1.13': $this->instalarV1114(); | 98 | case '1.1.13': $this->instalarV1114(); |
99 | case '1.1.14': $this->instalarV1115(); | 99 | case '1.1.14': $this->instalarV1115(); |
100 | case '1.1.15': $this->instalarV1116(); | 100 | case '1.1.15': $this->instalarV1116(); |
101 | + case '1.1.16': $this->instalarV1117(); | ||
101 | 102 | ||
102 | break; | 103 | break; |
103 | default: | 104 | default: |
@@ -1102,10 +1103,22 @@ class PenAtualizarSipRN extends InfraRN { | @@ -1102,10 +1103,22 @@ class PenAtualizarSipRN extends InfraRN { | ||
1102 | $objInfraParametroBD->alterar($objInfraParametroDTO); | 1103 | $objInfraParametroBD->alterar($objInfraParametroDTO); |
1103 | } | 1104 | } |
1104 | 1105 | ||
1105 | - | 1106 | + /** |
1107 | + * Instala/Atualiza os módulo PEN para versão 1.1.17 | ||
1108 | + */ | ||
1109 | + protected function instalarV1117() | ||
1110 | + { | ||
1111 | + //Corrigir a versão do módulo no banco de dados | ||
1112 | + $objInfraParametroDTO = new InfraParametroDTO(); | ||
1113 | + $objInfraParametroDTO->setStrNome(self::PARAMETRO_VERSAO_MODULO); | ||
1114 | + $objInfraParametroDTO->retTodos(); | ||
1115 | + $objInfraParametroBD = new InfraParametroBD(BancoSip::getInstance()); | ||
1116 | + $objInfraParametroDTO = $objInfraParametroBD->consultar($objInfraParametroDTO); | ||
1117 | + $objInfraParametroDTO->setStrValor('1.1.17'); | ||
1118 | + $objInfraParametroBD->alterar($objInfraParametroDTO); | ||
1119 | + } | ||
1106 | } | 1120 | } |
1107 | 1121 | ||
1108 | - | ||
1109 | try { | 1122 | try { |
1110 | $objAtualizarRN = new PenAtualizarSipRN($arrArgs); | 1123 | $objAtualizarRN = new PenAtualizarSipRN($arrArgs); |
1111 | $objAtualizarRN->atualizarVersao(); | 1124 | $objAtualizarRN->atualizarVersao(); |