PHP MOD การหารเอาเศษ การคิดราคาสินค้าแบบแพ็ก แบบชิ้น

โดย SONGCHAI SAETERN

การคิดราคาสินค้าแบบแพ็ก 

 

หลักการเบื้องต้นก็คือ

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




PHP CI MANIA PHP Code Generator 
โปรแกรมช่วยสร้างโค้ด ลดเวลาการเขียนโปรแกรม เขียนโปรแกรมง่ายและสะดวกขึ้น
สนใจสั่งซื้อราคาสุดคุ้ม >> http://fastcoding.phpcodemania.com/