135 lines
6.4 KiB
PHP
135 lines
6.4 KiB
PHP
<?php
|
|
require_once '../includes/header.php';
|
|
require_once '../db/config.php';
|
|
|
|
if (!isset($_GET['id'])) {
|
|
header('Location: manage-packages.php');
|
|
exit;
|
|
}
|
|
|
|
$id = $_GET['id'];
|
|
|
|
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
|
$id = $_POST['id'];
|
|
$name = $_POST['name'];
|
|
$coach_id = $_POST['coach_id'];
|
|
$description = $_POST['description'];
|
|
$price = $_POST['price'];
|
|
$payment_type = $_POST['payment_type'];
|
|
$deposit_amount = $payment_type === 'payment_plan' ? $_POST['deposit_amount'] : null;
|
|
$installments = $payment_type === 'payment_plan' ? $_POST['installments'] : null;
|
|
$installment_interval = $payment_type === 'payment_plan' ? $_POST['installment_interval'] : null;
|
|
$pay_in_full_discount_percentage = $_POST['pay_in_full_discount_percentage'];
|
|
|
|
$stmt = db()->prepare(
|
|
'UPDATE service_packages SET '
|
|
. 'name = ?, coach_id = ?, description = ?, price = ?, payment_type = ?, '
|
|
. 'deposit_amount = ?, installments = ?, installment_interval = ?, pay_in_full_discount_percentage = ? '
|
|
. 'WHERE id = ?'
|
|
);
|
|
$stmt->execute([
|
|
$name, $coach_id, $description, $price, $payment_type,
|
|
$deposit_amount, $installments, $installment_interval, $pay_in_full_discount_percentage,
|
|
$id
|
|
]);
|
|
|
|
header('Location: manage-packages.php');
|
|
exit;
|
|
}
|
|
|
|
$stmt = db()->prepare('SELECT * FROM service_packages WHERE id = ?');
|
|
$stmt->execute([$id]);
|
|
$package = $stmt->fetch();
|
|
|
|
$coaches = db()->query('SELECT * FROM coaches')->fetchAll();
|
|
|
|
?>
|
|
|
|
<div class="container">
|
|
<h1 class="text-center my-4">Edit Package</h1>
|
|
|
|
<div class="card">
|
|
<div class="card-header">Edit Package: <?= htmlspecialchars($package['name']) ?></div>
|
|
<div class="card-body">
|
|
<form method="POST">
|
|
<input type="hidden" name="id" value="<?= $package['id'] ?>">
|
|
|
|
<div class="form-group">
|
|
<label for="name">Package Name</label>
|
|
<input type="text" class="form-control" id="name" name="name" value="<?= htmlspecialchars($package['name']) ?>" required>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label for="coach_id">Coach</label>
|
|
<select class="form-control" id="coach_id" name="coach_id" required>
|
|
<?php foreach ($coaches as $coach): ?>
|
|
<option value="<?= $coach['id'] ?>" <?= $package['coach_id'] == $coach['id'] ? 'selected' : '' ?>><?= htmlspecialchars($coach['name']) ?></option>
|
|
<?php endforeach; ?>
|
|
</select>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label for="description">Description</label>
|
|
<textarea class="form-control" id="description" name="description"><?= htmlspecialchars($package['description']) ?></textarea>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label for="price">Price</label>
|
|
<input type="number" step="0.01" class="form-control" id="price" name="price" value="<?= htmlspecialchars($package['price']) ?>" required>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label for="payment_type">Payment Type</label>
|
|
<select class="form-control" id="payment_type" name="payment_type">
|
|
<option value="one_time" <?= $package['payment_type'] == 'one_time' ? 'selected' : '' ?>>One Time</option>
|
|
<option value="subscription" <?= $package['payment_type'] == 'subscription' ? 'selected' : '' ?>>Subscription</option>
|
|
<option value="payment_plan" <?= $package['payment_type'] == 'payment_plan' ? 'selected' : '' ?>>Payment Plan</option>
|
|
</select>
|
|
</div>
|
|
|
|
<div id="payment_plan_fields" style="display: none;">
|
|
<div class="form-group">
|
|
<label for="deposit_amount">Deposit Amount (Optional)</label>
|
|
<input type="number" step="0.01" class="form-control" id="deposit_amount" name="deposit_amount" value="<?= htmlspecialchars($package['deposit_amount']) ?>">
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="installments">Number of Installments</label>
|
|
<input type="number" class="form-control" id="installments" name="installments" value="<?= htmlspecialchars($package['installments']) ?>">
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="installment_interval">Installment Interval</label>
|
|
<select class="form-control" id="installment_interval" name="installment_interval">
|
|
<option value="day" <?= $package['installment_interval'] == 'day' ? 'selected' : '' ?>>Day</option>
|
|
<option value="week" <?= $package['installment_interval'] == 'week' ? 'selected' : '' ?>>Week</option>
|
|
<option value="month" <?= $package['installment_interval'] == 'month' ? 'selected' : '' ?>>Month</option>
|
|
<option value="year" <?= $package['installment_interval'] == 'year' ? 'selected' : '' ?>>Year</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label for="pay_in_full_discount_percentage">Pay in Full Discount (%) (Optional)</label>
|
|
<input type="number" step="0.01" class="form-control" id="pay_in_full_discount_percentage" name="pay_in_full_discount_percentage" value="<?= htmlspecialchars($package['pay_in_full_discount_percentage']) ?>">
|
|
</div>
|
|
|
|
<button type="submit" name="update_package" class="btn btn-primary mt-3">Update Package</button>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<script>
|
|
document.getElementById('payment_type').addEventListener('change', function() {
|
|
const payment_plan_fields = document.getElementById('payment_plan_fields');
|
|
if (this.value === 'payment_plan') {
|
|
payment_plan_fields.style.display = 'block';
|
|
} else {
|
|
payment_plan_fields.style.display = 'none';
|
|
}
|
|
});
|
|
// Trigger change on page load
|
|
document.getElementById('payment_type').dispatchEvent(new Event('change'));
|
|
</script>
|
|
|
|
<?php require_once '../includes/footer.php'; ?>
|