<?php
ini_set('session.gc_maxlifetime', 315360000); // 10 years
session_set_cookie_params(315360000);
session_start();

// Restore session from cookie if session is missing
if (!isset($_SESSION['user']) && isset($_COOKIE['staff_user'])) {
    $_SESSION['user'] = $_COOKIE['staff_user'];

    // Optional: auto-renew cookie to extend its lifetime
    setcookie("staff_user", $_COOKIE['staff_user'], time() + (86400 * 365 * 10), "/");

    // Redirect if needed
    if (basename($_SERVER['PHP_SELF']) == 'index.php') {
        header("Location: staff/generate-invoice.php");
        exit();
    }
}
?>

<?php
        // Check if the user is logged in
        if (!isset($_SESSION['user'])) {
            // If not logged in, redirect to index page
            header("Location: ../index.php");
            exit();
        }

        include '../config/connection.php';

        // Initialize variables for dates
        // $fdate = $_POST['fdate'] ?? null; // Use $_POST for form submission
        // $tdate = $_POST['tdate'] ?? null; // Use $_POST for form submission
        
        // Store dates in session if they are provided
        // if ($fdate && $tdate) {
        //     $_SESSION['fdate'] = $fdate;
        //     $_SESSION['tdate'] = $tdate;
        // } else {
        //     // If dates are not provided, use session values
        //     $fdate = $_SESSION['fdate'] ?? null;
        //     $tdate = $_SESSION['tdate'] ?? null;
        // }
        $today = date('Y-m-d');
        
        $fdate = $_POST['fdate'] ?? ($_SESSION['fdate'] ?? $today);
        $tdate = $_POST['tdate'] ?? ($_SESSION['tdate'] ?? $today);
        
        // Save to session
        $_SESSION['fdate'] = $fdate;
        $_SESSION['tdate'] = $tdate;
        
        $staff_name = $_SESSION['user'];
        // Get staff ID
        $staff_query = "SELECT id FROM staff WHERE name = ? LIMIT 1";
        $stmt = mysqli_prepare($conn, $staff_query);
        mysqli_stmt_bind_param($stmt, "s", $staff_name);
        mysqli_stmt_execute($stmt);
        $staff_result = mysqli_stmt_get_result($stmt);
        $staff_data = mysqli_fetch_assoc($staff_result);
        $staff_id = $staff_data['id']; 

        // SQL query to fetch invoices within the selected date range
        // $query = "SELECT * FROM invoices WHERE staff_id = '$staff_id'";
        $query = "SELECT id, billno, created_at, collected_amount, all_total_amount, tip 
          FROM invoices 
          WHERE staff_id = '$staff_id'";
        if ($fdate && $tdate) {
            // $query .= " AND created_at BETWEEN '$fdate' AND '$tdate'";
            $query .= " AND created_at >= '$fdate 00:00:00' AND created_at <= '$tdate 23:59:59'";
        }
        $query .= " ORDER BY id DESC"; // or ASC if you want ascending order
        $result = mysqli_query($conn, $query);
        ?>

<?php include 'header.php'; ?>
        <div id="layoutSidenav">
        <?php include 'sidebar.php'; ?>
            <div id="layoutSidenav_content">
                <main>
                    <div class="container-fluid px-4">                      
                        <div class="row">
                            <h3 class="mt-5 mb-4" style="color: #938e34;">Invoice History</h3> 

                            <form method="POST">
                                <div class="row">                                   
                                    <div class="col-md-6">
                                        <div class="input-block mb-3">
                                            <label class="col-form-label" for="fdate">From Date</label>
                                            <input class="form-control" type="date"  name="fdate" id="fdate" aria-describedby="fdate" required value="<?= htmlspecialchars($fdate ?? '') ?>">
                                        </div>
                                    </div>

                                    <div class="col-md-6">
                                        <div class="input-block mb-3">
                                            <label class="col-form-label" for="tdate">To Date</label>
                                            <input class="form-control" type="date"  name="tdate" id="tdate" aria-describedby="tdate" id="tdate" required value="<?= htmlspecialchars($tdate ?? '') ?>">
                                        </div>
                                    </div>
                                </div>
                          
    
                            <div class="col-sm-12 mt-3">
                                <button type="submit" class="btn btn-primary">SUBMIT</button>
                            </div>
                        </div>
                        </form>
                        <div class="row mt-5">
                            <div class="card mb-4">
                                <div class="card-header">
                                    <h5 style="color: #938e34;">Invoice History</h5>
                                </div>
                                <hr style="margin: 2px;">
                                <div class="card-body">
                                    <div style="overflow-x: scroll;">
                                        <table class="table table-striped table-bordered table-hover" id="dataTable">
                                            <thead>
                                                <tr>
                                                    <th>Sl. No</th>
                                                    <th>Date</th>
                                                    <th>Bill No</th>
                                                    <th>Amount</th>                            
                                                    <th>Action</th>
                                                </tr>
                                            </thead>                                       
                                            <tbody>
                                            <?php
                                            // Output data from the database
                                            $counter = 1;
                                            while ($row = mysqli_fetch_assoc($result)) {
    $invoice_id = $row['id'];
    $date = date("d-m-Y", strtotime($row['created_at']));

    $collected = (float)$row['collected_amount'];
    $total = (float)$row['all_total_amount'];
    $tip = (float)$row['tip'];

    // if ($collected > $total) {
    //     $amount = $collected - $tip;
    // } else {
    //     $amount = $collected;
    // }
    if ($collected >= $total) {
        $amount = $collected - $tip;
    } else {
        $base = $collected * 100 / 105;
        $less_vat= $collected - ($collected * (100 / 105));
        // $amount = $collected * 100 / 105;
        $amount =$base + $less_vat;
    }
    $billno = $row['billno'] ?? $invoice_id;
    echo "<tr>
            <td>{$counter}</td>
            <td>{$date}</td>
            <td>{$billno}</td>
            <td> " . number_format($amount, 2) . "</td>
             
           <td>
           <a href='generate_pdf.php?invoice_id={$invoice_id}' class='btn btn-success'>DOWNLOAD</a>
          </tr>";
    $counter++;
}

                                            ?>
                                        </tbody>
                                        </table>
                                    </div>
                                </div>            
                            </div>
                        </div>                       
                    </div>
                </main>
                <?php include 'footer.php'; ?>
            </div>
        </div>
        <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js" crossorigin="anonymous"></script>
        <script src="js/scripts.js"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.8.0/Chart.min.js" crossorigin="anonymous"></script>
        <script src="assets/demo/chart-area-demo.js"></script>
        <script src="assets/demo/chart-bar-demo.js"></script>
        <!-- <script src="https://cdn.jsdelivr.net/npm/simple-datatables@7.1.2/dist/umd/simple-datatables.min.js" crossorigin="anonymous"></script> -->
        <script src="js/datatables-simple-demo.js"></script>
       <!-- jQuery -->
        <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>

        <!-- DataTables -->
        <script src="https://cdn.datatables.net/1.13.4/js/jquery.dataTables.min.js"></script>

        <!-- DataTables Buttons Extension -->
        <script src="https://cdn.datatables.net/buttons/2.3.6/js/dataTables.buttons.min.js"></script>
        <script src="https://cdn.datatables.net/buttons/2.3.6/js/buttons.html5.min.js"></script>
        <script src="https://cdn.datatables.net/buttons/2.3.6/js/buttons.flash.min.js"></script>

        <!-- JSZip and pdfmake for Excel and PDF export -->
        <script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/pdfmake.min.js"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/vfs_fonts.js"></script>

        <!-- DataTables CSS -->
        <link rel="stylesheet" href="https://cdn.datatables.net/1.13.4/css/jquery.dataTables.min.css">
        <link rel="stylesheet" href="https://cdn.datatables.net/buttons/2.3.6/css/buttons.dataTables.min.css">
        <script>
    $(document).ready(function() {
        $('#dataTable').DataTable({
            paging: true,
            dom: 'Blfrtip',
            buttons: [
                {
                    extend: 'csv',
                    title: "Download",
                    exportOptions: {
                        columns: [0, 1, 2, 3]
                    }
                },
                {
                    extend: 'pdfHtml5',
                    exportOptions: {
                        columns: [0, 1, 2, 3]
                    }
                }
            ],
            ordering: false
        });
    });
</script>
    </body>
</html>
