Projekt and Gemeinde are required if active
This commit is contained in:
@@ -78,6 +78,7 @@ public partial class StundeViewModel : ObservableObject, IQueryAttributable {
|
|||||||
|
|
||||||
|
|
||||||
public StundeViewModel() : this(GetServiceOrCreate()) {
|
public StundeViewModel() : this(GetServiceOrCreate()) {
|
||||||
|
LoadSettingsAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static IHoursService GetServiceOrCreate() {
|
private static IHoursService GetServiceOrCreate() {
|
||||||
@@ -124,10 +125,24 @@ public partial class StundeViewModel : ObservableObject, IQueryAttributable {
|
|||||||
async Task Save() {
|
async Task Save() {
|
||||||
bool exceptionOccurred = false;
|
bool exceptionOccurred = false;
|
||||||
bool proceed = true;
|
bool proceed = true;
|
||||||
|
|
||||||
|
//Arbeitszeit sollte nicht null sein
|
||||||
if (DayTime.TimeSpanVon == DayTime.TimeSpanBis && DayTime.FreistellungAktiv.Name == null) {
|
if (DayTime.TimeSpanVon == DayTime.TimeSpanBis && DayTime.FreistellungAktiv.Name == null) {
|
||||||
proceed = false;
|
proceed = false;
|
||||||
AlertEvent?.Invoke(this, "Uhrzeiten sollten unterschiedlich sein");
|
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) {
|
if (proceed) {
|
||||||
try {
|
try {
|
||||||
@@ -182,18 +197,18 @@ public partial class StundeViewModel : ObservableObject, IQueryAttributable {
|
|||||||
//DateTime heute = DateTime.Now;
|
//DateTime heute = DateTime.Now;
|
||||||
try {
|
try {
|
||||||
var entry = await _hoursService.GetEntryAsync(Convert.ToInt32(query["load"]));
|
var entry = await _hoursService.GetEntryAsync(Convert.ToInt32(query["load"]));
|
||||||
var settings = await _hoursService.GetSettingsAsync();
|
// var settings = await _hoursService.GetSettingsAsync();
|
||||||
GlobalVar.Settings = settings;
|
// GlobalVar.Settings = settings;
|
||||||
GemeindeAktivSet = settings.GemeindeAktivSet;
|
// GemeindeAktivSet = settings.GemeindeAktivSet;
|
||||||
ProjektAktivSet = settings.ProjektAktivSet;
|
// ProjektAktivSet = settings.ProjektAktivSet;
|
||||||
|
|
||||||
DayTime = entry;
|
DayTime = entry;
|
||||||
DayTime.TimeSpanVon = entry.Begin.ToTimeSpan();
|
DayTime.TimeSpanVon = entry.Begin.ToTimeSpan();
|
||||||
DayTime.TimeSpanBis = entry.End.ToTimeSpan();
|
DayTime.TimeSpanBis = entry.End.ToTimeSpan();
|
||||||
|
|
||||||
OptionsGemeinde = settings.Gemeinden ?? new List<Gemeinde>();
|
// OptionsGemeinde = settings.Gemeinden ?? new List<Gemeinde>();
|
||||||
OptionsProjekt = settings.Projekte ?? new List<Projekt>();
|
// OptionsProjekt = settings.Projekte ?? new List<Projekt>();
|
||||||
OptionsFreistellung = settings.Freistellungen ?? new List<Freistellung>();
|
// OptionsFreistellung = settings.Freistellungen ?? new List<Freistellung>();
|
||||||
|
|
||||||
DayTime.GemeindeAktiv = OptionsGemeinde.FirstOrDefault(Gemeinde => Gemeinde.Id == DayTime.Gemeinde) ??
|
DayTime.GemeindeAktiv = OptionsGemeinde.FirstOrDefault(Gemeinde => Gemeinde.Id == DayTime.Gemeinde) ??
|
||||||
new Gemeinde();
|
new Gemeinde();
|
||||||
@@ -244,7 +259,7 @@ public partial class StundeViewModel : ObservableObject, IQueryAttributable {
|
|||||||
//Ein Tag ohne Einträge gibt eine Fehlermeldung,
|
//Ein Tag ohne Einträge gibt eine Fehlermeldung,
|
||||||
//die soll aber ignoriert werden, weil beim Neueintrag ist das ja Wurscht
|
//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
|
//In dem Fall müssen die Settings aber nochmal geholt werden, weil die dann nicht geladen wurden
|
||||||
LoadSettingsAsync();
|
// LoadSettingsAsync();
|
||||||
} finally {
|
} finally {
|
||||||
DayTime = new DayTime();
|
DayTime = new DayTime();
|
||||||
DayTime.Day = _date;
|
DayTime.Day = _date;
|
||||||
|
|||||||
@@ -63,14 +63,6 @@
|
|||||||
<On Platform="WPF" Value="5" />
|
<On Platform="WPF" Value="5" />
|
||||||
</OnPlatform>
|
</OnPlatform>
|
||||||
</Border.Padding>
|
</Border.Padding>
|
||||||
<!--<Grid ColumnDefinitions="*,*,*">
|
|
||||||
<Picker x:Name="pick_gemeinde" Title="Gemeinde" ItemsSource="{Binding OptionsGemeinde}" SelectedItem="{Binding DayTime.GemeindeAktiv, Mode=TwoWay}" ItemDisplayBinding="{Binding Name}" Grid.Column="0" IsVisible="{Binding GemeindeAktivSet}">
|
|
||||||
</Picker>
|
|
||||||
<Picker x:Name="pick_projekt" Title="Projekt" ItemsSource="{Binding OptionsProjekt}" SelectedItem="{Binding DayTime.ProjektAktiv, Mode=TwoWay}" ItemDisplayBinding="{Binding Name}" Grid.Column="1" IsVisible="{Binding ProjektAktivSet}">
|
|
||||||
</Picker>
|
|
||||||
<Picker x:Name="pick_freistellung" Title="Freistellung" ItemsSource="{Binding OptionsFreistellung}" SelectedItem="{Binding DayTime.FreistellungAktiv, Mode=TwoWay}" ItemDisplayBinding="{Binding Name}" Grid.Column="2" IsEnabled="{Binding FreistellungEnabled}">
|
|
||||||
</Picker>
|
|
||||||
</Grid>-->
|
|
||||||
<HorizontalStackLayout>
|
<HorizontalStackLayout>
|
||||||
<Picker x:Name="pick_gemeinde" Title="Gemeinde" ItemsSource="{Binding OptionsGemeinde}"
|
<Picker x:Name="pick_gemeinde" Title="Gemeinde" ItemsSource="{Binding OptionsGemeinde}"
|
||||||
SelectedItem="{Binding DayTime.GemeindeAktiv, Mode=TwoWay}" ItemDisplayBinding="{Binding Name}"
|
SelectedItem="{Binding DayTime.GemeindeAktiv, Mode=TwoWay}" ItemDisplayBinding="{Binding Name}"
|
||||||
|
|||||||
Reference in New Issue
Block a user