[-] Classes : Fixed bug on Feature detachables and Customizations

This commit is contained in:
aFolletete
2011-09-14 09:18:18 +00:00
parent efbf3c5d45
commit 26f31f52dc
3 changed files with 39 additions and 29 deletions
+33 -27
View File
@@ -2961,36 +2961,42 @@ class ProductCore extends ObjectModel
public static function addCustomizationPrice(&$products, &$customizedDatas)
{
if (!Customization::isFeatureActive())
return;
foreach ($products AS &$productUpdate)
{
$customizationQuantity = 0;
$customizationQuantityRefunded = 0;
$customizationQuantityReturned = 0;
/* 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']);
$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)
{
$customizationQuantity += (int)($customization['quantity']);
$customizationQuantityRefunded += (int)($customization['quantity_refunded']);
$customizationQuantityReturned += (int)($customization['quantity_returned']);
}
$productUpdate['customizationQuantityTotal'] = $customizationQuantity;
$productUpdate['customizationQuantityRefunded'] = $customizationQuantityRefunded;
$productUpdate['customizationQuantityReturned'] = $customizationQuantityReturned;
if ($customizationQuantity)
if (!Customization::isFeatureActive())
{
$productUpdate['total_wt'] = $priceWt * ($productQuantity - $customizationQuantity);
$productUpdate['total_customization_wt'] = $priceWt * $customizationQuantity;
$productUpdate['total'] = $price * ($productQuantity - $customizationQuantity);
$productUpdate['total_customization'] = $price * $customizationQuantity;
$productUpdate['customizationQuantityTotal'] = 0;
$productUpdate['customizationQuantityRefunded'] = 0;
$productUpdate['customizationQuantityReturned'] = 0;
}
else
{
$customizationQuantity = 0;
$customizationQuantityRefunded = 0;
$customizationQuantityReturned = 0;
/* 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']);
$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)
{
$customizationQuantity += (int)($customization['quantity']);
$customizationQuantityRefunded += (int)($customization['quantity_refunded']);
$customizationQuantityReturned += (int)($customization['quantity_returned']);
}
$productUpdate['customizationQuantityTotal'] = $customizationQuantity;
$productUpdate['customizationQuantityRefunded'] = $customizationQuantityRefunded;
$productUpdate['customizationQuantityReturned'] = $customizationQuantityReturned;
if ($customizationQuantity)
{
$productUpdate['total_wt'] = $priceWt * ($productQuantity - $customizationQuantity);
$productUpdate['total_customization_wt'] = $priceWt * $customizationQuantity;
$productUpdate['total'] = $price * ($productQuantity - $customizationQuantity);
$productUpdate['total_customization'] = $price * $customizationQuantity;
}
}
}
}
+1 -1
View File
@@ -167,7 +167,7 @@ class OrderDetailControllerCore extends FrontController
'messages' => CustomerMessage::getMessagesByOrderId((int)($order->id)),
'CUSTOMIZE_FILE' => Product::CUSTOMIZE_FILE,
'CUSTOMIZE_TEXTFIELD' => _CUSTOMIZE_TEXTFIELD_,
'isRecyclable' => Configuration::get('PS_RECYCLABLE_PACK'),
'isRecyclable' => Configuration::get('PS_RECYCLABLE_PACK'),
'use_tax' => Configuration::get('PS_TAX'),
'group_use_tax' => (Group::getPriceDisplayMethod($customer->id_default_group) == PS_TAX_INC),
'customizedDatas' => $customizedDatas));
+5 -1
View File
@@ -168,7 +168,11 @@
{if !isset($product.deleted)}
{assign var='productId' value=$product.product_id}
{assign var='productAttributeId' value=$product.product_attribute_id}
{if isset($customizedDatas.$productId.$productAttributeId)}{assign var='productQuantity' value=$product.product_quantity-$product.customizationQuantityTotal}{else}{assign var='productQuantity' value=$product.product_quantity}{/if}
{if isset($customizedDatas.$productId.$productAttributeId)}
{assign var='productQuantity' value=$product.product_quantity-$product.customizationQuantityTotal}
{else}
{assign var='productQuantity' value=$product.product_quantity}
{/if}
<!-- Customized products -->
{if isset($customizedDatas.$productId.$productAttributeId)}
<tr class="item">