File manager - Edit - /var/www/order.cmtc.ac.th/admin/orders_product_summary_print.php
Back
<?php session_start(); if(!isset($_SESSION['admin'])) { header('Location: index.php'); exit; } include('../config/db.php'); date_default_timezone_set('Asia/Bangkok'); $date_from = $_GET['date_from'] ?? date('Y-m-d', strtotime('-6 days')); $date_to = $_GET['date_to'] ?? date('Y-m-d'); // ดึงข้อมูลตามช่วงวันที่ $sql = " SELECT o.order_type, p.name AS product_name, SUM(i.qty) AS total_qty, SUM(i.qty * i.price) AS total_amount, SUM(CASE WHEN i.receive_method='รับเหรียญด้วยตนเอง' THEN i.qty ELSE 0 END) AS qty_self, SUM(CASE WHEN i.receive_method='จัดส่งทางไปรษณีย์' THEN i.qty ELSE 0 END) AS qty_post FROM order_items i JOIN orders o ON i.order_id = o.id JOIN products p ON i.product_id = p.id WHERE DATE(o.created_at) BETWEEN ? AND ? AND i.confirm_status = 'ยืนยัน' AND (o.order_type = 'ปกติ' OR o.order_type = 'Pre Order') GROUP BY p.id, o.order_type ORDER BY o.order_type ASC, p.name ASC "; $stmt = $conn->prepare($sql); $stmt->bind_param('ss', $date_from, $date_to); $stmt->execute(); $res = $stmt->get_result(); $data_normal = []; $data_free = []; while($r = $res->fetch_assoc()) { if($r['order_type'] == 'Pre Order') $data_free[] = $r; else $data_normal[] = $r; } ?> <!DOCTYPE html> <html lang="th"> <head> <meta charset="UTF-8"> <title>รายงานสรุปยอดรวมตามสินค้า (พิมพ์)</title> <link href="https://fonts.googleapis.com/css2?family=Kanit:wght@300;400;600&display=swap" rel="stylesheet"> <style> body { font-family:'Kanit',sans-serif; margin:40px; color:#000; background:#fff; } h2,h3 { text-align:center; margin:0; } hr { border:1px solid #000; margin:10px 0 20px; } table { width:100%; border-collapse:collapse; margin-bottom:15px; } th,td { border:1px solid #999; padding:6px; text-align:center; } th { background:#eee; } .text-right { text-align:right; } .text-left { text-align:left; } .badge-normal { color:#28a745; font-weight:bold; } .badge-free { color:#c88400; font-weight:bold; } .summary-box { border:1px solid #999; padding:10px 15px; border-radius:6px; background:#f9f9f9; margin-top:15px; } .logo { display:block; width:90px; margin:0 auto 10px; } .watermark { position: fixed; bottom: 30px; left: 50%; transform: translateX(-50%); opacity: 0.1; font-size: 20px; color: #000; white-space: nowrap; } @media print { .no-print { display:none; } } </style> </head> <body> <!--<img src="../logo_cmtc.png" class="logo" alt="โลโก้วิทยาลัยเทคนิคเชียงใหม่">--> <h2>รายงานสรุปยอดรวมตามเหรียญแต่ละรุ่น</h2> <h3>ช่วงวันที่ <?=htmlspecialchars($date_from)?> ถึง <?=htmlspecialchars($date_to)?></h3> <hr> <!-- 🔹 ปกติ --> <h4>🟩 คำสั่งซื้อประเภท <span class="badge-normal">ปกติ</span></h4> <table> <thead> <tr> <th>ลำดับ</th> <th>ชื่อเหรียญ</th> <th>จำนวนทั้งหมด</th> <th>รับด้วยตนเอง</th> <th>จัดส่งทางไปรษณีย์</th> <th>ยอดรวม (บาท)</th> </tr> </thead> <tbody> <?php $i=1; $sum_qty=0; $sum_amt=0; $sum_self=0; $sum_post=0; if(count($data_normal)>0): foreach($data_normal as $r): $sum_qty += $r['total_qty']; $sum_amt += $r['total_amount']; $sum_self += $r['qty_self']; $sum_post += $r['qty_post']; ?> <tr> <td><?=$i++?></td> <td class="text-left"><?=htmlspecialchars($r['product_name'])?></td> <td><?=number_format($r['total_qty'])?></td> <td><?=number_format($r['qty_self'])?></td> <td><?=number_format($r['qty_post'])?></td> <td class="text-right"><?=number_format($r['total_amount'],2)?></td> </tr> <?php endforeach; else: ?> <tr><td colspan="6">ไม่มีข้อมูลคำสั่งซื้อปกติ</td></tr> <?php endif; ?> </tbody> <tfoot> <tr> <th colspan="2" class="text-right">รวมทั้งหมด (ปกติ)</th> <th><?=number_format($sum_qty)?></th> <th><?=number_format($sum_self)?></th> <th><?=number_format($sum_post)?></th> <th class="text-right"><?=number_format($sum_amt,2)?></th> </tr> </tfoot> </table> <!-- 🔸 Free Order --> <h4>🟨 คำสั่งจองประเภท <span class="badge-free">Pre Order</span></h4> <table> <thead> <tr> <th>ลำดับ</th> <th>ชื่อเหรียญ</th> <th>จำนวนทั้งหมด</th> <th>รับด้วยตนเอง</th> <th>จัดส่งทางไปรษณีย์</th> <th>ยอดรวม (บาท)</th> </tr> </thead> <tbody> <?php $j=1; $sum_fq=0; $sum_famt=0; $sum_fself=0; $sum_fpost=0; if(count($data_free)>0): foreach($data_free as $r): $sum_fq += $r['total_qty']; $sum_famt += $r['total_amount']; $sum_fself += $r['qty_self']; $sum_fpost += $r['qty_post']; ?> <tr> <td><?=$j++?></td> <td class="text-left"><?=htmlspecialchars($r['product_name'])?></td> <td><?=number_format($r['total_qty'])?></td> <td><?=number_format($r['qty_self'])?></td> <td><?=number_format($r['qty_post'])?></td> <td class="text-right"><?=number_format($r['total_amount'],2)?></td> </tr> <?php endforeach; else: ?> <tr><td colspan="6">ไม่มีข้อมูลคำสั่งซื้อ Pre Order</td></tr> <?php endif; ?> </tbody> <tfoot> <tr> <th colspan="2" class="text-right">รวมทั้งหมด (Pre Order)</th> <th><?=number_format($sum_fq)?></th> <th><?=number_format($sum_fself)?></th> <th><?=number_format($sum_fpost)?></th> <th class="text-right"><?=number_format($sum_famt,2)?></th> </tr> </tfoot> </table> <!-- 🔸 รวมทั้งหมด --> <div class="summary-box"> <b>📊 รวมยอดทั้งหมด (ปกติ + Pre Order)</b><br> • ยอดรวมจำนวนเหรียญทั้งหมด: <b><?=number_format($sum_qty + $sum_fq)?></b> ชิ้น<br> • รับด้วยตนเอง: <b><?=number_format($sum_self + $sum_fself)?></b> ชิ้น<br> • จัดส่งทางไปรษณีย์: <b><?=number_format($sum_post + $sum_fpost)?></b> ชิ้น<br> • ยอดรวมทั้งหมด: <b><?=number_format($sum_amt + $sum_famt, 2)?></b> บาท </div> <p style="margin-top:50px; text-align:right;">ลงชื่อ .................................................... ผู้พิมพ์รายงาน</p> <div class="watermark">วิทยาลัยเทคนิคเชียงใหม่ การศึกษาเพื่ออาชีพและพัฒนาสังคม</div> <script>window.print();</script> </body> </html>
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.51 |
proxy
|
phpinfo
|
Settings