Projekt and Gemeinde are required if active

This commit is contained in:
2025-12-18 16:17:17 +01:00
parent 5fd97deada
commit 98d6d61f16
2 changed files with 23 additions and 16 deletions

View File

@@ -78,6 +78,7 @@ public partial class StundeViewModel : ObservableObject, IQueryAttributable {
public StundeViewModel() : this(GetServiceOrCreate()) {
LoadSettingsAsync();
}
private static IHoursService GetServiceOrCreate() {
@@ -124,10 +125,24 @@ public partial class StundeViewModel : ObservableObject, IQueryAttributable {
async Task Save() {
bool exceptionOccurred = false;
bool proceed = true;
//Arbeitszeit sollte nicht null sein
if (DayTime.TimeSpanVon == DayTime.TimeSpanBis && DayTime.FreistellungAktiv.Name == null) {
proceed = false;
AlertEvent?.Invoke(this, "Uhrzeiten sollten unterschiedlich sein");
}
//Projekt ist ein Pflichtfeld
if (Settings.ProjektAktivSet && DayTime.ProjektAktiv.Id == 0) {
proceed = false;
AlertEvent?.Invoke(this, "Projekt darf nicht leer sein");
}
//Gemeinde ist ein Pflichtfeld
if (Settings.GemeindeAktivSet && DayTime.GemeindeAktiv.Id == 0) {
proceed = false;
AlertEvent?.Invoke(this, "Gemeinde darf nicht leer sein");
}
if (proceed) {
try {
@@ -182,18 +197,18 @@ public partial class StundeViewModel : ObservableObject, IQueryAttributable {
//DateTime heute = DateTime.Now;
try {
var entry = await _hoursService.GetEntryAsync(Convert.ToInt32(query["load"]));
var settings = await _hoursService.GetSettingsAsync();
GlobalVar.Settings = settings;
GemeindeAktivSet = settings.GemeindeAktivSet;
ProjektAktivSet = settings.ProjektAktivSet;
// var settings = await _hoursService.GetSettingsAsync();
// GlobalVar.Settings = settings;
// GemeindeAktivSet = settings.GemeindeAktivSet;
// ProjektAktivSet = settings.ProjektAktivSet;
DayTime = entry;
DayTime.TimeSpanVon = entry.Begin.ToTimeSpan();
DayTime.TimeSpanBis = entry.End.ToTimeSpan();
OptionsGemeinde = settings.Gemeinden ?? new List<Gemeinde>();
OptionsProjekt = settings.Projekte ?? new List<Projekt>();
OptionsFreistellung = settings.Freistellungen ?? new List<Freistellung>();
// OptionsGemeinde = settings.Gemeinden ?? new List<Gemeinde>();
// OptionsProjekt = settings.Projekte ?? new List<Projekt>();
// OptionsFreistellung = settings.Freistellungen ?? new List<Freistellung>();
DayTime.GemeindeAktiv = OptionsGemeinde.FirstOrDefault(Gemeinde => Gemeinde.Id == DayTime.Gemeinde) ??
new Gemeinde();
@@ -244,7 +259,7 @@ public partial class StundeViewModel : ObservableObject, IQueryAttributable {
//Ein Tag ohne Einträge gibt eine Fehlermeldung,
//die soll aber ignoriert werden, weil beim Neueintrag ist das ja Wurscht
//In dem Fall müssen die Settings aber nochmal geholt werden, weil die dann nicht geladen wurden
LoadSettingsAsync();
// LoadSettingsAsync();
} finally {
DayTime = new DayTime();
DayTime.Day = _date;