From ca15cfbd0b6327aa7f7f4f41f45fd5c091d0e03d Mon Sep 17 00:00:00 2001 From: flfeders Date: Tue, 8 Oct 2024 16:08:30 +0200 Subject: [PATCH] Changes --- pages/createDocument/edit/[[id]].vue | 36 +++++++++++++++++++++------- stores/data.js | 4 +++- 2 files changed, 30 insertions(+), 10 deletions(-) diff --git a/pages/createDocument/edit/[[id]].vue b/pages/createDocument/edit/[[id]].vue index 8ee4760..a27ec93 100644 --- a/pages/createDocument/edit/[[id]].vue +++ b/pages/createDocument/edit/[[id]].vue @@ -61,6 +61,7 @@ const itemInfo = ref({ const letterheads = ref([]) const createdDocuments = ref([]) +const projects = ref([]) const products = ref([]) const productcategories = ref([]) const selectedProductcategorie = ref(null) @@ -72,6 +73,7 @@ const setupPage = async () => { letterheads.value = (await useSupabaseSelect("letterheads","*")).filter(i => i.documentTypes.length === 0 || i.documentTypes.includes(itemInfo.value.type)) createdDocuments.value = (await useSupabaseSelect("createddocuments","*")) + projects.value = (await useSupabaseSelect("projects","*")) services.value = (await useSupabaseSelect("services","*")) servicecategories.value = (await useSupabaseSelect("servicecategories","*")) products.value = (await useSupabaseSelect("products","*")) @@ -304,6 +306,7 @@ const findDocumentErrors = computed(() => { let errors = [] if(itemInfo.value.customer === null) errors.push({message: "Es ist kein Kunde ausgewählt", type: "breaking"}) + if(itemInfo.value.contact === null) errors.push({message: "Es ist kein Kontakt ausgewählt", type: "info"}) if(itemInfo.value.letterhead === null) errors.push({message: "Es ist kein Briefpapier ausgewählt", type: "breaking"}) if(itemInfo.value.address.street === null) errors.push({message: "Es ist keine Straße im Adressat angegeben", type: "breaking"}) if(itemInfo.value.address.zip === null) errors.push({message: "Es ist keine Postleitzahl im Adressat angegeben", type: "breaking"}) @@ -311,12 +314,19 @@ const findDocumentErrors = computed(() => { if(itemInfo.value.project === null) errors.push({message: "Es ist kein Projekt ausgewählt", type: "info"}) - itemInfo.value.rows.forEach(row => { - if(row.mode === "normal" && !row.product) errors.push({message: `In Position ${row.pos} ist kein Artikel ausgewählt`, type: "breaking"}) - if(row.mode === "service" && !row.service) errors.push({message: `In Position ${row.pos} ist keine Leistung ausgewählt`, type: "breaking"}) - if(row.mode === "title" && !row.text) errors.push({message: `In Position ${row.pos} ist kein Titel hinterlegt`, type: "breaking"}) - if(row.mode === "text" && !row.text) errors.push({message: `In einer Freitext Position ist kein Titel hinterlegt`, type: "breaking"}) - }) + if(itemInfo.value.rows.length === 0) { + errors.push({message: "Es sind keine Positionen angegeben", type: "breaking"}) + } else { + itemInfo.value.rows.forEach(row => { + if(row.mode === "normal" && !row.product) errors.push({message: `In Position ${row.pos} ist kein Artikel ausgewählt`, type: "breaking"}) + if(row.mode === "service" && !row.service) errors.push({message: `In Position ${row.pos} ist keine Leistung ausgewählt`, type: "breaking"}) + if(row.mode === "title" && !row.text) errors.push({message: `In Position ${row.pos} ist kein Titel hinterlegt`, type: "breaking"}) + if(row.mode === "text" && !row.text) errors.push({message: `In einer Freitext Position ist kein Titel hinterlegt`, type: "breaking"}) + }) + } + + + if(itemInfo.value.type === "serialInvoices") { if(!itemInfo.value.serialConfig.intervall) errors.push({message: `Kein Intervall für die Ausführung festgelegt`, type: "breaking"}) @@ -326,7 +336,7 @@ const findDocumentErrors = computed(() => { } - return errors + return errors.sort((a,b) => (a.type === "breaking") ? -1 : 1) }) const tabItems = computed(() => { @@ -975,7 +985,7 @@ setupPage() > + { let oldVal = prop.data.o || "-" let newVal = prop.data.n || "-" - + /*console.log(key) + console.log(oldVal) + console.log(newVal)*/ if(key === "project") { name = "Projekt"