Manage Your Agriculture Business Easily

Manage farms, fields, crops and your agricultural business from one simple online platform.

🌾

Everything You Need

🚜

Farms

Manage multiple farms and their locations.

🌱

Crops

Track crops, varieties and planting dates.

💰

Business

Manage agricultural business information.

📊

Reports

Get useful reports about your farm business.

Agri Business App

Manage Your Agriculture Business

Manage farms, fields, crops and your agricultural business from one simple online platform.

My Agriculture Business

🚜

Farms

0

🌱

Blocks

0

🌾

Crops

0

📊

Reports

Coming Soon

/* ========================================= FARM ADD / SAVE ========================================= */ async function openAddFarmForm() { const oldModal = document.getElementById("addFarmModal"); if (oldModal) { oldModal.remove(); } const modal = document.createElement("div"); modal.id = "addFarmModal"; modal.innerHTML = `

🌾 Add New Farm

`; document.body.appendChild(modal); document .getElementById("addFarmForm") .addEventListener("submit", window.saveNewFarm); } function closeAddFarmForm() { const modal = document.getElementById("addFarmModal"); if (modal) { modal.remove(); } } window.saveNewFarm = async function saveNewFarm(event) { event.preventDefault(); const message = document.getElementById("farmFormMessage"); const saveButton = document.getElementById("saveFarmButton"); const farmName = document.getElementById("newFarmName").value.trim(); const location = document.getElementById("newFarmLocation").value.trim(); const areaValue = document.getElementById("newFarmArea").value; const areaUnit = document.getElementById("newFarmAreaUnit").value; const description = document.getElementById("newFarmDescription").value.trim(); if (!farmName) { message.style.display = "block"; message.style.background = "#ffe5e5"; message.style.color = "#a00000"; message.textContent = "Please enter farm name."; return; } saveButton.disabled = true; saveButton.textContent = "Saving..."; try { const { data: sessionData, error: sessionError } = await supabaseClient.auth.getSession(); if (sessionError) { throw sessionError; } const session = sessionData.session; if (!session) { throw new Error( "Your login session has expired. Please login again." ); } const { data: profile, error: profileError } = await supabaseClient .from("profiles") .select("business_id") .eq("id", session.user.id) .single(); if (profileError) { throw profileError; } if (!profile || !profile.business_id) { throw new Error( "Business profile was not found." ); } const { data: newFarm, error: farmError } = await supabaseClient .from("farms") .insert({ business_id: profile.business_id, name: farmName, location: location || null, total_area: areaValue ? Number(areaValue) : null, area_unit: areaUnit, description: description || null }) .select() .single(); if (farmError) { throw farmError; } message.style.display = "block"; message.style.background = "#e6f8ed"; message.style.color = "#08752f"; message.textContent = "Farm saved successfully!"; saveButton.textContent = "✓ Saved"; setTimeout(() => { closeAddFarmForm(); if (typeof openFarmsPage === "function") { openFarmsPage(); } }, 800); } catch (error) { console.error("Farm save error:", error); message.style.display = "block"; message.style.background = "#ffe5e5"; message.style.color = "#a00000"; message.textContent = "Error: " + (error.message || "Unable to save farm."); saveButton.disabled = false; saveButton.textContent = "💾 Save Farm"; } }