Commit f925f3bf8d7561af5edf2c4926dcdb641f2fabe1
1 parent
5153aeb5
Exists in
master
and in
16 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(); | ... | ... |