diff --git a/controllers/admin/AdminAddressesController.php b/controllers/admin/AdminAddressesController.php index fd8f4c379..c0ee2c546 100644 --- a/controllers/admin/AdminAddressesController.php +++ b/controllers/admin/AdminAddressesController.php @@ -276,74 +276,72 @@ class AdminAddressesControllerCore extends AdminController return parent::renderForm(); } - public function postProcess() + public function processSave($token) { - if ($this->action == 'save') + // Transform e-mail in id_customer for parent processing + if (Validate::isEmail(Tools::getValue('email'))) { - // Transform e-mail in id_customer for parent processing - if (Validate::isEmail(Tools::getValue('email'))) - { - $customer = new Customer(); - $customer->getByEmail(Tools::getValue('email')); - if (Validate::isLoadedObject($customer)) - $_POST['id_customer'] = $customer->id; - else - $this->_errors[] = Tools::displayError('This e-mail address is not registered.'); - } - elseif ($id_customer = Tools::getValue('id_customer')) - { - $customer = new Customer((int)($id_customer)); - if (Validate::isLoadedObject($customer)) - $_POST['id_customer'] = $customer->id; - else - $this->_errors[] = Tools::displayError('Unknown customer'); - } + $customer = new Customer(); + $customer->getByEmail(Tools::getValue('email')); + if (Validate::isLoadedObject($customer)) + $_POST['id_customer'] = $customer->id; + else + $this->_errors[] = Tools::displayError('This e-mail address is not registered.'); + } + elseif ($id_customer = Tools::getValue('id_customer')) + { + $customer = new Customer((int)($id_customer)); + if (Validate::isLoadedObject($customer)) + $_POST['id_customer'] = $customer->id; else $this->_errors[] = Tools::displayError('Unknown customer'); - if (Country::isNeedDniByCountryId(Tools::getValue('id_country')) AND !Tools::getValue('dni')) - $this->_errors[] = Tools::displayError('Identification number is incorrect or has already been used.'); - - /* If the selected country does not contain states */ - $id_state = (int)(Tools::getValue('id_state')); - if ($id_country = Tools::getValue('id_country') AND $country = new Country((int)($id_country)) AND !(int)($country->contains_states) AND $id_state) - $this->_errors[] = Tools::displayError('You have selected a state for a country that does not contain states.'); - - /* If the selected country contains states, then a state have to be selected */ - if ((int)($country->contains_states) AND !$id_state) - $this->_errors[] = Tools::displayError('An address located in a country containing states must have a state selected.'); - - /* Check zip code */ - if ($country->need_zip_code) - { - $zip_code_format = $country->zip_code_format; - if (($postcode = Tools::getValue('postcode')) AND $zip_code_format) - { - $zip_regexp = '/^'.$zip_code_format.'$/ui'; - $zip_regexp = str_replace(' ', '( |)', $zip_regexp); - $zip_regexp = str_replace('-', '(-|)', $zip_regexp); - $zip_regexp = str_replace('N', '[0-9]', $zip_regexp); - $zip_regexp = str_replace('L', '[a-zA-Z]', $zip_regexp); - $zip_regexp = str_replace('C', $country->iso_code, $zip_regexp); - if (!preg_match($zip_regexp, $postcode)) - $this->_errors[] = Tools::displayError('Your zip/postal code is incorrect.').'
'.Tools::displayError('Must be typed as follows:').' '.str_replace('C', $country->iso_code, str_replace('N', '0', str_replace('L', 'A', $zip_code_format))); - } - elseif ($zip_code_format) - $this->_errors[] = Tools::displayError('Postcode required.'); - elseif ($postcode AND !preg_match('/^[0-9a-zA-Z -]{4,9}$/ui', $postcode)) - $this->_errors[] = Tools::displayError('Your zip/postal code is incorrect.'); - } - - /* If this address come from order's edition and is the same as the other one (invoice or delivery one) - ** we delete its id_address to force the creation of a new one */ - if ((int)(Tools::getValue('id_order'))) - { - $this->_redirect = false; - if (isset($_POST['address_type'])) - $_POST['id_address'] = ''; - } } - if (!sizeof($this->_errors)) - parent::postProcess(); + else + $this->_errors[] = Tools::displayError('Unknown customer'); + if (Country::isNeedDniByCountryId(Tools::getValue('id_country')) AND !Tools::getValue('dni')) + $this->_errors[] = Tools::displayError('Identification number is incorrect or has already been used.'); + + /* If the selected country does not contain states */ + $id_state = (int)(Tools::getValue('id_state')); + if ($id_country = Tools::getValue('id_country') AND $country = new Country((int)($id_country)) AND !(int)($country->contains_states) AND $id_state) + $this->_errors[] = Tools::displayError('You have selected a state for a country that does not contain states.'); + + /* If the selected country contains states, then a state have to be selected */ + if ((int)($country->contains_states) AND !$id_state) + $this->_errors[] = Tools::displayError('An address located in a country containing states must have a state selected.'); + + /* Check zip code */ + if ($country->need_zip_code) + { + $zip_code_format = $country->zip_code_format; + if (($postcode = Tools::getValue('postcode')) AND $zip_code_format) + { + $zip_regexp = '/^'.$zip_code_format.'$/ui'; + $zip_regexp = str_replace(' ', '( |)', $zip_regexp); + $zip_regexp = str_replace('-', '(-|)', $zip_regexp); + $zip_regexp = str_replace('N', '[0-9]', $zip_regexp); + $zip_regexp = str_replace('L', '[a-zA-Z]', $zip_regexp); + $zip_regexp = str_replace('C', $country->iso_code, $zip_regexp); + if (!preg_match($zip_regexp, $postcode)) + $this->_errors[] = Tools::displayError('Your zip/postal code is incorrect.').'
'.Tools::displayError('Must be typed as follows:').' '.str_replace('C', $country->iso_code, str_replace('N', '0', str_replace('L', 'A', $zip_code_format))); + } + elseif ($zip_code_format) + $this->_errors[] = Tools::displayError('Postcode required.'); + elseif ($postcode AND !preg_match('/^[0-9a-zA-Z -]{4,9}$/ui', $postcode)) + $this->_errors[] = Tools::displayError('Your zip/postal code is incorrect.'); + } + + /* If this address come from order's edition and is the same as the other one (invoice or delivery one) + ** we delete its id_address to force the creation of a new one */ + if ((int)(Tools::getValue('id_order'))) + { + $this->_redirect = false; + if (isset($_POST['address_type'])) + $_POST['id_address'] = ''; + } + + if (empty($this->_errors)) + parent::processSave($token); /* Reassignation of the order's new (invoice or delivery) address */ $address_type = ((int)(Tools::getValue('address_type')) == 2 ? 'invoice' : ((int)(Tools::getValue('address_type')) == 1 ? 'delivery' : '')); diff --git a/controllers/admin/AdminGroupsController.php b/controllers/admin/AdminGroupsController.php index c018e5309..bd304ae66 100644 --- a/controllers/admin/AdminGroupsController.php +++ b/controllers/admin/AdminGroupsController.php @@ -51,7 +51,7 @@ class AdminGroupsController extends AdminController $this->fieldsDisplay = array( 'id_group' => array('title' => $this->l('ID'), 'align' => 'center', 'width' => 25), - 'name' => array('title' => $this->l('Name'), 'width' => 80, 'filter_key' => 'b!name'), + 'name' => array('title' => $this->l('Name'), 'width' => 'auto', 'filter_key' => 'b!name'), 'reduction' => array('title' => $this->l('Discount'), 'width' => 50, 'align' => 'right'), 'nb' => array('title' => $this->l('Members'), 'width' => 25, 'align' => 'center'), 'date_add' => array('title' => $this->l('Creation date'), 'width' => 60, 'type' => 'date', 'align' => 'right')); @@ -76,14 +76,14 @@ class AdminGroupsController extends AdminController $this->tpl_view_vars = array( 'group' => $group, - 'customerList' => $this->initCustomersList($group), + 'customerList' => $this->renderCustomersList($group), 'categorieReductions' => $this->formatCategoryDiscountList($group->id) ); return parent::renderView(); } - protected function initCustomersList($group) + protected function renderCustomersList($group) { $genders = array(0 => $this->l('?')); foreach (Gender::getGenders() as $gender) @@ -275,26 +275,16 @@ class AdminGroupsController extends AdminController return array('unauth_modules' => $unauth_modules, 'auth_modules' => $auth_modules); } - public function postProcess() + public function processSave($token) { - if (Tools::isSubmit('submitAddgroup')) - { - if ($this->tabAccess['add'] === '1') - { - if (!$this->validateDiscount(Tools::getValue('reduction'))) - $this->_errors[] = Tools::displayError('Discount value is incorrect (must be a percentage)'); - else - { - $this->updateCategoryReduction(); - $this->updateRestrictions(); - parent::postProcess(); - } - } - else - $this->_errors[] = Tools::displayError('You do not have permission to add here.'); - } + if (!$this->validateDiscount(Tools::getValue('reduction'))) + $this->_errors[] = Tools::displayError('Discount value is incorrect (must be a percentage)'); else - parent::postProcess(); + { + $this->updateCategoryReduction(); + $this->updateRestrictions(); + parent::processSave($token); + } } protected function validateDiscount($reduction)