@if (duplicateGroups().length) {
{{ ui.t('expenses.duplicatesTitle') }}
@for (group of duplicateGroups().slice(0, 3); track group.source.id) {
{{ group.source.title }} · {{ group.matches.length }} {{ ui.t('expenses.potentialMatches') }}
}
}

{{ ui.t('expenses.filters') }}

@if (hasActiveFilters()) { {{ ui.t('action.filter') }} }

{{ ui.t('expenses.listTitle') }}

{{ ui.t('expenses.totalItems') }}: {{ pagination().total }}
@if (selectedIds().length) {
{{ ui.t('expenses.selectedCount') }}: {{ selectedIds().length }}
}
@for (item of expenses(); track item.id) { } @empty { }
{{ ui.t('table.actions') }}
{{ item.expenseDate | date:'yyyy-MM-dd' }}
{{ item.title }} @if (item.possibleDuplicate || item.duplicateStatus) { {{ duplicateLabel(item) }} } @if (item.recurringSourceId) { {{ ui.t('recurring.badge') }} }
{{ item.merchant || ui.t('expenses.noMerchant') }}
@if (item.tags.length) {
@for (tag of item.tags; track tag) { #{{ tag }} }
} @if (customFieldEntries(item).length) {
@for (field of customFieldEntries(item); track field[0]) { {{ field[0] }}: {{ field[1] }} }
} @if (item.proofs.length) {
@for (proof of item.proofs; track proof.id) { }
}
{{ item.category.name }}
{{ ui.t('status.' + item.status.toLowerCase()) }}
{{ item.amount | currency:'PLN':'symbol':'1.2-2' }}
{{ ui.t('action.view') }} @if (item.possibleDuplicate && item.duplicateStatus !== 'CONFIRMED') { } @if (item.possibleDuplicate && item.duplicateStatus !== 'DISMISSED') { } @if (item.duplicateStatus === 'DISMISSED' || item.duplicateStatus === 'CONFIRMED') { }
{{ ui.t('expenses.noItems') }}
@if (proofPreview()) { }