Letterhead Change & Minor Changes in Doc Creation
This commit is contained in:
@@ -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()
|
||||
</InputGroup>
|
||||
|
||||
</UFormGroup>
|
||||
<UFormGroup
|
||||
label="Briefpapier:"
|
||||
>
|
||||
<USelectMenu
|
||||
:options="letterheads"
|
||||
v-model="itemInfo.letterhead"
|
||||
value-attribute="id"
|
||||
option-attribute="name"
|
||||
searchable
|
||||
searchable-placeholder="Suche..."
|
||||
:search-attributes="['name']"
|
||||
class="w-full"
|
||||
:color="itemInfo.letterhead ? 'primary' : 'rose'"
|
||||
>
|
||||
<template #label>
|
||||
{{itemInfo.letterhead ? letterheads.find(i => i.id === itemInfo.letterhead).name : "Kein Briefpapier gewählt"}}
|
||||
</template>
|
||||
</USelectMenu>
|
||||
</UFormGroup>
|
||||
|
||||
</div>
|
||||
</InputGroup>
|
||||
@@ -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"
|
||||
>
|
||||
<template #label>
|
||||
{{dataStore.getServiceById(row.service) ? dataStore.getServiceById(row.service).name : "Keine Leistung ausgewählt" }}
|
||||
@@ -1099,7 +1133,8 @@ setupPage()
|
||||
<td
|
||||
v-if="row.mode !== 'pagebreak' && row.mode !== 'title'"
|
||||
>
|
||||
<p class="text-right font-bold whitespace-nowrap">{{getRowAmount(row)}} €</p>
|
||||
|
||||
<p class="text-right font-bold whitespace-nowrap"><span v-if="row.discountPercent !== 0" class="line-through mr-2 text-rose-500">{{getRowAmountUndiscounted(row)}} €</span>{{getRowAmount(row)}} €</p>
|
||||
</td>
|
||||
<td>
|
||||
<UButton
|
||||
|
||||
Reference in New Issue
Block a user