Diverse Änderungen

Sollstunden werden jetzt angezeigt.
Genehmigte Freistellungen können nicht mehr geändert werden
Projekte und Gemeinden werden ausgeblendet, sofern vom Portal so vorgesehen.
etc.
This commit is contained in:
2024-10-20 22:06:17 +02:00
parent 996dbadaf1
commit 08a3550062
7 changed files with 43 additions and 14 deletions

View File

@@ -64,6 +64,8 @@ public class StundeViewModel : ObservableObject, IQueryAttributable {
/// </summary>
public bool ProjektAktivSet { get; set; }
public bool FreistellungEnabled { get; set; }
public ICommand SaveCommand { get; private set; }
@@ -178,6 +180,9 @@ public class StundeViewModel : ObservableObject, IQueryAttributable {
_dayTime.FreistellungAktiv = OptionsFreistellung.FirstOrDefault(Freistellung => Freistellung.Id == DayTime.Free) ?? new Freistellung();
FreistellungEnabled = !_dayTime.Approved;
OnPropertyChanged(nameof(FreistellungEnabled));
OnPropertyChanged(nameof(DayTime));
OnPropertyChanged(nameof(SubTitle));

View File

@@ -31,7 +31,7 @@ internal class StundenViewModel : ObservableObject, IQueryAttributable, INotifyP
private HoursBase HoursBase = new HoursBase();
internal Settings Settings = new Settings();
public TimeOnly Sollstunden { get; set; }
private string _title = HoursBase.name + " " + HoursBase.surname;
public string Title {
@@ -226,22 +226,31 @@ internal class StundenViewModel : ObservableObject, IQueryAttributable, INotifyP
try {
DayTimes = await HoursBase.LoadDay(date);
//TODO: Hier muss noch die Berechnung der Stunden erfolgen
//Es werden im Moment nur die eingetragenen Stunden gezählt
//Auf der Website bekommt der Benutzer hingegen die berechneten Stunden angezeigt (Nachstunden außerhalb des Stundenplanes zählen mehr ...)
List<Sollstunden> _soll;
TimeSpan span = TimeSpan.Zero;
bool merker = false;
foreach (DayTime dt in DayTimes) {
span += dt.End - dt.Begin;
//Nachtstunden dazurechnen
if (dt.Night.Ticks > 0 && !merker) {
span += dt.Night.ToTimeSpan() * .5;
merker = true;
}
_soll = Settings.Nominal.Where(w => w.Timetable == dt.TimeTable && w.Wochentag == dt.Wday).ToList();
if (_soll.Count > 0)
Sollstunden = TimeOnly.FromTimeSpan(TimeSpan.FromHours(_soll[0].Zeit));
}
DayTotal = TimeOnly.FromTimeSpan(span);
} catch (Exception e) {
DayTimes = new List<DayTime>();
//TODO: hier könnte auch ein Fehler kommen, dann wäre InfoEvent falsch.
InfoEvent?.Invoke(this, e.Message);
} finally {
OnPropertyChanged(nameof(DayTotal));
OnPropertyChanged(nameof(Sollstunden));
//OnPropertyChanged(nameof(DayTimes));
}