DeliveryPart: Add Unloading type instead of IsLesewagen
All checks were successful
Test / Run tests (push) Successful in 1m54s
All checks were successful
Test / Run tests (push) Successful in 1m54s
This commit is contained in:
@@ -9,7 +9,7 @@ namespace Elwig.Helpers {
|
||||
public static class AppDbUpdater {
|
||||
|
||||
// Don't forget to update value in Tests/fetch-resources.bat!
|
||||
public static readonly int RequiredSchemaVersion = 34;
|
||||
public static readonly int RequiredSchemaVersion = 35;
|
||||
|
||||
private static int VersionOffset = 0;
|
||||
|
||||
|
||||
@@ -744,8 +744,8 @@ namespace Elwig.Helpers.Export {
|
||||
};
|
||||
if (p.IsSplCheck) obj["spl_check"] = p.IsSplCheck;
|
||||
if (p.IsHandPicked != null) obj["hand_picked"] = p.IsHandPicked;
|
||||
if (p.IsLesewagen != null) obj["lesewagen"] = p.IsLesewagen;
|
||||
if (p.IsGebunden != null) obj["gebunden"] = p.IsGebunden;
|
||||
if (p.Unloading != null) obj["unloading"] = p.Unloading;
|
||||
if (p.Temperature != null) obj["temperature"] = p.Temperature;
|
||||
if (p.Acid != null) obj["acid"] = p.Acid;
|
||||
if (p.ScaleId != null) obj["scale_id"] = p.ScaleId;
|
||||
@@ -818,8 +818,8 @@ namespace Elwig.Helpers.Export {
|
||||
Comment = p["comment"]?.AsValue().GetValue<string>(),
|
||||
IsSplCheck = p["spl_check"]?.AsValue().GetValue<bool>() ?? false,
|
||||
IsHandPicked = p["hand_picked"]?.AsValue().GetValue<bool>(),
|
||||
IsLesewagen = p["lesewagen"]?.AsValue().GetValue<bool>(),
|
||||
IsGebunden = p["gebunden"]?.AsValue().GetValue<bool>(),
|
||||
Unloading = p["unloading"]?.AsValue().GetValue<string>() ?? ((p["lesewagen"]?.AsValue().GetValue<bool>() ?? false) ? DeliveryPart.Pumped : null),
|
||||
Temperature = p["temperature"]?.AsValue().GetValue<double>(),
|
||||
Acid = p["acid"]?.AsValue().GetValue<double>(),
|
||||
ScaleId = p["scale_id"]?.AsValue().GetValue<string>(),
|
||||
|
||||
@@ -9,6 +9,11 @@ using System.Text.Json.Nodes;
|
||||
namespace Elwig.Models.Entities {
|
||||
[Table("delivery_part"), PrimaryKey("Year", "DId", "DPNr")]
|
||||
public class DeliveryPart : IDelivery {
|
||||
|
||||
public const string Dumper = "dumper";
|
||||
public const string Pumped = "pumped";
|
||||
public const string Box = "box";
|
||||
|
||||
[Column("year")]
|
||||
public int Year { get; set; }
|
||||
|
||||
@@ -86,12 +91,27 @@ namespace Elwig.Models.Entities {
|
||||
[Column("hand_picked")]
|
||||
public bool? IsHandPicked { get; set; }
|
||||
|
||||
[Column("lesewagen")]
|
||||
public bool? IsLesewagen { get; set; }
|
||||
|
||||
[Column("gebunden")]
|
||||
public bool? IsGebunden { get; set; }
|
||||
|
||||
[Column("unloading")]
|
||||
public string? Unloading { get; set; }
|
||||
[NotMapped]
|
||||
public bool IsDumper {
|
||||
get => Unloading == Dumper;
|
||||
set => Unloading = value ? Dumper : Unloading;
|
||||
}
|
||||
[NotMapped]
|
||||
public bool IsPumped {
|
||||
get => Unloading == Pumped;
|
||||
set => Unloading = value ? Pumped : Unloading;
|
||||
}
|
||||
[NotMapped]
|
||||
public bool IsBox {
|
||||
get => Unloading == Box;
|
||||
set => Unloading = value ? Box : Unloading;
|
||||
}
|
||||
|
||||
[Column("temperature")]
|
||||
public double? Temperature { get; set; }
|
||||
|
||||
|
||||
6
Elwig/Resources/Sql/34-35.sql
Normal file
6
Elwig/Resources/Sql/34-35.sql
Normal file
@@ -0,0 +1,6 @@
|
||||
-- schema version 34 to 33
|
||||
|
||||
ALTER TABLE delivery_part ADD COLUMN unloading TEXT DEFAULT NULL;
|
||||
UPDATE delivery_part SET unloading = 'pumped' WHERE lesewagen;
|
||||
UPDATE delivery_part SET unloading = 'box' WHERE (SELECT zwstid IN ('H','S') FROM delivery d WHERE (d.year, d.did) = (delivery_part.year, delivery_part.did));
|
||||
ALTER TABLE delivery_part DROP COLUMN lesewagen;
|
||||
@@ -80,9 +80,9 @@ namespace Elwig.Services {
|
||||
vm.PartComment = p.Comment ?? "";
|
||||
vm.TemperatureString = (p.Temperature != null) ? $"{p.Temperature:N1}" : "";
|
||||
vm.AcidString = (p.Acid != null) ? $"{p.Acid:N1}" : "";
|
||||
vm.IsLesewagen = p.IsLesewagen ?? false;
|
||||
vm.IsHandPicked = p.IsHandPicked;
|
||||
vm.IsGebunden = p.IsGebunden;
|
||||
vm.Unloading = p.Unloading;
|
||||
|
||||
vm.ScaleId = p.ScaleId;
|
||||
vm.WeighingData = p.WeighingData;
|
||||
@@ -188,14 +188,38 @@ namespace Elwig.Services {
|
||||
prd = prd.And(p => p.IsNetWeight == true);
|
||||
filter.RemoveAt(i--);
|
||||
filterNames.Add("gerebelt gewogen");
|
||||
} else if (e.Length >= 5 && e.Length <= 11 && "planenwagen".StartsWith(e, StringComparison.CurrentCultureIgnoreCase)) {
|
||||
prd = prd.And(p => p.Unloading == DeliveryPart.Dumper);
|
||||
filter.RemoveAt(i--);
|
||||
filterNames.Add("Planenw./Kipper");
|
||||
} else if (e.Length >= 6 && e.Length <= 12 && "!planenwagen".StartsWith(e, StringComparison.CurrentCultureIgnoreCase)) {
|
||||
prd = prd.And(p => p.Unloading != DeliveryPart.Dumper);
|
||||
filter.RemoveAt(i--);
|
||||
filterNames.Add("kein Planenw./Kipper");
|
||||
} else if (e.Length >= 4 && e.Length <= 6 && "kipper".StartsWith(e, StringComparison.CurrentCultureIgnoreCase)) {
|
||||
prd = prd.And(p => p.Unloading == DeliveryPart.Dumper);
|
||||
filter.RemoveAt(i--);
|
||||
filterNames.Add("Planenw./Kipper");
|
||||
} else if (e.Length >= 5 && e.Length <= 7 && "!kipper".StartsWith(e, StringComparison.CurrentCultureIgnoreCase)) {
|
||||
prd = prd.And(p => p.Unloading != DeliveryPart.Dumper);
|
||||
filter.RemoveAt(i--);
|
||||
filterNames.Add("kein Planenw./Kipper");
|
||||
} else if (e.Length >= 5 && e.Length <= 9 && "lesewagen".StartsWith(e, StringComparison.CurrentCultureIgnoreCase)) {
|
||||
prd = prd.And(p => p.IsLesewagen == true);
|
||||
prd = prd.And(p => p.Unloading == DeliveryPart.Pumped);
|
||||
filter.RemoveAt(i--);
|
||||
filterNames.Add("Lesewagen");
|
||||
} else if (e.Length >= 6 && e.Length <= 10 && "!lesewagen".StartsWith(e, StringComparison.CurrentCultureIgnoreCase)) {
|
||||
prd = prd.And(p => p.IsLesewagen == false);
|
||||
prd = prd.And(p => p.Unloading != DeliveryPart.Pumped);
|
||||
filter.RemoveAt(i--);
|
||||
filterNames.Add("kein Lesewagen");
|
||||
} else if (e.Length >= 5 && e.Length <= 6 && "kisten".StartsWith(e, StringComparison.CurrentCultureIgnoreCase)) {
|
||||
prd = prd.And(p => p.Unloading == DeliveryPart.Box);
|
||||
filter.RemoveAt(i--);
|
||||
filterNames.Add("Kisten");
|
||||
} else if (e.Length >= 6 && e.Length <= 7 && "!kisten".StartsWith(e, StringComparison.CurrentCultureIgnoreCase)) {
|
||||
prd = prd.And(p => p.Unloading != DeliveryPart.Box);
|
||||
filter.RemoveAt(i--);
|
||||
filterNames.Add("keine Kisten");
|
||||
} else if (e.Length == 2 && var.ContainsKey(e.ToUpper())) {
|
||||
filterVar.Add(e.ToUpper());
|
||||
filter.RemoveAt(i--);
|
||||
@@ -483,8 +507,8 @@ namespace Elwig.Services {
|
||||
|
||||
IsNetWeight = vm.IsNetWeight,
|
||||
IsHandPicked = vm.IsHandPicked,
|
||||
IsLesewagen = vm.IsLesewagen,
|
||||
IsGebunden = vm.IsGebunden,
|
||||
Unloading = vm.Unloading,
|
||||
Temperature = vm.Temperature,
|
||||
Acid = vm.Acid,
|
||||
Comment = string.IsNullOrEmpty(vm.PartComment) ? null : vm.PartComment,
|
||||
|
||||
@@ -169,10 +169,28 @@ namespace Elwig.ViewModels {
|
||||
set => AcidString = $"{value:0.0}";
|
||||
}
|
||||
[ObservableProperty]
|
||||
private bool _isLesewagen;
|
||||
[ObservableProperty]
|
||||
private bool? _isHandPicked;
|
||||
|
||||
public string? Unloading {
|
||||
get => IsUnloadingDumper ? DeliveryPart.Dumper : IsUnloadingPumped ? DeliveryPart.Pumped : IsUnloadingBox ? DeliveryPart.Box : null;
|
||||
set {
|
||||
switch (value) {
|
||||
case DeliveryPart.Dumper: IsUnloadingDumper = true; break;
|
||||
case DeliveryPart.Pumped: IsUnloadingPumped = true; break;
|
||||
case DeliveryPart.Box: IsUnloadingBox = true; break;
|
||||
default: IsUnloadingOther = true; break;
|
||||
}
|
||||
}
|
||||
}
|
||||
[ObservableProperty]
|
||||
private bool _isUnloadingDumper;
|
||||
[ObservableProperty]
|
||||
private bool _isUnloadingPumped;
|
||||
[ObservableProperty]
|
||||
private bool _isUnloadingBox;
|
||||
[ObservableProperty]
|
||||
private bool _isUnloadingOther;
|
||||
|
||||
[ObservableProperty]
|
||||
private string _statusMembers = "-";
|
||||
[ObservableProperty]
|
||||
|
||||
@@ -369,8 +369,9 @@
|
||||
<Grid Grid.Row="1" Grid.Column="2">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="0.625*"/>
|
||||
<RowDefinition Height="*"/>
|
||||
<RowDefinition Height="*"/>
|
||||
<RowDefinition Height="0.875*"/>
|
||||
<RowDefinition Height="0.875*"/>
|
||||
<RowDefinition Height="0.25*"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
@@ -404,7 +405,7 @@
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
|
||||
<GroupBox Header="Lieferung" Grid.Column="0" Grid.Row="1" Grid.RowSpan="2" Margin="5,5,5,5">
|
||||
<GroupBox Header="Lieferung" Grid.Column="0" Grid.Row="1" Grid.RowSpan="3" Margin="5,5,5,5">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="100"/>
|
||||
@@ -563,7 +564,7 @@
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
|
||||
<GroupBox Header="Sonstiges" Grid.Column="1" Grid.Row="3" Margin="5,5,5,10">
|
||||
<GroupBox Header="Sonstiges" Grid.Column="1" Grid.Row="3" Grid.RowSpan="2" Margin="5,5,5,10">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="100"/>
|
||||
@@ -592,18 +593,31 @@
|
||||
TextChanged="TemperatureAcidInput_TextChanged" LostFocus="TemperatureAcidInput_LostFocus"
|
||||
Grid.Column="1" Margin="0,100,10,10" VerticalAlignment="Top"/>
|
||||
|
||||
<CheckBox x:Name="LesewagenInput" IsChecked="{Binding IsLesewagen, Mode=TwoWay}"
|
||||
Content="Lesewagen" Margin="10,75,0,0" Grid.Column="2"
|
||||
VerticalAlignment="Top" HorizontalAlignment="Left"
|
||||
Checked="LesewagenInput_Changed" Unchecked="LesewagenInput_Changed"/>
|
||||
<CheckBox x:Name="HandPickedInput" IsChecked="{Binding IsHandPicked, Mode=TwoWay}"
|
||||
Content="Handlese" Margin="10,105,0,0" Grid.Column="2" IsThreeState="True"
|
||||
Content="Handlese" Margin="10,135,10,0" Grid.Column="0" Grid.ColumnSpan="2" IsThreeState="True"
|
||||
VerticalAlignment="Top" HorizontalAlignment="Left"
|
||||
Checked="HandPickedInput_Changed" Unchecked="HandPickedInput_Changed" Indeterminate="HandPickedInput_Changed"/>
|
||||
|
||||
<RadioButton x:Name="UnloadingDumperInput" GroupName="Unloading" IsChecked="{Binding IsUnloadingDumper, Mode=TwoWay}"
|
||||
Content="Planenw./Kipper" Margin="10,75,0,0" Grid.Column="2"
|
||||
VerticalAlignment="Top" HorizontalAlignment="Left"
|
||||
Checked="UnloadingInput_Checked" Unchecked="UnloadingInput_Unchecked"/>
|
||||
<RadioButton x:Name="UnloadingPumpedInput" GroupName="Unloading" IsChecked="{Binding IsUnloadingPumped, Mode=TwoWay}"
|
||||
Content="Lesewagen" Margin="10,95,0,0" Grid.Column="2"
|
||||
VerticalAlignment="Top" HorizontalAlignment="Left"
|
||||
Checked="UnloadingInput_Checked" Unchecked="UnloadingInput_Unchecked"/>
|
||||
<RadioButton x:Name="UnloadingBoxInput" GroupName="Unloading" IsChecked="{Binding IsUnloadingBox, Mode=TwoWay}"
|
||||
Content="Kiste(n)" Margin="10,115,0,0" Grid.Column="2"
|
||||
VerticalAlignment="Top" HorizontalAlignment="Left"
|
||||
Checked="UnloadingInput_Checked" Unchecked="UnloadingInput_Unchecked"/>
|
||||
<RadioButton x:Name="UnloadingOtherInput" GroupName="Unloading" IsChecked="{Binding IsUnloadingOther, Mode=TwoWay}"
|
||||
Content="Andere/Unbek." Margin="10,135,0,0" Grid.Column="2"
|
||||
VerticalAlignment="Top" HorizontalAlignment="Left"
|
||||
Checked="UnloadingInput_Checked" Unchecked="UnloadingInput_Unchecked"/>
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
|
||||
<GroupBox Header="Herkunft" Grid.Column="0" Grid.Row="3" Margin="5,5,5,10">
|
||||
<GroupBox Header="Herkunft" Grid.Column="0" Grid.Row="4" Margin="5,5,5,10">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="100"/>
|
||||
|
||||
@@ -320,11 +320,16 @@ namespace Elwig.Windows {
|
||||
}
|
||||
|
||||
if (App.Config.WeighingMode == WeighingMode.Box) {
|
||||
LesewagenInput.IsEnabled = false;
|
||||
SetDefaultValue(LesewagenInput, false);
|
||||
SetDefaultValue(UnloadingDumperInput, false);
|
||||
SetDefaultValue(UnloadingPumpedInput, false);
|
||||
SetDefaultValue(UnloadingBoxInput, true);
|
||||
SetDefaultValue(UnloadingOtherInput, false);
|
||||
UnloadingBoxInput.IsChecked = true;
|
||||
} else {
|
||||
LesewagenInput.IsEnabled = true;
|
||||
UnsetDefaultValue(LesewagenInput);
|
||||
UnsetDefaultValue(UnloadingDumperInput);
|
||||
UnsetDefaultValue(UnloadingPumpedInput);
|
||||
UnsetDefaultValue(UnloadingBoxInput);
|
||||
UnsetDefaultValue(UnloadingOtherInput);
|
||||
}
|
||||
|
||||
if (App.Config.WeighingMode != WeighingMode.Net) {
|
||||
@@ -354,8 +359,8 @@ namespace Elwig.Windows {
|
||||
ClearDefaultValues();
|
||||
|
||||
ViewModel.IsNetWeight = App.Config.WeighingMode == WeighingMode.Net;
|
||||
ViewModel.IsLesewagen = false;
|
||||
ViewModel.IsHandPicked = App.Config.WeighingMode != WeighingMode.Net ? true : null;
|
||||
ViewModel.Unloading = null;
|
||||
ViewModel.IsGebunden = null;
|
||||
InitialDefaultInputs();
|
||||
|
||||
@@ -1326,6 +1331,7 @@ namespace Elwig.Windows {
|
||||
private void ModifiersInput_SelectionChanged(object sender, SelectionChangedEventArgs evt) {
|
||||
if (!IsEditing && !IsCreating) return;
|
||||
var mod = ModifiersInput.SelectedItems.Cast<Modifier>().ToList();
|
||||
var source = ModifiersInput.ItemsSource.Cast<Modifier>().ToList();
|
||||
if (App.Client.IsMatzen) {
|
||||
var kl = mod.Where(m => m.Name.StartsWith("Klasse "));
|
||||
if (kl.Count() > 1) {
|
||||
@@ -1334,33 +1340,64 @@ namespace Elwig.Windows {
|
||||
ModifiersInput.SelectedItems.Remove(r);
|
||||
});
|
||||
}
|
||||
} else if (App.Client.IsWinzerkeller) {
|
||||
}
|
||||
|
||||
if (source.Any(m => m.Name.Contains("Lesewagen"))) {
|
||||
if (mod.Any(m => m.Name.Contains("Lesewagen"))) {
|
||||
ViewModel.IsLesewagen = true;
|
||||
ViewModel.IsUnloadingPumped = true;
|
||||
} else {
|
||||
ViewModel.IsLesewagen = false;
|
||||
ViewModel.IsUnloadingPumped = false;
|
||||
}
|
||||
}
|
||||
if (source.Any(m => m.Name.Contains("Kiste"))) {
|
||||
if (mod.Any(m => m.Name.Contains("Kiste"))) {
|
||||
ViewModel.IsUnloadingBox = true;
|
||||
} else {
|
||||
ViewModel.IsUnloadingBox = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void LesewagenInput_Changed(object sender, RoutedEventArgs evt) {
|
||||
private void UnloadingInput_Checked(object sender, RoutedEventArgs evt) {
|
||||
if (!IsEditing && !IsCreating) return;
|
||||
var mod = ModifiersInput.SelectedItems.Cast<Modifier>().ToList();
|
||||
var source = ModifiersInput.ItemsSource.Cast<Modifier>().ToList();
|
||||
var lw = LesewagenInput.IsChecked == true;
|
||||
if (App.Client.IsMatzen) {
|
||||
var kl = mod.Where(m => m.Name.StartsWith("Klasse ")).Select(m => m.ModId).LastOrDefault("A")[0];
|
||||
if (lw) kl++; else kl--;
|
||||
var newKl = source.FirstOrDefault(m => m.ModId == kl.ToString());
|
||||
var kl = mod.Where(m => m.Name.StartsWith("Klasse ")).Select(m => m.ModId).LastOrDefault("_")[0];
|
||||
if (ViewModel.IsUnloadingPumped && (kl == 'A' || kl == '_')) {
|
||||
kl = 'B';
|
||||
} else if (kl == 'B' && !ViewModel.IsUnloadingPumped) {
|
||||
kl = 'A';
|
||||
} else if (ViewModel.IsUnloadingDumper && (kl == 'B' || kl == '_')) {
|
||||
kl = 'A';
|
||||
} else {
|
||||
kl = '_';
|
||||
}
|
||||
var newKl = source.FirstOrDefault(m => m?.ModId == kl.ToString(), null);
|
||||
if (newKl != null) ModifiersInput.SelectedItems.Add(newKl);
|
||||
} else if (App.Client.IsWinzerkeller) {
|
||||
if (lw && !mod.Any(m => m.Name.Contains("Lesewagen"))) {
|
||||
}
|
||||
|
||||
if (source.Any(m => m.Name.Contains("Lesewagen"))) {
|
||||
if (ViewModel.IsUnloadingPumped && !mod.Any(m => m.Name.Contains("Lesewagen"))) {
|
||||
ModifiersInput.SelectedItems.Add(source.First(m => m.Name.Contains("Lesewagen")));
|
||||
} else if (!lw && mod.Any(m => m.Name.Contains("Lesewagen"))) {
|
||||
} else if (!ViewModel.IsUnloadingPumped && mod.Any(m => m.Name.Contains("Lesewagen"))) {
|
||||
ModifiersInput.SelectedItems.Remove(mod.First(m => m.Name.Contains("Lesewagen")));
|
||||
}
|
||||
}
|
||||
CheckBox_Changed(sender, evt);
|
||||
if (source.Any(m => m.Name.Contains("Kiste"))) {
|
||||
if (ViewModel.IsUnloadingBox && !mod.Any(m => m.Name.Contains("Kiste"))) {
|
||||
ModifiersInput.SelectedItems.Add(source.First(m => m.Name.Contains("Kiste")));
|
||||
} else if (!ViewModel.IsUnloadingBox && mod.Any(m => m.Name.Contains("Kiste"))) {
|
||||
ModifiersInput.SelectedItems.Remove(mod.First(m => m.Name.Contains("Kiste")));
|
||||
}
|
||||
}
|
||||
|
||||
RadioButton_Changed(sender, evt);
|
||||
}
|
||||
|
||||
private void UnloadingInput_Unchecked(object sender, RoutedEventArgs evt) {
|
||||
if (!IsEditing && !IsCreating) return;
|
||||
RadioButton_Changed(sender, evt);
|
||||
}
|
||||
|
||||
private void UpdateWineOrigin() {
|
||||
|
||||
@@ -1 +1 @@
|
||||
curl --fail -s -L "https://elwig.at/files/create.sql?v=34" -u "elwig:ganzGeheim123!" -o "Resources\Sql\Create.sql"
|
||||
curl --fail -s -L "https://elwig.at/files/create.sql?v=35" -u "elwig:ganzGeheim123!" -o "Resources\Sql\Create.sql"
|
||||
|
||||
Reference in New Issue
Block a user