diff --git a/htdocs/variants/class/ProductCombination.class.php b/htdocs/variants/class/ProductCombination.class.php index 50c0dedaced..56636ce4379 100644 --- a/htdocs/variants/class/ProductCombination.class.php +++ b/htdocs/variants/class/ProductCombination.class.php @@ -165,18 +165,12 @@ class ProductCombination /** * 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; + $combination_price_levels[$fk_price_level] = ProductCombinationLevel::createFromParent($this->db, $this, $fk_price_level); } else { for ($i = 1; $i <= $conf->global->PRODUIT_MULTIPRICES_LIMIT; $i++){ - $combination_price_levels[$i] = $productCombinationLevel; + $combination_price_levels[$i] = ProductCombinationLevel::createFromParent($this->db, $this, $i); } } } @@ -1211,4 +1205,25 @@ class ProductCombinationLevel return $res ? 1 : -1; } + + + /** + * Create new Product Combination Price level from Parent + * + * @param DoliDB $db + * @param ProductCombination $productCombination + * @param int $fkPriceLevel + * + * @return ProductCombinationLevel + */ + public static function createFromParent(DoliDB $db, ProductCombination $productCombination, $fkPriceLevel) + { + $productCombinationLevel = new self($db); + $productCombinationLevel->fk_price_level = $fkPriceLevel; + $productCombinationLevel->fk_product_attribute_combination = $productCombination->id; + $productCombinationLevel->variation_price = $productCombination->variation_price; + $productCombinationLevel->variation_price_percentage = $productCombination->variation_price_percentage; + + return $productCombinationLevel; + } }