query("SELECT p.*, b.booking_id as booking_no, b.id as booking_db_id, b.total_price, b.advance_amount, b.balance_amount, b.status as booking_status, cu.name as cname, cu.email as cemail, cu.phone as cphone FROM payments p JOIN bookings b ON p.booking_id=b.id JOIN customers cu ON p.customer_id=cu.id WHERE p.id=$id")->fetch_assoc(); if (!$payment) { echo '
Payment not found
'; require_once 'includes/footer.php'; exit; } if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['verify_action'])) { $action = $_POST['verify_action']; if ($action == 'verify') { $conn->query("UPDATE payments SET status='verified', verified_by={$_SESSION['admin_id']}, verified_at=NOW() WHERE id=$id"); $advance = $payment['advance_amount'] + $payment['amount']; $balance = $payment['total_price'] - $advance; $pstat = $balance <= 0 ? 'full_paid' : 'advance_paid'; $conn->query("UPDATE bookings SET advance_amount=$advance, balance_amount=$balance, payment_status='$pstat', status='confirmed' WHERE id={$payment['booking_db_id']}"); addNotification('Payment Verified', "Payment of {$payment['amount']} verified for booking {$payment['booking_no']}", SITE_URL."admin/booking-details.php?id={$payment['booking_db_id']}", 'customer', $payment['customer_id']); $msg = '
Payment verified! Booking confirmed.
'; } elseif ($action == 'reject') { $conn->query("UPDATE payments SET status='rejected', verified_by={$_SESSION['admin_id']}, verified_at=NOW() WHERE id=$id"); $msg = '
Payment rejected.
'; } } ?>

Verify Payment #

Back
Payment Details
Booking:
Amount:
Type:
Method:
Transaction:
Status:
Notes:

Customer Info

Name:

Email:

Phone:

Actions
This payment has already been .