<?php session_start(); // Start the session include 'header.php'; // Include the header file which includes the navigation // Database connection $conn = new mysqli("server329", "leadltht_prazey1982", "prazey1982123456", "leadltht_fastlinkinternet"); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } // Fetch all harvest records along with less_deductions, client_share, owner_share, and remarks $query = "SELECT hc.id, c.name as client_name, hc.harvested_date, hc.harvested_amount, hc.less_deductions, c.client_share, (hc.less_deductions * (c.client_share / 100)) as client_share_amount, (hc.less_deductions - (hc.less_deductions * (c.client_share / 100))) as owner_share_amount, hc.remarks FROM harvest_collection hc JOIN clients c ON hc.client_id = c.id"; $result = $conn->query($query); if ($result === false) { die("Error in query: " . $conn->error); } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Harvest Collection</title> <style> table { width: 100%; border-collapse: collapse; } table, th, td { border: 1px solid black; } th, td { padding: 8px; text-align: left; } th { background-color: #f2f2f2; } .action-buttons { display: flex; gap: 10px; } .table-controls { display: flex; justify-content: space-between; margin-bottom: 10px; } .btn-back, .btn-show, .btn-print { padding: 10px 20px; background-color: #007bff; color: white; border: none; border-radius: 5px; cursor: pointer; margin-right: 10px; } .pagination { display: flex; justify-content: center; margin-top: 20px; } .pagination button { padding: 10px 20px; margin: 0 5px; background-color: #007bff; color: white; border: none; border-radius: 5px; cursor: pointer; } /* Hide elements during print */ @media print { .table-controls, .pagination, .btn-back, .btn-show, .btn-print, #showing-entries { display: none; } .action-buttons, th:last-child, /* Hide the last column header */ td:last-child { /* Hide the last column cells */ display: none; } } </style> <script> document.addEventListener("DOMContentLoaded", function () { const rows = Array.from(document.querySelector("tbody").children); const searchInput = document.getElementById("search"); const entriesSelect = document.getElementById("entries"); const fromDateInput = document.getElementById("from-date"); const toDateInput = document.getElementById("to-date"); const showReportButton = document.querySelector(".btn-show"); let currentPage = 1; let entriesPerPage = parseInt(entriesSelect.value); let filteredRows = rows.slice(); function renderTable() { const start = (currentPage - 1) * entriesPerPage; const end = start + entriesPerPage; rows.forEach(row => row.style.display = "none"); filteredRows.slice(start, end).forEach(row => row.style.display = ""); const totalEntries = filteredRows.length; document.getElementById("showing-entries").textContent = `Showing ${Math.min(end, totalEntries)} of ${totalEntries} entries`; document.getElementById("prevPage").disabled = currentPage === 1; document.getElementById("nextPage").disabled = end >= filteredRows.length; } function filterRows() { const query = searchInput.value.toLowerCase(); filteredRows = rows.filter(row => { return Array.from(row.children).some(cell => cell.textContent.toLowerCase().includes(query)); }); currentPage = 1; renderTable(); } function filterByDateRange() { const fromDate = new Date(fromDateInput.value); const toDate = new Date(toDateInput.value); filteredRows = rows.filter(row => { const harvestedDate = new Date(row.children[2].textContent); return harvestedDate >= fromDate && harvestedDate <= toDate; }); currentPage = 1; renderTable(); } function showPreviousPage() { if (currentPage > 1) { currentPage--; renderTable(); } } function showNextPage() { if (currentPage * entriesPerPage < filteredRows.length) { currentPage++; renderTable(); } } searchInput.addEventListener("input", filterRows); entriesSelect.addEventListener("change", function () { entriesPerPage = parseInt(this.value); renderTable(); }); showReportButton.addEventListener("click", filterByDateRange); document.getElementById("prevPage").addEventListener("click", showPreviousPage); document.getElementById("nextPage").addEventListener("click", showNextPage); renderTable(); }); function printPage() { window.print(); } </script> </head> <body> <div style="text-align: center;"> <img src="https://fastlinkinternet.com/administrator/data-provider/uploads/fastlink.png" alt="Logo" style="max-width: 120px;"> </div> <h1 class="mb-4" style="text-align: center;">FASTLINK INTERNET</h1> <h4 class="mb-4" style="text-align: center;">Harvest Collection as of <?= date('F Y'); ?> </h4> <div class="table-controls"> <div> Show <select id="entries"> <option value="25">25</option> <option value="50">50</option> </select> entries </div> <div> Search: <input type="text" id="search"> </div> <div> <label for="from-date">From: </label> <input type="date" id="from-date" name="from-date"> <label for="to-date">To: </label> <input type="date" id="to-date" name="to-date"> <button class="btn-show" type="button">Show Report</button> <button class="btn-print" onclick="printPage()">Print</button> </div> </div> <table> <thead> <tr> <th>#</th> <th>Client Name</th> <th>Harvested Date</th> <th>Harvested Amount</th> <th>Less Deductions</th> <th>Owner Share</th> <th>Client Share</th> <th>Remarks</th> <th>Action</th> </tr> </thead> <tbody> <?php $counter = 1; if ($result->num_rows > 0) { while ($row = $result->fetch_assoc()) { echo "<tr>"; echo "<td>" . $counter++ . "</td>"; echo "<td>" . htmlspecialchars($row['client_name']) . "</td>"; echo "<td>" . htmlspecialchars($row['harvested_date']) . "</td>"; echo "<td>" . htmlspecialchars($row['harvested_amount']) . "</td>"; echo "<td>" . htmlspecialchars($row['less_deductions']) . "</td>"; echo "<td>" . number_format($row['owner_share_amount'], 2) . "</td>"; echo "<td>" . number_format($row['client_share_amount'], 2) . "</td>"; echo "<td>" . htmlspecialchars($row['remarks']) . "</td>"; echo "<td>"; echo "<div class='action-buttons'>"; echo "<a href='edit_harvest.php?id=" . $row['id'] . "'><button>Edit</button></a>"; echo "<a href='delete_harvest.php?id=" . $row['id'] . "' onclick='return confirm(\"Are you sure you want to delete this record?\");'><button>Delete</button></a>"; echo "</div>"; echo "</td>"; echo "</tr>"; } } else { echo "<tr><td colspan='9'>No records found.</td></tr>"; } ?> </tbody> </table> <div id="showing-entries"></div> <div class="pagination"> <button id="prevPage">Previous</button> <button id="nextPage">Next</button> </div> <div> <a href="javascript:history.back()"> <button type="button" class="btn-back">Back</button> </a> </div> </body> </html> <?php $result->free(); $conn->close(); ?>