[-] FO : Fix bug #PSCFV-9171, can not order with a unactivated country

This commit is contained in:
gRoussac committed 2013-05-24 17:21:56 +02:00
1 parent a28a8598ba
commit 95e46afc99
2 files changed
+10 -2

No files matched your search

+5
View File
@@ -237,6 +237,8 @@ class AddressCore extends ObjectModel
*/ */
public static function getZoneById($id_address) public static function getZoneById($id_address)
{ {
if(!isset($id_address) || empty($id_address))
return false;
if (isset(self::$_idZones[$id_address])) if (isset(self::$_idZones[$id_address]))
return self::$_idZones[$id_address]; return self::$_idZones[$id_address];
@@ -259,6 +261,9 @@ class AddressCore extends ObjectModel
*/ */
public static function isCountryActiveById($id_address) public static function isCountryActiveById($id_address)
{ {
if(!isset($id_address) || empty($id_address))
return false;
if (!$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow(' if (!$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow('
SELECT c.`active` SELECT c.`active`
FROM `'._DB_PREFIX_.'address` a FROM `'._DB_PREFIX_.'address` a
+5 -2
View File
@@ -399,10 +399,11 @@ class ParentOrderControllerCore extends FrontController
// Getting a list of formated address fields with associated values // Getting a list of formated address fields with associated values
$formatedAddressFieldsValuesList = array(); $formatedAddressFieldsValuesList = array();
foreach ($customerAddresses as $address) foreach ($customerAddresses as $i => $address)
{ {
if (!Address::isCountryActiveById((int)($address['id_address'])))
unset($customerAddresses[$i]);
$tmpAddress = new Address($address['id_address']); $tmpAddress = new Address($address['id_address']);
$formatedAddressFieldsValuesList[$address['id_address']]['ordered_fields'] = AddressFormat::getOrderedAddressFields($address['id_country']); $formatedAddressFieldsValuesList[$address['id_address']]['ordered_fields'] = AddressFormat::getOrderedAddressFields($address['id_country']);
$formatedAddressFieldsValuesList[$address['id_address']]['formated_fields_values'] = AddressFormat::getFormattedAddressFieldsValues( $formatedAddressFieldsValuesList[$address['id_address']]['formated_fields_values'] = AddressFormat::getFormattedAddressFieldsValues(
$tmpAddress, $tmpAddress,
@@ -459,6 +460,8 @@ class ParentOrderControllerCore extends FrontController
{ {
$address = new Address($this->context->cart->id_address_delivery); $address = new Address($this->context->cart->id_address_delivery);
$id_zone = Address::getZoneById($address->id); $id_zone = Address::getZoneById($address->id);
if (!Address::isCountryActiveById((int)($this->context->cart->id_address_delivery)) || !Address::isCountryActiveById((int)($this->context->cart->id_address_invoice)))
Tools::redirect('index.php?controller=order&step=1');
$carriers = $this->context->cart->simulateCarriersOutput(); $carriers = $this->context->cart->simulateCarriersOutput();
$checked = $this->context->cart->simulateCarrierSelectedOutput(); $checked = $this->context->cart->simulateCarrierSelectedOutput();
$delivery_option_list = $this->context->cart->getDeliveryOptionList(); $delivery_option_list = $this->context->cart->getDeliveryOptionList();