query($query); return $result->fetch_all(MYSQLI_ASSOC); } // Function to get all expense categories function getExpenseCategories($conn) { $query = "SELECT * FROM expense_categories ORDER BY name"; $result = $conn->query($query); return $result->fetch_all(MYSQLI_ASSOC); } // Function to get expense heads for a category function getExpenseHeads($conn, $categoryId) { $query = "SELECT * FROM expense_heads WHERE category_id = ? ORDER BY name"; $stmt = $conn->prepare($query); $stmt->bind_param("i", $categoryId); $stmt->execute(); $result = $stmt->get_result(); return $result->fetch_all(MYSQLI_ASSOC); } // Handle form submissions if ($_SERVER["REQUEST_METHOD"] == "POST") { if (isset($_POST["add_buyer"])) { // Add new buyer $query = "INSERT INTO buyers (name, phone, rate_tilapia, rate_small_fish, rate_big_fish, delivery_rate, harvesting_fee_tilapia, harvesting_fee_small_fish, harvesting_fee_big_fish) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)"; $stmt = $conn->prepare($query); $stmt->bind_param("ssddddddd", $_POST["name"], $_POST["phone"], $_POST["rate_tilapia"], $_POST["rate_small_fish"], $_POST["rate_big_fish"], $_POST["delivery_rate"], $_POST["harvesting_fee_tilapia"], $_POST["harvesting_fee_small_fish"], $_POST["harvesting_fee_big_fish"]); $stmt->execute(); $_SESSION['flash_message'] = "Buyer added successfully"; } elseif (isset($_POST["add_expense_category"])) { // Add new expense category $query = "INSERT INTO expense_categories (name) VALUES (?)"; $stmt = $conn->prepare($query); $stmt->bind_param("s", $_POST["category_name"]); $stmt->execute(); $_SESSION['flash_message'] = "Expense category added successfully"; } elseif (isset($_POST["add_expense_head"])) { // Add new expense head $query = "INSERT INTO expense_heads (category_id, name) VALUES (?, ?)"; $stmt = $conn->prepare($query); $stmt->bind_param("is", $_POST["category_id"], $_POST["head_name"]); $stmt->execute(); $_SESSION['flash_message'] = "Expense head added successfully"; } elseif (isset($_POST["add_initial_values"])) { // Add or update initial values $query = "INSERT INTO initial_values (cash_in_hand, madhu_balance, rathna_balance, jambukkutti_balance) VALUES (?, ?, ?, ?) ON DUPLICATE KEY UPDATE cash_in_hand = VALUES(cash_in_hand), madhu_balance = VALUES(madhu_balance), rathna_balance = VALUES(rathna_balance), jambukkutti_balance = VALUES(jambukkutti_balance)"; $stmt = $conn->prepare($query); $stmt->bind_param("dddd", $_POST["initial_cash"], $_POST["madhu_balance"], $_POST["rathna_balance"], $_POST["jambukkutti_balance"]); $stmt->execute(); $_SESSION['flash_message'] = "Initial values updated successfully"; } header("Location: base.php"); exit(); } // Get data for the page $buyers = getBuyers($conn); $expenseCategories = getExpenseCategories($conn); // Get current initial values $query = "SELECT * FROM initial_values LIMIT 1"; $result = $conn->query($query); $initialValues = $result->fetch_assoc(); // If no initial values exist, set default values if (!$initialValues) { $initialValues = [ 'cash_in_hand' => 0, 'madhu_balance' => 0, 'rathna_balance' => 0, 'jambukkutti_balance' => 0 ]; } // Helper function to generate buyer rows function generateBuyerRows($buyers) { $rows = ''; foreach ($buyers as $buyer) { $rows .= " {$buyer['name']} {$buyer['phone']} ₹{$buyer['rate_tilapia']} ₹{$buyer['rate_small_fish']} ₹{$buyer['rate_big_fish']} ₹{$buyer['delivery_rate']} ₹{$buyer['harvesting_fee_tilapia']} ₹{$buyer['harvesting_fee_small_fish']} ₹{$buyer['harvesting_fee_big_fish']} Edit | Delete "; } return $rows; } // Helper function to generate expense categories and heads function generateExpenseCategoriesAndHeads($conn, $categories) { $output = ''; foreach ($categories as $category) { $output .= "

{$category['name']}

"; $output .= "
"; $heads = getExpenseHeads($conn, $category['id']); if (!empty($heads)) { $output .= ""; } else { $output .= "

No expense heads found for this category.

"; } } return $output; } // Generate content $buyerRows = generateBuyerRows($buyers); $expenseCategoriesAndHeads = generateExpenseCategoriesAndHeads($conn, $expenseCategories); // Prepare the content $content = <<Base Management

Initial Values

Add Buyer

Buyers List

$buyerRows
Name Phone Tilapia Rate Small Fish Rate Big Fish Rate Delivery Rate Harvesting Fee (Tilapia) Harvesting Fee (Small Fish) Harvesting Fee (Big Fish) Actions

Add Expense Category

Expense Categories and Heads

$expenseCategoriesAndHeads HTML; // Include the main layout include 'main_layout.php'; ?>