BETA for new DB

This commit is contained in:
2025-12-07 22:17:57 +01:00
parent 253b04ec0d
commit 9bfb880f7b
3 changed files with 73 additions and 39 deletions

View File

@@ -40,7 +40,8 @@ const links = computed(() => {
id: 'historyitems', id: 'historyitems',
label: "Logbuch", label: "Logbuch",
to: "/historyitems", to: "/historyitems",
icon: "i-heroicons-book-open" icon: "i-heroicons-book-open",
disabled: true
}, },
{ {
label: "Organisation", label: "Organisation",
@@ -52,7 +53,7 @@ const links = computed(() => {
to: "/standardEntity/tasks", to: "/standardEntity/tasks",
icon: "i-heroicons-rectangle-stack" icon: "i-heroicons-rectangle-stack"
}] : [], }] : [],
... true ? [{ /*... true ? [{
label: "Plantafel", label: "Plantafel",
to: "/calendar/timeline", to: "/calendar/timeline",
icon: "i-heroicons-calendar-days" icon: "i-heroicons-calendar-days"
@@ -66,7 +67,7 @@ const links = computed(() => {
label: "Termine", label: "Termine",
to: "/standardEntity/events", to: "/standardEntity/events",
icon: "i-heroicons-calendar-days" icon: "i-heroicons-calendar-days"
}] : [], }] : [],*/
/*{ /*{
label: "Dateien", label: "Dateien",
to: "/files", to: "/files",
@@ -83,10 +84,16 @@ const links = computed(() => {
label: "Dateien", label: "Dateien",
to: "/files", to: "/files",
icon: "i-heroicons-document" icon: "i-heroicons-document"
},{
label: "Anschreiben",
to: "/createdletters",
icon: "i-heroicons-document",
disabled: true
},{ },{
label: "Boxen", label: "Boxen",
to: "/standardEntity/documentboxes", to: "/standardEntity/documentboxes",
icon: "i-heroicons-archive-box" icon: "i-heroicons-archive-box",
disabled: true
}, },
] ]
}, },
@@ -98,12 +105,14 @@ const links = computed(() => {
{ {
label: "Helpdesk", label: "Helpdesk",
to: "/helpdesk", to: "/helpdesk",
icon: "i-heroicons-chat-bubble-left-right" icon: "i-heroicons-chat-bubble-left-right",
disabled: true
}, },
{ {
label: "E-Mail", label: "E-Mail",
to: "/email/new", to: "/email/new",
icon: "i-heroicons-envelope" icon: "i-heroicons-envelope",
disabled: true
}/*, { }/*, {
label: "Logbücher", label: "Logbücher",
to: "/communication/historyItems", to: "/communication/historyItems",
@@ -145,7 +154,8 @@ const links = computed(() => {
... true ? [{ ... true ? [{
label: "Anwesenheiten", label: "Anwesenheiten",
to: "/staff/time", to: "/staff/time",
icon: "i-heroicons-clock" icon: "i-heroicons-clock",
disabled: true
}] : [], }] : [],
/*... has("absencerequests") ? [{ /*... has("absencerequests") ? [{
label: "Abwesenheiten", label: "Abwesenheiten",
@@ -175,7 +185,8 @@ const links = computed(() => {
},{ },{
label: "Eingangsbelege", label: "Eingangsbelege",
to: "/incomingInvoices", to: "/incomingInvoices",
icon: "i-heroicons-document-text" icon: "i-heroicons-document-text",
disabled: true
},{ },{
label: "Kostenstellen", label: "Kostenstellen",
to: "/standardEntity/costcentres", to: "/standardEntity/costcentres",
@@ -183,7 +194,8 @@ const links = computed(() => {
},{ },{
label: "Buchungskonten", label: "Buchungskonten",
to: "/accounts", to: "/accounts",
icon: "i-heroicons-document-text" icon: "i-heroicons-document-text",
disabled: true
},{ },{
label: "zusätzliche Buchungskonten", label: "zusätzliche Buchungskonten",
to: "/standardEntity/ownaccounts", to: "/standardEntity/ownaccounts",
@@ -192,7 +204,8 @@ const links = computed(() => {
{ {
label: "Bank", label: "Bank",
to: "/banking", to: "/banking",
icon: "i-heroicons-document-text" icon: "i-heroicons-document-text",
disabled: true
}, },
] ]
}], }],
@@ -285,11 +298,11 @@ const links = computed(() => {
to: "/standardEntity/plants", to: "/standardEntity/plants",
icon: "i-heroicons-clipboard-document" icon: "i-heroicons-clipboard-document"
},] : [], },] : [],
... has("checks") ? [{ /*... has("checks") ? [{
label: "Überprüfungen", label: "Überprüfungen",
to: "/standardEntity/checks", to: "/standardEntity/checks",
icon: "i-heroicons-magnifying-glass" icon: "i-heroicons-magnifying-glass"
},] : [], },] : [],*/
{ {
label: "Einstellungen", label: "Einstellungen",
defaultOpen: false, defaultOpen: false,
@@ -298,7 +311,8 @@ const links = computed(() => {
{ {
label: "Nummernkreise", label: "Nummernkreise",
to: "/settings/numberRanges", to: "/settings/numberRanges",
icon: "i-heroicons-clipboard-document-list" icon: "i-heroicons-clipboard-document-list",
disabled: true
},/*{ },/*{
label: "Rollen", label: "Rollen",
to: "/roles", to: "/roles",
@@ -306,15 +320,18 @@ const links = computed(() => {
},*/{ },*/{
label: "E-Mail Konten", label: "E-Mail Konten",
to: "/settings/emailaccounts", to: "/settings/emailaccounts",
icon: "i-heroicons-envelope" icon: "i-heroicons-envelope",
disabled: true
},{ },{
label: "Bankkonten", label: "Bankkonten",
to: "/settings/banking", to: "/settings/banking",
icon: "i-heroicons-currency-euro" icon: "i-heroicons-currency-euro",
disabled: true
},{ },{
label: "Textvorlagen", label: "Textvorlagen",
to: "/settings/texttemplates", to: "/settings/texttemplates",
icon: "i-heroicons-clipboard-document-list" icon: "i-heroicons-clipboard-document-list",
disabled: true
},/*{ },/*{
label: "Eigene Felder", label: "Eigene Felder",
to: "/settings/ownfields", to: "/settings/ownfields",
@@ -322,15 +339,18 @@ const links = computed(() => {
},*/{ },*/{
label: "Firmeneinstellungen", label: "Firmeneinstellungen",
to: "/settings/tenant", to: "/settings/tenant",
icon: "i-heroicons-building-office" icon: "i-heroicons-building-office",
disabled: true
},{ },{
label: "Projekttypen", label: "Projekttypen",
to: "/projecttypes", to: "/projecttypes",
icon: "i-heroicons-clipboard-document-list" icon: "i-heroicons-clipboard-document-list",
disabled: true
},{ },{
label: "Export", label: "Export",
to: "/export", to: "/export",
icon: "i-heroicons-clipboard-document-list" icon: "i-heroicons-clipboard-document-list",
disabled: true
} }
] ]
} }

View File

@@ -83,7 +83,9 @@
> >
<template #type-data="{row}"> <template #type-data="{row}">
{{dataStore.documentTypesForCreation[row.type].labelSingle}} {{dataStore.documentTypesForCreation[row.type].labelSingle}}
<!--
<span v-if="row.type === 'cancellationInvoices'"> zu {{row.linkedDocument.documentNumber}}</span> <span v-if="row.type === 'cancellationInvoices'"> zu {{row.linkedDocument.documentNumber}}</span>
-->
</template> </template>
<template #state-data="{row}"> <template #state-data="{row}">
<span <span
@@ -132,19 +134,25 @@
<span v-if="row.documentDate">{{row.documentDate ? dayjs(row.documentDate).format("DD.MM.YY") : ''}}</span> <span v-if="row.documentDate">{{row.documentDate ? dayjs(row.documentDate).format("DD.MM.YY") : ''}}</span>
</template> </template>
<template #dueDate-data="{row}"> <template #dueDate-data="{row}">
<!--
<span v-if="row.state === 'Gebucht' && row.paymentDays && ['invoices','advanceInvoices'].includes(row.type) && !items.find(i => i.linkedDocument && i.linkedDocument.id === row.id)" :class="dayjs(row.documentDate).add(row.paymentDays,'day').diff(dayjs()) <= 0 && !isPaid(row) ? ['text-rose-500'] : '' ">{{row.documentDate ? dayjs(row.documentDate).add(row.paymentDays,'day').format("DD.MM.YY") : ''}}</span> <span v-if="row.state === 'Gebucht' && row.paymentDays && ['invoices','advanceInvoices'].includes(row.type) && !items.find(i => i.linkedDocument && i.linkedDocument.id === row.id)" :class="dayjs(row.documentDate).add(row.paymentDays,'day').diff(dayjs()) <= 0 && !isPaid(row) ? ['text-rose-500'] : '' ">{{row.documentDate ? dayjs(row.documentDate).add(row.paymentDays,'day').format("DD.MM.YY") : ''}}</span>
-->
</template> </template>
<template #paid-data="{row}"> <template #paid-data="{row}">
<div v-if="(row.type === 'invoices' ||row.type === 'advanceInvoices') && row.state === 'Gebucht' && !items.find(i => i.linkedDocument && i.linkedDocument.id === row.id)"> <!-- <div v-if="(row.type === 'invoices' ||row.type === 'advanceInvoices') && row.state === 'Gebucht' && !items.find(i => i.linkedDocument && i.linkedDocument.id === row.id)">
<span v-if="useSum().getIsPaid(row,items)" class="text-primary-500">Bezahlt</span> <span v-if="useSum().getIsPaid(row,items)" class="text-primary-500">Bezahlt</span>
<span v-else class="text-rose-600">Offen</span> <span v-else class="text-rose-600">Offen</span>
</div> </div>-->
</template> </template>
<template #amount-data="{row}"> <template #amount-data="{row}">
<!--
<span v-if="row.type !== 'deliveryNotes'">{{displayCurrency(useSum().getCreatedDocumentSum(row,items))}}</span> <span v-if="row.type !== 'deliveryNotes'">{{displayCurrency(useSum().getCreatedDocumentSum(row,items))}}</span>
-->
</template> </template>
<template #amountOpen-data="{row}"> <template #amountOpen-data="{row}">
<!--
<span v-if="!['deliveryNotes','cancellationInvoices','quotes','confirmationOrders'].includes(row.type) && row.state !== 'Entwurf' && !useSum().getIsPaid(row,items) && !items.find(i => i.linkedDocument && i.linkedDocument.id === row.id) ">{{displayCurrency(useSum().getCreatedDocumentSum(row, items) - row.statementallocations.reduce((n,{amount}) => n + amount, 0))}}</span> <span v-if="!['deliveryNotes','cancellationInvoices','quotes','confirmationOrders'].includes(row.type) && row.state !== 'Entwurf' && !useSum().getIsPaid(row,items) && !items.find(i => i.linkedDocument && i.linkedDocument.id === row.id) ">{{displayCurrency(useSum().getCreatedDocumentSum(row, items) - row.statementallocations.reduce((n,{amount}) => n + amount, 0))}}</span>
-->
</template> </template>
</UTable> </UTable>
</div> </div>

View File

@@ -950,7 +950,7 @@ export const useDataStore = defineStore('data', () => {
selectSearchAttributes: ['name'], selectSearchAttributes: ['name'],
}, },
{ {
key: "purchasePrice", key: "purchase_price",
label: "Einkaufspreis", label: "Einkaufspreis",
component: purchasePrice, component: purchasePrice,
inputType: "number", inputType: "number",
@@ -963,7 +963,7 @@ export const useDataStore = defineStore('data', () => {
} }
} }
},{ },{
key: "markupPercentage", key: "markup_percentage",
label: "Aufschlag", label: "Aufschlag",
inputType: "number", inputType: "number",
inputTrailing: "%", inputTrailing: "%",
@@ -977,7 +977,7 @@ export const useDataStore = defineStore('data', () => {
} }
} }
},{ },{
key: "sellingPrice", key: "selling_price",
label: "Verkaufpreispreis", label: "Verkaufpreispreis",
required: true, required: true,
component: sellingPrice, component: sellingPrice,
@@ -991,7 +991,7 @@ export const useDataStore = defineStore('data', () => {
} }
} }
},{ },{
key: "taxPercentage", key: "tax_percentage",
label: "Umsatzsteuer", label: "Umsatzsteuer",
inputType: "select", inputType: "select",
selectOptionAttribute: "label", selectOptionAttribute: "label",
@@ -1194,7 +1194,7 @@ export const useDataStore = defineStore('data', () => {
inputType: "bool", inputType: "bool",
sortable: true sortable: true
},{ },{
key: 'licensePlate', key: 'license_plate',
label: "Kennzeichen", label: "Kennzeichen",
required: true, required: true,
inputType: "text", inputType: "text",
@@ -1219,18 +1219,18 @@ export const useDataStore = defineStore('data', () => {
component: driver component: driver
},*/ },*/
{ {
key: "tankSize", key: "tank_size",
label: "Tankvolumen", label: "Tankvolumen",
unit: "L", unit: "L",
inputType: "number" inputType: "number"
}, },
{ {
key: "buildYear", key: "build_year",
label: "Baujahr", label: "Baujahr",
inputType: "number" inputType: "number"
}, },
{ {
key: "towingCapacity", key: "towing_capacity",
label: "Anhängelast", label: "Anhängelast",
unit: "Kg", unit: "Kg",
inputType: "number", inputType: "number",
@@ -1242,7 +1242,7 @@ export const useDataStore = defineStore('data', () => {
inputType: "text" inputType: "text"
}, },
{ {
key: "powerInKW", key: "power_in_kw",
label: "Leistung", label: "Leistung",
unit: "kW", unit: "kW",
inputType: "number", inputType: "number",
@@ -1459,7 +1459,7 @@ export const useDataStore = defineStore('data', () => {
sortable: true sortable: true
}, },
{ {
key: 'spaceNumber', key: 'space_number',
label: "Lagerplatznr.", label: "Lagerplatznr.",
inputType: "text", inputType: "text",
inputIsNumberRange: true, inputIsNumberRange: true,
@@ -1483,7 +1483,7 @@ export const useDataStore = defineStore('data', () => {
sortable: true sortable: true
}, },
{ {
key: "parentSpace", key: "parent_space",
label: "Übergeordneter Lagerplatz", label: "Übergeordneter Lagerplatz",
inputType: "select", inputType: "select",
selectDataType: "spaces", selectDataType: "spaces",
@@ -1492,21 +1492,21 @@ export const useDataStore = defineStore('data', () => {
inputColumn: "Allgemeines" inputColumn: "Allgemeines"
}, },
{ {
key: "infoData.streetNumber", key: "info_data.streetNumber",
label: "Straße + Hausnummer", label: "Straße + Hausnummer",
inputType: "text", inputType: "text",
disabledInTable: true, disabledInTable: true,
inputColumn: "Ort" inputColumn: "Ort"
}, },
{ {
key: "infoData.special", key: "info_data.special",
label: "Adresszusatz", label: "Adresszusatz",
inputType: "text", inputType: "text",
disabledInTable: true, disabledInTable: true,
inputColumn: "Ort" inputColumn: "Ort"
}, },
{ {
key: "infoData.zip", key: "info_data.zip",
label: "Postleitzahl", label: "Postleitzahl",
inputType: "number", inputType: "number",
disabledInTable: true, disabledInTable: true,
@@ -1518,14 +1518,14 @@ export const useDataStore = defineStore('data', () => {
}, },
}, },
{ {
key: "infoData.city", key: "info_data.city",
label: "Stadt", label: "Stadt",
inputType: "text", inputType: "text",
disabledInTable: true, disabledInTable: true,
inputColumn: "Ort" inputColumn: "Ort"
}, },
{ {
key: "infoData.country", key: "info_data.country",
label: "Land", label: "Land",
inputType: "select", inputType: "select",
selectDataType: "countrys", selectDataType: "countrys",
@@ -1574,6 +1574,12 @@ export const useDataStore = defineStore('data', () => {
} }
} }
} }
],
templateColumns: [
{
key: "customer",
distinct: true
}
] ]
}, },
tickets: { tickets: {
@@ -2192,8 +2198,8 @@ export const useDataStore = defineStore('data', () => {
label: "Fahrzeuge", label: "Fahrzeuge",
inputType: "select", inputType: "select",
selectDataType: "vehicles", selectDataType: "vehicles",
selectOptionAttribute: "licensePlate", selectOptionAttribute: "license_plate",
selectSearchAttributes: ['licensePlate'], selectSearchAttributes: ['license_plate'],
selectMultiple: true, selectMultiple: true,
component: vehiclesWithLoad, component: vehiclesWithLoad,
},{ },{