﻿﻿??????????????
﻿﻿??????????????
<?php
include('session.php');
include 'connection.php';

// Delete one fee row and adjust accounts aggregates accordingly
if (!isset($_POST['id']) || !is_numeric($_POST['id'])) {
    echo "Invalid request."; exit;
}

$id = (int)$_POST['id'];

// Load fee row first
$fee_sql = "SELECT id, admission_no, received_amount, total_fee FROM fees WHERE id = $id";
$fee_res = $conn->query($fee_sql);
if (!$fee_res || $fee_res->num_rows === 0) { echo "Record not found."; exit; }
$fee = $fee_res->fetch_assoc();
$admission_no = $fee['admission_no'];
$received_amt = (float)$fee['received_amount'];
$total_fee    = (float)$fee['total_fee'];

// Get current accounts snapshot
$acc_sql = "SELECT id, total_fees, due_amount, paid_amount, received_amount FROM accounts WHERE admission_no = '".$conn->real_escape_string($admission_no)."'";
$acc_res = $conn->query($acc_sql);

if ($acc_res && $acc_res->num_rows > 0) {
    $acc = $acc_res->fetch_assoc();
    $acc_total_fees   = (float)$acc['total_fees'];
    if ($acc_total_fees <= 0) { $acc_total_fees = $total_fee; }

    $new_received = max(0, (float)$acc['received_amount'] - $received_amt);
    $new_due      = $acc_total_fees - $new_received; if ($new_due < 0) $new_due = 0;
    $new_paid     = $acc_total_fees - $new_due;

    // Delete fee row
    $del_sql = "DELETE FROM fees WHERE id = $id";
    if ($conn->query($del_sql) === TRUE) {
        // Update accounts row
        $upd_sql = "UPDATE accounts SET due_amount = '".$conn->real_escape_string($new_due)."',
                                       paid_amount = '".$conn->real_escape_string($new_paid)."',
                                       received_amount = '".$conn->real_escape_string($new_received)."'
                   WHERE admission_no = '".$conn->real_escape_string($admission_no)."'";
        $conn->query($upd_sql);
        echo "Fee record deleted and accounts updated.";
    } else {
        echo "Error deleting record: ".$conn->error;
    }
} else {
    // No accounts row; just delete the fee
    $del_sql = "DELETE FROM fees WHERE id = $id";
    if ($conn->query($del_sql) === TRUE) {
        echo "Fee record deleted.";
    } else {
        echo "Error deleting record: ".$conn->error;
    }
}
?>
