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

@@ -900,7 +900,7 @@ export const useCreatePdf = async (invoiceData,backgroundSourceBuffer) => {
if(row.descriptionText) { if(row.descriptionText) {
pages[pageCounter - 1].drawText(row.descriptionText.match(/.{1,80}/g).join("\n"), { pages[pageCounter - 1].drawText(row.descriptionText.match(/.{1,100}/g).join("\n"), {
...getCoordinatesForPDFLib(21,rowHeight + ( textAutoLines * 4), page1), ...getCoordinatesForPDFLib(21,rowHeight + ( textAutoLines * 4), page1),
size:10, size:10,
color:rgb(0,0,0), color:rgb(0,0,0),
@@ -1015,7 +1015,6 @@ export const useCreatePdf = async (invoiceData,backgroundSourceBuffer) => {
} }
pages[pageCounter - 1].drawText(invoiceData.endText,{ pages[pageCounter - 1].drawText(invoiceData.endText,{
...getCoordinatesForPDFLib(20,rowHeight+22, page1), ...getCoordinatesForPDFLib(20,rowHeight+22, page1),
size: 10, size: 10,

View File

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

View File

@@ -75,7 +75,7 @@ const openEmail = () => {
</UDashboardToolbar> </UDashboardToolbar>
<object <object
:data="dataStore.documents.find(i => i.createdDocument === itemInfo.id) ? dataStore.documents.find(i => i.createdDocument === itemInfo.id).url : ''" :data="dataStore.documents.find(i => i.id === linkedDocument.id) ? dataStore.documents.find(i => i.id === linkedDocument.id).url : ''"
class="h-full" class="h-full"
/> />

View File

@@ -32,6 +32,9 @@ const resources = {
}, },
projects: { projects: {
label: "Projekte" label: "Projekte"
},
confirmationOrders: {
label: "Auftragsbestätigungen"
} }
} }

View File

@@ -823,7 +823,7 @@ export const useDataStore = defineStore('data', () => {
//console.log(dataType) console.log(dataType)
if(dataTypes[dataType].numberRangeHolder) { if(dataTypes[dataType].numberRangeHolder) {
const numberRange = useNumberRange(dataType) const numberRange = useNumberRange(dataType)
@@ -833,6 +833,7 @@ export const useDataStore = defineStore('data', () => {
} else if(dataType === "createddocuments" && data.type !== "serialInvoices") { } else if(dataType === "createddocuments" && data.type !== "serialInvoices") {
/*if(data.state !== "Entwurf") {
console.log(data.type) console.log(data.type)
let type = "" let type = ""
@@ -844,7 +845,7 @@ export const useDataStore = defineStore('data', () => {
const numberRange = useNumberRange(type) const numberRange = useNumberRange(type)
data.documentNumber = await numberRange.useNextNumber() data.documentNumber = await numberRange.useNextNumber()
}*/
} }
@@ -885,6 +886,25 @@ export const useDataStore = defineStore('data', () => {
const {tenants, ...newData} = data const {tenants, ...newData} = data
/*if(dataType === "createddocuments" && data.type !== "serialInvoices") {
if(data.state !== "Entwurf") {
console.log(data.type)
let type = ""
if(data.type === "advanceInvoices"){
type = "invoices"
} else {
type = data.type
}
const numberRange = useNumberRange(type)
data.documentNumber = await numberRange.useNextNumber()
}
}*/
await generateHistoryItems(dataType,data,oldData) await generateHistoryItems(dataType,data,oldData)