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'; ?>
This is the total amount pending to be paid to you.
| Date | Fish Type | Weight (kg) | Rate/kg | Amount |
|---|---|---|---|---|
|
|
₹ | ₹ |
| Payment Date | Amount | Payment Mode | Settled By | Notes |
|---|---|---|---|---|
| ₹ |