diff --git a/log_return.php b/log_return.php new file mode 100644 index 0000000..4139b06 --- /dev/null +++ b/log_return.php @@ -0,0 +1,65 @@ +setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); + + // รับค่าจาก ESP32 + $barcode = $_POST['barcode'] ?? ''; + $title = $_POST['title'] ?? ''; + $patron_code = $_POST['patron_code'] ?? ''; + $patron_name = $_POST['patron_name'] ?? ''; + + // ถ้าว่างให้เป็น NULL + $checkout_date = !empty($_POST['checkout_date']) ? $_POST['checkout_date'] : null; + $due_date = !empty($_POST['due_date']) ? $_POST['due_date'] : null; + $return_datetime = !empty($_POST['return_datetime']) ? $_POST['return_datetime'] : date('Y-m-d H:i:s'); + + $late_days = $_POST['late_days'] ?? 0; + $fine_amount = $_POST['fine_amount'] ?? 0; + $device_id = $_POST['device_id'] ?? ''; + $status = $_POST['status'] ?? ''; + + // SQL + $sql = "INSERT INTO book_return_logs + (barcode, title, patron_code, patron_name, checkout_date, due_date, return_datetime, late_days, fine_amount, device_id, status) + VALUES + (:barcode, :title, :patron_code, :patron_name, :checkout_date, :due_date, :return_datetime, :late_days, :fine_amount, :device_id, :status)"; + + $stmt = $pdo->prepare($sql); + $stmt->bindValue(':barcode', $barcode); + $stmt->bindValue(':title', $title); + $stmt->bindValue(':patron_code', $patron_code); + $stmt->bindValue(':patron_name', $patron_name); + $stmt->bindValue(':checkout_date', $checkout_date); + $stmt->bindValue(':due_date', $due_date); + $stmt->bindValue(':return_datetime', $return_datetime); + $stmt->bindValue(':late_days', $late_days, PDO::PARAM_INT); + $stmt->bindValue(':fine_amount', $fine_amount, PDO::PARAM_STR); + $stmt->bindValue(':device_id', $device_id); + $stmt->bindValue(':status', $status); + + $stmt->execute(); + + // ✅ ตอบกลับ ESP32 ให้แน่นอน + header("Content-Type: text/plain"); + echo "✅ Log saved successfully!"; + flush(); + +} catch (PDOException $e) { + header("Content-Type: text/plain"); + echo "❌ Error: " . $e->getMessage(); + flush(); +} +?>