Files
FEDEO/frontend/pages/settings/numberRanges.vue
flfeders 0eadf42973
All checks were successful
Build and Push Docker Images / build-website (push) Successful in 23s
Build and Push Docker Images / build-docs (push) Successful in 21s
Build and Push Docker Images / build-backend (push) Successful in 23s
Build and Push Docker Images / build-frontend (push) Successful in 1m12s
Build and Push Docker Images / build-central-services-api (push) Successful in 21s
Build and Push Docker Images / build-central-services-admin (push) Successful in 21s
fix: Nummernkreise beim Öffnen aktualisieren
2026-09-09 13:10:50 +02:00

167 lines
3.1 KiB
Vue

<script setup>
const auth = useAuthStore()
const resources = {
customers: {
label: "Kunden"
},
vendors: {
label: "Lieferanten"
},
products: {
label: "Artikel"
},
spaces: {
label: "Lagerplätze"
},
customerspaces: {
label: "Kundenlagerplätze"
},
invoices: {
label: "Rechnungen"
},
quotes: {
label: "Angebote"
},
costEstimates: {
label: "Kostenschätzungen"
},
inventoryitems: {
label: "Inventarartikel"
},
customerinventoryitems: {
label: "Kundeninventarartikel"
},
projects: {
label: "Projekte"
},
confirmationOrders: {
label: "Auftragsbestätigungen"
},
deliveryNotes: {
label: "Lieferscheine"
},
packingSlips: {
label: "Packscheine"
},
costcentres: {
label: "Kostenstellen"
}
}
const createNumberRanges = (ranges = {}) => {
const freshRanges = structuredClone(ranges)
Object.keys(resources).forEach((key) => {
if (!freshRanges[key]) {
freshRanges[key] = {
prefix: "",
suffix: "",
nextNumber: 1000
}
}
})
return freshRanges
}
const numberRanges = ref({})
const loading = ref(true)
const loadNumberRanges = async () => {
loading.value = true
try {
const tenant = await useNuxtApp().$api("/api/tenant")
numberRanges.value = createNumberRanges(tenant?.numberRanges || {})
if (tenant?.id) {
auth.activeTenantData = tenant
}
} finally {
loading.value = false
}
}
onMounted(loadNumberRanges)
const updateNumberRanges = async (range) => {
const tenant = await useNuxtApp().$api(`/api/tenant/numberrange/${range}`,{
method: "PUT",
body: {
numberRange: numberRanges.value[range]
}
})
if (tenant?.id) {
auth.activeTenantData = tenant
numberRanges.value = createNumberRanges(tenant.numberRanges || {})
}
}
</script>
<template>
<UDashboardNavbar
title="Nummernkreise bearbeiten"
>
</UDashboardNavbar>
<UDashboardToolbar>
<UAlert
title="Änderungen an diesen Werten betreffen nur neu Erstellte Einträge."
color="error"
variant="outline"
icon="i-heroicons-exclamation-triangle"
/>
</UDashboardToolbar>
<UProgress
v-if="loading"
animation="carousel"
class="m-5 w-1/2"
/>
<table
v-else
class="m-3"
>
<tr class="text-left">
<th>Typ</th>
<th>Prefix</th>
<th>Nächste Nummer</th>
<th>Suffix</th>
</tr>
<tr
v-for="key in Object.keys(resources)"
:key="key"
>
<td>{{resources[key].label}}</td>
<td>
<UInput
v-model="numberRanges[key].prefix"
@change="updateNumberRanges(key)"
/>
</td>
<td>
<UInput
v-model="numberRanges[key].nextNumber"
@change="updateNumberRanges(key)"
type="number"
step="1"
/>
</td>
<td>
<UInput
v-model="numberRanges[key].suffix"
@change="updateNumberRanges(key)"
/>
</td>
</tr>
</table>
</template>
<style scoped>
</style>