perbaikan refresh timesheet

This commit is contained in:
Aji Setiaji
2025-07-14 12:12:33 +07:00
parent 8657680261
commit 600c0d64a8

View File

@@ -163,7 +163,6 @@
total_work_hour: 0,
remarks: "",
approval: null, // Default null
created_at: new Date().toISOString(),
};
// Fetch initial data on mount
onMount(async () => {
@@ -477,132 +476,6 @@
}
}
// // Function to fetch timesheets with optional filters and sorting
// async function fetchTimeSheets(
// villaIdFilter: string | null = null,
// searchTerm: string | null = null,
// offset: number = 0,
// limit: number = 1000,
// ) {
// let reportedBy: { label: string; value: string }[] = [];
// const { data: staffData, error: staffError } = await supabase
// .from("vb_employee")
// .select("id, employee_name")
// .eq("employee_status", "Active")
// .order("employee_name", { ascending: true });
// if (staffError) {
// console.error("Error fetching staff:", staffError);
// } else if (staffData) {
// reportedBy = staffData.map((s) => ({
// label: s.employee_name,
// value: s.id,
// }));
// }
// let query = supabase
// .from("vb_timesheet")
// .select(`*`)
// .order(sortColumn || "created_at", {
// ascending: sortOrder === "asc",
// });
// if (villaIdFilter) {
// const { data: villaMatch } = await supabase
// .from("vb_villas")
// .select("id")
// .eq("villa_name", villaIdFilter);
// const matchedId = villaMatch?.[0]?.id;
// if (matchedId) {
// query = query.eq("villa_id", matchedId);
// }
// }
// if (offset) {
// query = query.range(offset, offset + limit - 1);
// }
// if (limit) {
// query = query.limit(limit);
// }
// const { data: timesheet, error } = await query;
// if (error) {
// console.error("Error fetching timesheets:", error);
// return;
// }
// const loweredSearch = searchTerm?.toLowerCase();
// let filteredTimesheet = timesheet;
// if (loweredSearch) {
// filteredTimesheet = timesheet.filter((ts) => {
// const workDesc = ts.work_description?.toLowerCase() || "";
// const staffName = reportedBy.find((s) => s.value === ts.entered_by)?.label?.toLowerCase() || "";
// return (
// workDesc.includes(loweredSearch) ||
// staffName.includes(loweredSearch)
// );
// });
// }
// const villaIds = [...new Set(filteredTimesheet.map((i: Timesheets) => i.villa_id))];
// let villas = [];
// if (villaIds.length > 0) {
// const { data: villasData, error: villaError } = await supabase
// .from("vb_villas")
// .select("*")
// .in("id", villaIds);
// if (villaError) {
// console.error("Error fetching villas:", villaError);
// } else {
// villas = villasData;
// }
// }
// const { data: approvers, error: approverError } = await supabase
// .from("vb_users")
// .select("id, full_name");
// if (approverError) {
// console.error("Error fetching approvers:", approverError);
// }
// allRows = filteredTimesheet.map((tsdata: TimesheetsJoined) => {
// const villa = villas.find((v) => v.id === tsdata.villa_id);
// const approver = approvers?.find((u) => u.id === tsdata.approved_by);
// return {
// id: tsdata.id,
// name: tsdata.work_description,
// staff_id:
// reportedBy.find((s) => s.value === tsdata.entered_by)?.label || "Unknown",
// date_in: new Date(tsdata.datetime_in),
// date_out: new Date(tsdata.datetime_out),
// type_of_work: tsdata.type_of_work,
// category_of_work: tsdata.category_of_work,
// villa_name: villa ? villa.villa_name : "Unknown Villa",
// approval:
// tsdata.approval == null
// ? "PENDING"
// : tsdata.approval
// ? "APPROVED"
// : "REJECTED",
// total_hours_work:
// Math.abs(
// new Date(tsdata.datetime_out).getTime() - new Date(tsdata.datetime_in).getTime()
// ) / (1000 * 60 * 60),
// approved_by: approver?.full_name ?? "Not Approved",
// approved_date: tsdata.approved_date,
// remarks: tsdata.remarks,
// // created_at: tsdata.created_at ? new Date(tsdata.created_at) : undefined,
// } as TimesheetDisplay;
// });
// currentPage = 1;
// console.log("Fetched rows:", allRows);
// }
// Function to delete a timesheet
async function deleteTimesheet(id: string) {
if (confirm("Are you sure you want to delete this Timesheet?")) {
@@ -614,7 +487,14 @@
console.error("Error deleting Timesheet:", error);
return;
}
await fetchTimeSheets();
await fetchTimeSheets(
currentVillaFilter,
currentSearchTerm,
sortColumn,
sortOrder,
(currentPage - 1) * rowsPerPage,
rowsPerPage,
);
}
}
// Function to update the approval status of a timesheet
@@ -637,7 +517,14 @@
if (error) {
console.error("Error updating approval status:", error);
} else {
await fetchTimeSheets();
await fetchTimeSheets(
currentVillaFilter,
currentSearchTerm,
sortColumn,
sortOrder,
(currentPage - 1) * rowsPerPage,
rowsPerPage,
);
}
}
// Function to submit the form data
@@ -684,7 +571,6 @@
total_work_hour: form.total_work_hour,
remarks: form.remarks,
approval: form.approval || null, // Allow null for new entries
created_at: new Date().toISOString(),
};
const { error: insertError } = await supabase
@@ -709,9 +595,15 @@
total_work_hour: 0,
remarks: "",
approval: null,
created_at: new Date().toISOString(),
};
await fetchTimeSheets();
await fetchTimeSheets(
currentVillaFilter,
currentSearchTerm,
sortColumn,
sortOrder,
(currentPage - 1) * rowsPerPage,
rowsPerPage,
);
showModal = false;
}
}