mod Expense-Table, show time and chg order
This commit is contained in:
parent
8d2222de8f
commit
1e9cf520f6
|
|
@ -9,7 +9,8 @@
|
|||
"Bash(git commit:*)",
|
||||
"Bash(mkdir:*)",
|
||||
"WebSearch",
|
||||
"Bash(git merge:*)"
|
||||
"Bash(git merge:*)",
|
||||
"Bash(findstr:*)"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,8 @@
|
|||
|
||||
## Optimierung Spieltag-Details
|
||||
Blende die Erledigt-Kennzeichnung (Als bezahlt markieren) in der Tabelle mit den Staten (<!-- Expense Table -->) für Geldstrafen aus. Nur Sachstrafen sollen sich manuell erledigen lassen. Geldstrafen werden später zentral über die Abrechnung des gesamten Tages erledigt.
|
||||
|
||||
## Optimierung Spieltag-Details - done
|
||||
Die Erfassung von Strafen muss möglichst schnell und komfortabel mögiich sein. Dafür muss die Seite DayDetails optimiert werden.
|
||||
Es soll möglich sein eine Person in der Teilnehmerliste auszuwählen. Bei der Erfassung einer neuen Strafe soll diese Person direkt vorbelegt werden. Außerdem soll zusätzlich zum Button "Strafe hinzufügen" ein Menü-Button angezeigt werden, der eine Kurzwahl aller Strafen mit der Option "IsOneClick" ermöglicht.
|
||||
Der Benutzer soll visuell leicht erkennen können, ob und welcher Teilnehmer aktuell markiert wurde.
|
||||
|
|
|
|||
|
|
@ -220,7 +220,7 @@ else
|
|||
<MudStack Row="true" AlignItems="AlignItems.Center" Justify="Justify.SpaceBetween" Class="mb-4">
|
||||
<MudText Typo="Typo.h6">
|
||||
<MudIcon Icon="@Icons.Material.Filled.AttachMoney" Class="mr-2" />
|
||||
Strafen / Kosten (@Expenses.Count)
|
||||
Strafen / Kosten (@FilteredExpenses.Count@(_selectedParticipantId.HasValue && Expenses.Count != FilteredExpenses.Count ? $"/{Expenses.Count}" : ""))
|
||||
</MudText>
|
||||
@if (Day.Status != DayStatus.Closed)
|
||||
{
|
||||
|
|
@ -268,9 +268,18 @@ else
|
|||
Füge zuerst Teilnehmer hinzu, um Strafen zuweisen zu können.
|
||||
</MudAlert>
|
||||
}
|
||||
else if (Expenses.Count == 0)
|
||||
else if (FilteredExpenses.Count == 0)
|
||||
{
|
||||
<MudText Color="Color.Secondary">Keine Strafen zugewiesen</MudText>
|
||||
<MudText Color="Color.Secondary">
|
||||
@if (_selectedParticipantId.HasValue)
|
||||
{
|
||||
<text>Keine Strafen für @SelectedParticipant?.PersonName</text>
|
||||
}
|
||||
else
|
||||
{
|
||||
<text>Keine Strafen zugewiesen</text>
|
||||
}
|
||||
</MudText>
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -303,24 +312,32 @@ else
|
|||
</MudGrid>
|
||||
|
||||
<!-- Expense Table -->
|
||||
<MudTable Items="@Expenses" Dense="true" Hover="true" Striped="true" Breakpoint="Breakpoint.Sm">
|
||||
<MudTable Items="@FilteredExpenses" Dense="true" Hover="true" Striped="true" Breakpoint="Breakpoint.Sm">
|
||||
<HeaderContent>
|
||||
<MudTh>Person</MudTh>
|
||||
@if (!_selectedParticipantId.HasValue)
|
||||
{
|
||||
<MudTh>Person</MudTh>
|
||||
}
|
||||
<MudTh>Strafe</MudTh>
|
||||
<MudTh>Uhrzeit</MudTh>
|
||||
<MudTh Style="text-align: right">Preis</MudTh>
|
||||
<MudTh>Status</MudTh>
|
||||
<MudTh Style="text-align: right">Aktionen</MudTh>
|
||||
</HeaderContent>
|
||||
<RowTemplate>
|
||||
<MudTd DataLabel="Person">
|
||||
<MudStack Row="true" AlignItems="AlignItems.Center">
|
||||
<MudAvatar Size="Size.Small" Color="Color.Primary">
|
||||
@context.PersonName[0]
|
||||
</MudAvatar>
|
||||
<MudText>@context.PersonName</MudText>
|
||||
</MudStack>
|
||||
</MudTd>
|
||||
@if (!_selectedParticipantId.HasValue)
|
||||
{
|
||||
<MudTd DataLabel="Person">
|
||||
<MudStack Row="true" AlignItems="AlignItems.Center">
|
||||
<MudAvatar Size="Size.Small" Color="Color.Primary">
|
||||
@context.PersonName[0]
|
||||
</MudAvatar>
|
||||
<MudText>@context.PersonName</MudText>
|
||||
</MudStack>
|
||||
</MudTd>
|
||||
}
|
||||
<MudTd DataLabel="Strafe">@context.Name</MudTd>
|
||||
<MudTd DataLabel="Uhrzeit">@context.CreatedAt.ToString("HH:mm")</MudTd>
|
||||
<MudTd DataLabel="Preis" Style="text-align: right">@context.Price.ToString("C")</MudTd>
|
||||
<MudTd DataLabel="Status">
|
||||
<MudChip T="string"
|
||||
|
|
@ -377,9 +394,13 @@ else
|
|||
private DayParticipantDto? SelectedParticipant => Day?.Participants.FirstOrDefault(p => p.PersonId == _selectedParticipantId);
|
||||
private IReadOnlyList<ExpenseDto> OneClickExpenses => DayState.Value.AvailableExpenses.Where(e => e.IsOneClick && !e.IsVariable).ToList();
|
||||
|
||||
private decimal TotalExpenseAmount => Expenses.Sum(e => e.Price);
|
||||
private decimal OpenExpenseAmount => Expenses.Where(e => e.PersonExpenseStatus == PersonExpenseStatus.Open).Sum(e => e.Price);
|
||||
private decimal PaidExpenseAmount => Expenses.Where(e => e.PersonExpenseStatus == PersonExpenseStatus.Done).Sum(e => e.Price);
|
||||
private IReadOnlyList<PersonExpenseDto> FilteredExpenses => (_selectedParticipantId.HasValue
|
||||
? Expenses.Where(e => e.PersonId == _selectedParticipantId.Value)
|
||||
: Expenses).OrderByDescending(e => e.CreatedAt).ToList();
|
||||
|
||||
private decimal TotalExpenseAmount => FilteredExpenses.Sum(e => e.Price);
|
||||
private decimal OpenExpenseAmount => FilteredExpenses.Where(e => e.PersonExpenseStatus == PersonExpenseStatus.Open).Sum(e => e.Price);
|
||||
private decimal PaidExpenseAmount => FilteredExpenses.Where(e => e.PersonExpenseStatus == PersonExpenseStatus.Done).Sum(e => e.Price);
|
||||
|
||||
protected override void OnInitialized()
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue