Corrected Errors in Document Creation

This commit is contained in:
2024-11-25 19:43:57 +01:00
parent 5928c34b03
commit 9993217ed1
5 changed files with 104 additions and 65 deletions

View File

@@ -85,7 +85,7 @@ const setupPage = async () => {
if(servicecategories.value.length > 0) selectedServicecategorie.value = servicecategories.value[0].id
if(route.params) {
if(route.params.id) itemInfo.value = dataStore.getCreatedDocumentById(Number(route.params.id))
if(route.params.id) itemInfo.value = await useSupabaseSelectSingle("createddocuments", route.params.id)
if(!itemInfo.value.deliveryDateType) itemInfo.value.deliveryDateType = "Lieferdatum"
@@ -98,7 +98,11 @@ const setupPage = async () => {
if(route.query) {
if(route.query.type) itemInfo.value.type = route.query.type
setDocumentTypeConfig()
if(!itemInfo.value.startText && !itemInfo.value.endText) {
setDocumentTypeConfig(true)
} else {
setDocumentTypeConfig(false)
}
@@ -170,7 +174,7 @@ const setupPage = async () => {
}
}
const setDocumentTypeConfig = () => {
const setDocumentTypeConfig = (withTexts = false) => {
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"}`
@@ -185,11 +189,10 @@ const setDocumentTypeConfig = () => {
itemInfo.value.title = `Auftragsbestätigung-Nr. ${itemInfo.value.documentNumber ? itemInfo.value.documentNumber : "XXXX"}`
}
/*if(!itemInfo.value.startText)*/ itemInfo.value.startText = dataStore.getTextTemplatesByDocumentType(itemInfo.value.type).find(i => i.default && i.pos === "startText").text
/*if(!itemInfo.value.endText)*/ itemInfo.value.endText = dataStore.getTextTemplatesByDocumentType(itemInfo.value.type).find(i => i.default && i.pos === "endText").text
if(withTexts) {
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
@@ -492,12 +495,7 @@ const getDocumentData = () => {
let unit = dataStore.units.find(i => i.id === row.unit)
if(!['pagebreak','title','text'].includes(row.mode)) {
if(row.mode === 'normal') row.text = dataStore.getProductById(row.product).name
if(row.mode === 'service') row.text = dataStore.getServiceById(row.service).name
console.log(row)
if(!['pagebreak','title'].includes(row.mode)){
if(row.agriculture?.description) {
console.log("Row has Agri")
row.descriptionText = row.agriculture.description
@@ -505,6 +503,12 @@ const getDocumentData = () => {
console.log("Row has no Agri")
row.descriptionText = row.description
}
}
if(!['pagebreak','title','text'].includes(row.mode)) {
if(row.mode === 'normal') row.text = dataStore.getProductById(row.product).name
if(row.mode === 'service') row.text = dataStore.getServiceById(row.service).name
return {
...row,
@@ -533,9 +537,6 @@ const getDocumentData = () => {
}
}
const returnData = {
type: itemInfo.value.type,
adressLine: `${businessInfo.name}, ${businessInfo.street}, ${businessInfo.zip} ${businessInfo.city}`,
@@ -645,29 +646,23 @@ const saveSerialInvoice = async () => {
await router.push(`/createDocument/edit/${data[0].id}`)
}
const saveDocument = async () => {
let createData = {
type: itemInfo.value.type,
state: itemInfo.value.state || "Entwurf",
customer: itemInfo.value.customer,
contact: itemInfo.value.contact,
address: itemInfo.value.address,
project: itemInfo.value.project,
documentNumber: itemInfo.value.documentNumber,
documentDate: itemInfo.value.documentDate,
deliveryDate: itemInfo.value.deliveryDate,
paymentDays: itemInfo.value.paymentDays,
deliveryDateType: itemInfo.value.deliveryDateType,
info: {},
createdBy: itemInfo.value.createdBy,
title: itemInfo.value.title,
description: itemInfo.value.description,
startText: itemInfo.value.startText,
endText: itemInfo.value.endText,
rows: itemInfo.value.rows,
contactPerson: itemInfo.value.contactPerson,
linkedDocument: itemInfo.value.linkedDocument,
agriculture: itemInfo.value.agriculture
const saveDocument = async (state) => {
itemInfo.value.state = state
if(state !== "Entwurf") {
console.log("???")
let type = ""
if(itemInfo.value.type === "advanceInvoices"){
type = "invoices"
} else {
type = itemInfo.value.type
}
const numberRange = useNumberRange(type)
itemInfo.value.documentNumber = await numberRange.useNextNumber()
setDocumentTypeConfig(false)
}
if(dataStore.ownTenant.extraModules.includes("agriculture")) {
@@ -695,23 +690,45 @@ const saveDocument = async () => {
}
})
let data = null
if(route.params.id) {
data = await dataStore.updateItem("createddocuments", {...createData, id: itemInfo.value.id})
} else {
data = await dataStore.createNewItem("createddocuments", createData)
let createData = {
type: itemInfo.value.type,
state: itemInfo.value.state || "Entwurf",
customer: itemInfo.value.customer,
contact: itemInfo.value.contact,
address: itemInfo.value.address,
project: itemInfo.value.project,
documentNumber: itemInfo.value.documentNumber,
documentDate: itemInfo.value.documentDate,
deliveryDate: itemInfo.value.deliveryDate,
paymentDays: itemInfo.value.paymentDays,
deliveryDateType: itemInfo.value.deliveryDateType,
info: {},
createdBy: itemInfo.value.createdBy,
title: itemInfo.value.title,
description: itemInfo.value.description,
startText: itemInfo.value.startText,
endText: itemInfo.value.endText,
rows: itemInfo.value.rows,
contactPerson: itemInfo.value.contactPerson,
linkedDocument: itemInfo.value.linkedDocument,
agriculture: itemInfo.value.agriculture,
letterhead: itemInfo.value.letterhead
}
await router.push(`/createDocument/edit/${data[0].id}`)
if(route.params.id) {
await dataStore.updateItem("createddocuments", {...createData, id: itemInfo.value.id})
} else {
const {data} = await dataStore.createNewItem("createddocuments", createData)
await router.push(`/createDocument/edit/${data[0].id}`)
}
await setupPage()
}
const closeDocument = async () => {
itemInfo.value.state = "Gebucht"
await saveDocument()
await saveDocument("Gebucht")
await generateDocument()
@@ -756,7 +773,7 @@ setupPage()
<template #right>
<UButton
icon="i-mdi-content-save"
@click="saveDocument"
@click="saveDocument('Entwurf')"
v-if="itemInfo.type !== 'serialInvoices' "
:disabled="!itemInfo.customer"
>