[#67] DeliveryAncmtAdminWindow: Check if member IsOrganic when delivery schedule IsOrganic

This commit is contained in:
2026-09-29 19:04:47 +02:00
parent 3dca099248
commit 34b40535a6
4 changed files with 32 additions and 1 deletions
+2
View File
@@ -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; }
+2
View File
@@ -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';
+26 -1
View File
@@ -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;