many changes

This commit is contained in:
2024-01-11 18:33:56 +01:00
parent d62fc5d668
commit 12323382a5
17 changed files with 941 additions and 537 deletions

View File

@@ -1,4 +1,6 @@
<script setup>
import dayjs from "dayjs";
definePageMeta({
middleware: "auth"
})
@@ -10,7 +12,7 @@ const router = useRouter()
const toast = useToast()
const id = ref(route.params.id ? route.params.id : null )
let currentItem = null
let currentItem = ref(null)
@@ -24,13 +26,43 @@ const itemInfo = ref({
driver: ""
})
const tabItems = [{
label: 'Informationen',
}, {
label: 'Eingangsrechnungen',
}]
const incomingInvoicesColumns = [
{
key: "state",
label: "Status",
sortable: true
},{
key: "vendor",
label: "Lieferant",
sortable: true
},{
key: "date",
label: "Datum",
sortable: true
},{
key: "description",
label: "Beschreibung",
sortable: true
},{
key: "accounts",
label: "Betrag",
sortable: true
},
]
//Functions
const setupPage = () => {
if(mode.value === "show" || mode.value === "edit"){
currentItem = dataStore.getVehicleById(Number(useRoute().params.id))
currentItem.value = dataStore.getVehicleById(Number(useRoute().params.id))
}
if(mode.value === "edit") itemInfo.value = currentItem
if(mode.value === "edit") itemInfo.value = currentItem.value
@@ -58,7 +90,7 @@ const createItem = async () => {
}
const editCustomer = async () => {
router.push(`/vehicles/edit/${currentItem.id}`)
router.push(`/vehicles/edit/${currentItem.value.id}`)
setupPage()
}
@@ -81,12 +113,23 @@ const updateItem = async () => {
console.log(error)
} else {
router.push(`/vehicles/show/${currentItem.id}`)
router.push(`/vehicles/show/${currentItem.value.id}`)
toast.add({title: "Fahrzeug erfolgreich gespeichert"})
dataStore.fetchVehicles()
}
}
const getRowAmount = (row) => {
let amount = 0
row.accounts.forEach(account => {
amount += account.amountNet
amount += account.amountTax
})
return amount
}
setupPage()
</script>
@@ -108,8 +151,34 @@ setupPage()
{{currentItem.licensePlate}}
</template>
Typ: {{currentItem.type}} <br>
Fahrer: {{dataStore.profiles.find(profile => profile.id === currentItem.driver) ? dataStore.profiles.find(profile => profile.id === currentItem.driver).fullName : 'Kein Fahrer gewählt'}} <br>
<UTabs :items="tabItems">
<template #item="{item}">
<div v-if="item.label === 'Informationen'">
Typ: {{currentItem.type}} <br>
Fahrer: {{dataStore.profiles.find(profile => profile.id === currentItem.driver) ? dataStore.profiles.find(profile => profile.id === currentItem.driver).fullName : 'Kein Fahrer gewählt'}} <br>
</div>
<div v-else-if="item.label === 'Eingangsrechnungen'">
<UTable
:rows="dataStore.getIncomingInvoicesByVehicleId(currentItem.id)"
:columns="incomingInvoicesColumns"
@select="(row) => router.push('/incominginvoices/show/' + row.id)"
>
<template #vendor-data="{row}">
{{dataStore.getVendorById(row.vendor) ? dataStore.getVendorById(row.vendor).name : ""}}
</template>
<template #date-data="{row}">
{{dayjs(row.date).format("DD.MM.YYYY")}}
</template>
<template #accounts-data="{row}">
{{getRowAmount(row) ? String(getRowAmount(row).toFixed(2)).replace('.',',') + " €" : ""}}
</template>
</UTable>
</div>
</template>
</UTabs>