File manager - Edit - /var/www/order.cmtc.ac.th/user/upload_slip_1.php
Back
<?php session_start(); include('../config/db.php'); if($_SERVER['REQUEST_METHOD'] == 'POST'){ // ✅ รับค่าจากฟอร์ม $fullname = mysqli_real_escape_string($conn, $_POST['fullname']); $phone = mysqli_real_escape_string($conn, $_POST['phone']); $address = mysqli_real_escape_string($conn, $_POST['address']); $zipcode = mysqli_real_escape_string($conn, $_POST['zipcode']); $receive_method = mysqli_real_escape_string($conn, $_POST['receive_method']); $total = floatval($_POST['total']); // ✅ อัปโหลดสลิป $slipFile = ""; if(isset($_FILES['slip']['name']) && $_FILES['slip']['name'] != ''){ $ext = pathinfo($_FILES['slip']['name'], PATHINFO_EXTENSION); $safe_name = preg_replace("/[^a-zA-Z0-9_\-\.]/", "", $_FILES['slip']['name']); $slipFile = time() . '_' . $safe_name; move_uploaded_file($_FILES['slip']['tmp_name'], "../uploads/slip/" . $slipFile); } // ✅ ตรวจสอบสินค้า Free Order และเก็บสถานะสินค้าแต่ละรายการ $has_free = false; $product_status_list = []; if(isset($_POST['product_name'])){ for($i = 0; $i < count($_POST['product_name']); $i++){ $pname = mysqli_real_escape_string($conn, $_POST['product_name'][$i]); $check = $conn->query("SELECT id, stock FROM products WHERE name='$pname' LIMIT 1"); if($check && $check->num_rows > 0){ $pinfo = $check->fetch_assoc(); $pid = $pinfo['id']; $stock = $pinfo['stock']; if($stock <= 0){ $has_free = true; $product_status_list[$pid] = "Pre Order"; } else { $product_status_list[$pid] = "ปกติ"; } } } } // ✅ สถานะใบสั่งซื้อ if($has_free){ $status_text = 'รอการตรวจสอบ(Pre Order)'; $order_type = 'Pre Order'; } else { $status_text = 'รอการตรวจสอบ'; $order_type = 'ปกติ'; } $order_status = "รอการตรวจสอบ"; // ✅ บันทึกข้อมูลใบสั่งซื้อ $sql = "INSERT INTO orders (fullname, phone, address, zipcode, receive_method, total, status, order_status, order_type, slip, created_at) VALUES ('$fullname', '$phone', '$address', '$zipcode', '$receive_method', '$total', '$status_text', '$order_status', '$order_type', '$slipFile', NOW())"; $conn->query($sql); $oid = $conn->insert_id; // ✅ บันทึกรายการสินค้า และปรับลดสต็อก if(isset($_POST['product_name'])){ for($i = 0; $i < count($_POST['product_name']); $i++){ $pname = mysqli_real_escape_string($conn, $_POST['product_name'][$i]); $qty = intval($_POST['qty'][$i]); $price = floatval($_POST['price'][$i]); // ดึงรหัสสินค้า $pid = 0; $res = $conn->query("SELECT id, stock FROM products WHERE name='$pname' LIMIT 1"); if($res && $res->num_rows > 0){ $pinfo = $res->fetch_assoc(); $pid = $pinfo['id']; $current_stock = intval($pinfo['stock']); } // สถานะสินค้าแต่ละรายการ $item_status = isset($product_status_list[$pid]) ? $product_status_list[$pid] : "ปกติ"; // ✅ บันทึกในตาราง order_items (เพิ่มฟิลด์ receive_method และ confirm_status) $conn->query("INSERT INTO order_items (order_id, product_id, qty, price, receive_method, item_status, confirm_status) VALUES ($oid, $pid, $qty, $price, '$receive_method', '$item_status', 'รอการยืนยัน')"); // ✅ ถ้าไม่ใช่ Pre Order → ปรับลดสต็อกสินค้า if($item_status != "Pre Order" && $pid > 0){ $new_stock = max(0, $current_stock - $qty); $conn->query("UPDATE products SET stock = $new_stock WHERE id = $pid"); } // ✅ เพิ่ม Log การจอง // --------------------------------------------------- $log_msg = "สั่งจองสินค้า: $pname จำนวน $qty เหรียญ ผ่านวิธีรับสินค้า: $receive_method"; $total_price = $price * $qty; $conn->query(" INSERT INTO booking_logs (order_id, product_id, product_name, qty, total, customer_name, phone, receive_method, log_message, created_at) VALUES ($oid, $pid, '$pname', $qty, $total_price, '$fullname', '$phone', '$receive_method', '$log_msg', NOW()) "); // --------------------------------------------------- } } //-------------------------------------------------------- // ✅ เคลียร์ตะกร้าและ session หลังสั่งซื้อเสร็จ unset($_SESSION['cart']); unset($_SESSION['checkout']); unset($_SESSION['checkout_expire']); echo "<script> alert('ส่งข้อมูลเรียบร้อย!\\nสถานะใบสั่งซื้อ: $status_text'); window.location='check_status.php'; </script>"; } ?>
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.5 |
proxy
|
phpinfo
|
Settings