diff --git a/CHANGELOG.md b/CHANGELOG.md index f760ff2..44cebf5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +# v4.8.1 + +### Bugfix + +- [#252](https://github.com/pedro-teixeira/correios/issues/252) Corrige atualizações das versões 4.7.1 e 4.7.2 + # v4.8.0 ### Bugfix diff --git a/app/code/community/PedroTeixeira/Correios/sql/pedroteixeira_correios_setup/install-4.8.0.php b/app/code/community/PedroTeixeira/Correios/sql/pedroteixeira_correios_setup/install-4.8.0.php index 2d475e0..39d3831 100644 --- a/app/code/community/PedroTeixeira/Correios/sql/pedroteixeira_correios_setup/install-4.8.0.php +++ b/app/code/community/PedroTeixeira/Correios/sql/pedroteixeira_correios_setup/install-4.8.0.php @@ -138,112 +138,90 @@ } -$installer->run( - "CREATE TABLE IF NOT EXISTS {$this->getTable('pedroteixeira_correios/postmethod')} ( - method_id int(11) unsigned NOT NULL auto_increment, - method_code varchar(5) NOT NULL default '0', - method_title varchar(255) NOT NULL default '', - PRIMARY KEY (method_id) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8;" -); - -$installer->getConnection()->insertForce( - $this->getTable('pedroteixeira_correios/postmethod'), - array( - 'method_id' => '1', - 'method_code' => '41106', - 'method_title' => 'PAC SEM CONTRATO', - ) -); - -$installer->getConnection()->insertForce( - $this->getTable('pedroteixeira_correios/postmethod'), +$tableName = $this->getTable('pedroteixeira_correios/postmethod'); +$table = $installer->getConnection() + ->newTable($tableName) + ->addColumn( + 'method_id', + Varien_Db_Ddl_Table::TYPE_INTEGER, + null, + array( + 'identity' => true, + 'unsigned' => true, + 'nullable' => false, + 'primary' => true, + ), + 'ID' + )->addColumn( + 'method_code', + Varien_Db_Ddl_Table::TYPE_TEXT, + 5, + array( + 'nullable' => false, + 'default' => '0' + ), + 'Code' + )->addColumn( + 'method_title', + Varien_Db_Ddl_Table::TYPE_TEXT, + 255, + array( + 'nullable' => false, + 'default' => '' + ), + 'Title' + )->addIndex( + $installer->getIdxName( + $tableName, + array('method_code'), + Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE + ), + array('method_code'), + array('type' => Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE) + ); +$installer->getConnection()->createTable($table); + +$services = array( array( - 'method_id' => '2', - 'method_code' => '40010', - 'method_title' => 'SEDEX SEM CONTRATO', - ) -); - -$installer->getConnection()->insertForce( - $this->getTable('pedroteixeira_correios/postmethod'), - array( - 'method_id' => '3', 'method_code' => '40045', 'method_title' => 'SEDEX A COBRAR SEM CONTRATO', - ) -); - -$installer->getConnection()->insertForce( - $this->getTable('pedroteixeira_correios/postmethod'), + ), array( - 'method_id' => '4', 'method_code' => '40215', 'method_title' => 'SEDEX 10 SEM CONTRATO', - ) -); - -$installer->getConnection()->insertForce( - $this->getTable('pedroteixeira_correios/postmethod'), + ), array( - 'method_id' => '5', 'method_code' => '40290', 'method_title' => 'SEDEX HOJE SEM CONTRATO', - ) -); - -$installer->getConnection()->insertForce( - $this->getTable('pedroteixeira_correios/postmethod'), + ), array( - 'method_id' => '6', 'method_code' => '04510', 'method_title' => 'PAC SEM CONTRATO', - ) -); - -$installer->getConnection()->insertForce( - $this->getTable('pedroteixeira_correios/postmethod'), + ), array( - 'method_id' => '7', 'method_code' => '04014', 'method_title' => 'SEDEX SEM CONTRATO', - ) -); - -$installer->getConnection()->insertForce( - $this->getTable('pedroteixeira_correios/postmethod'), + ), array( - 'method_id' => '8', 'method_code' => '04669', 'method_title' => 'PAC CONTRATO AGENCIA', - ) -); - -$installer->getConnection()->insertForce( - $this->getTable('pedroteixeira_correios/postmethod'), + ), array( - 'method_id' => '9', 'method_code' => '04162', 'method_title' => 'SEDEX CONTRATO AGENCIA', - ) -); - -$installer->getConnection()->insertForce( - $this->getTable('pedroteixeira_correios/postmethod'), + ), array( - 'method_id' => '10', 'method_code' => '04693', 'method_title' => 'PAC CONTRATO GRANDES FORMATOS', - ) -); - -$installer->getConnection()->insertForce( - $this->getTable('pedroteixeira_correios/postmethod'), + ), array( - 'method_id' => '11', 'method_code' => '10065', 'method_title' => 'CARTA COMERCIAL A FATURAR', ) ); +foreach ($services as $service) { + $installer->getConnection()->insertOnDuplicate($tableName, $service, array('method_code')); +} + $installer->endSetup(); diff --git a/app/code/community/PedroTeixeira/Correios/sql/pedroteixeira_correios_setup/install-4.8.1.php b/app/code/community/PedroTeixeira/Correios/sql/pedroteixeira_correios_setup/install-4.8.1.php index 9b1794f..39d3831 100644 --- a/app/code/community/PedroTeixeira/Correios/sql/pedroteixeira_correios_setup/install-4.8.1.php +++ b/app/code/community/PedroTeixeira/Correios/sql/pedroteixeira_correios_setup/install-4.8.1.php @@ -138,94 +138,90 @@ } -$installer->run( - "CREATE TABLE IF NOT EXISTS {$this->getTable('pedroteixeira_correios/postmethod')} ( - method_id int(11) unsigned NOT NULL auto_increment, - method_code varchar(5) NOT NULL default '0', - method_title varchar(255) NOT NULL default '', - PRIMARY KEY (method_id) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8;" -); - -$installer->getConnection()->insertForce( - $this->getTable('pedroteixeira_correios/postmethod'), +$tableName = $this->getTable('pedroteixeira_correios/postmethod'); +$table = $installer->getConnection() + ->newTable($tableName) + ->addColumn( + 'method_id', + Varien_Db_Ddl_Table::TYPE_INTEGER, + null, + array( + 'identity' => true, + 'unsigned' => true, + 'nullable' => false, + 'primary' => true, + ), + 'ID' + )->addColumn( + 'method_code', + Varien_Db_Ddl_Table::TYPE_TEXT, + 5, + array( + 'nullable' => false, + 'default' => '0' + ), + 'Code' + )->addColumn( + 'method_title', + Varien_Db_Ddl_Table::TYPE_TEXT, + 255, + array( + 'nullable' => false, + 'default' => '' + ), + 'Title' + )->addIndex( + $installer->getIdxName( + $tableName, + array('method_code'), + Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE + ), + array('method_code'), + array('type' => Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE) + ); +$installer->getConnection()->createTable($table); + +$services = array( array( - 'method_id' => '3', 'method_code' => '40045', 'method_title' => 'SEDEX A COBRAR SEM CONTRATO', - ) -); - -$installer->getConnection()->insertForce( - $this->getTable('pedroteixeira_correios/postmethod'), + ), array( - 'method_id' => '4', 'method_code' => '40215', 'method_title' => 'SEDEX 10 SEM CONTRATO', - ) -); - -$installer->getConnection()->insertForce( - $this->getTable('pedroteixeira_correios/postmethod'), + ), array( - 'method_id' => '5', 'method_code' => '40290', 'method_title' => 'SEDEX HOJE SEM CONTRATO', - ) -); - -$installer->getConnection()->insertForce( - $this->getTable('pedroteixeira_correios/postmethod'), + ), array( - 'method_id' => '6', 'method_code' => '04510', 'method_title' => 'PAC SEM CONTRATO', - ) -); - -$installer->getConnection()->insertForce( - $this->getTable('pedroteixeira_correios/postmethod'), + ), array( - 'method_id' => '7', 'method_code' => '04014', 'method_title' => 'SEDEX SEM CONTRATO', - ) -); - -$installer->getConnection()->insertForce( - $this->getTable('pedroteixeira_correios/postmethod'), + ), array( - 'method_id' => '8', 'method_code' => '04669', 'method_title' => 'PAC CONTRATO AGENCIA', - ) -); - -$installer->getConnection()->insertForce( - $this->getTable('pedroteixeira_correios/postmethod'), + ), array( - 'method_id' => '9', 'method_code' => '04162', 'method_title' => 'SEDEX CONTRATO AGENCIA', - ) -); - -$installer->getConnection()->insertForce( - $this->getTable('pedroteixeira_correios/postmethod'), + ), array( - 'method_id' => '10', 'method_code' => '04693', 'method_title' => 'PAC CONTRATO GRANDES FORMATOS', - ) -); - -$installer->getConnection()->insertForce( - $this->getTable('pedroteixeira_correios/postmethod'), + ), array( - 'method_id' => '11', 'method_code' => '10065', 'method_title' => 'CARTA COMERCIAL A FATURAR', ) ); +foreach ($services as $service) { + $installer->getConnection()->insertOnDuplicate($tableName, $service, array('method_code')); +} + $installer->endSetup(); diff --git a/app/code/community/PedroTeixeira/Correios/sql/pedroteixeira_correios_setup/upgrade-4.7.2-4.8.0.php b/app/code/community/PedroTeixeira/Correios/sql/pedroteixeira_correios_setup/upgrade-4.7.2-4.8.0.php index c447d70..0f189ac 100644 --- a/app/code/community/PedroTeixeira/Correios/sql/pedroteixeira_correios_setup/upgrade-4.7.2-4.8.0.php +++ b/app/code/community/PedroTeixeira/Correios/sql/pedroteixeira_correios_setup/upgrade-4.7.2-4.8.0.php @@ -11,99 +11,3 @@ * @license http://opensource.org/licenses/MIT MIT * @link https://github.com/pedro-teixeira/correios */ - -/* @var $installer Mage_Core_Model_Resource_Setup */ -$installer = $this; -$installer->startSetup(); - -$installer->run( - "CREATE TABLE IF NOT EXISTS {$this->getTable('pedroteixeira_correios/postmethod')} ( - method_id int(11) unsigned NOT NULL auto_increment, - method_code varchar(5) NOT NULL default '0', - method_title varchar(255) NOT NULL default '', - PRIMARY KEY (method_id) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8;" -); - -$installer->getConnection()->insertForce( - $this->getTable('pedroteixeira_correios/postmethod'), - array( - 'method_id' => '3', - 'method_code' => '40045', - 'method_title' => 'SEDEX A COBRAR SEM CONTRATO', - ) -); - -$installer->getConnection()->insertForce( - $this->getTable('pedroteixeira_correios/postmethod'), - array( - 'method_id' => '4', - 'method_code' => '40215', - 'method_title' => 'SEDEX 10 SEM CONTRATO', - ) -); - -$installer->getConnection()->insertForce( - $this->getTable('pedroteixeira_correios/postmethod'), - array( - 'method_id' => '5', - 'method_code' => '40290', - 'method_title' => 'SEDEX HOJE SEM CONTRATO', - ) -); - -$installer->getConnection()->insertForce( - $this->getTable('pedroteixeira_correios/postmethod'), - array( - 'method_id' => '6', - 'method_code' => '04510', - 'method_title' => 'PAC SEM CONTRATO', - ) -); - -$installer->getConnection()->insertForce( - $this->getTable('pedroteixeira_correios/postmethod'), - array( - 'method_id' => '7', - 'method_code' => '04014', - 'method_title' => 'SEDEX SEM CONTRATO', - ) -); - -$installer->getConnection()->insertForce( - $this->getTable('pedroteixeira_correios/postmethod'), - array( - 'method_id' => '8', - 'method_code' => '04669', - 'method_title' => 'PAC CONTRATO AGENCIA', - ) -); - -$installer->getConnection()->insertForce( - $this->getTable('pedroteixeira_correios/postmethod'), - array( - 'method_id' => '9', - 'method_code' => '04162', - 'method_title' => 'SEDEX CONTRATO AGENCIA', - ) -); - -$installer->getConnection()->insertForce( - $this->getTable('pedroteixeira_correios/postmethod'), - array( - 'method_id' => '10', - 'method_code' => '04693', - 'method_title' => 'PAC CONTRATO GRANDES FORMATOS', - ) -); - -$installer->getConnection()->insertForce( - $this->getTable('pedroteixeira_correios/postmethod'), - array( - 'method_id' => '11', - 'method_code' => '10065', - 'method_title' => 'CARTA COMERCIAL A FATURAR', - ) -); - -$installer->endSetup(); diff --git a/app/code/community/PedroTeixeira/Correios/sql/pedroteixeira_correios_setup/upgrade-4.8.0-4.8.1.php b/app/code/community/PedroTeixeira/Correios/sql/pedroteixeira_correios_setup/upgrade-4.8.0-4.8.1.php index 0f189ac..2f4cd90 100644 --- a/app/code/community/PedroTeixeira/Correios/sql/pedroteixeira_correios_setup/upgrade-4.8.0-4.8.1.php +++ b/app/code/community/PedroTeixeira/Correios/sql/pedroteixeira_correios_setup/upgrade-4.8.0-4.8.1.php @@ -11,3 +11,111 @@ * @license http://opensource.org/licenses/MIT MIT * @link https://github.com/pedro-teixeira/correios */ + +/* @var $installer Mage_Core_Model_Resource_Setup */ +$installer = $this; +$installer->startSetup(); + +$tableName = $this->getTable('pedroteixeira_correios/postmethod'); + +if ($installer->getConnection()->isTableExists($tableName)) { + // Fix old migration to 4.8.0 + // See https://github.com/pedro-teixeira/correios/pull/252 + $installer->getConnection()->addIndex( + $tableName, + $installer->getIdxName( + $tableName, + array('method_code'), + Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE + ), + array('method_code'), + array('type' => Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE) + ); +} else { + $table = $installer->getConnection() + ->newTable($tableName) + ->addColumn( + 'method_id', + Varien_Db_Ddl_Table::TYPE_INTEGER, + null, + array( + 'identity' => true, + 'unsigned' => true, + 'nullable' => false, + 'primary' => true, + ), + 'ID' + )->addColumn( + 'method_code', + Varien_Db_Ddl_Table::TYPE_TEXT, + 5, + array( + 'nullable' => false, + 'default' => '0' + ), + 'Code' + )->addColumn( + 'method_title', + Varien_Db_Ddl_Table::TYPE_TEXT, + 255, + array( + 'nullable' => false, + 'default' => '' + ), + 'Title' + )->addIndex( + $installer->getIdxName( + $tableName, + array('method_code'), + Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE + ), + array('method_code'), + array('type' => Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE) + ); + $installer->getConnection()->createTable($table); + + $services = array( + array( + 'method_code' => '40045', + 'method_title' => 'SEDEX A COBRAR SEM CONTRATO', + ), + array( + 'method_code' => '40215', + 'method_title' => 'SEDEX 10 SEM CONTRATO', + ), + array( + 'method_code' => '40290', + 'method_title' => 'SEDEX HOJE SEM CONTRATO', + ), + array( + 'method_code' => '04510', + 'method_title' => 'PAC SEM CONTRATO', + ), + array( + 'method_code' => '04014', + 'method_title' => 'SEDEX SEM CONTRATO', + ), + array( + 'method_code' => '04669', + 'method_title' => 'PAC CONTRATO AGENCIA', + ), + array( + 'method_code' => '04162', + 'method_title' => 'SEDEX CONTRATO AGENCIA', + ), + array( + 'method_code' => '04693', + 'method_title' => 'PAC CONTRATO GRANDES FORMATOS', + ), + array( + 'method_code' => '10065', + 'method_title' => 'CARTA COMERCIAL A FATURAR', + ) + ); + + foreach ($services as $service) { + $installer->getConnection()->insertOnDuplicate($tableName, $service, array('method_code')); + } +} + +$installer->endSetup();