diff --git a/spaces/components/DocumentDisplay.vue b/spaces/components/DocumentDisplay.vue
index 9bed3b7..02f6a34 100644
--- a/spaces/components/DocumentDisplay.vue
+++ b/spaces/components/DocumentDisplay.vue
@@ -155,7 +155,7 @@ const updateDocumentAssignment = async () => {
{{dataStore.incomingInvoices.find(item => item.id === documentData.vendorInvoice) ? dataStore.incomingInvoices.find(item => item.id === documentData.vendorInvoice).reference : ''}}
+ >{{dataStore.incominginvoices.find(item => item.id === documentData.vendorInvoice) ? dataStore.incominginvoices.find(item => item.id === documentData.vendorInvoice).reference : ''}}
DATEV
diff --git a/spaces/composables/usePDFGenerator.js b/spaces/composables/usePDFGenerator.js
index e526428..d61f6f5 100644
--- a/spaces/composables/usePDFGenerator.js
+++ b/spaces/composables/usePDFGenerator.js
@@ -95,7 +95,7 @@ export const useCreatePdf = async (invoiceData,backgroundSourceBuffer) => {
opacity: 1
})*/
- pages[pageCounter - 1].drawText("Federspiel Technology UG haftungsbeschränkt, Am Schwarzen Brack 14 26452 Sande", {
+ pages[pageCounter - 1].drawText(invoiceData.adressLine, {
...getCoordinatesForPDFLib(21,48, page1),
size:6,
color:rgb(0,0,0),
diff --git a/spaces/layouts/default.vue b/spaces/layouts/default.vue
index 2d77075..a09e62d 100644
--- a/spaces/layouts/default.vue
+++ b/spaces/layouts/default.vue
@@ -289,6 +289,10 @@ const links = [[{
label: "Artikelstamm",
to: "/products",
icon: "i-heroicons-puzzle-piece"
+ },{
+ label: "Leistungsstamm",
+ to: "/services",
+ icon: "i-heroicons-puzzle-piece"
},
{
label: "Lagerplätze",
@@ -445,13 +449,6 @@ const links = [[{
/>
-
diff --git a/spaces/pages/calendar/[mode].vue b/spaces/pages/calendar/[mode].vue
index 22237f3..0e2441e 100644
--- a/spaces/pages/calendar/[mode].vue
+++ b/spaces/pages/calendar/[mode].vue
@@ -7,6 +7,10 @@ import resourceTimelinePlugin from "@fullcalendar/resource-timeline";
import interactionPlugin from "@fullcalendar/interaction";
import dayjs from "dayjs";
+definePageMeta({
+ middleware: "auth"
+})
+
//Config
const route = useRoute()
const mode = ref(route.params.mode || "grid")
diff --git a/spaces/pages/createDocument/edit/[[id]].vue b/spaces/pages/createDocument/edit/[[id]].vue
index 948f510..509dd28 100644
--- a/spaces/pages/createDocument/edit/[[id]].vue
+++ b/spaces/pages/createDocument/edit/[[id]].vue
@@ -9,7 +9,9 @@ const router = useRouter()
const supabase = useSupabaseClient()
-
+definePageMeta({
+ middleware: "auth"
+})
@@ -142,6 +144,15 @@ const addPosition = (mode) => {
taxPercent: 19,
discountPercent: 0
})
+ } else if(mode === 'service'){
+ itemInfo.value.rows.push({
+ id: lastId +1,
+ mode: "service",
+ quantity: 1,
+ price: 0,
+ taxPercent: 19,
+ discountPercent: 0
+ })
} else if(mode === "pagebreak") {
itemInfo.value.rows.push({
id: lastId +1,
@@ -202,6 +213,7 @@ const getDocumentData = () => {
let customerData = dataStore.getCustomerById(itemInfo.value.customer)
let contactData = dataStore.getContactById(itemInfo.value.contact)
let userData = dataStore.getProfileById(user.value.id)
+ let businessInfo = dataStore.ownTenant.businessInfo
@@ -236,14 +248,14 @@ const getDocumentData = () => {
const returnData = {
-
+ adressLine: `${businessInfo.name}, ${businessInfo.street}, ${businessInfo.zip} ${businessInfo.city}`,
recipient: {
name: customerData.name,
contact: contactData ? `${contactData.firstName} ${contactData.lastName}` : "",
- street: customerData.infoData.street,
- special: "",
- city: customerData.infoData.city,
- zip: customerData.infoData.zip
+ street: itemInfo.value.address.street || customerData.infoData.street,
+ special: itemInfo.value.address.special || customerData.infoData.special,
+ city: itemInfo.value.address.city || customerData.infoData.city,
+ zip: itemInfo.value.address.zip || customerData.infoData.zip
},
info: {
customerNumber: customerData.customerNumber,
@@ -276,12 +288,8 @@ const uri = ref("")
const generateDocument = async () => {
const ownTenant = dataStore.ownTenant
const path = ownTenant.letterheadConfig[itemInfo.value.type]
- console.log(path)
- console.log(ownTenant)
const {data,error} = await supabase.storage.from("files").download(path)
- console.log(data)
- console.log(error)
uri.value = await useCreatePdf(getDocumentData(), await data.arrayBuffer())
//alert(uri.value)
@@ -297,7 +305,7 @@ const onChangeTab = (index) => {
const setPosNumbers = () => {
let index = 1
let rows = itemInfo.value.rows.map(row => {
- if(row.mode === 'free' ||row.mode === 'normal') {
+ if(row.mode !== 'pagebreak') {
row.pos = index
index += 1
}
@@ -480,29 +488,28 @@ setupPage()
-
-
| {{row.pos}} |
|
+
+
+
+ {{dataStore.getServiceById(row.service) ? dataStore.getServiceById(row.service).name : "Keine Leistung ausgewählt" }}
+
+
+ |
|
|
|
|
{{getRowAmount(row)}} €
|
@@ -970,6 +997,12 @@ setupPage()
+
+ + Leistungsposition
+
-
+definePageMeta({
+ middleware: "auth"
+})
const dataStore = useDataStore()
const route = useRoute()
const router = useRouter()
diff --git a/spaces/pages/planningBoard.vue b/spaces/pages/planningBoard.vue
index 49a1d27..74e5b1c 100644
--- a/spaces/pages/planningBoard.vue
+++ b/spaces/pages/planningBoard.vue
@@ -6,6 +6,9 @@ import interactionPlugin from '@fullcalendar/interaction'
import listPlugin from '@fullcalendar/list';
import dayjs from "dayjs";
+definePageMeta({
+ middleware: "auth"
+})
const viewport = useViewport()
diff --git a/spaces/pages/receipts/incomingInvoices/[mode]/[[id]].vue b/spaces/pages/receipts/incomingInvoices/[mode]/[[id]].vue
index aba3738..c0eccd9 100644
--- a/spaces/pages/receipts/incomingInvoices/[mode]/[[id]].vue
+++ b/spaces/pages/receipts/incomingInvoices/[mode]/[[id]].vue
@@ -3,6 +3,10 @@ import InputGroup from "~/components/InputGroup.vue";
import dayjs from "dayjs";
import HistoryDisplay from "~/components/HistoryDisplay.vue";
+definePageMeta({
+ middleware: "auth"
+})
+
const dataStore = useDataStore()
const supabase = useSupabaseClient()
const route = useRoute()
diff --git a/spaces/pages/receipts/index.vue b/spaces/pages/receipts/index.vue
index 9831514..7628764 100644
--- a/spaces/pages/receipts/index.vue
+++ b/spaces/pages/receipts/index.vue
@@ -184,7 +184,7 @@ const searchString = ref('')
const showDrafts = ref(false)
const filteredRows = computed(() => {
- let items = [...dataStore.incomingInvoices.map(i => {return {...i, type: "incomingInvoice"}}),...dataStore.createddocuments]
+ let items = [...dataStore.incominginvoices.map(i => {return {...i, type: "incomingInvoice"}}),...dataStore.createddocuments]
console.log(dataStore.createddocuments)
diff --git a/spaces/pages/services/[mode]/[[id]].vue b/spaces/pages/services/[mode]/[[id]].vue
new file mode 100644
index 0000000..e258bad
--- /dev/null
+++ b/spaces/pages/services/[mode]/[[id]].vue
@@ -0,0 +1,221 @@
+
+
+
+ Leistung: {{currentItem.name}}
+
+
+
+
+
+
+ Bearbeiten
+
+
+ Verkaufspreis: {{Number(currentItem.sellingPrice).toFixed(2)}} €
+
+
+
+
+
+
+ Bestand: {{dataStore.getStockByProductId(currentItem.id)}} {{dataStore.units.find(unit => unit.id === currentItem.unit) ? dataStore.units.find(unit => unit.id === currentItem.unit).name : ""}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{itemInfo.name}}
+
+
+
+
+
+
+
+
+
+
+
+ {{dataStore.units.find(unit => unit.id === itemInfo.unit) ? dataStore.units.find(unit => unit.id === itemInfo.unit).name : itemInfo.unit }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ EUR
+
+
+
+
+
+
+
+ Speichern
+
+
+ Erstellen
+
+
+ Abbrechen
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/spaces/pages/services/index.vue b/spaces/pages/services/index.vue
new file mode 100644
index 0000000..44b5eb9
--- /dev/null
+++ b/spaces/pages/services/index.vue
@@ -0,0 +1,96 @@
+
+
+ + Leistung
+
+
+
+
+
+
+
+
+ {{row.sellingPrice ? Number(row.sellingPrice).toFixed(2) + " €" : ""}}
+
+
+
+ {{dataStore.units.find(unit => unit.id === row.unit) ? dataStore.units.find(unit => unit.id === row.unit).name : row.unit}}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/spaces/pages/settings/index.vue b/spaces/pages/settings/index.vue
index 722d55f..a33ed8d 100644
--- a/spaces/pages/settings/index.vue
+++ b/spaces/pages/settings/index.vue
@@ -1,5 +1,7 @@
| | |