AccountingNext/Schaad.Accounting.UI/Components/Pages/PendingBookings.razor
Claudio Schaad 97bf85d6a8 PR U-10: split Home into StatementImport and PendingBookings
Home shrinks from ~200-line codebehind + 100-line markup to a
10-line orchestrator holding a @ref to <PendingBookings/> and
wiring <StatementImport OnImported="RefreshPendingAsync"/> to it.

Also renames IsCanceled -> cancelRequested and clears the Files
dictionary after each import batch.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-07-06 16:29:51 +02:00

73 lines
2.8 KiB
Text

@rendermode InteractiveServer
@if (matchingBankTransactions is null || matchingBankTransactions.Count == 0)
{
<p>Keine Transaktionen vorhanden!</p>
<FluentEmoji Value="@(new Emojis.SmileysEmotion.Color.Default.MoneyMouthFace())" />
}
else
{
<table>
<thead>
<tr>
<th>Buchungsdatum</th>
<th>Valutadatum</th>
<th>Zusatzinfo</th>
<th>Text</th>
<th>Konto</th>
<th>Betrag</th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
@foreach (var transaction in matchingBankTransactions)
{
<tr>
<td>
<div>@transaction.BookingDate.ToString("dd.MM.yyyy")</div>
</td>
<td>
<div>@transaction.ValueDate.ToString("dd.MM.yyyy")</div>
</td>
<td class="zusatzinfo-column" title="@transaction.BankTransactionText">
<div>@transaction.BankTransactionText</div>
</td>
<td>
<div class="text-column">
<input list="texts" @bind="@transaction.Text" placeholder="Type or select..." readonly="@transaction.ReadOnly"/>
<datalist id="texts">
@foreach (var text in bookingTexts.OrderBy(t => t))
{
<option value="@text"></option>
}
</datalist>
</div>
</td>
<td>
@if (transaction.Value > 0)
{
<AccountSelector Accounts="accounts" @bind-AccountId="@transaction.OriginAccountId" />
}
else
{
<AccountSelector Accounts="accounts" @bind-AccountId="@transaction.TargetAccountId" />
}
</td>
<td>
<div>@Math.Abs(transaction.Value).ToFormattedString()</div>
</td>
<td style="align-content: center">
<FluentButton IconEnd="@(new Icons.Regular.Size16.SplitVertical())" Appearance="Appearance.Neutral"
OnClick="@(() => SplitBankTransactionAsync(transaction))" Disabled="@(transaction.Value > 0 || transaction.ReadOnly)" />
</td>
<td style="align-content: center">
<FluentButton IconEnd="@(new Icons.Regular.Size16.Save())" Appearance="Appearance.Neutral"
OnClick="@(() => BookBankTransactionAsync(transaction))"
Disabled="@transaction.ReadOnly" />
</td>
</tr>
}
</tbody>
</table>
}