[*] FO : removed code specific to multishipping from the no-multishipping process
This commit is contained in:
1 parent
4b88e8cc06
commit
1bdc07be20
1 file changed
+49
-52
+49
-52
@@ -3410,62 +3410,59 @@ class CartCore extends ObjectModel
|
|||||||
*/
|
*/
|
||||||
public function setNoMultishipping()
|
public function setNoMultishipping()
|
||||||
{
|
{
|
||||||
// Upgrading quantities
|
if (Configuration::get('PS_ALLOW_MULTISHIPPING'))
|
||||||
$sql = 'SELECT sum(`quantity`) as quantity, id_product, id_product_attribute, count(*) as count
|
|
||||||
FROM `'._DB_PREFIX_.'cart_product`
|
|
||||||
WHERE `id_cart` = '.(int)$this->id.'
|
|
||||||
AND `id_shop` = '.(int)$this->id_shop.'
|
|
||||||
GROUP BY id_product, id_product_attribute
|
|
||||||
HAVING count > 1';
|
|
||||||
|
|
||||||
foreach (Db::getInstance()->executeS($sql) as $product)
|
|
||||||
{
|
{
|
||||||
$sql = 'UPDATE `'._DB_PREFIX_.'cart_product`
|
// Upgrading quantities
|
||||||
SET `quantity` = '.$product['quantity'].'
|
$sql = 'SELECT sum(`quantity`) as quantity, id_product, id_product_attribute, count(*) as count
|
||||||
WHERE `id_cart` = '.(int)$this->id.'
|
FROM `'._DB_PREFIX_.'cart_product`
|
||||||
AND `id_shop` = '.(int)$this->id_shop.'
|
WHERE `id_cart` = '.(int)$this->id.'
|
||||||
AND id_product = '.$product['id_product'].'
|
AND `id_shop` = '.(int)$this->id_shop.'
|
||||||
AND id_product_attribute = '.$product['id_product_attribute'];
|
GROUP BY id_product, id_product_attribute
|
||||||
Db::getInstance()->execute($sql);
|
HAVING count > 1';
|
||||||
|
|
||||||
|
foreach (Db::getInstance()->executeS($sql) as $product)
|
||||||
|
{
|
||||||
|
$sql = 'UPDATE `'._DB_PREFIX_.'cart_product`
|
||||||
|
SET `quantity` = '.$product['quantity'].'
|
||||||
|
WHERE `id_cart` = '.(int)$this->id.'
|
||||||
|
AND `id_shop` = '.(int)$this->id_shop.'
|
||||||
|
AND id_product = '.$product['id_product'].'
|
||||||
|
AND id_product_attribute = '.$product['id_product_attribute'];
|
||||||
|
Db::getInstance()->execute($sql);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Merging multiple lines
|
||||||
|
$sql = 'DELETE cp1
|
||||||
|
FROM `'._DB_PREFIX_.'cart_product` cp1
|
||||||
|
INNER JOIN `'._DB_PREFIX_.'cart_product` cp2
|
||||||
|
ON (
|
||||||
|
(cp1.id_cart = cp2.id_cart)
|
||||||
|
AND (cp1.id_product = cp2.id_product)
|
||||||
|
AND (cp1.id_product_attribute = cp2.id_product_attribute)
|
||||||
|
AND (cp1.id_address_delivery <> cp2.id_address_delivery)
|
||||||
|
AND (cp1.date_add > cp2.date_add)
|
||||||
|
)';
|
||||||
|
Db::getInstance()->execute($sql);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Merging multiple lines
|
// Update delivery address for each product line
|
||||||
$sql = 'DELETE cp1
|
Db::getInstance()->execute('
|
||||||
FROM `'._DB_PREFIX_.'cart_product` cp1
|
UPDATE `'._DB_PREFIX_.'cart_product`
|
||||||
INNER JOIN `'._DB_PREFIX_.'cart_product` cp2
|
SET `id_address_delivery` = (
|
||||||
ON (
|
SELECT `id_address_delivery` FROM `'._DB_PREFIX_.'cart`
|
||||||
(cp1.id_cart = cp2.id_cart)
|
WHERE `id_cart` = '.(int)$this->id.' AND `id_shop` = '.(int)$this->id_shop.'
|
||||||
AND (cp1.id_product = cp2.id_product)
|
)
|
||||||
AND (cp1.id_product_attribute = cp2.id_product_attribute)
|
WHERE `id_cart` = '.(int)$this->id.'
|
||||||
AND (cp1.id_address_delivery <> cp2.id_address_delivery)
|
'.(Configuration::get('PS_ALLOW_MULTISHIPPING') ? ' AND `id_shop` = '.(int)$this->id_shop : ''));
|
||||||
AND (cp1.date_add > cp2.date_add)
|
|
||||||
)';
|
if (Customization::isFeatureActive())
|
||||||
Db::getInstance()->execute($sql);
|
Db::getInstance()->execute('
|
||||||
|
UPDATE `'._DB_PREFIX_.'customization`
|
||||||
// Upgrading address delivery
|
SET `id_address_delivery` = (
|
||||||
$sql = 'UPDATE `'._DB_PREFIX_.'cart_product`
|
SELECT `id_address_delivery` FROM `'._DB_PREFIX_.'cart`
|
||||||
SET `id_address_delivery` =
|
|
||||||
(
|
|
||||||
SELECT `id_address_delivery`
|
|
||||||
FROM `'._DB_PREFIX_.'cart`
|
|
||||||
WHERE `id_cart` = '.(int)$this->id.'
|
|
||||||
AND `id_shop` = '.(int)$this->id_shop.'
|
|
||||||
)
|
|
||||||
WHERE `id_cart` = '.(int)$this->id.'
|
|
||||||
'.(Configuration::get('PS_ALLOW_MULTISHIPPING') ? ' AND `id_shop` = '.(int)$this->id_shop : '');
|
|
||||||
|
|
||||||
Db::getInstance()->execute($sql);
|
|
||||||
|
|
||||||
$sql = 'UPDATE `'._DB_PREFIX_.'customization`
|
|
||||||
SET `id_address_delivery` =
|
|
||||||
(
|
|
||||||
SELECT `id_address_delivery`
|
|
||||||
FROM `'._DB_PREFIX_.'cart`
|
|
||||||
WHERE `id_cart` = '.(int)$this->id.'
|
WHERE `id_cart` = '.(int)$this->id.'
|
||||||
)
|
)
|
||||||
WHERE `id_cart` = '.(int)$this->id;
|
WHERE `id_cart` = '.(int)$this->id);
|
||||||
|
|
||||||
Db::getInstance()->execute($sql);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in new issue
Block a user