// Merging multishipping branche on 1.5
This commit is contained in:
+43
-7
@@ -1696,6 +1696,38 @@ class ProductCore extends ObjectModel
|
||||
{
|
||||
return Product::getProductCategories($this->id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets carriers assigned to the product
|
||||
*/
|
||||
public function getCarriers()
|
||||
{
|
||||
return Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('
|
||||
SELECT c.*
|
||||
FROM `'._DB_PREFIX_.'product_carrier` pc
|
||||
INNER JOIN `'._DB_PREFIX_.'carrier` c
|
||||
ON (c.`id_reference` = pc.`id_carrier_reference` AND c.`deleted` = 0)
|
||||
WHERE pc.`id_product` = '.(int)$this->id.'
|
||||
AND pc.`id_shop` = '.(int)$this->id_shop);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets carriers assigned to the product
|
||||
*/
|
||||
public function setCarriers($carrier_list)
|
||||
{
|
||||
$data = array();
|
||||
foreach($carrier_list as $carrier)
|
||||
{
|
||||
$data[] = array(
|
||||
'id_product' => (int)$this->id,
|
||||
'id_carrier_reference' => (int)$carrier,
|
||||
'id_shop' => (int)$this->id_shop
|
||||
);
|
||||
}
|
||||
Db::getInstance()->execute('DELETE FROM `'._DB_PREFIX_.'product_carrier` WHERE id_product = '.(int)$this->id.' AND id_shop = '.(int)$this->id_shop);
|
||||
Db::getInstance()->AutoExecute(_DB_PREFIX_.'product_carrier', $data, 'INSERT');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get product images and legends
|
||||
@@ -2994,7 +3026,7 @@ class ProductCore extends ObjectModel
|
||||
$id_lang = Context::getContext()->language->id;
|
||||
|
||||
if (!$result = Db::getInstance()->executeS('
|
||||
SELECT cd.`id_customization`, c.`id_product`, cfl.`id_customization_field`, c.`id_product_attribute`, cd.`type`, cd.`index`, cd.`value`, cfl.`name`
|
||||
SELECT cd.`id_customization`, c.`id_address_delivery`, c.`id_product`, cfl.`id_customization_field`, c.`id_product_attribute`, cd.`type`, cd.`index`, cd.`value`, cfl.`name`
|
||||
FROM `'._DB_PREFIX_.'customized_data` cd
|
||||
NATURAL JOIN `'._DB_PREFIX_.'customization` c
|
||||
LEFT JOIN `'._DB_PREFIX_.'customization_field_lang` cfl ON (cfl.id_customization_field = cd.`index` AND id_lang = '.(int)($id_lang).')
|
||||
@@ -3004,21 +3036,24 @@ class ProductCore extends ObjectModel
|
||||
return false;
|
||||
$customizedDatas = array();
|
||||
foreach ($result as $row)
|
||||
$customizedDatas[(int)($row['id_product'])][(int)($row['id_product_attribute'])][(int)($row['id_customization'])]['datas'][(int)($row['type'])][] = $row;
|
||||
if (!$result = Db::getInstance()->executeS('SELECT `id_product`, `id_product_attribute`, `id_customization`, `quantity`, `quantity_refunded`, `quantity_returned`
|
||||
$customizedDatas[(int)($row['id_product'])][(int)($row['id_product_attribute'])][(int)($row['id_address_delivery'])][(int)($row['id_customization'])]['datas'][(int)($row['type'])][] = $row;
|
||||
if (!$result = Db::getInstance()->executeS('SELECT `id_product`, `id_product_attribute`, `id_customization`, `id_address_delivery`, `quantity`, `quantity_refunded`, `quantity_returned`
|
||||
FROM `'._DB_PREFIX_.'customization` WHERE `id_cart` = '.(int)($id_cart).($only_in_cart ? ' AND `in_cart` = 1' : '')))
|
||||
return false;
|
||||
foreach ($result as $row)
|
||||
{
|
||||
$customizedDatas[(int)($row['id_product'])][(int)($row['id_product_attribute'])][(int)($row['id_customization'])]['quantity'] = (int)($row['quantity']);
|
||||
$customizedDatas[(int)($row['id_product'])][(int)($row['id_product_attribute'])][(int)($row['id_customization'])]['quantity_refunded'] = (int)($row['quantity_refunded']);
|
||||
$customizedDatas[(int)($row['id_product'])][(int)($row['id_product_attribute'])][(int)($row['id_customization'])]['quantity_returned'] = (int)($row['quantity_returned']);
|
||||
$customizedDatas[(int)($row['id_product'])][(int)($row['id_product_attribute'])][(int)($row['id_address_delivery'])][(int)($row['id_customization'])]['quantity'] = (int)($row['quantity']);
|
||||
$customizedDatas[(int)($row['id_product'])][(int)($row['id_product_attribute'])][(int)($row['id_address_delivery'])][(int)($row['id_customization'])]['quantity_refunded'] = (int)($row['quantity_refunded']);
|
||||
$customizedDatas[(int)($row['id_product'])][(int)($row['id_product_attribute'])][(int)($row['id_address_delivery'])][(int)($row['id_customization'])]['quantity_returned'] = (int)($row['quantity_returned']);
|
||||
}
|
||||
return $customizedDatas;
|
||||
}
|
||||
|
||||
public static function addCustomizationPrice(&$products, &$customizedDatas)
|
||||
{
|
||||
if(!$customizedDatas)
|
||||
return;
|
||||
|
||||
foreach ($products as &$productUpdate)
|
||||
{
|
||||
if (!Customization::isFeatureActive())
|
||||
@@ -3035,11 +3070,12 @@ class ProductCore extends ObjectModel
|
||||
/* Compatibility */
|
||||
$productId = (int)(isset($productUpdate['id_product']) ? $productUpdate['id_product'] : $productUpdate['product_id']);
|
||||
$productAttributeId = (int)(isset($productUpdate['id_product_attribute']) ? $productUpdate['id_product_attribute'] : $productUpdate['product_attribute_id']);
|
||||
$id_address_delivery = (int)$productUpdate['id_address_delivery'];
|
||||
$productQuantity = (int)(isset($productUpdate['cart_quantity']) ? $productUpdate['cart_quantity'] : $productUpdate['product_quantity']);
|
||||
$price = isset($productUpdate['price']) ? $productUpdate['price'] : $productUpdate['product_price'];
|
||||
$priceWt = $price * (1 + ((isset($productUpdate['tax_rate']) ? $productUpdate['tax_rate'] : $productUpdate['rate']) * 0.01));
|
||||
if (isset($customizedDatas[$productId][$productAttributeId]))
|
||||
foreach ($customizedDatas[$productId][$productAttributeId] as $customization)
|
||||
foreach ($customizedDatas[$productId][$productAttributeId][$id_address_delivery] as $customization)
|
||||
{
|
||||
$customizationQuantity += (int)$customization['quantity'];
|
||||
$customizationQuantityRefunded += (int)$customization['quantity_refunded'];
|
||||
|
||||
Reference in New Issue
Block a user