[-] MO : loyalty : #PSCFV-3764 : display points of default attribute

git-svn-id: http://dev.prestashop.com/svn/v1/branches/1.5.x@17038 b9a71923-0436-4b27-9f14-aed3839534dd
This commit is contained in:
lLefevre
2012-08-28 08:27:46 +00:00
parent ef8f8582d0
commit eeeaaa8e08
3 changed files with 31 additions and 9 deletions
+16
View File
@@ -2638,6 +2638,22 @@ class ProductCore extends ObjectModel
return (isset($row['id_product_attribute']) && $row['id_product_attribute']) ? (int)$row['id_product_attribute'] : 0; return (isset($row['id_product_attribute']) && $row['id_product_attribute']) ? (int)$row['id_product_attribute'] : 0;
} }
public function getDefaultIdProductAttribute()
{
if (!Combination::isFeatureActive())
return 0;
$row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow('
SELECT pa.`id_product_attribute`
FROM `'._DB_PREFIX_.'product_attribute` pa
'.Shop::addSqlAssociation('product_attribute', 'pa').'
WHERE pa.`id_product` = '.(int)$this->id.'
AND pa.`default_on` = 1'
);
return (isset($row['id_product_attribute']) && $row['id_product_attribute']) ? (int)$row['id_product_attribute'] : 0;
}
public function getPriceWithoutReduct($notax = false, $id_product_attribute = false) public function getPriceWithoutReduct($notax = false, $id_product_attribute = false)
{ {
return Product::getPriceStatic((int)$this->id, !$notax, $id_product_attribute, 6, null, false, false); return Product::getPriceStatic((int)$this->id, !$notax, $id_product_attribute, 6, null, false, false);
+2 -2
View File
@@ -92,9 +92,9 @@ class LoyaltyModule extends ObjectModel
{ {
$cartProductsNew['id_product'] = (int)$newProduct->id; $cartProductsNew['id_product'] = (int)$newProduct->id;
if ($taxesEnabled == PS_TAX_EXC) if ($taxesEnabled == PS_TAX_EXC)
$cartProductsNew['price'] = number_format($newProduct->getPrice(false, (int)($newProduct->getIdProductAttributeMostExpensive())), 2, '.', ''); $cartProductsNew['price'] = number_format($newProduct->getPrice(false, (int)$newProduct->getDefaultIdProductAttribute()), 2, '.', '');
else else
$cartProductsNew['price_wt'] = number_format($newProduct->getPrice(true, (int)($newProduct->getIdProductAttributeMostExpensive())), 2, '.', ''); $cartProductsNew['price_wt'] = number_format($newProduct->getPrice(true, (int)$newProduct->getDefaultIdProductAttribute()), 2, '.', '');
$cartProductsNew['cart_quantity'] = 1; $cartProductsNew['cart_quantity'] = 1;
$cartProducts[] = $cartProductsNew; $cartProducts[] = $cartProductsNew;
} }
+13 -7
View File
@@ -432,15 +432,15 @@ class Loyalty extends Module
public function hookExtraRight($params) public function hookExtraRight($params)
{ {
include_once(dirname(__FILE__).'/LoyaltyModule.php'); include_once(dirname(__FILE__).'/LoyaltyModule.php');
$product = new Product((int)Tools::getValue('id_product')); $product = new Product((int)Tools::getValue('id_product'));
if (Validate::isLoadedObject($product)) if (Validate::isLoadedObject($product))
{ {
if (Validate::isLoadedObject($params['cart'])) if (Validate::isLoadedObject($params['cart']))
{ {
$pointsBefore = (int)(LoyaltyModule::getCartNbPoints($params['cart'])); $pointsBefore = (int)LoyaltyModule::getCartNbPoints($params['cart']);
$pointsAfter = (int)(LoyaltyModule::getCartNbPoints($params['cart'], $product)); $pointsAfter = (int)LoyaltyModule::getCartNbPoints($params['cart'], $product);
$points = (int)(LoyaltyModule::getNbPointsByPrice($product->getPrice(Product::getTaxCalculationMethod() == PS_TAX_EXC ? false : true, (int)($product->getIdProductAttributeMostExpensive())))); $points = (int)($pointsAfter - $pointsBefore);
} }
else else
{ {
@@ -450,13 +450,19 @@ class Loyalty extends Module
$this->smarty->assign('no_pts_discounted', 1); $this->smarty->assign('no_pts_discounted', 1);
} }
else else
$points = (int)(LoyaltyModule::getNbPointsByPrice($product->getPrice(Product::getTaxCalculationMethod() == PS_TAX_EXC ? false : true, (int)($product->getIdProductAttributeMostExpensive())))); $points = (int)LoyaltyModule::getNbPointsByPrice(
$product->getPrice(
Product::getTaxCalculationMethod() == PS_TAX_EXC ? false : true,
(int)$product->getDefaultIdProductAttribute()
)
);
$pointsAfter = $points; $pointsAfter = $points;
$pointsBefore = 0; $pointsBefore = 0;
} }
$this->smarty->assign(array( $this->smarty->assign(array(
'points' => (int)($points), 'points' => (int)$points,
'total_points' => (int)($pointsAfter), 'total_points' => (int)$pointsAfter,
'point_rate' => Configuration::get('PS_LOYALTY_POINT_RATE'), 'point_rate' => Configuration::get('PS_LOYALTY_POINT_RATE'),
'point_value' => Configuration::get('PS_LOYALTY_POINT_VALUE'), 'point_value' => Configuration::get('PS_LOYALTY_POINT_VALUE'),
'points_in_cart' => (int)$pointsBefore, 'points_in_cart' => (int)$pointsBefore,