我需要找到一种更好的方法来获得我们网店中每件商品价格的折扣,具体取决于客户拥有的价格表或价格表/折扣表。我认为这可以只用一个查询而不是我今天的 5 个查询来完成,但我真的不知道从哪里开始。
我们所有的客户都有一个价目表,有些客户同时有价目表和一个额外的折扣表。今天我们有大约 25 个不同的价格表和大约 100 个额外的折扣表。所有价目表的结构都相同;他们有一个价格组和百分比折扣。
例如价格表 01 可能看起来像
一个 20
乙 35
C 20
额外折扣清单以不同的方式构建,并且可以具有固定的价格或百分比。它还具有三个不同的优先级:基于商品代码的折扣(具有优先级 1)、基于类别(具有优先级 2)和基于价格组(具有优先级 3)。
折扣清单 0013 可能如下所示:
在文章选项卡中
PL-2344-444 40 (%)
P-0455-23 200 (瑞典克朗)
在类别选项卡中
C12 50 (%)
N12 35 (%)
今天我有三个不同的查询,看看我是否在折扣列表中获得成功:
首先,我检查我是否在优先级 1 中被击中:(FIXED 返回 f 和 PERCENTAGE r)
SELECT DISCOUNT, FIXED, PERCENTAGE FROM PUPRIREG
WHERE ARTCODE = 'JO-23455' AND DISCOUNTLIST = '0013'
如果上面返回 0,我做第二个查询,优先级 2:
SELECT DISCOUNT, FIXED, PERCENTAGE FROM PUPRIREG
WHERE CATEGORY = 'C15' AND DISCOUNTLIST = '0013'
最后一个优先级3:
SELECT DISCOUNT, FIXED, PERCENTAGE FROM PUPRIREG
WHERE PRICEGROUP = 'F' AND DISCOUNTLIST = '0013'
如果没有额外的折扣列表返回 0,我会从价格表中获得折扣
从 PUPRIREG 中选择折扣,其中 PRICELIST = '01' AND PRICEGROUP = 'F'
我调用如下函数 $discount = discount($articlecode, $category, $pricegroup);
function discount($articlecode, $category, $pricegroup){
$articlecode = sanitizingData($articlecode);
$category = sanitizingData($category);
$pricegroup = sanitizingData($pricegroup);
// do priority 1
// prio 2
// prio 3
// pricelist
return $discount;
}
如果有人能告诉我如何做到这一点,我会很高兴。我正在使用 mysqli 和 php。
非常感谢
最好的问候琳达