🕒 Timesheet List

Manage and track timesheets for staff members.

{ const searchTerm = ( e.target as HTMLInputElement ).value.toLowerCase(); fetchTimeSheets(null, searchTerm, "created_at", "desc"); }} />
{#each columns as col} {#if col.key === "name"} {:else} {/if} {/each} {#each paginatedRows as row} {#each columns as col} {#if col.key === "name"} {:else if col.key === "approval"} {:else if col.key === "approved_by"} {:else if col.key === "approved_date"} {:else if col.key === "total_hours_work"} {:else if col.key === "created_at"} {:else if col.key === "villa_name"} {:else if col.key === "staff_id"} {:else if col.key === "remarks"} {:else if col.key === "actions"} {:else} {/if} {/each} {/each}
{col.title} {col.title}
{row[col.key]} {row[col.key]} {#if row.approval === "PENDING"} {/if} {row[col.key] || "Not Approved"} {row[col.key] !== undefined ? new Date( row[col.key]!, ).toLocaleDateString() : "N/A"} {row[col.key].toFixed(2)} hours {row[col.key] !== undefined ? new Date( row[col.key]!, ).toLocaleDateString() : "N/A"} {row[col.key] || "Unknown Villa"} {row[col.key] || "Unknown Staff"} {row[col.key] || "No remarks"} {row[col.key as keyof TimesheetDisplay]}
Showing {(currentPage - 1) * rowsPerPage + 1}– {Math.min(currentPage * rowsPerPage, allRows.length)} of {allRows.length}
{#each Array(totalPages) .fill(0) .map((_, i) => i + 1) as page} {/each}
{#if showModal}

{isEditing ? "Edit Issue" : "Add New Issue"}

{#each formColumns as col} {#if col.key === "name"}
{#if $formErrors[col.key]}

{$formErrors[col.key]}

{/if}
{:else if col.key === "remarks"}
{#if $formErrors[col.key]}

{$formErrors[col.key]}

{/if}
{:else if col.key === "type_of_work" || col.key === "category_of_work"}
{#if $formErrors[col.key]}

{$formErrors[col.key]}

{/if}
{:else if col.key === "villa_id"}
{#if $formErrors[col.key]}

{$formErrors[col.key]}

{/if}
{:else if col.key === "date_in" || col.key === "date_out"}
{#if $formErrors[col.key]}

{$formErrors[col.key]}

{/if}
{:else if col.key === "entered_by"}
{#if $formErrors[col.key]}

{$formErrors[col.key]}

{/if}
{:else} {/if} {/each}
{#if $formErrors.total_work_hour}

{$formErrors.total_work_hour}

{/if}
{/if}