prepare("SELECT * FROM packages WHERE id = ?"); $stmt->execute([$_GET['edit_id']]); $edit_package = $stmt->fetch(); } // Handle Delete Request if (isset($_POST['delete_id'])) { try { $stmt = $pdo->prepare("DELETE FROM packages WHERE id = ?"); $stmt->execute([$_POST['delete_id']]); $feedback = ['type' => 'success', 'message' => 'Paket berhasil dihapus.']; } catch (PDOException $e) { $feedback = ['type' => 'danger', 'message' => 'Gagal menghapus paket: ' . $e->getMessage()]; } } // Handle Add/Update Request if (isset($_POST['save_package'])) { $name = $_POST['name']; $price = $_POST['price']; $duration_days = $_POST['duration_days']; $description = $_POST['description']; $id = $_POST['id']; // Basic validation if (empty($name) || !is_numeric($price) || !is_numeric($duration_days)) { $feedback = ['type' => 'danger', 'message' => 'Nama, Harga, dan Durasi harus diisi dengan benar.']; } else { try { if (empty($id)) { // Add new $stmt = $pdo->prepare("INSERT INTO packages (name, price, duration_days, description) VALUES (?, ?, ?, ?)"); $stmt->execute([$name, $price, $duration_days, $description]); $feedback = ['type' => 'success', 'message' => 'Paket baru berhasil ditambahkan.']; } else { // Update existing $stmt = $pdo->prepare("UPDATE packages SET name = ?, price = ?, duration_days = ?, description = ? WHERE id = ?"); $stmt->execute([$name, $price, $duration_days, $description, $id]); $feedback = ['type' => 'success', 'message' => 'Paket berhasil diperbarui.']; // Redirect to clear edit state header("Location: packages.php"); exit; } } catch (PDOException $e) { $feedback = ['type' => 'danger', 'message' => 'Operasi gagal: ' . $e->getMessage()]; } } } // Fetch all packages for display $packages = $pdo->query("SELECT * FROM packages ORDER BY name ASC")->fetchAll(); $page_title = 'Paket Layanan'; require_once 'partials/header.php'; ?>

Kembali ke Dashboard
Batal
Daftar Paket
Nama Harga Durasi Deskripsi Aksi
Belum ada paket yang ditambahkan.
Rp hari