การคิดราคาสินค้าแบบแพ็ก
หลักการเบื้องต้นก็คือ
1. คิดราคาแบบเป็นแพ็ก
$pack_buy = floor($customer_buy / $product_xx_pack_qty); //ปัดเศษทิ้ง
$total_pack_buy_price = $pack_buy * $product_xx_pack_price;//คิดราคาแบบ pack
ใน PHP เราจะใช้ฟังก์ชั่น floor() เพื่อปัดเศษทิ้ง เอาเฉพาะที่ครบจำนวนแพ็กเพื่อไปคูณกับราคาต่อแพ็ก แต่ถ้าไม่ครบก็จะนำไปคำนวณราคาต่อแพ็กแล้วได้ 0
2. หาราคาต่อชิ้น ที่เหลือจากการหารเพื่อหาแบบแพ็ก
$piece_buy = $customer_buy % $product_xx_pack_qty;//หารแบบเอาเศษ
$piece_price = $piece_buy * $product_xx_price;// ราคาของส่วนที่เหลือจากแพ็ก
แน่นอนว่าถ้าซื้อไม่ถึงแพ็ก ก็จะเป็นจำนวนชิ้นทั้งหมด แต่ถ้าซื้อครบแพ็กพอดี จำนวนชิ้น ก็จะเป็น 0 เพราะคิดราคาแบบแพ็กเท่านั้น แต่ถ้าซื้อเกินแพ็กเศษเท่าไหร่ก็เอาไปคูณกับราคาต่อชิ้น
3. เอาราคารวมแบบเพ็ก มาบวกกับราคาต่อชิ้นที่เศษไม่ครบแพ็ก
$total_price = $total_pack_buy_price + $piece_price;//ราคาแบบแพ็ก + ราคาชิ้นที่เหลือ
กรณีซื้อไม่ถึงแพ็ก
กรณีซื้อครบแพ็กพอดี
กรณีซื้อเกินแพ็กมีเศษหลายชิ้น
ซอร์สโค้ด PHP ตัวอย่างสำหรับเอาไปทดสอบมีดังนี้
[PHP Code]
<?php
$product_xx_name = 'นมข้นจืด';
$product_xx_price = 23;
$product_xx_pack_qty = 6;
$product_xx_pack_price = 130;
$customer_buy = isset($_POST['buy_qty']) ? $_POST['buy_qty'] : 0;
$pack_buy = floor($customer_buy / $product_xx_pack_qty); //ปัดเศษทิ้ง
$total_pack_buy_price = $pack_buy * $product_xx_pack_price;//คิดราคาแบบ pack
$piece_buy = $customer_buy % $product_xx_pack_qty;//หารแบบเอาเศษ
$piece_price = $piece_buy * $product_xx_price;// ราคาของส่วนที่เหลือจากแพ็ก
$total_price = $total_pack_buy_price + $piece_price;//ราคาแบบแพ็ก + ราคาชิ้นที่เหลือ
$remark_xx = '';
if($pack_buy > 0){
$remark_xx = 'แพ็กละ ' . $product_xx_pack_qty . ' ชิ้น ราคาต่อแพ็ก ' . $product_xx_pack_price . ' บาท';
}
?>
<!DOCTYPE html>
<html>
<head>
<link href="//maxcdn.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">
</head>
<body>
<form method="POST">
<input type="text" id="product_name" value="<?php echo $product_xx_name;?>" />
<input type="number" id="product_price" value="<?php echo $product_xx_price;?>" />
<input type="text" name="buy_qty" placeholder="ระบุจำนวน" value="<?php echo $customer_buy;?>" />
<button type="submit">SUBMIT</button>
</form>
<table class="table table-bordered">
<thead>
<th>ชื่อสินค้า</th>
<th>ราคาต่อแพ็ก</th>
<th>จำนวนแพ็ก</th>
<th>ราคาต่อชิ้น</th>
<th>จำนวนชิ้น</th>
<th>ราคารวม</th>
<th>หมายเหตุ</th>
</thead>
<tbody>
<td><?php echo $product_xx_name;?></td>
<td class="text-right"><?php echo $product_xx_pack_price;?></td>
<td class="text-right"><?php echo $pack_buy;?></td>
<td class="text-right"><?php echo $product_xx_price;?></td>
<td class="text-right"><?php echo $piece_buy;?></td>
<td class="text-right"><b><?php echo $total_price;?></b></td>
<td class="text-right"><i><?php echo $remark_xx;?></i></td>
</tbody>
</table>
</body>
</html>
ทดสอบโค้ด Online ได้ที่ http://phpfiddle.org
วางในแท็ป Code-Space แล้วกด Run
ความคิดเห็น
แสดงความคิดเห็น