<?php $currency_symbol = $this->customlib->getSchoolCurrencyFormat(); ?>
<style type="text/css">
    @media print {
        .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
            float: left;
        }
        .col-sm-12 {
            width: 100%;
        }
        .col-sm-11 {
            width: 91.66666667%;
        }
        .col-sm-10 {
            width: 83.33333333%;
        }
        .col-sm-9 {
            width: 75%;
        }
        .col-sm-8 {
            width: 66.66666667%;
        }
        .col-sm-7 {
            width: 58.33333333%;
        }
        .col-sm-6 {
            width: 50%;
        }
        .col-sm-5 {
            width: 41.66666667%;
        }
        .col-sm-4 {
            width: 33.33333333%;
        }
        .col-sm-3 {
            width: 25%;
        }
        .col-sm-2 {
            width: 16.66666667%;
        }
        .col-sm-1 {
            width: 8.33333333%;
        }
        .col-sm-pull-12 {
            right: 100%;
        }
        .col-sm-pull-11 {
            right: 91.66666667%;
        }
        .col-sm-pull-10 {
            right: 83.33333333%;
        }
        .col-sm-pull-9 {
            right: 75%;
        }
        .col-sm-pull-8 {
            right: 66.66666667%;
        }
        .col-sm-pull-7 {
            right: 58.33333333%;
        }
        .col-sm-pull-6 {
            right: 50%;
        }
        .col-sm-pull-5 {
            right: 41.66666667%;
        }
        .col-sm-pull-4 {
            right: 33.33333333%;
        }
        .col-sm-pull-3 {
            right: 25%;
        }
        .col-sm-pull-2 {
            right: 16.66666667%;
        }
        .col-sm-pull-1 {
            right: 8.33333333%;
        }
        .col-sm-pull-0 {
            right: auto;
        }
        .col-sm-push-12 {
            left: 100%;
        }
        .col-sm-push-11 {
            left: 91.66666667%;
        }
        .col-sm-push-10 {
            left: 83.33333333%;
        }
        .col-sm-push-9 {
            left: 75%;
        }
        .col-sm-push-8 {
            left: 66.66666667%;
        }
        .col-sm-push-7 {
            left: 58.33333333%;
        }
        .col-sm-push-6 {
            left: 50%;
        }
        .col-sm-push-5 {
            left: 41.66666667%;
        }
        .col-sm-push-4 {
            left: 33.33333333%;
        }
        .col-sm-push-3 {
            left: 25%;
        }
        .col-sm-push-2 {
            left: 16.66666667%;
        }
        .col-sm-push-1 {
            left: 8.33333333%;
        }
        .col-sm-push-0 {
            left: auto;
        }
        .col-sm-offset-12 {
            margin-left: 100%;
        }
        .col-sm-offset-11 {
            margin-left: 91.66666667%;
        }
        .col-sm-offset-10 {
            margin-left: 83.33333333%;
        }
        .col-sm-offset-9 {
            margin-left: 75%;
        }
        .col-sm-offset-8 {
            margin-left: 66.66666667%;
        }
        .col-sm-offset-7 {
            margin-left: 58.33333333%;
        }
        .col-sm-offset-6 {
            margin-left: 50%;
        }
        .col-sm-offset-5 {
            margin-left: 41.66666667%;
        }
        .col-sm-offset-4 {
            margin-left: 33.33333333%;
        }
        .col-sm-offset-3 {
            margin-left: 25%;
        }
        .col-sm-offset-2 {
            margin-left: 16.66666667%;
        }
        .col-sm-offset-1 {
            margin-left: 8.33333333%;
        }
        .col-sm-offset-0 {
            margin-left: 0%;
        }
        .visible-xs {
            display: none !important;
        }
        .hidden-xs {
            display: block !important;
        }
        table.hidden-xs {
            display: table;
        }
        tr.hidden-xs {
            display: table-row !important;
        }
        th.hidden-xs,
        td.hidden-xs {
            display: table-cell !important;
        }
        .hidden-xs.hidden-print {
            display: none !important;
        }
        .hidden-sm {
            display: none !important;
        }
        .visible-sm {
            display: block !important;
        }
        table.visible-sm {
            display: table;
        }
        tr.visible-sm {
            display: table-row !important;
        }
        th.visible-sm,
        td.visible-sm {
            display: table-cell !important;
        }
    }
</style>

<html lang="en">
    <head>
        <title><?php echo $this->lang->line('fees_receipt'); ?></title>
        <link rel="stylesheet" href="<?php echo base_url(); ?>backend/bootstrap/css/bootstrap.min.css"> 
        <link rel="stylesheet" href="<?php echo base_url(); ?>backend/dist/css/AdminLTE.min.css">
    </head>
    <body> 
        <div class="container">

            <div class="row">

                <div id="content" class="col-lg-12 col-sm-12 ">
                    <div class="invoice">
                        <div class="row header text-center">
                            <div class="col-sm-12">
                                <?php
                                if ($settinglist[0]['image'] != "") {
                                    ?>

                                    <img style="height:70px; " src="<?php echo base_url(); ?>/uploads/school_content/logo/<?php echo $settinglist[0]['image']; ?>"> <br/>
                                    <?php
                                }
                                ?>

                                <strong style="font-size: 20px;"><?php echo $settinglist[0]['name']; ?></strong><br>
                                <?php echo $settinglist[0]['address']; ?><br>

                                <?php echo $this->lang->line('phone'); ?>: <?php echo $settinglist[0]['phone']; ?><br>

                            </div><!--/col-->
                        </div>
                        <div class="row" style="text-align:center;">
                            <div class="col-xs-12">
                                <br/>
                                <address>
                                    <strong><?php echo $exp_title; ?></strong><br/>                                    
                                    <h4 style="color:blue; font-weight:bold;">OUTSTANDING FEES REPORT</h4><br/>
                                </address> 
                            </div>
                        </div>

                        <hr style="margin-top: 0px;margin-bottom: 0px;" />
                        <div class="row">
                           <table class="table table-striped table-bordered" style="width: 100%;">
                                            <thead>
                                                <tr>
                                                    <th style="width:20%;">Date</th>
                                                    <th style="width:25%;">Student Name</th>
                                                    <th style="width:20%;">Class</th>      
                                                    <th style="width:25%; text-align:right;">Owing Balance (USD)</th>
                                                </tr>
                                            </thead>
                                           <tbody>
                                            <?php 
                                            $grand_total_invoiced = 0;
                                            $grand_total_paid = 0;
                                            $grand_total_balance = 0;  
                                            // Group fees by student
                                            $students = [];
                                            foreach ($feelist as $fee) {
                                                if ($fee['is_total_row'] == 1) continue;
                                                
                                                $studentId = $fee['student_session_id'];
                                                if (!isset($students[$studentId])) {
                                                    $students[$studentId] = [
                                                        'name' => $fee['firstname'] . ' ' . $fee['lastname'],
                                                        'class' => $fee['class_name'] . ' ' . $fee['section_name'],
                                                        'invoiced' => 0,
                                                        'paid' => 0,
                                                        'latest_date' => '',
                                                        'invoices' => []
                                                    ];
                                                }
                                                
                                        // Get the original paid amount
                                                $original_paid = isset($fee['amount_paid']) ? (float)$fee['amount_paid'] : 0;
                                                
                                                // Get payment mode (assuming it's available in $fee)
                                                $payment_mode = $fee['payment_mode'] ?? 'USD'; // Default to USD if not specified
                                                
                                                // Convert the amount if needed
                                                if ($payment_mode !== 'USD' && $original_paid > 0) {
                                                    // Fetch the exchange rate for the payment mode
                                                    $this->db->select('foreign_rate');
                                                    $this->db->from('bank_rates');
                                                    $this->db->where('foreign_currency', $payment_mode);
                                                    $query_rate = $this->db->get();
                                                    $rate = $query_rate->row();
                                                    
                                                    $foreign_rate = $rate->foreign_rate ?? 1; // Default to 1 if no rate found
                                                    
                                                    // Convert to USD equivalent
                                                    $paid = $original_paid / $foreign_rate;
                                                } else {
                                                    $paid = $original_paid; // No conversion needed for USD
                                                }  
                                                $students[$studentId]['invoiced'] += $fee['fee_amount'];
                                                $students[$studentId]['paid'] += $paid;
                                                
                                                // Track latest date
                                                if (empty($students[$studentId]['latest_date']) || 
                                                    strtotime($fee['created_at']) > strtotime($students[$studentId]['latest_date'])) {
                                                    $students[$studentId]['latest_date'] = $fee['created_at'];
                                                }
                                                
                                                // Track individual invoices for reference
                                                $students[$studentId]['invoices'][] = [
                                                    'invoice_number' => $fee['invoice_number'],
                                                    'amount' => $fee['fee_amount'],
                                                    'paid' => $paid,
                                                    'date' => $fee['created_at']
                                                ];
                                            }
                                            
                                            // Display each student's summary only if balance > 0
                                                foreach ($students as $studentId => $student):
                                                    // First calculate the balance
                                                    $balance = $student['invoiced'] - $student['paid'];
                                                    
                                                    // Skip students with balance <= 0 (using a small epsilon to account for floating point precision)
                                                    if ($balance <= 0) continue; // Using 0.009 to account for rounding differences
                                                    
                                                    $date = date('m-d-Y', strtotime($student['latest_date']));
                                                    
                                                    // Only add to grand totals if we're actually displaying this student
                                                    $grand_total_invoiced += $student['invoiced'];
                                                    $grand_total_paid += $student['paid'];
                                                    $grand_total_balance += $balance;
                                                ?>
                                            <tr>
                                                <td><?= htmlspecialchars($date) ?></td>
                                                <td><?= htmlspecialchars($student['name']) ?></td>
                                                <td><?= htmlspecialchars($student['class']) ?></td>
                                                <td style="text-align:right;"><?= number_format($balance, 2) ?></td>
                                            </tr>
                                            <?php endforeach; ?>
                                            
                                            <!-- Grand Total Row -->
                                            <tr style="font-weight:bold; background-color:#f5f5f5;">
                                                <td></td>
                                                <td></td>
                                                <td>GRAND TOTAL</td>
                                                <td style="text-align:right;"><?= number_format($grand_total_balance, 2) ?></td>
                                            </tr>
                                        </tbody>
                                    </table>
                        </div>
                    </div>
                </div>  
            </div>
        </div>
        <div class="clearfix"></div>
        <footer>           
        </footer>
    </body>
</html>