diff --git a/pages/createDocument/edit/[[id]].vue b/pages/createDocument/edit/[[id]].vue index f28642f..ddcd5cd 100644 --- a/pages/createDocument/edit/[[id]].vue +++ b/pages/createDocument/edit/[[id]].vue @@ -14,7 +14,6 @@ definePageMeta({ }) - const itemInfo = ref({ type: "invoices", customer: null, @@ -54,17 +53,23 @@ const tabItems = computed(() => { }, { label: "Vorschau", - disabled: !itemInfo.value.customer + disabled: !itemInfo.value.customer || !itemInfo.value.letterhead } ] }) -const setupPage = () => { +const letterheads = ref([]) + +const setupPage = async () => { + + letterheads.value = (await useSupabaseSelect("letterheads","*")).filter(i => i.documentTypes.length === 0 || i.documentTypes.includes(itemInfo.value.type)) + if(route.params) { if(route.params.id) itemInfo.value = dataStore.getCreatedDocumentById(Number(route.params.id)) if(!itemInfo.value.deliveryDateType) itemInfo.value.deliveryDateType = "Lieferdatum" + } if(route.query) { @@ -72,8 +77,7 @@ const setupPage = () => { setDocumentTypeConfig() - itemInfo.value.startText = dataStore.getTextTemplatesByDocumentType(itemInfo.value.type).find(i => i.default && i.pos === "startText").text - itemInfo.value.endText = dataStore.getTextTemplatesByDocumentType(itemInfo.value.type).find(i => i.default && i.pos === "endText").text + setContactPersonData() @@ -88,7 +92,7 @@ const setupPage = () => { } const setDocumentTypeConfig = () => { - if(itemInfo.value.type === "invoices" ||itemInfo.value.type === "advanceInvoices") { + if(itemInfo.value.type === "invoices" ||itemInfo.value.type === "advanceInvoices" || itemInfo.value.type === "serialInvoices") { itemInfo.value.documentNumberTitle = "Rechnungsnummer" itemInfo.value.title = `Rechnung-Nr. ${itemInfo.value.documentNumber ? itemInfo.value.documentNumber : "XXXX"}` } else if(itemInfo.value.type === "quotes") { @@ -102,8 +106,12 @@ const setDocumentTypeConfig = () => { itemInfo.value.title = `Auftragsbestätigung-Nr. ${itemInfo.value.documentNumber ? itemInfo.value.documentNumber : "XXXX"}` } - itemInfo.value.startText = dataStore.texttemplates.find(i => i.documentType === itemInfo.value.type && i.default && i.pos === "startText").text - itemInfo.value.endText = dataStore.texttemplates.find(i => i.documentType === itemInfo.value.type && i.default && i.pos === "endText").text + itemInfo.value.startText = dataStore.getTextTemplatesByDocumentType(itemInfo.value.type).find(i => i.default && i.pos === "startText").text + itemInfo.value.endText = dataStore.getTextTemplatesByDocumentType(itemInfo.value.type).find(i => i.default && i.pos === "endText").text + + + itemInfo.value.letterhead = letterheads.value[0].id + } @@ -170,6 +178,10 @@ const getRowAmount = (row) => { return String(Number(Number(row.quantity) * Number(row.price) * (1 - Number(row.discountPercent) /100) ).toFixed(2)).replace('.',',') } +const getRowAmountUndiscounted = (row) => { + return String(Number(Number(row.quantity) * Number(row.price)).toFixed(2)).replace('.',',') +} + const addPosition = (mode) => { let lastId = 0 @@ -365,7 +377,9 @@ const showDocument = ref(false) const uri = ref("") const generateDocument = async () => { const ownTenant = dataStore.ownTenant - const path = ownTenant.letterheadConfig[itemInfo.value.type] + const path = letterheads.value.find(i => i.id === itemInfo.value.letterhead).path + + //ownTenant.letterheadConfig[itemInfo.value.type] const {data,error} = await supabase.storage.from("files").download(path) @@ -829,6 +843,25 @@ setupPage() + + + + + @@ -985,7 +1018,8 @@ setupPage() :search-attributes="['name']" v-model="row.service" @change="row.unit = dataStore.getServiceById(row.service).unit, - row.price = dataStore.getServiceById(row.service).sellingPrice || 0" + row.price = dataStore.getServiceById(row.service).sellingPrice || 0, + row.description = dataStore.getServiceById(row.service).description" >