KI-AGENT: E-Rechnungen in der Belegvorbereitung verarbeiten
This commit is contained in:
@@ -149,6 +149,18 @@ const bankBookingDateLabel = computed(() => {
|
||||
return bankBookingDates.value.map(formatDate).join(", ")
|
||||
})
|
||||
const vendorName = computed(() => vendors.value.find((vendor) => vendor.id === itemInfo.value.vendor)?.name || "-")
|
||||
const eInvoiceValidation = computed(() => itemInfo.value.eInvoiceValidation || null)
|
||||
const eInvoiceSourceLabel = computed(() => {
|
||||
if (itemInfo.value.preparationSource !== "e-invoice") return null
|
||||
if (itemInfo.value.eInvoiceSyntax === "cii") {
|
||||
return String(itemInfo.value.eInvoiceProfile || "").toLowerCase().includes("xrechnung")
|
||||
? "XRechnung (CII)"
|
||||
: "ZUGFeRD / Factur-X (CII)"
|
||||
}
|
||||
if (itemInfo.value.eInvoiceSyntax === "ubl-credit-note") return "XRechnung / UBL-Gutschrift"
|
||||
return "XRechnung / UBL"
|
||||
})
|
||||
const eInvoiceProfileLabel = computed(() => itemInfo.value.eInvoiceProfile || "Profil nicht angegeben")
|
||||
const getAccountLabel = (item) => {
|
||||
const account = accounts.value.find((entry) => entry.id === item.account)
|
||||
|
||||
@@ -356,6 +368,35 @@ const hasBlockingIncomingInvoiceErrors = computed(() => blockingIncomingInvoiceE
|
||||
Dokument andocken
|
||||
</UButton>
|
||||
|
||||
<UAlert
|
||||
v-if="eInvoiceSourceLabel"
|
||||
:title="eInvoiceSourceLabel"
|
||||
color="primary"
|
||||
variant="soft"
|
||||
icon="i-heroicons-document-check"
|
||||
>
|
||||
<template #description>
|
||||
<div class="mt-1 space-y-2 text-sm">
|
||||
<p class="break-all">{{ eInvoiceProfileLabel }}</p>
|
||||
<div v-if="eInvoiceValidation?.errors?.length">
|
||||
<p class="font-semibold">Validierungsfehler</p>
|
||||
<ul class="list-inside list-disc">
|
||||
<li v-for="error in eInvoiceValidation.errors" :key="error">{{ error }}</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div v-if="eInvoiceValidation?.warnings?.length">
|
||||
<p class="font-semibold">Hinweise</p>
|
||||
<ul class="list-inside list-disc">
|
||||
<li v-for="warning in eInvoiceValidation.warnings" :key="warning">{{ warning }}</li>
|
||||
</ul>
|
||||
</div>
|
||||
<p v-if="!eInvoiceValidation?.errors?.length && !eInvoiceValidation?.warnings?.length">
|
||||
Pflichtfelder und Rechnungssummen wurden erfolgreich geprüft.
|
||||
</p>
|
||||
</div>
|
||||
</template>
|
||||
</UAlert>
|
||||
|
||||
<UAlert
|
||||
v-if="mode !== 'show' && findIncomingInvoiceErrors.length > 0"
|
||||
title="Prüfung erforderlich"
|
||||
|
||||
@@ -287,6 +287,18 @@ const selectIncomingInvoice = (invoiceLike) => {
|
||||
<span v-if="row.original.state === 'Vorbereitet'" class="text-cyan-500">{{row.original.state}}</span>
|
||||
<span v-else-if="row.original.state === 'Entwurf'" class="text-red-500">{{row.original.state}}</span>
|
||||
<span v-else-if="row.original.state === 'Gebucht'" class="text-primary-500">{{row.original.state}}</span>
|
||||
<span v-else-if="row.original.state === 'Prüfung erforderlich'" class="text-orange-500">{{row.original.state}}</span>
|
||||
<span v-else>{{row.original.state}}</span>
|
||||
</template>
|
||||
<template #preparationSource-cell="{row}">
|
||||
<UBadge v-if="row.original.preparationSource === 'e-invoice'" color="primary" variant="soft">
|
||||
{{ row.original.eInvoiceSyntax === 'cii'
|
||||
? (String(row.original.eInvoiceProfile || '').toLowerCase().includes('xrechnung') ? 'XRechnung / CII' : 'ZUGFeRD / CII')
|
||||
: 'XRechnung / UBL' }}
|
||||
</UBadge>
|
||||
<UBadge v-else-if="row.original.preparationSource === 'gpt'" color="neutral" variant="soft">
|
||||
PDF / KI
|
||||
</UBadge>
|
||||
</template>
|
||||
<template #date-cell="{row}">
|
||||
{{dayjs(row.original.date).format("DD.MM.YYYY")}}
|
||||
|
||||
Reference in New Issue
Block a user