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 | 62 | case '1.1.13': $this->instalarV1114(); |
63 | 63 | case '1.1.14': $this->instalarV1115(); |
64 | 64 | case '1.1.15': $this->instalarV1116(); |
65 | + case '1.1.16': $this->instalarV1117(); | |
65 | 66 | |
66 | 67 | break; |
67 | 68 | default: |
... | ... | @@ -1411,4 +1412,93 @@ class PenAtualizarSeiRN extends PenAtualizadorRN { |
1411 | 1412 | $objInfraParametroDTO->setStrValor('1.1.16'); |
1412 | 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 | 98 | case '1.1.13': $this->instalarV1114(); |
99 | 99 | case '1.1.14': $this->instalarV1115(); |
100 | 100 | case '1.1.15': $this->instalarV1116(); |
101 | + case '1.1.16': $this->instalarV1117(); | |
101 | 102 | |
102 | 103 | break; |
103 | 104 | default: |
... | ... | @@ -1102,10 +1103,22 @@ class PenAtualizarSipRN extends InfraRN { |
1102 | 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 | 1122 | try { |
1110 | 1123 | $objAtualizarRN = new PenAtualizarSipRN($arrArgs); |
1111 | 1124 | $objAtualizarRN->atualizarVersao(); | ... | ... |