import { useState, useEffect } from “react”;
import { Button } from “@/components/ui/button”;
import { Input } from “@/components/ui/input”;
import { Label } from “@/components/ui/label”;
import { Card, CardContent } from “@/components/ui/card”;

export default function CompanyAccountForm() {
const [formData, setFormData] = useState({
itemNumber: “”,
date: “”,
description: “”,
type: “Capital Gain”,
amountLKR: “”,
amountRMB: “”,
billImage: null,
adminPassword: “”
});

const [entries, setEntries] = useState([]);
const [balance, setBalance] = useState(0);
const [searchTerm, setSearchTerm] = useState(“”);
const [filterType, setFilterType] = useState(“”);
const [editIndex, setEditIndex] = useState(null);

useEffect(() => {
const storedEntries = JSON.parse(localStorage.getItem(“companyEntries”)) || [];
setEntries(storedEntries);
calculateBalance(storedEntries);
}, []);

const handleChange = (e) => {
const { name, value } = e.target;
setFormData({ …formData, [name]: value });
};

const handleFileChange = (e) => {
setFormData({ …formData, billImage: e.target.files[0] });
};

const calculateBalance = (entries) => {
let totalBalance = 0;
entries.forEach((entry) => {
if (entry.type === “Capital Gain”) {
totalBalance += parseFloat(entry.amountLKR);
} else {
totalBalance -= parseFloat(entry.amountLKR);
}
});
setBalance(totalBalance);
};

const handleSubmit = (e) => {
e.preventDefault();
if (formData.adminPassword !== “123258”) {
alert(“Incorrect admin password!”);
return;
}
const newEntry = { …formData, amountLKR: parseFloat(formData.amountLKR), amountRMB: parseFloat(formData.amountRMB) };
let updatedEntries;
if (editIndex !== null) {
updatedEntries = […entries];
updatedEntries[editIndex] = newEntry;
setEditIndex(null);
} else {
updatedEntries = […entries, newEntry];
}
setEntries(updatedEntries);
localStorage.setItem(“companyEntries”, JSON.stringify(updatedEntries));
calculateBalance(updatedEntries);
setFormData({
itemNumber: “”,
date: “”,
description: “”,
type: “Capital Gain”,
amountLKR: “”,
amountRMB: “”,
billImage: null,
adminPassword: “”
});
};

const handleEdit = (index) => {
setFormData(entries[index]);
setEditIndex(index);
};

const handleDelete = (index) => {
if (window.confirm(“Are you sure you want to delete this entry?”)) {
const updatedEntries = entries.filter((_, i) => i !== index);
setEntries(updatedEntries);
localStorage.setItem(“companyEntries”, JSON.stringify(updatedEntries));
calculateBalance(updatedEntries);
}
};

const filteredEntries = entries.filter(entry =>
(entry.description.toLowerCase().includes(searchTerm.toLowerCase()) ||
entry.itemNumber.includes(searchTerm)) &&
(filterType ? entry.type === filterType : true)
);

return (










Transaction Records

setSearchTerm(e.target.value)} className=”mt-2″ />

{filteredEntries.map((entry, index) => (

))}

Item No Date Description Type Amount (LKR) Amount (RMB) Actions
{entry.itemNumber} {entry.date} {entry.description} {entry.type} {entry.amountLKR} {entry.amountRMB}
Total Balance Left: LKR {balance.toFixed(2)}


);
}