From 224153e3773165432c532ab14051131e19ec62bc Mon Sep 17 00:00:00 2001 From: eduardo.praxedes Date: Thu, 25 May 2017 16:40:54 -0300 Subject: [PATCH] Ajuste no script --- rn/PenAtualizadorRN.php | 30 ++++++++++++++++++------------ rn/PenAtualizarSeiRN.php | 17 ++++------------- sip_atualizar_versao_modulo_pen.php | 63 ++++++++++++++++++++++++++++++++++++++++++++------------------- 3 files changed, 66 insertions(+), 44 deletions(-) diff --git a/rn/PenAtualizadorRN.php b/rn/PenAtualizadorRN.php index ad2bd13..efe3338 100644 --- a/rn/PenAtualizadorRN.php +++ b/rn/PenAtualizadorRN.php @@ -7,14 +7,14 @@ abstract class PenAtualizadorRN extends InfraRN { const VER_NONE = '0.0.0';// Modulo não instalado - /* const VER_001 = '0.0.1'; + const VER_001 = '0.0.1'; const VER_002 = '0.0.2'; const VER_003 = '0.0.3'; const VER_004 = '0.0.4'; const VER_005 = '0.0.5'; const VER_006 = '0.0.6'; const VER_007 = '0.0.7'; - const VER_008 = '0.0.8';*/ + const VER_008 = '0.0.8'; const VER_100 = '1.0.0'; protected $sei_versao; @@ -242,8 +242,8 @@ abstract class PenAtualizadorRN extends InfraRN { $strPenVersao = $this->setVersao(self::VER_NONE, $objInfraBanco); } - $numPenVersao = substr($strPenVersao, -1); - $numVersaoInstalar = intval(substr($strVersaoInstalar, -1)); + $numPenVersao = str_replace('.', '', $strPenVersao); + $numVersaoInstalar = intval(preg_replace('/\D+/', '', $strVersaoInstalar)); $bolAlgumFiltroUsado = false; $strRegexRelease = $this->getStrArg('release', '(R%s)', '(R[0-9]{1,3})?', $bolAlgumFiltroUsado); @@ -254,7 +254,7 @@ abstract class PenAtualizadorRN extends InfraRN { // Instalar todas atualizações if($bolAlgumFiltroUsado === false) { - $strRegexVersao = sprintf('[%d\-%d]', ($numPenVersao + 1), $numVersaoInstalar); + $strRegexVersao = sprintf('[%d-%d]', ($numPenVersao + 1), $numVersaoInstalar); } // Instalar somente a solicitada else { @@ -262,17 +262,23 @@ abstract class PenAtualizadorRN extends InfraRN { $strVersaoInstalar = $strPenVersao; $strRegexVersao = intval(substr($strPenVersao, -1) + 1); } - + // instalarV[0-9]{1,2}[0-9](R[0-9]{1,3})?(S[0-9]{1,3})?(US|IW[0-9]{1,4})? - $strRegex = sprintf('/^instalarV[0-9][0-9]%s%s%s%s/i', - $strRegexVersao, - $strRegexRelease, - $strRegexSprint, - $strRegexItem - ); + $strRegex = sprintf('/^instalarV%s%s%s%s/i', $strRegexVersao, $strRegexRelease, $strRegexSprint, $strRegexItem); // Tenta encontrar métodos que iniciem com instalar $arrMetodo = (array)preg_grep ($strRegex, get_class_methods($this)); + + $proximaVersao = $numPenVersao + 1; + + foreach($arrMetodo as $key => $metodo){ + $vers = str_replace('instalarV', '', $metodo); + $vers = (int) substr($vers, 0, 3); + + if($proximaVersao > $vers){ + unset($arrMetodo[$key]); + } + } if(empty($arrMetodo)) { diff --git a/rn/PenAtualizarSeiRN.php b/rn/PenAtualizarSeiRN.php index 9d2cee0..eb75431 100644 --- a/rn/PenAtualizarSeiRN.php +++ b/rn/PenAtualizarSeiRN.php @@ -17,7 +17,7 @@ class PenAtualizarSeiRN extends PenAtualizadorRN { return $this->objBanco; } - protected function instalarV100(){ + protected function instalarV001(){ $objInfraBanco = $this->inicializarObjInfraIBanco(); $objMetaBD = $this->inicializarObjMetaBanco(); @@ -603,18 +603,6 @@ class PenAtualizarSeiRN extends PenAtualizadorRN { } } //---------------------------------------------------------------------- - - $this->instalarV002R003S000IW001(); - $this->instalarV002R003S000US024(); - $this->instalarV002R003S001US035(); - $this->instalarV003R003S003IW001(); - $this->instalarV004R003S003IW002(); - $this->instalarV005R003S005IW018(); - $this->instalarV005R003S005IW023(); - $this->instalarV006R004S004WI001(); - $this->instalarV007R004S005WI002(); - $this->instalarV008R004S006IW003(); - } /** @@ -959,6 +947,9 @@ class PenAtualizarSeiRN extends PenAtualizadorRN { } + public function instalarV100R004S006IW004(){ + //Atualiza o parâmetro + } /* protected function instalarV008R004S006WI001(){ diff --git a/sip_atualizar_versao_modulo_pen.php b/sip_atualizar_versao_modulo_pen.php index 7e6dafc..47fd9f5 100644 --- a/sip_atualizar_versao_modulo_pen.php +++ b/sip_atualizar_versao_modulo_pen.php @@ -425,6 +425,11 @@ class PenMetaBD extends InfraMetaBD { abstract class PenAtualizadorRN extends InfraRN { const VER_NONE = '0.0.0'; // Modulo não instalado + const VER_001 = '0.0.1'; + const VER_002 = '0.0.2'; + const VER_003 = '0.0.3'; + const VER_004 = '0.0.4'; + const VER_005 = '0.0.5'; const VER_100 = '1.0.0'; protected $sei_versao; @@ -651,8 +656,10 @@ abstract class PenAtualizadorRN extends InfraRN { $strPenVersao = $this->setVersao(self::VER_NONE, $objInfraBanco); } - $numPenVersao = substr($strPenVersao, -1); - $numVersaoInstalar = intval(substr($strVersaoInstalar, -1)); + $numPenVersao = str_replace('.', '', $strPenVersao); + + $numVersaoInstalar = intval(preg_replace('/\D+/', '', $strVersaoInstalar)); + //$numVersaoInstalar = intval(substr($strVersaoInstalar, -1)); $bolAlgumFiltroUsado = false; $strRegexRelease = $this->getStrArg('release', '(R%s)', '(R[0-9]{1,3})?', $bolAlgumFiltroUsado); @@ -662,8 +669,21 @@ abstract class PenAtualizadorRN extends InfraRN { // Instalar todas atualizações if ($bolAlgumFiltroUsado === false) { + + /*list($v1, $r1, $s1) = explode('.', '1.0.1'); + list($v2, $r2, $s2) = explode('.', $strVersaoInstalar); + + $s1 = intval($s1) + 1; + $r1 = intval($r1) + 1; */ - $strRegexVersao = sprintf('[%d\-%d]', ($numPenVersao + 1), $numVersaoInstalar); + // 0.0.5 - 1.5.0 + // 1.1.1 - 1.5.0 + + // (00[6-9]|1[5-9][0-9]) + // (11[1-9]|1[5-9][0-9]) + // $strRegexVersao = sprintf('(%s[%s-9][%s-9]|%s[%s-9][%s-9])', $v1, $r1, $s1, $v2, $r2, $s2); + + $strRegexVersao = sprintf('[%d-%d]', ($numPenVersao + 1), $numVersaoInstalar); } // Instalar somente a solicitada else { @@ -673,12 +693,25 @@ abstract class PenAtualizadorRN extends InfraRN { } // instalarV[0-9]{1,2}[0-9](R[0-9]{1,3})?(S[0-9]{1,3})?(US|IW[0-9]{1,4})? - $strRegex = sprintf('/^instalarV[0-9][0-9]%s%s%s%s/i', $strRegexVersao, $strRegexRelease, $strRegexSprint, $strRegexItem + $strRegex = sprintf('/^instalarV%s%s%s%s/i', $strRegexVersao, $strRegexRelease, $strRegexSprint, $strRegexItem ); + + // Tenta encontrar métodos que iniciem com instalar $arrMetodo = (array) preg_grep($strRegex, get_class_methods($this)); + $proximaVersao = $numPenVersao + 1; + + foreach($arrMetodo as $key => $metodo){ + $vers = str_replace('instalarV', '', $metodo); + $vers = (int) substr($vers, 0, 3); + + if($proximaVersao > $vers){ + unset($arrMetodo[$key]); + } + } + if (empty($arrMetodo)) { throw new InfraException(sprintf('NENHUMA ATUALIZACAO FOI ENCONTRADA SUPERIOR A VERSAO %s DO MODULO PEN', $strPenVersao)); @@ -950,16 +983,11 @@ class PenAtualizarSipRN extends PenAtualizadorRN { $fnCadastrar('BASICO', $numIdSistema); } - public function instalarV100(){ - $this->instalarV001R001S001IW001(); - $this->instalarV003R003S003IW001(); - } - /** * Instala/Atualiza os módulo PEN para versão 1.0 */ - protected function instalarV001R001S001IW001() { - $numIdSistema = $this->getNumIdSistema('SEI'); + protected function instalarV001() { + $numIdSistema = $this->getNumIdSistema('SEI'); $numIdMenu = $this->getNumIdMenu('Principal', $numIdSistema); //---------------------------------------------------------------------- @@ -1017,15 +1045,12 @@ class PenAtualizarSipRN extends PenAtualizadorRN { $this->criarMenu('Listar', 20, $numIdItemMenuPai, $numIdMenu, $numIdRecurso, $numIdSistema); //Atribui as permissões aos recursos e menus - $this->atribuirPerfil($numIdSistema); - - $this->instalarV003R003S003IW001(); + $this->atribuirPerfil($numIdSistema); } - protected function instalarV003R003S003IW001() { - - $objBD = new ItemMenuBD($this->inicializarObjInfraIBanco()); + + $objBD = new ItemMenuBD($this->inicializarObjInfraIBanco()); //---------------------------------------------------------------------- // Achar o root @@ -1085,10 +1110,10 @@ class PenAtualizarSipRN extends PenAtualizadorRN { $objBD->excluir($objItemMenuDTO); } - } + } } - protected function instalarV005R001S001IW001(){ + protected function instalarV100R001S001IW001(){ } -- libgit2 0.21.2