validateForm(e, new_state)} use:enhance>
validateForm(e, edit_state)} use:enhance>

Stundenliste

{#each data.estimates as estimates_pair} {@const year = estimates_pair[0] } {@const mmonths = estimates_pair[1] } {@const yentries = data.records.get(year) ?? new Map()} {#each mmonths as month_pair, mindex} {@const month = month_pair[0] } {@const estimate = month_pair[1] } {@const entries = yentries.get(month) ?? [ null ] } {#each entries as entry, eindex} {@const record_sum = entries.reduce((acc, val) => acc + (val != null ? calculateDuration(val.start, val.end) : 0), 0)} {#if mindex == 0 && eindex == 0} {/if} {#if eindex == 0} {/if} {#if entry == null} {:else if editing?.id != entry.id } {:else}
{ event.preventDefault(); setEditing(null); }} >
{/if} {#if eindex == 0} {@const document = data?.documents?.get(year)?.get(month + 1)} {/if} {/each} {#if entries.length > 0 && entries.length < 4} {#each { length: 4 - entries.length }, i } {/each} {/if} {/each} {/each} {#if data.records === undefined || data.records.length === 0} {/if}
Datum Wochentag Beginn Ende Dauer Anmerkung Actions
acc + ((val?.length ?? 0) < 4 ? 4 : val.length), 0) + 4 * (mmonths.size - yentries.size)}>{year}{MONTHS[month]}{entry.date} {weekday_of(parseDate(entry.date))} {entry.start} {entry.end} {padInt(calculateDuration(entry.start, entry.end), 2, 2, '\u2007;')} {entry.comment ?? ""}
{ event.preventDefault(); setEditing(entry); }} >
Ist {padInt(record_sum, 1, 2, "0", false, false)}
Soll {padInt(estimate, 1, 2, "0", false, false)}
Differenz {padInt(record_sum - estimate, 3, 2, "\u2007", true, false)}
{#if document == null}
{:else}
{/if}
#
No records