+ v-if="(row.type === 'invoices' ||row.type === 'advanceInvoices') && row.state === 'Gebucht' && !hasCancellationInvoice(row)">
Bezahlt
Offen
@@ -129,8 +129,8 @@
- {{ displayCurrency(useSum().getCreatedDocumentSum(row, items) - row.statementallocations.reduce((n, {amount}) => n + amount, 0)) }}
+ v-if="!['deliveryNotes','cancellationInvoices','quotes','confirmationOrders'].includes(row.type) && row.state !== 'Entwurf' && !hasCancellationInvoice(row) && !useSum().getIsPaid(row,items) ">
+ {{ displayCurrency(useSum().getCreatedDocumentOpenAmount(row, items)) }}
@@ -264,13 +264,22 @@ const clearSearchString = () => {
debouncedSearchString.value = ''
}
+const getCancellationInvoice = (row) => {
+ return items.value.find((item) => {
+ const linkedDocumentId = item.createddocument?.id || item.createddocument
+ return item.type === 'cancellationInvoices'
+ && item.state !== 'Entwurf'
+ && !item.archived
+ && linkedDocumentId === row.id
+ })
+}
+
+const hasCancellationInvoice = (row) => Boolean(getCancellationInvoice(row))
+
const openUnpaidInvoicesFilter = {
name: 'Nur offene Rechnungen',
filterFunction: (row) => {
- return ['invoices', 'advanceInvoices'].includes(row.type)
- && row.state === 'Gebucht'
- && !useSum().getIsPaid(row, items.value)
- && !items.value.find(i => i.linkedDocument && i.linkedDocument.id === row.id)
+ return useSum().isOpenCreatedDocument(row, items.value)
}
}
@@ -319,8 +328,6 @@ const getRowsForTab = (tabKey) => {
}
const isPaid = (item) => {
- let amountPaid = 0
- item.statementallocations.forEach(allocation => amountPaid += allocation.amount)
- return Number(amountPaid.toFixed(2)) === useSum().getCreatedDocumentSum(item, items.value)
+ return useSum().getIsPaid(item, items.value)
}