[-] MO loyalty : categories are now taken into account when creating discount vouchers
#PNM-1492 #PNM-1191 #PNM-1223
This commit is contained in:
@@ -106,10 +106,39 @@ class LoyaltyDefaultModuleFrontController extends ModuleFrontController
|
|||||||
$cart_rule->name[(int)$language['id_lang']] = $text ? strval($text) : strval($default_text);
|
$cart_rule->name[(int)$language['id_lang']] = $text ? strval($text) : strval($default_text);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_array($categories) && count($categories))
|
|
||||||
$cart_rule->add(true, false, $categories);
|
$contains_categories = is_array($categories) && count($categories);
|
||||||
else
|
if ($contains_categories)
|
||||||
$cart_rule->add();
|
$cart_rule->product_restriction = 1;
|
||||||
|
$cart_rule->add();
|
||||||
|
|
||||||
|
//Restrict cartRules with categories
|
||||||
|
if ($contains_categories)
|
||||||
|
{
|
||||||
|
|
||||||
|
//Creating rule group
|
||||||
|
$id_cart_rule = (int)$cart_rule->id;
|
||||||
|
$sql = "INSERT INTO "._DB_PREFIX_."cart_rule_product_rule_group (id_cart_rule, quantity) VALUES ('$id_cart_rule', 1)";
|
||||||
|
Db::getInstance()->execute($sql);
|
||||||
|
$id_group = (int)Db::getInstance()->Insert_ID();
|
||||||
|
|
||||||
|
//Creating product rule
|
||||||
|
$sql = "INSERT INTO "._DB_PREFIX_."cart_rule_product_rule (id_product_rule_group, type) VALUES ('$id_group', 'categories')";
|
||||||
|
Db::getInstance()->execute($sql);
|
||||||
|
$id_product_rule = (int)Db::getInstance()->Insert_ID();
|
||||||
|
|
||||||
|
//Creating restrictions
|
||||||
|
$values = array();
|
||||||
|
foreach ($categories as $category) {
|
||||||
|
$category = (int)$category;
|
||||||
|
$values[] = "('$id_product_rule', '$category')";
|
||||||
|
}
|
||||||
|
$values = implode(',', $values);
|
||||||
|
$sql = "INSERT INTO "._DB_PREFIX_."cart_rule_product_rule_value (id_product_rule, id_item) VALUES $values";
|
||||||
|
Db::getInstance()->execute($sql);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Register order(s) which contributed to create this voucher
|
// Register order(s) which contributed to create this voucher
|
||||||
if (!LoyaltyModule::registerDiscount($cart_rule))
|
if (!LoyaltyModule::registerDiscount($cart_rule))
|
||||||
|
|||||||
Reference in New Issue
Block a user