Fix - add variation price fallback behavior
This commit is contained in:
parent
41cbe6db12
commit
4e1f554c15
@ -138,6 +138,8 @@ class ProductCombination
|
|||||||
*/
|
*/
|
||||||
public function fetchCombinationPriceLevels($fk_price_level = 0, $useCache = true)
|
public function fetchCombinationPriceLevels($fk_price_level = 0, $useCache = true)
|
||||||
{
|
{
|
||||||
|
global $conf;
|
||||||
|
|
||||||
// Check cache
|
// Check cache
|
||||||
if(!empty($this->combination_price_levels) && $useCache){
|
if(!empty($this->combination_price_levels) && $useCache){
|
||||||
if((!empty($fk_price_level) && isset($this->combination_price_levels[$fk_price_level])) || empty($fk_price_level)){
|
if((!empty($fk_price_level) && isset($this->combination_price_levels[$fk_price_level])) || empty($fk_price_level)){
|
||||||
@ -154,10 +156,31 @@ class ProductCombination
|
|||||||
$staticProductCombinationLevel = new ProductCombinationLevel($this->db);
|
$staticProductCombinationLevel = new ProductCombinationLevel($this->db);
|
||||||
$combination_price_levels = $staticProductCombinationLevel->fetchAll($this->id, $fk_price_level);
|
$combination_price_levels = $staticProductCombinationLevel->fetchAll($this->id, $fk_price_level);
|
||||||
|
|
||||||
if (!$combination_price_levels || !is_array($combination_price_levels)) {
|
if (!is_array($combination_price_levels)) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(empty($combination_price_levels)){
|
||||||
|
|
||||||
|
/**
|
||||||
|
* for auto retrocompatibility with last behavior
|
||||||
|
*/
|
||||||
|
$productCombinationLevel = new ProductCombinationLevel($this->db);
|
||||||
|
$productCombinationLevel->fk_price_level = intval($fk_price_level);
|
||||||
|
$productCombinationLevel->fk_product_attribute_combination = $this->id;
|
||||||
|
$productCombinationLevel->variation_price = $this->variation_price;
|
||||||
|
$productCombinationLevel->variation_price_percentage = $this->variation_price_percentage;
|
||||||
|
|
||||||
|
if($fk_price_level>0){
|
||||||
|
$combination_price_levels[$fk_price_level] = $productCombinationLevel;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
for ($i = 1; $i <= $conf->global->PRODUIT_MULTIPRICES_LIMIT; $i++){
|
||||||
|
$combination_price_levels[$i] = $productCombinationLevel;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$this->combination_price_levels = $combination_price_levels;
|
$this->combination_price_levels = $combination_price_levels;
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
@ -1032,17 +1055,19 @@ class ProductCombinationLevel
|
|||||||
|
|
||||||
$combination_price_levels = $this->db->getRows($sql);
|
$combination_price_levels = $this->db->getRows($sql);
|
||||||
|
|
||||||
if (!$combination_price_levels || !is_array($combination_price_levels)) {
|
if (!is_array($combination_price_levels)) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
$result = array();
|
$result = array();
|
||||||
|
|
||||||
// For more simple usage set level as array key
|
if(!empty($combination_price_levels)) {
|
||||||
foreach($combination_price_levels as $k => $row){
|
// For more simple usage set level as array key
|
||||||
$productCombinationLevel = new ProductCombinationLevel($this->db);
|
foreach($combination_price_levels as $k => $row){
|
||||||
$productCombinationLevel->fetchFormObj($row);
|
$productCombinationLevel = new ProductCombinationLevel($this->db);
|
||||||
$result[$row->fk_price_level] = $productCombinationLevel;
|
$productCombinationLevel->fetchFormObj($row);
|
||||||
|
$result[$row->fk_price_level] = $productCombinationLevel;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return $result;
|
return $result;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user