From f901262c529797a52871fa6766cf86a4e5d3ca4c Mon Sep 17 00:00:00 2001 From: vAugagneur Date: Wed, 2 May 2012 13:58:51 +0000 Subject: [PATCH] //range refacto git-svn-id: http://dev.prestashop.com/svn/v1/branches/1.5.x@15003 b9a71923-0436-4b27-9f14-aed3839534dd --- cache/class_index.php | 6 ++- classes/range/Range.php | 79 +++++++++++++++++++++++++++++ classes/{ => range}/RangePrice.php | 47 ++--------------- classes/{ => range}/RangeWeight.php | 46 ++--------------- 4 files changed, 93 insertions(+), 85 deletions(-) create mode 100644 classes/range/Range.php rename classes/{ => range}/RangePrice.php (63%) rename classes/{ => range}/RangeWeight.php (63%) diff --git a/cache/class_index.php b/cache/class_index.php index 12dbb6ba7..a9dd0de2e 100644 --- a/cache/class_index.php +++ b/cache/class_index.php @@ -520,10 +520,12 @@ 'ProfileCore' => 'classes/Profile.php', 'QuickAccess' => 'override/classes/QuickAccess.php', 'QuickAccessCore' => 'classes/QuickAccess.php', + 'Range' => '', + 'RangeCore' => 'classes/range/Range.php', 'RangePrice' => 'override/classes/RangePrice.php', - 'RangePriceCore' => 'classes/RangePrice.php', + 'RangePriceCore' => 'classes/range/RangePrice.php', 'RangeWeight' => 'override/classes/RangeWeight.php', - 'RangeWeightCore' => 'classes/RangeWeight.php', + 'RangeWeightCore' => 'classes/range/RangeWeight.php', 'Referrer' => 'override/classes/Referrer.php', 'ReferrerCore' => 'classes/Referrer.php', 'RequestSql' => 'override/classes/RequestSql.php', diff --git a/classes/range/Range.php b/classes/range/Range.php new file mode 100644 index 000000000..81bb28b9a --- /dev/null +++ b/classes/range/Range.php @@ -0,0 +1,79 @@ + +* @copyright 2007-2012 PrestaShop SA +* @version Release: $Revision: 6844 $ +* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +class RangeCore extends ObjectModel +{ + public $id_carrier; + public $delimiter1; + public $delimiter2; + + protected static $range_table; + protected static $range_identifier; + + protected $webserviceParameters = array( + 'objectsNodeName' => 'price_ranges', + 'objectNodeName' => 'price_range', + 'fields' => array( + 'id_carrier' => array('xlink_resource' => 'carriers'), + ) + ); + + /** + * Get all available price ranges + * + * @return array Ranges + */ + public static function getRanges($id_carrier) + { + return Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS(' + SELECT * + FROM `'._DB_PREFIX_.static::$range_table.'` + WHERE `id_carrier` = '.(int)$id_carrier.' + ORDER BY `delimiter1` ASC'); + } + + public static function rangeExist($id_carrier, $delimiter1, $delimiter2) + { + return Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue(' + SELECT count(*) + FROM `'._DB_PREFIX_.static::$range_table.'` + WHERE `id_carrier` = '.(int)$id_carrier.' + AND `delimiter1` = '.(float)$delimiter1.' AND `delimiter2`='.(float)$delimiter2); + } + + public static function isOverlapping($id_carrier, $delimiter1, $delimiter2) + { + return Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('SELECT count(*) + FROM `'._DB_PREFIX_.static::$range_table.'` + WHERE `id_carrier` = '.(int)$id_carrier.' + AND ((`delimiter1` > '.(float)$delimiter1.' AND `delimiter1` <= '.(float)$delimiter2.') + OR (`delimiter2` > '.(float)$delimiter1.' AND `delimiter2` <= '.(float)$delimiter2.') + OR ('.(float)$delimiter1.' > `delimiter1` AND '.(float)$delimiter1.' < `delimiter2`) + OR ('.(float)$delimiter2.' < `delimiter1` AND '.(float)$delimiter2.' > `delimiter2`) + )'); + } +} \ No newline at end of file diff --git a/classes/RangePrice.php b/classes/range/RangePrice.php similarity index 63% rename from classes/RangePrice.php rename to classes/range/RangePrice.php index 5308259a2..dd5e1ae1d 100644 --- a/classes/RangePrice.php +++ b/classes/range/RangePrice.php @@ -25,11 +25,10 @@ * International Registered Trademark & Property of PrestaShop SA */ -class RangePriceCore extends ObjectModel +class RangePriceCore extends Range { - public $id_carrier; - public $delimiter1; - public $delimiter2; + protected static $range_table = 'range_price'; + protected static $range_identifier = 'id_range_price'; /** * @see ObjectModel::$definition @@ -43,50 +42,14 @@ class RangePriceCore extends ObjectModel 'delimiter2' => array('type' => self::TYPE_FLOAT, 'validate' => 'isUnsignedFloat', 'required' => true), ), ); - - protected $webserviceParameters = array( + + protected $webserviceParameters = array( 'objectsNodeName' => 'price_ranges', 'objectNodeName' => 'price_range', 'fields' => array( 'id_carrier' => array('xlink_resource' => 'carriers'), ) ); - - /** - * Get all available price ranges - * - * @return array Ranges - */ - public static function getRanges($id_carrier) - { - return Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS(' - SELECT * - FROM `'._DB_PREFIX_.'range_price` - WHERE `id_carrier` = '.(int)$id_carrier.' - ORDER BY `delimiter1` ASC'); - } - - public static function rangeExist($id_carrier, $delimiter1, $delimiter2) - { - return Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue(' - SELECT count(*) - FROM `'._DB_PREFIX_.'range_price` - WHERE `id_carrier` = '.(int)$id_carrier.' - AND `delimiter1` = '.(float)$delimiter1.' AND `delimiter2`='.(float)$delimiter2); - } - - public static function isOverlapping($id_carrier, $delimiter1, $delimiter2) - { - return Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('SELECT count(*) - FROM `'._DB_PREFIX_.'range_price` - WHERE `id_carrier` = '.(int)$id_carrier.' - AND ((`delimiter1` > '.(float)$delimiter1.' AND `delimiter1` <= '.(float)$delimiter2.') - OR (`delimiter2` > '.(float)$delimiter1.' AND `delimiter2` <= '.(float)$delimiter2.') - OR ('.(float)$delimiter1.' > `delimiter1` AND '.(float)$delimiter1.' < `delimiter2`) - OR ('.(float)$delimiter2.' < `delimiter1` AND '.(float)$delimiter2.' > `delimiter2`) - - )'); - } /** * Override add to create delivery value for all zones diff --git a/classes/RangeWeight.php b/classes/range/RangeWeight.php similarity index 63% rename from classes/RangeWeight.php rename to classes/range/RangeWeight.php index 09644d3e3..30b524dfa 100644 --- a/classes/RangeWeight.php +++ b/classes/range/RangeWeight.php @@ -25,11 +25,10 @@ * International Registered Trademark & Property of PrestaShop SA */ -class RangeWeightCore extends ObjectModel +class RangeWeightCore extends Range { - public $id_carrier; - public $delimiter1; - public $delimiter2; + protected static $range_table = 'range_weight'; + protected static $range_identifier = 'id_range_weight'; /** * @see ObjectModel::$definition @@ -43,49 +42,14 @@ class RangeWeightCore extends ObjectModel 'delimiter2' => array('type' => self::TYPE_FLOAT, 'validate' => 'isUnsignedFloat', 'required' => true), ), ); - - protected $webserviceParameters = array( + + protected $webserviceParameters = array( 'objectNodeName' => 'weight_range', 'objectsNodeName' => 'weight_ranges', 'fields' => array( 'id_carrier' => array('xlink_resource' => 'carriers'), ) ); - - /** - * Get all available weight ranges - * - * @return array Ranges - */ - public static function getRanges($id_carrier) - { - return Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS(' - SELECT * - FROM `'._DB_PREFIX_.'range_weight` - WHERE `id_carrier` = '.(int)$id_carrier.' - ORDER BY `delimiter1` ASC'); - } - - public static function rangeExist($id_carrier, $delimiter1, $delimiter2) - { - return Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue(' - SELECT count(*) - FROM `'._DB_PREFIX_.'range_weight` - WHERE `id_carrier` = '.(int)$id_carrier.' - AND `delimiter1` = '.(float)$delimiter1.' AND `delimiter2`='.(float)$delimiter2); - } - - public static function isOverlapping($id_carrier, $delimiter1, $delimiter2) - { - return Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('SELECT count(*) - FROM `'._DB_PREFIX_.'range_weight` - WHERE `id_carrier` = '.(int)$id_carrier.' - AND ((`delimiter1` > '.(float)$delimiter1.' AND `delimiter1` <= '.(float)$delimiter2.') - OR (`delimiter2` > '.(float)$delimiter1.' AND `delimiter2` <= '.(float)$delimiter2.') - OR ('.(float)$delimiter1.' > `delimiter1` AND '.(float)$delimiter1.' < `delimiter2`) - OR ('.(float)$delimiter2.' < `delimiter1` AND '.(float)$delimiter2.' > `delimiter2`) - )'); - } /** * Override add to create delivery value for all zones