prepare($sql); $stmt->bind_param("iss", $user_id, $from_date, $to_date); $stmt->execute(); $result = $stmt->get_result(); $supply_data = $result->fetch_assoc(); // Get total payments received in date range $sql = "SELECT COALESCE(SUM(amount), 0) as total_paid, COUNT(*) as payment_count FROM payment_settlements WHERE supplier_id = ? AND payment_date BETWEEN ? AND ?"; $stmt = $conn->prepare($sql); $stmt->bind_param("iss", $user_id, $from_date, $to_date); $stmt->execute(); $result = $stmt->get_result(); $payment_data = $result->fetch_assoc(); // Get OVERALL pending (not just date range) - FIXED with subqueries $sql = "SELECT COALESCE((SELECT SUM(total_amount) FROM supply WHERE supplier_id = ?), 0) as total_supply_all, COALESCE((SELECT SUM(amount) FROM payment_settlements WHERE supplier_id = ?), 0) as total_paid_all"; $stmt = $conn->prepare($sql); $stmt->bind_param("ii", $user_id, $user_id); $stmt->execute(); $result = $stmt->get_result(); $overall_data = $result->fetch_assoc(); $overall_pending = $overall_data['total_supply_all'] - $overall_data['total_paid_all']; // Get recent supplies in date range $sql = "SELECT s.*, f.fish_name, f.fish_name_tamil FROM supply s LEFT JOIN fish_types f ON s.fish_id = f.fish_id WHERE s.supplier_id = ? AND s.supply_date BETWEEN ? AND ? ORDER BY s.supply_date DESC LIMIT 10"; $stmt = $conn->prepare($sql); $stmt->bind_param("iss", $user_id, $from_date, $to_date); $stmt->execute(); $result = $stmt->get_result(); $recent_supplies = []; while ($row = $result->fetch_assoc()) { $recent_supplies[] = $row; } // Get recent payments in date range $sql = "SELECT ps.*, u.full_name as settled_by_name FROM payment_settlements ps LEFT JOIN users u ON ps.settled_by = u.user_id WHERE ps.supplier_id = ? AND ps.payment_date BETWEEN ? AND ? ORDER BY ps.payment_date DESC LIMIT 10"; $stmt = $conn->prepare($sql); $stmt->bind_param("iss", $user_id, $from_date, $to_date); $stmt->execute(); $result = $stmt->get_result(); $recent_payments = []; while ($row = $result->fetch_assoc()) { $recent_payments[] = $row; } } elseif ($role === 'manager' || $role === 'admin') { // MANAGER/ADMIN REPORT // Get sales summary $sql = "SELECT COALESCE(SUM(total_amount), 0) as total_sales, COUNT(*) as sale_count FROM sales WHERE sale_date BETWEEN ? AND ?"; $stmt = $conn->prepare($sql); $stmt->bind_param("ss", $from_date, $to_date); $stmt->execute(); $result = $stmt->get_result(); $sales_data = $result->fetch_assoc(); // Get supply summary $sql = "SELECT COALESCE(SUM(total_amount), 0) as total_supply, COUNT(*) as supply_count FROM supply WHERE supply_date BETWEEN ? AND ?"; $stmt = $conn->prepare($sql); $stmt->bind_param("ss", $from_date, $to_date); $stmt->execute(); $result = $stmt->get_result(); $supply_summary = $result->fetch_assoc(); // Get expense summary $sql = "SELECT COALESCE(SUM(total_amount), 0) as total_expenses, COUNT(*) as expense_count FROM expenses WHERE expense_date BETWEEN ? AND ?"; $stmt = $conn->prepare($sql); $stmt->bind_param("ss", $from_date, $to_date); $stmt->execute(); $result = $stmt->get_result(); $expense_data = $result->fetch_assoc(); // Get payment summary $sql = "SELECT COALESCE(SUM(amount), 0) as total_payments, COUNT(*) as payment_count FROM payment_settlements WHERE payment_date BETWEEN ? AND ?"; $stmt = $conn->prepare($sql); $stmt->bind_param("ss", $from_date, $to_date); $stmt->execute(); $result = $stmt->get_result(); $payment_summary = $result->fetch_assoc(); // Calculate profit $profit = $sales_data['total_sales'] - $supply_summary['total_supply'] - $expense_data['total_expenses']; } } catch (Exception $e) { $error = "Error generating report: " . $e->getMessage(); } $page_title = 'Reports'; require_once __DIR__ . '/../includes/header.php'; ?>

📊 Reports

Select Date Range

Your Pending Payment

This is the total amount pending to be paid to you.

Total Supply (Period)
entries
Payments Received (Period)
payments
Overall Pending
All time

Recent Supplies ()

Date Fish Type Weight (kg) Rate/kg Amount

Recent Payments ()

Payment Date Amount Payment Mode Settled By Notes
Total Sales
transactions
Total Supply Cost
supplies
Total Expenses
expenses
= 0 ? 'Profit' : 'Loss'; ?>
Sales - Supply - Expenses

Supplier Payments Made

Total Paid
payments

Detailed Reports

📊 View All Sales 📦 View All Supplies 💸 View All Expenses 💰 Pending Payments