113 lines
3.5 KiB
Plaintext
113 lines
3.5 KiB
Plaintext
@using Koogle.Application.DTOs
|
|
|
|
<MudDialog>
|
|
<TitleContent>
|
|
<MudText Typo="Typo.h6">Mitgliedsbeiträge erfassen</MudText>
|
|
</TitleContent>
|
|
<DialogContent>
|
|
<MudText Class="mb-4">
|
|
Erstellt automatisch Einnahme-Buchungen für alle aktiven Mitglieder.
|
|
</MudText>
|
|
|
|
<MudStack Row="true" Spacing="4" Class="mb-4">
|
|
<MudSelect T="int" @bind-Value="_selectedMonth" Label="Monat" Style="width: 150px;">
|
|
@for (int m = 1; m <= 12; m++)
|
|
{
|
|
var month = m;
|
|
<MudSelectItem Value="@month">@GetMonthName(month)</MudSelectItem>
|
|
}
|
|
</MudSelect>
|
|
<MudSelect T="int" @bind-Value="_selectedYear" Label="Jahr" Style="width: 120px;">
|
|
@for (int y = DateTime.Today.Year; y >= DateTime.Today.Year - 2; y--)
|
|
{
|
|
var year = y;
|
|
<MudSelectItem Value="@year">@year</MudSelectItem>
|
|
}
|
|
</MudSelect>
|
|
</MudStack>
|
|
|
|
<MudSwitch @bind-Value="_useOverride" Label="Betrag überschreiben" Color="Color.Primary" Class="mb-2" />
|
|
|
|
@if (_useOverride)
|
|
{
|
|
<MudNumericField @bind-Value="_overrideAmount"
|
|
Label="Beitragshöhe"
|
|
Format="N2"
|
|
Adornment="Adornment.Start"
|
|
AdornmentText="€"
|
|
Min="0.01m"
|
|
HelperText="Überschreibt den Standard-Mitgliedsbeitrag"
|
|
Class="mb-4" />
|
|
}
|
|
else
|
|
{
|
|
<MudText Typo="Typo.body2" Color="Color.Secondary" Class="mb-4">
|
|
Es wird der in den Club-Einstellungen hinterlegte Standardbeitrag verwendet.
|
|
</MudText>
|
|
}
|
|
|
|
@if (_showWarning)
|
|
{
|
|
<MudAlert Severity="Severity.Warning" Class="mb-4">
|
|
Für @GetMonthName(_selectedMonth) @_selectedYear wurden bereits Mitgliedsbeiträge erfasst.
|
|
Trotzdem fortfahren?
|
|
</MudAlert>
|
|
}
|
|
</DialogContent>
|
|
<DialogActions>
|
|
<MudButton OnClick="Cancel">Abbrechen</MudButton>
|
|
<MudButton Color="Color.Primary" Variant="Variant.Filled" OnClick="Submit">
|
|
Beiträge erstellen
|
|
</MudButton>
|
|
</DialogActions>
|
|
</MudDialog>
|
|
|
|
@code {
|
|
[CascadingParameter]
|
|
private IMudDialogInstance? MudDialog { get; set; }
|
|
|
|
[Parameter]
|
|
public bool HasExistingFees { get; set; }
|
|
|
|
private int _selectedMonth = DateTime.Today.Month;
|
|
private int _selectedYear = DateTime.Today.Year;
|
|
private bool _useOverride;
|
|
private decimal _overrideAmount = 10.00m;
|
|
private bool _showWarning;
|
|
|
|
protected override void OnParametersSet()
|
|
{
|
|
_showWarning = HasExistingFees;
|
|
}
|
|
|
|
private static string GetMonthName(int month) => month switch
|
|
{
|
|
1 => "Januar",
|
|
2 => "Februar",
|
|
3 => "März",
|
|
4 => "April",
|
|
5 => "Mai",
|
|
6 => "Juni",
|
|
7 => "Juli",
|
|
8 => "August",
|
|
9 => "September",
|
|
10 => "Oktober",
|
|
11 => "November",
|
|
12 => "Dezember",
|
|
_ => month.ToString()
|
|
};
|
|
|
|
private void Cancel() => MudDialog?.Cancel();
|
|
|
|
private void Submit()
|
|
{
|
|
var dto = new CreateMembershipFeesDto
|
|
{
|
|
Year = _selectedYear,
|
|
Month = _selectedMonth,
|
|
OverrideAmount = _useOverride ? _overrideAmount : null
|
|
};
|
|
MudDialog?.Close(DialogResult.Ok(dto));
|
|
}
|
|
}
|