Compare commits
2
Commits
b35bc5eed2
...
12d453d92c
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
12d453d92c | ||
|
|
29e2a1a049 |
No files matched your search
@@ -243,6 +243,8 @@ namespace Elwig.Helpers {
|
|||||||
modelBuilder.Entity<DeliveryAncmt>().Navigation(a => a.Schedule).AutoInclude();
|
modelBuilder.Entity<DeliveryAncmt>().Navigation(a => a.Schedule).AutoInclude();
|
||||||
modelBuilder.Entity<DeliveryAncmt>().Navigation(a => a.Variety).AutoInclude();
|
modelBuilder.Entity<DeliveryAncmt>().Navigation(a => a.Variety).AutoInclude();
|
||||||
modelBuilder.Entity<DeliverySchedule>().Navigation(s => s.Branch).AutoInclude();
|
modelBuilder.Entity<DeliverySchedule>().Navigation(s => s.Branch).AutoInclude();
|
||||||
|
modelBuilder.Entity<DeliverySchedule>().Navigation(s => s.Attribute).AutoInclude();
|
||||||
|
modelBuilder.Entity<DeliverySchedule>().Navigation(s => s.Cultivation).AutoInclude();
|
||||||
modelBuilder.Entity<MemberHistory>().Navigation(s => s.FromMember).AutoInclude();
|
modelBuilder.Entity<MemberHistory>().Navigation(s => s.FromMember).AutoInclude();
|
||||||
modelBuilder.Entity<MemberHistory>().Navigation(s => s.ToMember).AutoInclude();
|
modelBuilder.Entity<MemberHistory>().Navigation(s => s.ToMember).AutoInclude();
|
||||||
modelBuilder.Entity<MemberHistory>().Navigation(s => s.Currency).AutoInclude();
|
modelBuilder.Entity<MemberHistory>().Navigation(s => s.Currency).AutoInclude();
|
||||||
|
|||||||
@@ -38,6 +38,8 @@ namespace Elwig.Models.Entities {
|
|||||||
|
|
||||||
[Column("cultid")]
|
[Column("cultid")]
|
||||||
public string? CultId { get; set; }
|
public string? CultId { get; set; }
|
||||||
|
[NotMapped]
|
||||||
|
public bool IsOrganic => Cultivation?.IsOrganic ?? false;
|
||||||
|
|
||||||
[Column("max_weight")]
|
[Column("max_weight")]
|
||||||
public int? MaxWeight { get; set; }
|
public int? MaxWeight { get; set; }
|
||||||
|
|||||||
@@ -20,6 +20,8 @@ UPDATE wine_cultivation SET organic = TRUE WHERE name LIKE '%bio%' OR name LIKE
|
|||||||
UPDATE wine_cultivation SET description = NULL WHERE description LIKE '%AT-BIO-%';
|
UPDATE wine_cultivation SET description = NULL WHERE description LIKE '%AT-BIO-%';
|
||||||
UPDATE wine_cultivation SET description = 'Biologische Produktion' WHERE organic;
|
UPDATE wine_cultivation SET description = 'Biologische Produktion' WHERE organic;
|
||||||
|
|
||||||
|
UPDATE delivery_schedule SET cultid = (SELECT cultid FROM wine_cultivation WHERE organic LIMIT 1) WHERE description LIKE '%Bio%';
|
||||||
|
|
||||||
UPDATE client_parameter SET param = 'CLIENT_ORGANIC_AUTHORITYCODE' WHERE param = 'CLIENT_ORGANIC_AUTHORITY';
|
UPDATE client_parameter SET param = 'CLIENT_ORGANIC_AUTHORITYCODE' WHERE param = 'CLIENT_ORGANIC_AUTHORITY';
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -518,6 +518,7 @@
|
|||||||
<ComboBox x:Name="CultivationInput" SelectedItem="{Binding WineCultObj, Mode=TwoWay}" ItemsSource="{Binding WineCultSource, Mode=TwoWay}"
|
<ComboBox x:Name="CultivationInput" SelectedItem="{Binding WineCultObj, Mode=TwoWay}" ItemsSource="{Binding WineCultSource, Mode=TwoWay}"
|
||||||
Grid.Row="1" Grid.Column="2" Margin="0,40,10,10"
|
Grid.Row="1" Grid.Column="2" Margin="0,40,10,10"
|
||||||
DisplayMemberPath="Name"
|
DisplayMemberPath="Name"
|
||||||
|
SelectionChanged="CultivationInput_SelectionChanged"
|
||||||
KeyUp="Input_KeyUp"/>
|
KeyUp="Input_KeyUp"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</GroupBox>
|
</GroupBox>
|
||||||
|
|||||||
@@ -774,12 +774,12 @@ namespace Elwig.Windows {
|
|||||||
MgNrInput.CaretIndex = caret;
|
MgNrInput.CaretIndex = caret;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void MgNrInput_LostFocus(object sender, RoutedEventArgs evt) {
|
private async void MgNrInput_LostFocus(object sender, RoutedEventArgs evt) {
|
||||||
var valid = InputLostFocus((TextBox)sender, Validator.CheckMgNr);
|
var valid = InputLostFocus((TextBox)sender, Validator.CheckMgNr);
|
||||||
ControlUtils.SelectItemWithPk(MemberInput, valid ? ViewModel.MgNr : null);
|
ControlUtils.SelectItemWithPk(MemberInput, valid ? ViewModel.MgNr : null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void MemberInput_SelectionChanged(object? sender, SelectionChangedEventArgs? evt) {
|
private async void MemberInput_SelectionChanged(object? sender, SelectionChangedEventArgs? evt) {
|
||||||
var m = MemberInput.SelectedItem as Member;
|
var m = MemberInput.SelectedItem as Member;
|
||||||
ViewModel.MgNr = m?.MgNr;
|
ViewModel.MgNr = m?.MgNr;
|
||||||
ViewModel.MemberAddress = m?.FullAddress;
|
ViewModel.MemberAddress = m?.FullAddress;
|
||||||
@@ -796,6 +796,8 @@ namespace Elwig.Windows {
|
|||||||
SetDefaultValue(WineKgInput);
|
SetDefaultValue(WineKgInput);
|
||||||
ComboBox_SelectionChanged(WineKgInput, null);
|
ComboBox_SelectionChanged(WineKgInput, null);
|
||||||
}
|
}
|
||||||
|
if (IsCreating && Mouse.OverrideCursor == null)
|
||||||
|
await CheckOrganic();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void EmptyScale() {
|
private void EmptyScale() {
|
||||||
@@ -805,6 +807,9 @@ namespace Elwig.Windows {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private async void NewDeliveryPartButton_Click(object sender, RoutedEventArgs evt) {
|
private async void NewDeliveryPartButton_Click(object sender, RoutedEventArgs evt) {
|
||||||
|
if (!await CheckOrganic(true))
|
||||||
|
return;
|
||||||
|
|
||||||
FinishButton.IsEnabled = false;
|
FinishButton.IsEnabled = false;
|
||||||
NewDeliveryPartButton.IsEnabled = false;
|
NewDeliveryPartButton.IsEnabled = false;
|
||||||
Mouse.OverrideCursor = Cursors.Wait;
|
Mouse.OverrideCursor = Cursors.Wait;
|
||||||
@@ -824,7 +829,7 @@ namespace Elwig.Windows {
|
|||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
InteractionService.ShowDbException("Lieferung aktualisieren", exc);
|
InteractionService.ShowDbException("Lieferung aktualisieren", exc);
|
||||||
FinishButton.IsEnabled = true;
|
FinishButton.IsEnabled = true;
|
||||||
SaveButton.IsEnabled = true;
|
NewDeliveryPartButton.IsEnabled = true;
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
DeliveryPartList.IsEnabled = true;
|
DeliveryPartList.IsEnabled = true;
|
||||||
return;
|
return;
|
||||||
@@ -833,14 +838,18 @@ namespace Elwig.Windows {
|
|||||||
EmptyScale();
|
EmptyScale();
|
||||||
|
|
||||||
await EnsureContextRenewed();
|
await EnsureContextRenewed();
|
||||||
Mouse.OverrideCursor = null;
|
|
||||||
ControlUtils.SelectItemWithPk(DeliveryList, p?.Year, p?.DId);
|
ControlUtils.SelectItemWithPk(DeliveryList, p?.Year, p?.DId);
|
||||||
DeliveryPartList.SelectedItem = null;
|
DeliveryPartList.SelectedItem = null;
|
||||||
DeliveryPartList.ScrollIntoView(DeliveryPartList.ItemsSource.Cast<object>().LastOrDefault());
|
DeliveryPartList.ScrollIntoView(DeliveryPartList.ItemsSource.Cast<object>().LastOrDefault());
|
||||||
InitialInputs();
|
InitialInputs();
|
||||||
|
|
||||||
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void FinishButton_Click(object sender, RoutedEventArgs evt) {
|
private async void FinishButton_Click(object sender, RoutedEventArgs evt) {
|
||||||
|
if (!await CheckOrganic(true))
|
||||||
|
return;
|
||||||
|
|
||||||
FinishButton.IsEnabled = false;
|
FinishButton.IsEnabled = false;
|
||||||
NewDeliveryPartButton.IsEnabled = false;
|
NewDeliveryPartButton.IsEnabled = false;
|
||||||
Mouse.OverrideCursor = Cursors.Wait;
|
Mouse.OverrideCursor = Cursors.Wait;
|
||||||
@@ -860,7 +869,7 @@ namespace Elwig.Windows {
|
|||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
InteractionService.ShowDbException("Lieferung aktualisieren", exc);
|
InteractionService.ShowDbException("Lieferung aktualisieren", exc);
|
||||||
FinishButton.IsEnabled = true;
|
FinishButton.IsEnabled = true;
|
||||||
SaveButton.IsEnabled = true;
|
NewDeliveryPartButton.IsEnabled = true;
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
DeliveryPartList.IsEnabled = true;
|
DeliveryPartList.IsEnabled = true;
|
||||||
return;
|
return;
|
||||||
@@ -1038,6 +1047,9 @@ namespace Elwig.Windows {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private async void SaveButton_Click(object? sender, RoutedEventArgs? evt) {
|
private async void SaveButton_Click(object? sender, RoutedEventArgs? evt) {
|
||||||
|
if (!await CheckOrganic(true))
|
||||||
|
return;
|
||||||
|
|
||||||
SaveButton.IsEnabled = false;
|
SaveButton.IsEnabled = false;
|
||||||
Mouse.OverrideCursor = Cursors.Wait;
|
Mouse.OverrideCursor = Cursors.Wait;
|
||||||
|
|
||||||
@@ -1539,5 +1551,43 @@ namespace Elwig.Windows {
|
|||||||
if (MemberInput.SelectedItem is not Member m) return;
|
if (MemberInput.SelectedItem is not Member m) return;
|
||||||
App.FocusMember(m.MgNr);
|
App.FocusMember(m.MgNr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private async void CultivationInput_SelectionChanged(object sender, RoutedEventArgs evt) {
|
||||||
|
if (IsCreating && Mouse.OverrideCursor == null)
|
||||||
|
await CheckOrganic();
|
||||||
|
}
|
||||||
|
|
||||||
|
private async Task<bool> CheckOrganic(bool confirm = false) {
|
||||||
|
if (MemberInput.SelectedValue is not Member m || CultivationInput.SelectedItem is not WineCult c) {
|
||||||
|
return true;
|
||||||
|
} else if (c.IsOrganic) {
|
||||||
|
if (m.IsOrganic) {
|
||||||
|
var valid = true;
|
||||||
|
if (IsCreating) {
|
||||||
|
try {
|
||||||
|
var certs = await OrganicService.GetTracesCertificates(m);
|
||||||
|
valid = certs.Length > 0 && certs[0].IsValidForWineProduction;
|
||||||
|
} catch { }
|
||||||
|
}
|
||||||
|
if (valid)
|
||||||
|
return true;
|
||||||
|
if (confirm) {
|
||||||
|
return InteractionService.AskConfirmation("Kein gültiges Bio-Zertifikat", "Soll die Bio-Lieferung wirklich gespeichert werden, obwohl für das Mitglied kein gültiges Bio-Zertifikat gefunden werden konnte?");
|
||||||
|
} else {
|
||||||
|
InteractionService.ShowWarning("Kein gültiges Bio-Zertifikat", "Achtung! Für diesen Bio-Betrieb konnte kein gültiges Bio-Zertifikat gefunden werden!");
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
if (confirm) {
|
||||||
|
return InteractionService.AskConfirmation("Kein Bio-Betrieb", "Soll die Bio-Lieferung wirklich gespeichert werden, obwohl das Mitglied keinen Bio-Betrieb hat?");
|
||||||
|
} else {
|
||||||
|
InteractionService.ShowWarning("Kein Bio-Betrieb", "Achtung! Bio-Lieferung ohne Bio-Betrieb!");
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -208,8 +208,28 @@ namespace Elwig.Windows {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DeliveryScheduleInput_SelectionChanged(object sender, RoutedEventArgs evt) {
|
private bool CheckOrganic(bool confirm = false) {
|
||||||
|
if (DeliveryScheduleInput.SelectedItem is not DeliverySchedule s || MemberInput.SelectedItem is not Member m) {
|
||||||
|
return true;
|
||||||
|
} else if (s.IsOrganic) {
|
||||||
|
if (m.IsOrganic) {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
if (confirm) {
|
||||||
|
return InteractionService.AskConfirmation("Kein Bio-Betrieb", "Soll die Bio-Anmeldung wirklich gespeichert werden, obwohl das Mitglied keinen Bio-Betrieb hat?");
|
||||||
|
} else {
|
||||||
|
InteractionService.ShowWarning("Kein Bio-Betrieb", "Achtung! Bio-Anmeldung ohne Bio-Betrieb!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DeliveryScheduleInput_SelectionChanged(object sender, RoutedEventArgs evt) {
|
||||||
|
if (IsEditing || IsCreating)
|
||||||
|
CheckOrganic();
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void OnlyUpcomingInput_Changed(object sender, RoutedEventArgs evt) {
|
private async void OnlyUpcomingInput_Changed(object sender, RoutedEventArgs evt) {
|
||||||
@@ -258,6 +278,8 @@ namespace Elwig.Windows {
|
|||||||
var m = MemberInput.SelectedItem as Member;
|
var m = MemberInput.SelectedItem as Member;
|
||||||
ViewModel.MgNr = m?.MgNr;
|
ViewModel.MgNr = m?.MgNr;
|
||||||
ViewModel.MemberAddress = m?.FullAddress;
|
ViewModel.MemberAddress = m?.FullAddress;
|
||||||
|
if (IsCreating)
|
||||||
|
CheckOrganic();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void ShortcutNew() {
|
protected override void ShortcutNew() {
|
||||||
@@ -334,6 +356,9 @@ namespace Elwig.Windows {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private async void SaveButton_Click(object? sender, RoutedEventArgs? evt) {
|
private async void SaveButton_Click(object? sender, RoutedEventArgs? evt) {
|
||||||
|
if (!CheckOrganic(true))
|
||||||
|
return;
|
||||||
|
|
||||||
Mouse.OverrideCursor = Cursors.Wait;
|
Mouse.OverrideCursor = Cursors.Wait;
|
||||||
SaveButton.IsEnabled = false;
|
SaveButton.IsEnabled = false;
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user