From 357810fc457ce84a72ff612dbb4d4fd252fc042c Mon Sep 17 00:00:00 2001 From: Luis Fernando Saisa Lopez Date: Fri, 6 Jun 2014 14:10:53 -0400 Subject: [PATCH 1/2] BUG 15089 "Pmtables: Problema al importar la data..." SOLVED MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Pmtables: Problema al importar la data de tipo Autoincrementable - Problema resuelto, el problema que se tenia era por los archivos que crea propel especificamente los archivos Peer, al momento de hacer la insercióe los campos se eliminaba la columna donde se tenia los Primary Key ocasionando que se cree nuevamente. Se valida la importacion de los pmTables cuando son de tipo Autoincrementable logrando a que cuando se importe un pmTable mantenga los íices que se tenia al momento de exportarlos. --- workflow/engine/controllers/pmTablesProxy.php | 48 ++++++++++++++++++- 1 file changed, 46 insertions(+), 2 deletions(-) diff --git a/workflow/engine/controllers/pmTablesProxy.php b/workflow/engine/controllers/pmTablesProxy.php index fd2e0daa2..999253321 100755 --- a/workflow/engine/controllers/pmTablesProxy.php +++ b/workflow/engine/controllers/pmTablesProxy.php @@ -769,6 +769,9 @@ class pmTablesProxy extends HttpProxyController $sType = fread( $fp, $fsData ); // first create the tables structures + $tableNameAux = ""; + $arrayTableField = array(); + while (! feof( $fp )) { switch ($sType) { case '@META': @@ -785,6 +788,8 @@ class pmTablesProxy extends HttpProxyController $tableExists = $additionalTable->loadByName( $contentSchema['ADD_TAB_NAME'] ); $tableNameMap[$contentSchema['ADD_TAB_NAME']] = $contentSchema['ADD_TAB_NAME']; + $tableNameAux = $additionalTable->getPHPName($contentSchema["ADD_TAB_NAME"]); + if ($overWrite) { if ($tableExists !== false) { $additionalTable->deleteAll( $tableExists['ADD_TAB_UID'] ); @@ -815,6 +820,8 @@ class pmTablesProxy extends HttpProxyController $columns[] = $column; } + $arrayTableField = $columns; + $tableData = new stdClass(); $tableData->REP_TAB_UID = $contentSchema['ADD_TAB_UID']; $tableData->REP_TAB_NAME = $contentSchema['ADD_TAB_NAME']; @@ -877,9 +884,46 @@ class pmTablesProxy extends HttpProxyController $fp = fopen( $PUBLIC_ROOT_PATH . $filename, "rb" ); $fsData = intval( fread( $fp, 9 ) ); $sType = fread( $fp, $fsData ); + + //Verify Primary Key Auto-Increment + $flagPkAutoIncrement = 0; + + foreach ($arrayTableField as $value) { + if ($value["field_key"] . "" == "1" && $value["field_autoincrement"] . "" == "1") { + $flagPkAutoIncrement = 1; + break; + } + } + + if ($flagPkAutoIncrement == 1) { + $fileBasePeer = PATH_DATA . "sites" . PATH_SEP . SYS_SYS . PATH_SEP . "classes" . PATH_SEP . "om". PATH_SEP . "Base" . $tableNameAux . "Peer.php"; + + if (file_exists($fileBasePeer)) { + $fh = fopen($fileBasePeer, "r"); + + if ($fh) { + $content = ""; + + while (!feof($fh)) { + $line = fgets($fh, 4096); //Read a line. + + if (preg_match("/^.*criteria.*auto\-increment.*$/", $line)) { + $line = "//" . $line; + } + + $content = $content . $line; + } + + fclose($fh); + + unlink($fileBasePeer); + + file_put_contents($fileBasePeer, $content); + } + } + } + // data processing - - while (! feof( $fp )) { switch ($sType) { From e4a362ed695a80282b470ac877bf33a18a3d5171 Mon Sep 17 00:00:00 2001 From: Luis Fernando Saisa Lopez Date: Tue, 10 Jun 2014 16:42:49 -0400 Subject: [PATCH 2/2] BUG 15089 "Pmtables: Problema al importar la data..." SOLVED MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Pmtables: Problema al importar la data de tipo Autoincrementable - Problema resuelto, el problema que se tenia era por los archivos que crea propel especificamente los archivos Peer, al momento de hacer la insercióe los campos se eliminaba la columna donde se tenia los Primary Key ocasionando que se cree nuevamente. Se valida la importacion de los pmTables cuando son de tipo Autoincrementable logrando a que cuando se importe un pmTable mantenga los íices que se tenia al momento de exportarlos. --- .../builder/om/php5/PHP5BasicPeerBuilder.php | 7 ++- workflow/engine/controllers/pmTablesProxy.php | 44 ------------------- 2 files changed, 5 insertions(+), 46 deletions(-) diff --git a/gulliver/thirdparty/propel-generator/classes/propel/engine/builder/om/php5/PHP5BasicPeerBuilder.php b/gulliver/thirdparty/propel-generator/classes/propel/engine/builder/om/php5/PHP5BasicPeerBuilder.php index 3bc1bd402..f0c80dd8a 100755 --- a/gulliver/thirdparty/propel-generator/classes/propel/engine/builder/om/php5/PHP5BasicPeerBuilder.php +++ b/gulliver/thirdparty/propel-generator/classes/propel/engine/builder/om/php5/PHP5BasicPeerBuilder.php @@ -850,11 +850,14 @@ if (Propel::isInit()) { foreach ($table->getColumns() as $col) { $cfc = $col->getPhpName(); if ($col->isPrimaryKey() && $col->isAutoIncrement() && $table->getIdMethod() != "none") { + $comment = ($col->isPrimaryKey() && $col->isAutoIncrement()) ? "//" : ""; + $script .= " - \$criteria->remove(".$this->getColumnConstant($col)."); // remove pkey col since this table uses auto-increment -"; + " . $comment . "\$criteria->remove(".$this->getColumnConstant($col)."); // remove pkey col since this table uses auto-increment + "; } } + $script .= " // Set the correct dbName diff --git a/workflow/engine/controllers/pmTablesProxy.php b/workflow/engine/controllers/pmTablesProxy.php index 999253321..be79ac2d3 100755 --- a/workflow/engine/controllers/pmTablesProxy.php +++ b/workflow/engine/controllers/pmTablesProxy.php @@ -769,8 +769,6 @@ class pmTablesProxy extends HttpProxyController $sType = fread( $fp, $fsData ); // first create the tables structures - $tableNameAux = ""; - $arrayTableField = array(); while (! feof( $fp )) { switch ($sType) { @@ -788,8 +786,6 @@ class pmTablesProxy extends HttpProxyController $tableExists = $additionalTable->loadByName( $contentSchema['ADD_TAB_NAME'] ); $tableNameMap[$contentSchema['ADD_TAB_NAME']] = $contentSchema['ADD_TAB_NAME']; - $tableNameAux = $additionalTable->getPHPName($contentSchema["ADD_TAB_NAME"]); - if ($overWrite) { if ($tableExists !== false) { $additionalTable->deleteAll( $tableExists['ADD_TAB_UID'] ); @@ -820,8 +816,6 @@ class pmTablesProxy extends HttpProxyController $columns[] = $column; } - $arrayTableField = $columns; - $tableData = new stdClass(); $tableData->REP_TAB_UID = $contentSchema['ADD_TAB_UID']; $tableData->REP_TAB_NAME = $contentSchema['ADD_TAB_NAME']; @@ -885,44 +879,6 @@ class pmTablesProxy extends HttpProxyController $fsData = intval( fread( $fp, 9 ) ); $sType = fread( $fp, $fsData ); - //Verify Primary Key Auto-Increment - $flagPkAutoIncrement = 0; - - foreach ($arrayTableField as $value) { - if ($value["field_key"] . "" == "1" && $value["field_autoincrement"] . "" == "1") { - $flagPkAutoIncrement = 1; - break; - } - } - - if ($flagPkAutoIncrement == 1) { - $fileBasePeer = PATH_DATA . "sites" . PATH_SEP . SYS_SYS . PATH_SEP . "classes" . PATH_SEP . "om". PATH_SEP . "Base" . $tableNameAux . "Peer.php"; - - if (file_exists($fileBasePeer)) { - $fh = fopen($fileBasePeer, "r"); - - if ($fh) { - $content = ""; - - while (!feof($fh)) { - $line = fgets($fh, 4096); //Read a line. - - if (preg_match("/^.*criteria.*auto\-increment.*$/", $line)) { - $line = "//" . $line; - } - - $content = $content . $line; - } - - fclose($fh); - - unlink($fileBasePeer); - - file_put_contents($fileBasePeer, $content); - } - } - } - // data processing while (! feof( $fp )) {