私はワインの出荷モジュールに取り組んでおり、誰かが私に手を差し伸べることができるかどうか疑問に思っていました-基本的に:
ワインは 8 本、12 本、または 15 本のケースで出荷でき、それぞれに独自の価格が設定されています。モジュールは、注文されたボトルの総数を取得し、どのケースの組み合わせが最低価格になるかを判断する必要があります。たとえば、31 本の注文の場合、最低価格は 15 本の 1 ケースと 8 本の 2 ケースになります (15 本の 2 ケースと 8 本の 1 本、または 12 本の 2 本と 8 本の 1 本ではなく)。現在、私は次のものを持っています。これはほとんど機能しますが、いくつかの可能な組み合わせがありません
foreach ($rates as $case_size => $case_price)
{
$price = floor($total_bottles / $case_size) * $case_price;
$rem = $total_bottles % $case_size;
if($rem > 12)
{
//needs to use another case of 15
$price = $price + $rates[15];
}
elseif($rem > 8)
{
//needs an extra case of 12
$price = $price + $rates[12];
}
elseif($rem > 0)
{
//needs an extra case of 8
$price = $price + $rates[8];
}
$quotes[] = $price;
}
return min($quotes);