Changes in Workingtimes
This commit is contained in:
@@ -107,17 +107,18 @@ export const useCreateWorkingTimesPdf = async (input,backgroundSourceBuffer) =>
|
|||||||
y: getCoordinatesForPDFLib(20,75,pages[pageCounter -1]).y,
|
y: getCoordinatesForPDFLib(20,75,pages[pageCounter -1]).y,
|
||||||
size: 10,
|
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,
|
x: getCoordinatesForPDFLib(20,80,pages[pageCounter -1]).x,
|
||||||
y: getCoordinatesForPDFLib(20,80,pages[pageCounter -1]).y,
|
y: getCoordinatesForPDFLib(20,80,pages[pageCounter -1]).y,
|
||||||
size: 10,
|
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,
|
x: getCoordinatesForPDFLib(20,85,pages[pageCounter -1]).x,
|
||||||
y: getCoordinatesForPDFLib(20,85,pages[pageCounter -1]).y,
|
y: getCoordinatesForPDFLib(20,85,pages[pageCounter -1]).y,
|
||||||
size: 10,
|
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,
|
x: getCoordinatesForPDFLib(20,90,pages[pageCounter -1]).x,
|
||||||
y: getCoordinatesForPDFLib(20,90,pages[pageCounter -1]).y,
|
y: getCoordinatesForPDFLib(20,90,pages[pageCounter -1]).y,
|
||||||
size: 10,
|
size: 10,
|
||||||
|
|||||||
@@ -161,6 +161,17 @@ const addToNewsletter = async () => {
|
|||||||
console.log(data)
|
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>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
@@ -191,9 +202,9 @@ const addToNewsletter = async () => {
|
|||||||
label: 'Informationen'
|
label: 'Informationen'
|
||||||
},{
|
},{
|
||||||
label: 'Logbuch'
|
label: 'Logbuch'
|
||||||
},{
|
},/*{
|
||||||
label: 'Zeiterfassung'
|
label: 'Zeiterfassung'
|
||||||
},{
|
},*/{
|
||||||
label: 'Vertragsdaten'
|
label: 'Vertragsdaten'
|
||||||
},{
|
},{
|
||||||
label: 'Dokumente'
|
label: 'Dokumente'
|
||||||
@@ -307,6 +318,7 @@ const addToNewsletter = async () => {
|
|||||||
:element-id="itemInfo.id"
|
:element-id="itemInfo.id"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
<!--
|
||||||
<div v-if="item.label === 'Zeiterfassung'">
|
<div v-if="item.label === 'Zeiterfassung'">
|
||||||
<Toolbar>
|
<Toolbar>
|
||||||
<UFormGroup
|
<UFormGroup
|
||||||
@@ -400,6 +412,7 @@ const addToNewsletter = async () => {
|
|||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
-->
|
||||||
<div v-if="item.label === 'Vertragsdaten'">
|
<div v-if="item.label === 'Vertragsdaten'">
|
||||||
<Toolbar>
|
<Toolbar>
|
||||||
<UButton
|
<UButton
|
||||||
@@ -415,16 +428,17 @@ const addToNewsletter = async () => {
|
|||||||
>
|
>
|
||||||
<UInput
|
<UInput
|
||||||
v-model="itemInfo.weeklyWorkingHours"
|
v-model="itemInfo.weeklyWorkingHours"
|
||||||
|
type="number"
|
||||||
/>
|
/>
|
||||||
</UFormGroup>
|
</UFormGroup>
|
||||||
<UFormGroup
|
<!-- <UFormGroup
|
||||||
label="Durchschnittliche Arbeitstage pro Woche"
|
label="Durchschnittliche Arbeitstage pro Woche"
|
||||||
class="flex-auto"
|
class="flex-auto"
|
||||||
>
|
>
|
||||||
<UInput
|
<UInput
|
||||||
v-model="itemInfo.weeklyWorkingDays"
|
v-model="itemInfo.weeklyWorkingDays"
|
||||||
/>
|
/>
|
||||||
</UFormGroup>
|
</UFormGroup>-->
|
||||||
<UFormGroup
|
<UFormGroup
|
||||||
label="Urlaubstage"
|
label="Urlaubstage"
|
||||||
class="flex-auto"
|
class="flex-auto"
|
||||||
@@ -434,7 +448,7 @@ const addToNewsletter = async () => {
|
|||||||
/>
|
/>
|
||||||
</UFormGroup>
|
</UFormGroup>
|
||||||
</InputGroup>
|
</InputGroup>
|
||||||
<UDivider>Regelarbeitszeiten</UDivider>
|
<UDivider class="my-3">Regelarbeitszeiten</UDivider>
|
||||||
<InputGroup class="w-full">
|
<InputGroup class="w-full">
|
||||||
<UFormGroup
|
<UFormGroup
|
||||||
label="Montag"
|
label="Montag"
|
||||||
@@ -443,6 +457,7 @@ const addToNewsletter = async () => {
|
|||||||
<UInput
|
<UInput
|
||||||
v-model="itemInfo.weeklyRegularWorkingHours[1]"
|
v-model="itemInfo.weeklyRegularWorkingHours[1]"
|
||||||
type="number"
|
type="number"
|
||||||
|
@change="calcWeeklyWorkingHours"
|
||||||
|
|
||||||
/>
|
/>
|
||||||
</UFormGroup><UFormGroup
|
</UFormGroup><UFormGroup
|
||||||
@@ -452,6 +467,7 @@ const addToNewsletter = async () => {
|
|||||||
<UInput
|
<UInput
|
||||||
v-model="itemInfo.weeklyRegularWorkingHours[2]"
|
v-model="itemInfo.weeklyRegularWorkingHours[2]"
|
||||||
type="number"
|
type="number"
|
||||||
|
@change="calcWeeklyWorkingHours"
|
||||||
|
|
||||||
/>
|
/>
|
||||||
</UFormGroup>
|
</UFormGroup>
|
||||||
@@ -462,6 +478,7 @@ const addToNewsletter = async () => {
|
|||||||
<UInput
|
<UInput
|
||||||
v-model="itemInfo.weeklyRegularWorkingHours[3]"
|
v-model="itemInfo.weeklyRegularWorkingHours[3]"
|
||||||
type="number"
|
type="number"
|
||||||
|
@change="calcWeeklyWorkingHours"
|
||||||
|
|
||||||
/>
|
/>
|
||||||
</UFormGroup>
|
</UFormGroup>
|
||||||
@@ -472,6 +489,7 @@ const addToNewsletter = async () => {
|
|||||||
<UInput
|
<UInput
|
||||||
v-model="itemInfo.weeklyRegularWorkingHours[4]"
|
v-model="itemInfo.weeklyRegularWorkingHours[4]"
|
||||||
type="number"
|
type="number"
|
||||||
|
@change="calcWeeklyWorkingHours"
|
||||||
|
|
||||||
/>
|
/>
|
||||||
</UFormGroup>
|
</UFormGroup>
|
||||||
@@ -482,6 +500,7 @@ const addToNewsletter = async () => {
|
|||||||
<UInput
|
<UInput
|
||||||
v-model="itemInfo.weeklyRegularWorkingHours[5]"
|
v-model="itemInfo.weeklyRegularWorkingHours[5]"
|
||||||
type="number"
|
type="number"
|
||||||
|
@change="calcWeeklyWorkingHours"
|
||||||
|
|
||||||
/>
|
/>
|
||||||
</UFormGroup>
|
</UFormGroup>
|
||||||
@@ -492,6 +511,18 @@ const addToNewsletter = async () => {
|
|||||||
<UInput
|
<UInput
|
||||||
v-model="itemInfo.weeklyRegularWorkingHours[6]"
|
v-model="itemInfo.weeklyRegularWorkingHours[6]"
|
||||||
type="number"
|
type="number"
|
||||||
|
@change="calcWeeklyWorkingHours"
|
||||||
|
|
||||||
|
/>
|
||||||
|
</UFormGroup>
|
||||||
|
<UFormGroup
|
||||||
|
label="Sonntag"
|
||||||
|
class="flex-auto"
|
||||||
|
>
|
||||||
|
<UInput
|
||||||
|
v-model="itemInfo.weeklyRegularWorkingHours[7]"
|
||||||
|
type="number"
|
||||||
|
@change="calcWeeklyWorkingHours"
|
||||||
|
|
||||||
/>
|
/>
|
||||||
</UFormGroup>
|
</UFormGroup>
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ setupPage()
|
|||||||
<h1
|
<h1
|
||||||
v-if="itemInfo"
|
v-if="itemInfo"
|
||||||
class="text-xl font-medium"
|
class="text-xl font-medium"
|
||||||
>{{itemInfo.id ? 'Anwesenheite bearbeiten' : 'Anwesenheit erstellen'}}</h1>
|
>{{itemInfo.id ? 'Anwesenheit bearbeiten' : 'Anwesenheit erstellen'}}</h1>
|
||||||
</template>
|
</template>
|
||||||
<template #right>
|
<template #right>
|
||||||
<UButton
|
<UButton
|
||||||
|
|||||||
@@ -74,16 +74,21 @@ const workingTimeInfo = computed(() => {
|
|||||||
let times = workingtimes.value
|
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.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 weekFactor = 4.33
|
||||||
let monthlyWorkingMinutes = itemInfo.value.weeklyWorkingHours * weekFactor * 60
|
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
|
//Eingreicht
|
||||||
let sumWorkingMinutesEingereicht = 0
|
let sumWorkingMinutesEingereicht = 0
|
||||||
times.filter(i => !i.approved).forEach(time => {
|
times.forEach(time => {
|
||||||
const minutes = dayjs(time.endDate).diff(dayjs(time.startDate),'minutes')
|
const minutes = dayjs(time.endDate).diff(dayjs(time.startDate),'minutes')
|
||||||
sumWorkingMinutesEingereicht = sumWorkingMinutesEingereicht + minutes
|
sumWorkingMinutesEingereicht = sumWorkingMinutesEingereicht + minutes
|
||||||
})
|
})
|
||||||
@@ -140,11 +145,12 @@ const workingTimeInfo = computed(() => {
|
|||||||
|
|
||||||
|
|
||||||
//Saldo
|
//Saldo
|
||||||
let saldo = (sumWorkingMinutesApproved + sumWorkingMinutesRecreationDays +sumWorkingMinutesVacationDays - monthlyWorkingMinutes).toFixed(2)
|
let saldo = (sumWorkingMinutesApproved + sumWorkingMinutesRecreationDays +sumWorkingMinutesVacationDays - workingMinutesTarget).toFixed(2)
|
||||||
let saldoInOfficial = (sumWorkingMinutesApproved + sumWorkingMinutesEingereicht + sumWorkingMinutesRecreationDays + sumWorkingMinutesVacationDays - monthlyWorkingMinutes).toFixed(2)
|
let saldoInOfficial = (sumWorkingMinutesApproved + sumWorkingMinutesEingereicht + sumWorkingMinutesRecreationDays + sumWorkingMinutesVacationDays - workingMinutesTarget).toFixed(2)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
monthlyWorkingMinutes,
|
monthlyWorkingMinutes,
|
||||||
|
workingMinutesTarget,
|
||||||
sumWorkingMinutesEingereicht,
|
sumWorkingMinutesEingereicht,
|
||||||
sumWorkingMinutesApproved,
|
sumWorkingMinutesApproved,
|
||||||
sumWorkingMinutesRecreationDays,
|
sumWorkingMinutesRecreationDays,
|
||||||
@@ -302,7 +308,7 @@ changeRange()
|
|||||||
<p>Genehmigt: {{Math.floor(workingTimeInfo.sumWorkingMinutesApproved/60)}}:{{String(workingTimeInfo.sumWorkingMinutesApproved % 60).padStart(2,"0")}} h</p>
|
<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>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>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>
|
<!-- <p>Abwesend: </p>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user