Changes in Workingtimes

This commit is contained in:
2024-10-29 15:53:59 +01:00
parent d3a7f0636b
commit ecf7110781
4 changed files with 52 additions and 14 deletions

View File

@@ -107,17 +107,18 @@ export const useCreateWorkingTimesPdf = async (input,backgroundSourceBuffer) =>
y: getCoordinatesForPDFLib(20,75,pages[pageCounter -1]).y,
size: 10,
})
pages[pageCounter - 1].drawText(`Soll Stunden: ${Math.floor(input.monthlyWorkingMinutes/60)}:${String(input.monthlyWorkingMinutes % 60).padStart(2,"0")} Std`,{
pages[pageCounter - 1].drawText(`Feiertagsausgleich: ${Math.floor(input.sumWorkingMinutesRecreationDays/60)}:${String(input.sumWorkingMinutesRecreationDays % 60).padStart(2,"0")} Std`,{
x: getCoordinatesForPDFLib(20,80,pages[pageCounter -1]).x,
y: getCoordinatesForPDFLib(20,80,pages[pageCounter -1]).y,
size: 10,
})
pages[pageCounter - 1].drawText(`Feiertagsausgleich: ${Math.floor(input.sumWorkingMinutesRecreationDays/60)}:${String(input.sumWorkingMinutesRecreationDays % 60).padStart(2,"0")} Std`,{
pages[pageCounter - 1].drawText(`Urlaubsausgleich: ${Math.floor(input.sumWorkingMinutesVacationDays/60)}:${String(input.sumWorkingMinutesVacationDays % 60).padStart(2,"0")} Std`,{
x: getCoordinatesForPDFLib(20,85,pages[pageCounter -1]).x,
y: getCoordinatesForPDFLib(20,85,pages[pageCounter -1]).y,
size: 10,
})
pages[pageCounter - 1].drawText(`Urlaubsausgleich: ${Math.floor(input.sumWorkingMinutesVacationDays/60)}:${String(input.sumWorkingMinutesVacationDays % 60).padStart(2,"0")} Std`,{
pages[pageCounter - 1].drawText(`Soll Stunden: ${Math.floor(input.workingMinutesTarget/60)}:${String(input.workingMinutesTarget % 60).padStart(2,"0")} Std`,{
x: getCoordinatesForPDFLib(20,90,pages[pageCounter -1]).x,
y: getCoordinatesForPDFLib(20,90,pages[pageCounter -1]).y,
size: 10,

View File

@@ -161,6 +161,17 @@ const addToNewsletter = async () => {
console.log(data)
}
const calcWeeklyWorkingHours = () => {
itemInfo.value.weeklyWorkingHours =
itemInfo.value.weeklyRegularWorkingHours[1] +
itemInfo.value.weeklyRegularWorkingHours[2] +
itemInfo.value.weeklyRegularWorkingHours[3] +
itemInfo.value.weeklyRegularWorkingHours[4] +
itemInfo.value.weeklyRegularWorkingHours[5] +
itemInfo.value.weeklyRegularWorkingHours[6] +
itemInfo.value.weeklyRegularWorkingHours[7]
}
</script>
<template>
@@ -191,9 +202,9 @@ const addToNewsletter = async () => {
label: 'Informationen'
},{
label: 'Logbuch'
},{
},/*{
label: 'Zeiterfassung'
},{
},*/{
label: 'Vertragsdaten'
},{
label: 'Dokumente'
@@ -307,6 +318,7 @@ const addToNewsletter = async () => {
:element-id="itemInfo.id"
/>
</div>
<!--
<div v-if="item.label === 'Zeiterfassung'">
<Toolbar>
<UFormGroup
@@ -400,6 +412,7 @@ const addToNewsletter = async () => {
</div>
-->
<div v-if="item.label === 'Vertragsdaten'">
<Toolbar>
<UButton
@@ -415,16 +428,17 @@ const addToNewsletter = async () => {
>
<UInput
v-model="itemInfo.weeklyWorkingHours"
type="number"
/>
</UFormGroup>
<UFormGroup
<!-- <UFormGroup
label="Durchschnittliche Arbeitstage pro Woche"
class="flex-auto"
>
<UInput
v-model="itemInfo.weeklyWorkingDays"
/>
</UFormGroup>
</UFormGroup>-->
<UFormGroup
label="Urlaubstage"
class="flex-auto"
@@ -434,7 +448,7 @@ const addToNewsletter = async () => {
/>
</UFormGroup>
</InputGroup>
<UDivider>Regelarbeitszeiten</UDivider>
<UDivider class="my-3">Regelarbeitszeiten</UDivider>
<InputGroup class="w-full">
<UFormGroup
label="Montag"
@@ -443,6 +457,7 @@ const addToNewsletter = async () => {
<UInput
v-model="itemInfo.weeklyRegularWorkingHours[1]"
type="number"
@change="calcWeeklyWorkingHours"
/>
</UFormGroup><UFormGroup
@@ -452,6 +467,7 @@ const addToNewsletter = async () => {
<UInput
v-model="itemInfo.weeklyRegularWorkingHours[2]"
type="number"
@change="calcWeeklyWorkingHours"
/>
</UFormGroup>
@@ -462,6 +478,7 @@ const addToNewsletter = async () => {
<UInput
v-model="itemInfo.weeklyRegularWorkingHours[3]"
type="number"
@change="calcWeeklyWorkingHours"
/>
</UFormGroup>
@@ -472,6 +489,7 @@ const addToNewsletter = async () => {
<UInput
v-model="itemInfo.weeklyRegularWorkingHours[4]"
type="number"
@change="calcWeeklyWorkingHours"
/>
</UFormGroup>
@@ -482,6 +500,7 @@ const addToNewsletter = async () => {
<UInput
v-model="itemInfo.weeklyRegularWorkingHours[5]"
type="number"
@change="calcWeeklyWorkingHours"
/>
</UFormGroup>
@@ -492,6 +511,18 @@ const addToNewsletter = async () => {
<UInput
v-model="itemInfo.weeklyRegularWorkingHours[6]"
type="number"
@change="calcWeeklyWorkingHours"
/>
</UFormGroup>
<UFormGroup
label="Sonntag"
class="flex-auto"
>
<UInput
v-model="itemInfo.weeklyRegularWorkingHours[7]"
type="number"
@change="calcWeeklyWorkingHours"
/>
</UFormGroup>

View File

@@ -52,7 +52,7 @@ setupPage()
<h1
v-if="itemInfo"
class="text-xl font-medium"
>{{itemInfo.id ? 'Anwesenheite bearbeiten' : 'Anwesenheit erstellen'}}</h1>
>{{itemInfo.id ? 'Anwesenheit bearbeiten' : 'Anwesenheit erstellen'}}</h1>
</template>
<template #right>
<UButton

View File

@@ -74,16 +74,21 @@ const workingTimeInfo = computed(() => {
let times = workingtimes.value
//times = times.filter(i => dayjs(i.date).isBetween(dayjs(selectedStartDay.value).subtract(1,"days"),selectedEndDay.value,'day') && i.end)
times = times.filter(i => dayjs(i.startDate).isSameOrAfter(selectedStartDay.value) && dayjs(i.endDate).isSameOrBefore(selectedEndDay.value))
times = times.filter(i => dayjs(i.startDate).isSameOrAfter(selectedStartDay.value) && dayjs(i.endDate).subtract(1,"day").isSameOrBefore(selectedEndDay.value))
let weekFactor = 4.33
let monthlyWorkingMinutes = itemInfo.value.weeklyWorkingHours * weekFactor * 60
let workingMinutesTarget = Math.ceil(Number((Number(dayjs(selectedEndDay.value).add(1,"days").diff(dayjs(selectedStartDay.value),'month',true).toFixed(2)) * 4.33 * itemInfo.value.weeklyWorkingHours * 60).toFixed(2)))
//Eingreicht
let sumWorkingMinutesEingereicht = 0
times.filter(i => !i.approved).forEach(time => {
times.forEach(time => {
const minutes = dayjs(time.endDate).diff(dayjs(time.startDate),'minutes')
sumWorkingMinutesEingereicht = sumWorkingMinutesEingereicht + minutes
})
@@ -140,11 +145,12 @@ const workingTimeInfo = computed(() => {
//Saldo
let saldo = (sumWorkingMinutesApproved + sumWorkingMinutesRecreationDays +sumWorkingMinutesVacationDays - monthlyWorkingMinutes).toFixed(2)
let saldoInOfficial = (sumWorkingMinutesApproved + sumWorkingMinutesEingereicht + sumWorkingMinutesRecreationDays + sumWorkingMinutesVacationDays - monthlyWorkingMinutes).toFixed(2)
let saldo = (sumWorkingMinutesApproved + sumWorkingMinutesRecreationDays +sumWorkingMinutesVacationDays - workingMinutesTarget).toFixed(2)
let saldoInOfficial = (sumWorkingMinutesApproved + sumWorkingMinutesEingereicht + sumWorkingMinutesRecreationDays + sumWorkingMinutesVacationDays - workingMinutesTarget).toFixed(2)
return {
monthlyWorkingMinutes,
workingMinutesTarget,
sumWorkingMinutesEingereicht,
sumWorkingMinutesApproved,
sumWorkingMinutesRecreationDays,
@@ -302,7 +308,7 @@ changeRange()
<p>Genehmigt: {{Math.floor(workingTimeInfo.sumWorkingMinutesApproved/60)}}:{{String(workingTimeInfo.sumWorkingMinutesApproved % 60).padStart(2,"0")}} h</p>
<p>Feiertagsausgleich: {{Math.floor(workingTimeInfo.sumWorkingMinutesRecreationDays/60)}}:{{String(workingTimeInfo.sumWorkingMinutesRecreationDays % 60).padStart(2,"0")}} h / {{workingTimeInfo.sumRecreationDays}} Tage</p>
<p>Urlaubsausgleich: {{Math.floor(workingTimeInfo.sumWorkingMinutesVacationDays/60)}}:{{String(workingTimeInfo.sumWorkingMinutesVacationDays % 60).padStart(2,"0")}} h / {{workingTimeInfo.sumVacationDays}} Tage</p>
<p>Soll Stunden: {{Math.floor(workingTimeInfo.monthlyWorkingMinutes/60)}}:{{String(workingTimeInfo.monthlyWorkingMinutes % 60).padStart(2,"0")}} h</p>
<p>Soll Stunden: {{Math.floor(workingTimeInfo.workingMinutesTarget/60)}}:{{String(workingTimeInfo.workingMinutesTarget % 60 ).padStart(2,"0")}} h</p>
<!-- <p>Abwesend: </p>