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 .= "
No expense heads found for this category.
"; } } return $output; } // Generate content $buyerRows = generateBuyerRows($buyers); $expenseCategoriesAndHeads = generateExpenseCategoriesAndHeads($conn, $expenseCategories); // Prepare the content $content = <<Base Management| Name | Phone | Tilapia Rate | Small Fish Rate | Big Fish Rate | Delivery Rate | Harvesting Fee (Tilapia) | Harvesting Fee (Small Fish) | Harvesting Fee (Big Fish) | Actions |
|---|