Skip to content
Browse files

[-] FO : Fix bug #PSCFV-8415 zipcode is required without zip code for…

…mat too
  • Loading branch information...
1 parent 0e51b31 commit c9c9454ca558b5a8adb30794b2804e582741224e @gRoussac gRoussac committed Mar 26, 2013
View
30 controllers/admin/AdminAddressesController.php
@@ -344,28 +344,14 @@ public function processSave()
if ((int)$country->contains_states && !$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')) && $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 Postal / Zip Code is incorrect.').'<br />'.
- Tools::displayError('It must be entered as follows:').' '.
- str_replace('C', $country->iso_code, str_replace('N', '0', str_replace('L', 'A', $zip_code_format)));
- }
- else if ($zip_code_format)
- $this->errors[] = Tools::displayError('A Postal / Zip Code required.');
- else if ($postcode && !preg_match('/^[0-9a-zA-Z -]{4,9}$/ui', $postcode))
- $this->errors[] = Tools::displayError('Your Postal / Zip Code is incorrect.');
- }
+ $postcode = Tools::getValue('postcode');
+ /* Check zip code format */
+ if ($country->zip_code_format && !$country->checkZipCode($postcode))
+ $this->errors[] = Tools::displayError('Your Postal / Zip Code is incorrect.').'<br />'.Tools::displayError('It must be entered as follows:').' '.str_replace('C', $country->iso_code, str_replace('N', '0', str_replace('L', 'A', $country->zip_code_format)));
+ elseif(empty($postcode) && $country->need_zip_code)
+ $this->errors[] = Tools::displayError('A Zip / Postal code is required.');
+ elseif ($postcode && !Validate::isPostCode($postcode))
+ $this->errors[] = Tools::displayError('The Zip / Postal code is invalid.');
if (Configuration::get('PS_ONE_PHONE_AT_LEAST') && !Tools::getValue('phone') && !Tools::getValue('phone_mobile'))
$this->errors[] = Tools::displayError('You must register at least one phone number.');
View
43 controllers/admin/AdminStoresController.php
@@ -354,40 +354,15 @@ public function postProcess()
if (empty($latitude) || empty($longitude))
$this->errors[] = Tools::displayError('Latitude and longitude are required.');
-
- /* Check zip code */
- if ($country->need_zip_code)
- {
- $zip_code_format = $country->zip_code_format;
- if (($postcode = Tools::getValue('postcode')) && $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 Postal / Zip Code is incorrect.').'<br />'.Tools::displayError('It must be entered as follows:').' '.
- str_replace(
- 'C',
- $country->iso_code,
- str_replace(
- 'N',
- '0',
- str_replace(
- 'L',
- 'A',
- $zip_code_format
- )
- )
- );
- }
- else if ($zip_code_format)
- $this->errors[] = Tools::displayError('A Postal / Zip Code required.');
- else if ($postcode && !preg_match('/^[0-9a-zA-Z -]{4,9}$/ui', $postcode))
- $this->errors[] = Tools::displayError('Your Postal / Zip Code is incorrect.');
- }
+
+ $postcode = Tools::getValue('postcode');
+ /* Check zip code format */
+ if ($country->zip_code_format && !$country->checkZipCode($postcode))
+ $this->errors[] = Tools::displayError('Your Postal / Zip Code is incorrect.').'<br />'.Tools::displayError('It must be entered as follows:').' '.str_replace('C', $country->iso_code, str_replace('N', '0', str_replace('L', 'A', $country->zip_code_format)));
+ elseif(empty($postcode) && $country->need_zip_code)
+ $this->errors[] = Tools::displayError('A Zip / Postal code is required.');
+ elseif ($postcode && !Validate::isPostCode($postcode))
+ $this->errors[] = Tools::displayError('The Zip / Postal code is invalid.');
/* Store hours */
$_POST['hours'] = array();
View
30 controllers/front/AddressController.php
@@ -145,27 +145,15 @@ protected function processSubmitAddress()
$address->address1 = $normalize->AddressLineStandardization($address->address1);
$address->address2 = $normalize->AddressLineStandardization($address->address2);
}
-
- // Check country zip code
- $zip_code_format = $country->zip_code_format;
- if ($country->need_zip_code)
- {
- if (($postcode = Tools::getValue('postcode')) && $zip_code_format)
- {
- if (!$country->checkZipCode($postcode))
- $this->errors[] = sprintf(
- Tools::displayError('The Zip/Postal code you\'ve entered is invalid. It must follow this format: %s'),
- str_replace('C', $country->iso_code, str_replace('N', '0', str_replace('L', 'A', $country->zip_code_format)))
- );
- }
- else if ($zip_code_format)
- $this->errors[] = Tools::displayError('A Zip / Postal code is required.');
- else if ($postcode && !preg_match('/^[0-9a-zA-Z -]{4,9}$/ui', $postcode))
- $this->errors[] = sprintf(
- Tools::displayError('The Zip/Postal code you\'ve entered is invalid. It must follow this format: %s'),
- str_replace('C', $country->iso_code, str_replace('N', '0', str_replace('L', 'A', $country->zip_code_format)))
- );
- }
+
+ $postcode = Tools::getValue('postcode');
+ /* Check zip code format */
+ if ($country->zip_code_format && !$country->checkZipCode($postcode))
+ $this->errors[] = sprintf(Tools::displayError('The Zip/Postal code you\'ve entered is invalid. It must follow this format: %s'), str_replace('C', $country->iso_code, str_replace('N', '0', str_replace('L', 'A', $country->zip_code_format))));
+ elseif(empty($postcode) && $country->need_zip_code)
+ $this->errors[] = Tools::displayError('A Zip / Postal code is required.');
+ elseif ($postcode && !Validate::isPostCode($postcode))
+ $this->errors[] = Tools::displayError('The Zip / Postal code is invalid.');
// Check country DNI
if ($country->isNeedDni() && (!Tools::getValue('dni') || !Validate::isDniLite(Tools::getValue('dni'))))
View
24 controllers/front/AuthController.php
@@ -486,22 +486,14 @@ protected function processSubmitAccount()
$address->address2 = $normalize->AddressLineStandardization($address->address2);
}
- $country = new Country((int)Tools::getValue('id_country'));
- if ($country->need_zip_code)
- {
- if (($postcode = Tools::getValue('postcode')) && $country->zip_code_format)
- {
- if (!$country->checkZipCode($postcode))
- $this->errors[] = sprintf(
- Tools::displayError('The Zip/Postal code you\'ve entered is invalid. It must follow this format: %s'),
- str_replace('C', $country->iso_code, str_replace('N', '0', str_replace('L', 'A', $country->zip_code_format)))
- );
- }
- elseif ($country->zip_code_format)
- $this->errors[] = Tools::displayError('A Zip / Postal code is required.');
- elseif ($postcode && !preg_match('/^[0-9a-zA-Z -]{4,9}$/ui', $postcode))
- $this->errors[] = Tools::displayError('The Zip / Postal code is invalid.');
- }
+ $postcode = Tools::getValue('postcode');
+ /* Check zip code format */
+ if ($country->zip_code_format && !$country->checkZipCode($postcode))
+ $this->errors[] = sprintf(Tools::displayError('The Zip/Postal code you\'ve entered is invalid. It must follow this format: %s'), str_replace('C', $country->iso_code, str_replace('N', '0', str_replace('L', 'A', $country->zip_code_format))));
+ elseif(empty($postcode) && $country->need_zip_code)
+ $this->errors[] = Tools::displayError('A Zip / Postal code is required.');
+ elseif ($postcode && !Validate::isPostCode($postcode))
+ $this->errors[] = Tools::displayError('The Zip / Postal code is invalid.');
if ($country->need_identification_number && (!Tools::getValue('dni') || !Validate::isDniLite(Tools::getValue('dni'))))
$this->errors[] = Tools::displayError('The identification number is incorrect or has already been used.');

0 comments on commit c9c9454

Please sign in to comment.
Something went wrong with that request. Please try again.