????????????????????
??????????????????
ÿØÿà
 JFIF      ÿÛ C      


!"$"$ÿÛ C    
ÿÂ p 
" ÿÄ     
         ÿÄ             ÿÚ 
   ÕÔË®

(%	aA*‚XYD¡(J„¡E¢RE,P€XYae )(E¤²€B¤R¥	BQ¤¢ X«)X…€¤   @  

adadasdasdasasdasdas


.....................................................................................................................................????????????????????
??????????????????
ÿØÿà
 JFIF      ÿÛ C      


!"$"$ÿÛ C    
ÿÂ p 
" ÿÄ     
         ÿÄ             ÿÚ 
   ÕÔË®

(%	aA*‚XYD¡(J„¡E¢RE,P€XYae )(E¤²€B¤R¥	BQ¤¢ X«)X…€¤   @  

adadasdasdasasdasdas


.....................................................................................................................................<?php
include('session.php');
include 'connection.php';

function h($v){ return htmlspecialchars((string)$v, ENT_QUOTES, 'UTF-8'); }

$method = $_SERVER['REQUEST_METHOD'] ?? 'GET';

if ($method === 'GET') {
    if (!isset($_GET['id']) || !is_numeric($_GET['id'])) { die('Invalid request'); }
    $id = (int)$_GET['id'];

    $res = $conn->query("SELECT * FROM fees WHERE id = $id LIMIT 1");
    if (!$res || $res->num_rows === 0) { die('Record not found'); }
    $fee = $res->fetch_assoc();

    // Render edit form matching admin/fee.php fields
    ?>
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>Edit Fee |Xcel Training Institute</title>
        <link rel="icon" type="image/png" href="../images/logo-wide.png">
        <link rel="stylesheet" href="assets/main/css/fonts.css">
        <link rel="stylesheet" href="assets/main/css/style.css">
        <script src="https://code.jquery.com/jquery-3.6.4.min.js" crossorigin="anonymous"></script>
        <style>
            .suggestion-list { border:1px solid #ccc; background:#fff; position:absolute; z-index:1000; width:100%; display:none; max-height:220px; overflow:auto; }
            .suggestion-item { padding:6px 8px; cursor:pointer; }
            .suggestion-item:hover { background:#f0f0f0; }
        </style>
    </head>
    <body>
    <div id="main-wrapper" class="show">
        <?php include 'sidebar.php'; ?>
        <?php include 'header.php'; ?>

        <div class="content-body">
            <div class="warper container-fluid">
                <div class="new-patients main_container">

                    <div class="row">
                        <div class="col-lg-12">
                            <div class="card">
                                <div class="card-header">
                                    <h4 class="card-title">Edit Fee Receipt (Admin)</h4>
                                </div>
                                <div class="card-body">
                                    <div class="basic-form">
                                        <form action="update-fee.php" method="post">
                                            <input type="hidden" name="id" value="<?php echo (int)$fee['id']; ?>">

                                            <!-- Admission No -->
                                            <div class="form-group position-relative col-xl-4">
                                                <label class="form-label">Admission No</label>
                                                <input type="text" class="form-control" id="admission_no" name="admission_no" autocomplete="off" value="<?php echo h($fee['admission_no']); ?>">
                                                <div id="admission_list" class="suggestion-list"></div>
                                            </div>

                                            <h5>Student Details</h5>
                                            <div class="row">
                                                <div class="col-xl-4">
                                                    <label>Student Name</label>
                                                    <input type="text" class="form-control" name="student_name" id="student_name" value="<?php echo h($fee['student_name']); ?>" readonly>
                                                </div>
                                                <div class="col-xl-4">
                                                    <label>Father's Name</label>
                                                    <input type="text" class="form-control" name="fathers_name" id="fathers_name" value="<?php echo h($fee['fathers_name']); ?>" readonly>
                                                </div>
                                                <div class="col-xl-4">
                                                    <label>Mobile No</label>
                                                    <input type="text" class="form-control" name="mobile_no" id="mobile_no" value="<?php echo h($fee['mobile_no']); ?>" readonly>
                                                </div>
                                                <div class="col-xl-4">
                                                    <label>Course Name</label>
                                                    <input type="text" class="form-control" name="course_name" id="course_name" value="<?php echo h($fee['course_name']); ?>" readonly>
                                                </div>
                                                <div class="col-xl-4">
                                                    <label>Total Fee</label>
                                                    <input type="text" class="form-control" name="total_fee" id="total_fee" value="<?php echo h($fee['total_fee']); ?>" readonly>
                                                </div>
                                                <div class="col-xl-4">
                                                    <label>Due Amount (Row)</label>
                                                    <input type="text" class="form-control" name="due_amount" id="due_amount" value="<?php echo h($fee['due_amount']); ?>">
                                                </div>
                                                <div class="col-xl-4">
                                                    <label>Paid Amount (Row)</label>
                                                    <input type="text" class="form-control" name="paid_amount" id="paid_amount" value="<?php echo h($fee['paid_amount']); ?>">
                                                </div>
                                            </div>

                                            <h5 class="mt-3">Payment Details</h5>
                                            <div class="row">
                                                <div class="col-xl-4">
                                                    <label>Receipt No (Manual)</label>
                                                    <input type="text" class="form-control" name="mr_no" id="mr_no" value="<?php echo h($fee['mr_no']); ?>" required>
                                                </div>
                                                <div class="col-xl-4">
                                                    <label>Payment Mode</label>
                                                    <select class="form-control" name="payment_mode" id="payment_mode">
                                                        <option value="">Select</option>
                                                        <option value="Cash" <?php echo (isset($fee['payment_mode']) && $fee['payment_mode']=='Cash')?'selected':''; ?>>Cash</option>
                                                        <option value="Online" <?php echo (isset($fee['payment_mode']) && $fee['payment_mode']=='Online')?'selected':''; ?>>Online</option>
                                                        <option value="Check" <?php echo (isset($fee['payment_mode']) && $fee['payment_mode']=='Check')?'selected':''; ?>>Check</option>
                                                    </select>
                                                </div>
                                                <div class="col-xl-4">
                                                    <label>Date</label>
                                                    <input type="date" class="form-control" name="payment_date" value="<?php echo h($fee['payment_date']); ?>">
                                                </div>
                                                <div class="col-xl-4">
                                                    <label>Received Amount</label>
                                                    <input type="text" class="form-control" name="received_amount" id="received_amount" value="<?php echo h($fee['received_amount']); ?>">
                                                </div>
                                                <div class="col-xl-4">
                                                    <label>Transaction ID</label>
                                                    <input type="text" class="form-control" name="transaction_id" value="<?php echo h($fee['transaction_id']); ?>">
                                                </div>
                                                <div class="col-xl-4">
                                                    <label>Bank/UPI</label>
                                                    <input type="text" class="form-control" name="bank_upi" value="<?php echo h($fee['bank_upi']); ?>">
                                                </div>
                                                <div class="col-xl-4">
                                                    <label>Added By (Admin Name)</label>
                                                    <input type="text" class="form-control" name="addedby" value="<?php echo h($fee['addedby']); ?>">
                                                </div>
                                            </div>

                                            <div id="mr_no_error" style="color:#dc3545; display:none; margin-top:8px;">Receipt No already exists. Please use a different number.</div>

                                            <div class="form-group text-right mt-3">
                                                <button type="submit" class="btn btn-primary" id="saveBtn">Update Fee</button>
                                                <a href="fee.php" class="btn btn-secondary">Cancel</a>
                                            </div>
                                        </form>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>

                </div>
            </div>
        </div>

        <?php include('footer.php'); ?>
    </div>

    <script>
    // Admission No autocomplete (reuse existing endpoint)
    $(document).ready(function(){
        $("#admission_no").keyup(function(){
            var query = $(this).val();
            if(query !== ''){
                $.post("../search_admission.php", {query:query}, function(data){
                    $("#admission_list").html(data).fadeIn();
                });
            } else {
                $("#admission_list").fadeOut();
            }
        });

        $(document).on('click', '.admission_item', function(){
            var admission_no = $(this).data('no');
            $.post("../search_admission.php", {admission_no:admission_no}, function(data){
                var student = JSON.parse(data);
                $("#admission_no").val(student.admission_no);
                $("#student_name").val(student.student_name);
                $("#fathers_name").val(student.fathers_name);
                $("#mobile_no").val(student.mobile_no || student.contact_personal || '');
                $("#course_name").val(student.course_name || student.course || '');
                $("#total_fee").val(student.total_fee || student.payable_amount || '');
                $("#admission_list").fadeOut();
            });
        });

        // Auto-fill Transaction ID and Bank/UPI when Payment Mode is Cash
        $('#payment_mode').on('change', function(){
            var mode = $(this).val();
            if(mode === 'Cash'){
                $("input[name='transaction_id']").val('NA');
                $("input[name='bank_upi']").val('NA');
            }
        });

        // Client-side MR No uniqueness check (exclude current id)
        var mrTimer = null;
        $(document).on('input', '#mr_no', function(){
            clearTimeout(mrTimer);
            var val = $(this).val().trim();
            var id = <?php echo (int)$fee['id']; ?>;
            if (!val) { $('#mr_no_error').hide(); $('#saveBtn').prop('disabled', false); return; }
            mrTimer = setTimeout(function(){
                $.get('check_mr_no.php', { mr_no: val, exclude_id: id }, function(resp){
                    try { resp = (typeof resp === 'object') ? resp : JSON.parse(resp); } catch(e) { resp = { exists:false }; }
                    if (resp.exists) {
                        $('#mr_no_error').show();
                        $('#saveBtn').prop('disabled', true);
                    } else {
                        $('#mr_no_error').hide();
                        $('#saveBtn').prop('disabled', false);
                    }
                }).fail(function(){
                    $('#mr_no_error').hide();
                    $('#saveBtn').prop('disabled', false);
                });
            }, 300);
        });
    });
    </script>


<!-- JQuery v3.5.1 -->
    <script src="assets/plugins/jquery/jquery.min.js"></script>

    <!-- popper js -->
    <script src="assets/plugins/popper/popper.min.js"></script>

    <!-- Bootstrap -->
    <script src="assets/plugins/bootstrap/js/bootstrap.min.js"></script>

    <!-- Moment -->
    <script src="assets/plugins/moment/moment.min.js"></script>

    <!-- Date Range Picker -->
    <script src="assets/plugins/daterangepicker/daterangepicker.min.js"></script>

    <!-- Datatable -->
    <script src="assets/plugins/datatables/jquery.dataTables.min.js"></script>
    <script src="assets/js/init-tdatatable.js"></script>

    <!-- Main Custom JQuery -->
    <script src="assets/js/toggleFullScreen.js"></script>
    <script src="assets/js/main.js"></script>

    </body>
    </html>
    <?php
    exit;
}

// POST: process update and adjust accounts
$id = isset($_POST['id']) ? (int)$_POST['id'] : 0;
if ($id <= 0) { die('Invalid ID'); }

// Load original fee row
$origRes = $conn->query("SELECT * FROM fees WHERE id = $id LIMIT 1");
if (!$origRes || $origRes->num_rows === 0) { die('Record not found'); }
$orig = $origRes->fetch_assoc();

$old_adm   = $orig['admission_no'];
$old_recv  = (float)$orig['received_amount'];
$old_total = (float)$orig['total_fee'];
$old_mr_no = isset($orig['mr_no']) ? $orig['mr_no'] : '';

// Collect inputs (match admin/fee.php fields)
$admission_no    = $conn->real_escape_string($_POST['admission_no'] ?? $old_adm);
$student_name    = $conn->real_escape_string($_POST['student_name'] ?? $orig['student_name']);
$fathers_name    = $conn->real_escape_string($_POST['fathers_name'] ?? $orig['fathers_name']);
$mobile_no       = $conn->real_escape_string($_POST['mobile_no'] ?? $orig['mobile_no']);
$course_name     = $conn->real_escape_string($_POST['course_name'] ?? $orig['course_name']);
$total_fee       = (float)($_POST['total_fee'] ?? $old_total);
$due_amount      = isset($_POST['due_amount']) ? (float)$_POST['due_amount'] : (float)$orig['due_amount'];
$paid_amount     = isset($_POST['paid_amount']) ? (float)$_POST['paid_amount'] : (float)$orig['paid_amount'];
$mr_no           = $conn->real_escape_string($_POST['mr_no'] ?? $old_mr_no);
$transaction_id  = $conn->real_escape_string($_POST['transaction_id'] ?? $orig['transaction_id']);
$payment_date    = $conn->real_escape_string($_POST['payment_date'] ?? $orig['payment_date']);
$received_amount = (float)($_POST['received_amount'] ?? $orig['received_amount']);
$bank_upi        = $conn->real_escape_string($_POST['bank_upi'] ?? $orig['bank_upi']);
$payment_mode    = $conn->real_escape_string($_POST['payment_mode'] ?? ($orig['payment_mode'] ?? ''));
$addedby_manual  = $conn->real_escape_string($_POST['addedby'] ?? ($orig['addedby'] ?? ''));

// Normalize fields for Cash
if (strcasecmp($payment_mode, 'Cash') === 0) {
    if ($transaction_id === '') $transaction_id = 'NA';
    if ($bank_upi === '') $bank_upi = 'NA';
}

// MR No uniqueness (only if changed)
if ($mr_no !== '' && $mr_no !== $old_mr_no) {
    $dup = $conn->query("SELECT 1 FROM fees WHERE mr_no='".$mr_no."' AND id<>$id LIMIT 1");
    if ($dup && $dup->num_rows > 0) {
        echo "<script>alert('Receipt No already exists. Please use a different number.'); window.history.back();</script>";
        exit;
    }
}

// Update fees row (include payment_mode if column exists)
$setParts = [
    "admission_no='".$admission_no."'",
    "student_name='".$student_name."'",
    "fathers_name='".$fathers_name."'",
    "mobile_no='".$mobile_no."'",
    "course_name='".$course_name."'",
    "total_fee='".$conn->real_escape_string($total_fee)."'",
    "due_amount='".$conn->real_escape_string($due_amount)."'",
    "paid_amount='".$conn->real_escape_string($paid_amount)."'",
    "mr_no='".$mr_no."'",
    "transaction_id='".$transaction_id."'",
    "payment_date='".$payment_date."'",
    "received_amount='".$conn->real_escape_string($received_amount)."'",
    "bank_upi='".$bank_upi."'",
    "addedby='".$addedby_manual."'"
];

$hasPaymentModeCol = false;
$colRes = $conn->query("SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME='fees' AND COLUMN_NAME='payment_mode'");
if ($colRes && $colRes->num_rows > 0) { $hasPaymentModeCol = true; }
if ($hasPaymentModeCol) { $setParts[] = "payment_mode='".$payment_mode."'"; }

$updFeeSql = "UPDATE fees SET ".implode(", ", $setParts)." WHERE id = $id LIMIT 1";
if (!$conn->query($updFeeSql)) {
    echo "<script>alert('Error updating fee: ".addslashes($conn->error)."'); window.history.back();</script>";
    exit;
}

// Adjust accounts aggregates
$old_adm_esc = $conn->real_escape_string($old_adm);
$new_adm_esc = $conn->real_escape_string($admission_no);

if ($old_adm !== $admission_no) {
    // Remove from old account
    $accOld = $conn->query("SELECT total_fees, due_amount, paid_amount, received_amount FROM accounts WHERE admission_no='".$old_adm_esc."'");
    if ($accOld && $accOld->num_rows > 0) {
        $a = $accOld->fetch_assoc();
        $acc_total = (float)$a['total_fees']; if ($acc_total <= 0) $acc_total = $old_total;
        $new_received = max(0, (float)$a['received_amount'] - $old_recv);
        $new_due = $acc_total - $new_received; if ($new_due < 0) $new_due = 0;
        $new_paid = $acc_total - $new_due;
        $conn->query("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='".$old_adm_esc."'");
    }

    // Add to new account
    $accNew = $conn->query("SELECT total_fees, due_amount, paid_amount, received_amount FROM accounts WHERE admission_no='".$new_adm_esc."'");
    if ($accNew && $accNew->num_rows > 0) {
        $a = $accNew->fetch_assoc();
        $acc_total = (float)$a['total_fees']; if ($acc_total <= 0) $acc_total = $total_fee;
        $new_received = max(0, (float)$a['received_amount'] + $received_amount);
        $new_due = $acc_total - $new_received; if ($new_due < 0) $new_due = 0;
        $new_paid = $acc_total - $new_due;
        $conn->query("UPDATE accounts SET total_fees='".$conn->real_escape_string($acc_total)."', 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='".$new_adm_esc."'");
    } else {
        $acc_total = $total_fee;
        $new_received = max(0, $received_amount);
        $new_due = $acc_total - $new_received; if ($new_due < 0) $new_due = 0;
        $new_paid = $acc_total - $new_due;
        $conn->query("INSERT INTO accounts (admission_no, total_fees, due_amount, paid_amount, received_amount) VALUES ('".$new_adm_esc."', '".$conn->real_escape_string($acc_total)."', '".$conn->real_escape_string($new_due)."', '".$conn->real_escape_string($new_paid)."', '".$conn->real_escape_string($new_received)."')");
    }
} else {
    // Same admission; adjust diff
    $diff = $received_amount - $old_recv; // can be negative
    $accRes = $conn->query("SELECT total_fees, due_amount, paid_amount, received_amount FROM accounts WHERE admission_no='".$new_adm_esc."'");
    if ($accRes && $accRes->num_rows > 0) {
        $a = $accRes->fetch_assoc();
        $acc_total = (float)$a['total_fees']; if ($acc_total <= 0) $acc_total = $total_fee;
        $new_received = (float)$a['received_amount'] + $diff; if ($new_received < 0) $new_received = 0;
        $new_due = $acc_total - $new_received; if ($new_due < 0) $new_due = 0;
        $new_paid = $acc_total - $new_due;
        $conn->query("UPDATE accounts SET total_fees='".$conn->real_escape_string($acc_total)."', 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='".$new_adm_esc."'");
    } else {
        // Create account row if missing
        $acc_total = $total_fee;
        $new_received = max(0, $received_amount);
        $new_due = $acc_total - $new_received; if ($new_due < 0) $new_due = 0;
        $new_paid = $acc_total - $new_due;
        $conn->query("INSERT INTO accounts (admission_no, total_fees, due_amount, paid_amount, received_amount) VALUES ('".$new_adm_esc."', '".$conn->real_escape_string($acc_total)."', '".$conn->real_escape_string($new_due)."', '".$conn->real_escape_string($new_paid)."', '".$conn->real_escape_string($new_received)."')");
    }
}

echo "<script>alert('Fee updated successfully'); window.location.href='fee.php';</script>";