From cf384e0af17232ebe23ea63b8815a466395c3255 Mon Sep 17 00:00:00 2001 From: tDidierjean Date: Thu, 27 Oct 2011 14:57:08 +0000 Subject: [PATCH] [*] BO : #PSFV-94 - added AdminRangePriceController git-svn-id: http://dev.prestashop.com/svn/v1/branches/1.5.x@9682 b9a71923-0436-4b27-9f14-aed3839534dd --- admin-dev/tabs/AdminRangePrice.php | 118 ---------------- .../admin/AdminRangePriceController.php | 127 ++++++++++++++++++ .../admin/AdminRangeWeightController.php | 1 + 3 files changed, 128 insertions(+), 118 deletions(-) delete mode 100644 admin-dev/tabs/AdminRangePrice.php create mode 100644 controllers/admin/AdminRangePriceController.php diff --git a/admin-dev/tabs/AdminRangePrice.php b/admin-dev/tabs/AdminRangePrice.php deleted file mode 100644 index 1f7aa0753..000000000 --- a/admin-dev/tabs/AdminRangePrice.php +++ /dev/null @@ -1,118 +0,0 @@ - -* @copyright 2007-2011 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 AdminRangePrice extends AdminTab -{ - public function __construct() - { - $this->table = 'range_price'; - $this->className = 'RangePrice'; - $this->lang = false; - $this->edit = true; - $this->delete = true; - - $this->fieldsDisplay = array( - 'id_range_price' => array('title' => $this->l('ID'), 'align' => 'center', 'width' => 25), - 'carrier_name' => array('title' => $this->l('Carrier'), 'align' => 'center', 'width' => 25, 'filter_key' => 'ca!name'), - 'delimiter1' => array('title' => $this->l('From'), 'width' => 86, 'price' => true, 'align' => 'right'), - 'delimiter2' => array('title' => $this->l('To'), 'width' => 86, 'price' => true, 'align' => 'right')); - - $this->_join = 'LEFT JOIN '._DB_PREFIX_.'carrier ca ON (ca.`id_carrier` = a.`id_carrier`)'; - $this->_select = 'ca.`name` AS carrier_name'; - $this->_where = 'AND ca.`deleted` = 0'; - - parent::__construct(); - } - - public function displayListContent($token = NULL) - { - foreach ($this->_list as $key => $list) - if ($list['carrier_name'] == '0') - $this->_list[$key]['carrier_name'] = Configuration::get('PS_SHOP_NAME'); - parent::displayListContent($token); - } - - public function postProcess() - { - if (isset($_POST['submitAdd'.$this->table]) AND Tools::getValue('delimiter1') >= Tools::getValue('delimiter2')) - $this->_errors[] = Tools::displayError('Invalid range'); - else - parent::postProcess(); - } - - public function displayForm($isMainTab = true) - { - parent::displayForm(); - if (!($obj = $this->loadObject(true))) - return; - $currency = $this->context->currency; - - $carrierArray = array(); - $carriers = Carrier::getCarriers((int)(Configuration::get('PS_LANG_DEFAULT')), true , false,false, NULL, Carrier::PS_CARRIERS_AND_CARRIER_MODULES_NEED_RANGE); - $id_carrier = Tools::getValue('id_carrier', $obj->id_carrier); - foreach ($carriers AS $carrier) - if (!$carrier['is_free']) - $carrierArray[] = '*'; - - echo ' -
- '.($obj->id ? '' : '').' -
'.$this->l('Price ranges').' - -
'; - if (count($carrierArray)) - { - echo ' -

'.$this->l('Carrier to which this range will be applied').'

'; - } - else - echo '
'.$this->l('There isn\'t any carrier available for a price range.').'
'; - echo ' -
- -
- '.$currency->getSign('left').''.$currency->getSign('right').'* -

'.$this->l('Range start (included)').'

-
- -
- '.$currency->getSign('left').''.$currency->getSign('right').'* -

'.$this->l('Range end (excluded)').'

-
-
- -
-
* '.$this->l('Required field').'
-
-
'; - } -} - - diff --git a/controllers/admin/AdminRangePriceController.php b/controllers/admin/AdminRangePriceController.php new file mode 100644 index 000000000..141f6b833 --- /dev/null +++ b/controllers/admin/AdminRangePriceController.php @@ -0,0 +1,127 @@ + +* @copyright 2007-2011 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 AdminRangePriceControllerCore extends AdminController +{ + public function __construct() + { + $this->table = 'range_price'; + $this->className = 'RangePrice'; + $this->lang = false; + + $this->addRowAction('edit'); + $this->addRowAction('delete'); + $this->bulk_actions = array('delete' => array('text' => $this->l('Delete selected'), 'confirm' => $this->l('Delete selected items?'))); + + $this->fieldsDisplay = array( + 'id_range_price' => array('title' => $this->l('ID'), 'align' => 'center', 'width' => 25), + 'carrier_name' => array('title' => $this->l('Carrier'), 'align' => 'center', 'width' => 25, 'filter_key' => 'ca!name'), + 'delimiter1' => array('title' => $this->l('From'), 'width' => 86, 'price' => true, 'align' => 'right'), + 'delimiter2' => array('title' => $this->l('To'), 'width' => 86, 'price' => true, 'align' => 'right')); + + $this->_join = 'LEFT JOIN '._DB_PREFIX_.'carrier ca ON (ca.`id_carrier` = a.`id_carrier`)'; + $this->_select = 'ca.`name` AS carrier_name'; + $this->_where = 'AND ca.`deleted` = 0'; + + parent::__construct(); + } + + public function initForm() + { + $currency = $this->context->currency; + $carriers = Carrier::getCarriers((int)(Configuration::get('PS_LANG_DEFAULT')), true , false,false, NULL, Carrier::PS_CARRIERS_AND_CARRIER_MODULES_NEED_RANGE); + + foreach ($carriers AS $carrier) + if ($carrier['is_free']) + unset($carriers[$key]); + + $this->fields_form = array( + 'legend' => array( + 'title' => $this->l('Price ranges'), + 'image' => '../img/t/AdminRangePrice.gif' + ), + 'input' => array( + array( + 'type' => 'select', + 'label' => $this->l('Carrier:'), + 'name' => 'id_carrier', + 'required' => false, + 'p' => $this->l('Carrier to which this range will be applied'), + 'options' => array( + 'query' => $carriers, + 'id' => 'id_carrier', + 'name' => 'name' + ), + 'empty_message' => '
'.$this->l('There isn\'t any carrier available for a price range.').'
' + ), + array( + 'type' => 'text', + 'label' => $this->l('From:'), + 'name' => 'delimiter1', + 'size' => 5, + 'required' => true, + 'suffix' => $currency->getSign('right'), + 'p' => $this->l('Range start (included)'), + ), + array( + 'type' => 'text', + 'label' => $this->l('To:'), + 'name' => 'delimiter2', + 'size' => 5, + 'required' => true, + 'suffix' => $currency->getSign('right'), + 'p' => $this->l('Range end (excluded)'), + ), + ), + 'submit' => array( + 'title' => $this->l(' Save '), + 'class' => 'button' + ) + ); + + return parent::initForm(); + } + + public function getList($id_lang, $order_by = null, $order_way = null, $start = 0, $limit = null, $id_lang_shop = false) + { + parent::getList($id_lang, $order_by, $order_way, $start, $limit, $id_lang_shop); + if ($this->_list && is_array($this->_list)) + foreach ($this->_list as $key => $list) + if ($list['carrier_name'] == '0') + $this->_list[$key]['carrier_name'] = Configuration::get('PS_SHOP_NAME'); + } + + public function postProcess() + { + if (isset($_POST['submitAdd'.$this->table]) AND Tools::getValue('delimiter1') >= Tools::getValue('delimiter2')) + $this->_errors[] = Tools::displayError('Invalid range'); + else + parent::postProcess(); + } +} + + diff --git a/controllers/admin/AdminRangeWeightController.php b/controllers/admin/AdminRangeWeightController.php index 731d3b0a3..9879db8fe 100644 --- a/controllers/admin/AdminRangeWeightController.php +++ b/controllers/admin/AdminRangeWeightController.php @@ -74,6 +74,7 @@ class AdminRangeWeightControllerCore extends AdminController 'id' => 'id_carrier', 'name' => 'name' ), + 'empty_message' => '
'.$this->l('There isn\'t any carrier available for a weight range.').'
' ), array( 'type' => 'text',