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(git commit:*)",
|
||||||
"Bash(mkdir:*)",
|
"Bash(mkdir:*)",
|
||||||
"WebSearch",
|
"WebSearch",
|
||||||
"Bash(git merge:*)"
|
"Bash(git merge:*)",
|
||||||
|
"Bash(findstr:*)"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
|
|
||||||
## Optimierung Spieltag-Details
|
## 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.
|
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.
|
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.
|
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">
|
<MudStack Row="true" AlignItems="AlignItems.Center" Justify="Justify.SpaceBetween" Class="mb-4">
|
||||||
<MudText Typo="Typo.h6">
|
<MudText Typo="Typo.h6">
|
||||||
<MudIcon Icon="@Icons.Material.Filled.AttachMoney" Class="mr-2" />
|
<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>
|
</MudText>
|
||||||
@if (Day.Status != DayStatus.Closed)
|
@if (Day.Status != DayStatus.Closed)
|
||||||
{
|
{
|
||||||
|
|
@ -268,9 +268,18 @@ else
|
||||||
Füge zuerst Teilnehmer hinzu, um Strafen zuweisen zu können.
|
Füge zuerst Teilnehmer hinzu, um Strafen zuweisen zu können.
|
||||||
</MudAlert>
|
</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
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -303,24 +312,32 @@ else
|
||||||
</MudGrid>
|
</MudGrid>
|
||||||
|
|
||||||
<!-- Expense Table -->
|
<!-- 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>
|
<HeaderContent>
|
||||||
<MudTh>Person</MudTh>
|
@if (!_selectedParticipantId.HasValue)
|
||||||
|
{
|
||||||
|
<MudTh>Person</MudTh>
|
||||||
|
}
|
||||||
<MudTh>Strafe</MudTh>
|
<MudTh>Strafe</MudTh>
|
||||||
|
<MudTh>Uhrzeit</MudTh>
|
||||||
<MudTh Style="text-align: right">Preis</MudTh>
|
<MudTh Style="text-align: right">Preis</MudTh>
|
||||||
<MudTh>Status</MudTh>
|
<MudTh>Status</MudTh>
|
||||||
<MudTh Style="text-align: right">Aktionen</MudTh>
|
<MudTh Style="text-align: right">Aktionen</MudTh>
|
||||||
</HeaderContent>
|
</HeaderContent>
|
||||||
<RowTemplate>
|
<RowTemplate>
|
||||||
<MudTd DataLabel="Person">
|
@if (!_selectedParticipantId.HasValue)
|
||||||
<MudStack Row="true" AlignItems="AlignItems.Center">
|
{
|
||||||
<MudAvatar Size="Size.Small" Color="Color.Primary">
|
<MudTd DataLabel="Person">
|
||||||
@context.PersonName[0]
|
<MudStack Row="true" AlignItems="AlignItems.Center">
|
||||||
</MudAvatar>
|
<MudAvatar Size="Size.Small" Color="Color.Primary">
|
||||||
<MudText>@context.PersonName</MudText>
|
@context.PersonName[0]
|
||||||
</MudStack>
|
</MudAvatar>
|
||||||
</MudTd>
|
<MudText>@context.PersonName</MudText>
|
||||||
|
</MudStack>
|
||||||
|
</MudTd>
|
||||||
|
}
|
||||||
<MudTd DataLabel="Strafe">@context.Name</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="Preis" Style="text-align: right">@context.Price.ToString("C")</MudTd>
|
||||||
<MudTd DataLabel="Status">
|
<MudTd DataLabel="Status">
|
||||||
<MudChip T="string"
|
<MudChip T="string"
|
||||||
|
|
@ -377,9 +394,13 @@ else
|
||||||
private DayParticipantDto? SelectedParticipant => Day?.Participants.FirstOrDefault(p => p.PersonId == _selectedParticipantId);
|
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 IReadOnlyList<ExpenseDto> OneClickExpenses => DayState.Value.AvailableExpenses.Where(e => e.IsOneClick && !e.IsVariable).ToList();
|
||||||
|
|
||||||
private decimal TotalExpenseAmount => Expenses.Sum(e => e.Price);
|
private IReadOnlyList<PersonExpenseDto> FilteredExpenses => (_selectedParticipantId.HasValue
|
||||||
private decimal OpenExpenseAmount => Expenses.Where(e => e.PersonExpenseStatus == PersonExpenseStatus.Open).Sum(e => e.Price);
|
? Expenses.Where(e => e.PersonId == _selectedParticipantId.Value)
|
||||||
private decimal PaidExpenseAmount => Expenses.Where(e => e.PersonExpenseStatus == PersonExpenseStatus.Done).Sum(e => e.Price);
|
: 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()
|
protected override void OnInitialized()
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue