DeliveryAdminWindow: Handle members without default KG correctly
All checks were successful
Test / Run tests (push) Successful in 2m44s

This commit is contained in:
2024-07-27 20:46:13 +02:00
parent 662862090e
commit 4c3f0c40fa
3 changed files with 55 additions and 39 deletions

View File

@ -484,115 +484,115 @@ namespace Elwig.Windows {
UpdateButtons(); UpdateButtons();
} }
protected void ComboBox_SelectionChanged(object sender, RoutedEventArgs evt) { protected void ComboBox_SelectionChanged(object sender, RoutedEventArgs? evt) {
UpdateComboBox((Control)sender); UpdateComboBox((Control)sender);
} }
protected void IntegerInput_TextChanged(object sender, TextChangedEventArgs evt) { protected void IntegerInput_TextChanged(object sender, TextChangedEventArgs? evt) {
// FIXME // FIXME
InputTextChanged((TextBox)sender, Validator.CheckInteger); InputTextChanged((TextBox)sender, Validator.CheckInteger);
} }
protected void DecimalInput_TextChanged(object sender, TextChangedEventArgs evt) { protected void DecimalInput_TextChanged(object sender, TextChangedEventArgs? evt) {
// FIXME // FIXME
InputTextChanged((TextBox)sender, Validator.CheckDecimal); InputTextChanged((TextBox)sender, Validator.CheckDecimal);
} }
protected void PartialDateInput_TextChanged(object sender, TextChangedEventArgs evt) { protected void PartialDateInput_TextChanged(object sender, TextChangedEventArgs? evt) {
InputTextChanged((TextBox)sender, Validator.CheckPartialDate); InputTextChanged((TextBox)sender, Validator.CheckPartialDate);
} }
protected void PartialDateInput_LostFocus(object sender, RoutedEventArgs evt) { protected void PartialDateInput_LostFocus(object sender, RoutedEventArgs? evt) {
InputLostFocus((TextBox)sender, Validator.CheckPartialDate); InputLostFocus((TextBox)sender, Validator.CheckPartialDate);
} }
protected void DateInput_TextChanged(object sender, TextChangedEventArgs evt) { protected void DateInput_TextChanged(object sender, TextChangedEventArgs? evt) {
InputTextChanged((TextBox)sender, Validator.CheckDate); InputTextChanged((TextBox)sender, Validator.CheckDate);
} }
protected void DateInput_LostFocus(object sender, RoutedEventArgs evt) { protected void DateInput_LostFocus(object sender, RoutedEventArgs? evt) {
InputLostFocus((TextBox)sender, Validator.CheckDate); InputLostFocus((TextBox)sender, Validator.CheckDate);
} }
protected void TimeInput_TextChanged(object sender, TextChangedEventArgs evt) { protected void TimeInput_TextChanged(object sender, TextChangedEventArgs? evt) {
InputTextChanged((TextBox)sender, Validator.CheckTime); InputTextChanged((TextBox)sender, Validator.CheckTime);
} }
protected void TimeInput_LostFocus(object sender, RoutedEventArgs evt) { protected void TimeInput_LostFocus(object sender, RoutedEventArgs? evt) {
InputLostFocus((TextBox)sender, Validator.CheckTime); InputLostFocus((TextBox)sender, Validator.CheckTime);
} }
protected async void PlzInput_TextChanged(object sender, TextChangedEventArgs evt) { protected async void PlzInput_TextChanged(object sender, TextChangedEventArgs? evt) {
var plz = (TextBox)sender; var plz = (TextBox)sender;
InputTextChanged(plz, Validator.CheckPlz); InputTextChanged(plz, Validator.CheckPlz);
if ("PLZ".Equals(plz.Tag)) if ("PLZ".Equals(plz.Tag))
await UpdatePlz(plz, GetPlzOrtInput(plz)); await UpdatePlz(plz, GetPlzOrtInput(plz));
} }
protected async void PlzInput_LostFocus(object sender, RoutedEventArgs evt) { protected async void PlzInput_LostFocus(object sender, RoutedEventArgs? evt) {
var plz = (TextBox)sender; var plz = (TextBox)sender;
InputLostFocus(plz, Validator.CheckPlz); InputLostFocus(plz, Validator.CheckPlz);
if ("PLZ".Equals(plz.Tag)) if ("PLZ".Equals(plz.Tag))
await UpdatePlz(plz, GetPlzOrtInput(plz)); await UpdatePlz(plz, GetPlzOrtInput(plz));
} }
protected void EmailAddressInput_TextChanged(object sender, TextChangedEventArgs evt) { protected void EmailAddressInput_TextChanged(object sender, TextChangedEventArgs? evt) {
InputTextChanged((TextBox)sender, Validator.CheckEmailAddress); InputTextChanged((TextBox)sender, Validator.CheckEmailAddress);
} }
protected void EmailAddressInput_LostFocus(object sender, RoutedEventArgs evt) { protected void EmailAddressInput_LostFocus(object sender, RoutedEventArgs? evt) {
InputLostFocus((TextBox)sender, Validator.CheckEmailAddress); InputLostFocus((TextBox)sender, Validator.CheckEmailAddress);
} }
protected void PhoneNrInput_TextChanged(object sender, TextChangedEventArgs evt) { protected void PhoneNrInput_TextChanged(object sender, TextChangedEventArgs? evt) {
InputTextChanged((TextBox)sender, Validator.CheckPhoneNumber); InputTextChanged((TextBox)sender, Validator.CheckPhoneNumber);
} }
protected void PhoneNrInput_LostFocus(object sender, RoutedEventArgs evt) { protected void PhoneNrInput_LostFocus(object sender, RoutedEventArgs? evt) {
InputLostFocus((TextBox)sender, Validator.CheckPhoneNumber); InputLostFocus((TextBox)sender, Validator.CheckPhoneNumber);
} }
protected void IbanInput_TextChanged(object sender, TextChangedEventArgs evt) { protected void IbanInput_TextChanged(object sender, TextChangedEventArgs? evt) {
InputTextChanged((TextBox)sender, Validator.CheckIban); InputTextChanged((TextBox)sender, Validator.CheckIban);
} }
protected void IbanInput_LostFocus(object sender, RoutedEventArgs evt) { protected void IbanInput_LostFocus(object sender, RoutedEventArgs? evt) {
InputLostFocus((TextBox)sender, Validator.CheckIban); InputLostFocus((TextBox)sender, Validator.CheckIban);
} }
protected void BicInput_TextChanged(object sender, TextChangedEventArgs evt) { protected void BicInput_TextChanged(object sender, TextChangedEventArgs? evt) {
InputTextChanged((TextBox)sender, Validator.CheckBic); InputTextChanged((TextBox)sender, Validator.CheckBic);
} }
protected void BicInput_LostFocus(object sender, RoutedEventArgs evt) { protected void BicInput_LostFocus(object sender, RoutedEventArgs? evt) {
InputLostFocus((TextBox)sender, Validator.CheckBic); InputLostFocus((TextBox)sender, Validator.CheckBic);
} }
protected void UstIdNrInput_TextChanged(object sender, TextChangedEventArgs evt) { protected void UstIdNrInput_TextChanged(object sender, TextChangedEventArgs? evt) {
InputTextChanged((TextBox)sender, Validator.CheckUstIdNr); InputTextChanged((TextBox)sender, Validator.CheckUstIdNr);
} }
protected void UstIdNrInput_LostFocus(object sender, RoutedEventArgs evt) { protected void UstIdNrInput_LostFocus(object sender, RoutedEventArgs? evt) {
InputLostFocus((TextBox)sender, Validator.CheckUstIdNr); InputLostFocus((TextBox)sender, Validator.CheckUstIdNr);
} }
protected void LfbisNrInput_TextChanged(object sender, TextChangedEventArgs evt) { protected void LfbisNrInput_TextChanged(object sender, TextChangedEventArgs? evt) {
InputTextChanged((TextBox)sender, Validator.CheckLfbisNr); InputTextChanged((TextBox)sender, Validator.CheckLfbisNr);
} }
protected void LfbisNrInput_LostFocus(object sender, RoutedEventArgs evt) { protected void LfbisNrInput_LostFocus(object sender, RoutedEventArgs? evt) {
InputLostFocus((TextBox)sender, Validator.CheckLfbisNr); InputLostFocus((TextBox)sender, Validator.CheckLfbisNr);
} }
protected void UpperCaseInput_TextChanged(object sender, TextChangedEventArgs evt) { protected void UpperCaseInput_TextChanged(object sender, TextChangedEventArgs? evt) {
InputTextChanged((TextBox)sender, Validator.CheckUpperCase); InputTextChanged((TextBox)sender, Validator.CheckUpperCase);
} }
protected void UpperCaseInput_LostFocus(object sender, RoutedEventArgs evt) { protected void UpperCaseInput_LostFocus(object sender, RoutedEventArgs? evt) {
InputLostFocus((TextBox)sender, Validator.CheckUpperCase); InputLostFocus((TextBox)sender, Validator.CheckUpperCase);
} }
protected void AreaComTypeDetailsButton_Click(object sender, RoutedEventArgs evt) { protected void AreaComTypeDetailsButton_Click(object sender, RoutedEventArgs? evt) {
App.FocusBaseDataAreaComType(); App.FocusBaseDataAreaComType();
} }
} }

View File

@ -411,11 +411,11 @@
<ComboBox x:Name="AttributeInput" SelectedItem="{Binding WineAttrObj, Mode=TwoWay}" ItemsSource="{Binding WineAttrSource, Mode=TwoWay}" <ComboBox x:Name="AttributeInput" SelectedItem="{Binding WineAttrObj, Mode=TwoWay}" ItemsSource="{Binding WineAttrSource, Mode=TwoWay}"
Grid.Row="1" Grid.Column="1" Margin="0,40,5,10" Grid.Row="1" Grid.Column="1" Margin="0,40,5,10"
DisplayMemberPath="Name" DisplayMemberPath="Name"
SelectionChanged="AttributeInput_SelectionChanged" KeyUp="Input_KeyUp"/> KeyUp="Input_KeyUp"/>
<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>

View File

@ -624,7 +624,11 @@ namespace Elwig.Windows {
private void MgNrInput_TextChanged(object sender, TextChangedEventArgs evt) { private void MgNrInput_TextChanged(object sender, TextChangedEventArgs evt) {
var valid = InputTextChanged((TextBox)sender, Validator.CheckMgNr); var valid = InputTextChanged((TextBox)sender, Validator.CheckMgNr);
var text = MgNrInput.Text;
var caret = MgNrInput.CaretIndex;
ControlUtils.SelectItemWithPk(MemberInput, valid ? ViewModel.MgNr : null); ControlUtils.SelectItemWithPk(MemberInput, valid ? ViewModel.MgNr : null);
MgNrInput.Text = text;
MgNrInput.CaretIndex = caret;
} }
private void MgNrInput_LostFocus(object sender, RoutedEventArgs evt) { private void MgNrInput_LostFocus(object sender, RoutedEventArgs evt) {
@ -638,10 +642,16 @@ namespace Elwig.Windows {
ViewModel.MemberAddress = m?.FullAddress; ViewModel.MemberAddress = m?.FullAddress;
if (m == null) { if (m == null) {
UnsetDefaultValue(WineKgInput); UnsetDefaultValue(WineKgInput);
WineKgInput.SelectedIndex = 0; WineKgInput.SelectedItem = null;
ComboBox_SelectionChanged(WineKgInput, null);
} else { } else {
ControlUtils.SelectItemWithPk(WineKgInput, m.DefaultKgNr); if (m.DefaultKgNr is int kgnr) {
ControlUtils.SelectItemWithPk(WineKgInput, kgnr);
} else {
WineKgInput.SelectedItem = null;
}
SetDefaultValue(WineKgInput); SetDefaultValue(WineKgInput);
ComboBox_SelectionChanged(WineKgInput, null);
} }
} }
@ -1214,6 +1224,7 @@ namespace Elwig.Windows {
using var ctx = new AppDbContext(); using var ctx = new AppDbContext();
if (!GetInputValid(GradationKmwInput)) { if (!GetInputValid(GradationKmwInput)) {
UnsetDefaultValue(WineQualityLevelInput); UnsetDefaultValue(WineQualityLevelInput);
ComboBox_SelectionChanged(WineQualityLevelInput, null);
WineQualityLevelInput.ItemsSource = ctx.WineQualityLevels.Where(q => q.QualId == "WEI").ToList(); WineQualityLevelInput.ItemsSource = ctx.WineQualityLevels.Where(q => q.QualId == "WEI").ToList();
return; return;
} }
@ -1271,14 +1282,6 @@ namespace Elwig.Windows {
GradationKmwInput.Text += ",0"; GradationKmwInput.Text += ",0";
} }
private void AttributeInput_SelectionChanged(object sender, SelectionChangedEventArgs evt) {
}
private void CultivationInput_SelectionChanged(object sender, SelectionChangedEventArgs evt) {
}
private void ModifiersInput_SelectionChanged(object sender, SelectionChangedEventArgs evt) { private void ModifiersInput_SelectionChanged(object sender, SelectionChangedEventArgs evt) {
if (!IsEditing && !IsCreating) return; if (!IsEditing && !IsCreating) return;
var mod = ModifiersInput.SelectedItems.Cast<Modifier>(); var mod = ModifiersInput.SelectedItems.Cast<Modifier>();
@ -1291,6 +1294,12 @@ namespace Elwig.Windows {
ModifiersInput.SelectedItems.Remove(r); ModifiersInput.SelectedItems.Remove(r);
}); });
} }
} else if (App.Client.IsWinzerkeller) {
if (mod.Any(m => m.Name.Contains("Lesewagen"))) {
ViewModel.IsLesewagen = true;
} else {
ViewModel.IsLesewagen = false;
}
} }
} }
@ -1302,8 +1311,14 @@ namespace Elwig.Windows {
if (App.Client.IsMatzen) { if (App.Client.IsMatzen) {
var kl = mod.Where(m => m.Name.StartsWith("Klasse ")).Select(m => m.ModId).LastOrDefault("A")[0]; var kl = mod.Where(m => m.Name.StartsWith("Klasse ")).Select(m => m.ModId).LastOrDefault("A")[0];
if (lw) kl++; else kl--; if (lw) kl++; else kl--;
var newKl = source.Where(m => m.ModId == kl.ToString()).FirstOrDefault(); var newKl = source.FirstOrDefault(m => m.ModId == kl.ToString());
if (newKl != null) ModifiersInput.SelectedItems.Add(newKl); if (newKl != null) ModifiersInput.SelectedItems.Add(newKl);
} else if (App.Client.IsWinzerkeller) {
if (lw && !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"))) {
ModifiersInput.SelectedItems.Remove(mod.First(m => m.Name.Contains("Lesewagen")));
}
} }
CheckBox_Changed(sender, evt); CheckBox_Changed(sender, evt);
} }
@ -1314,6 +1329,7 @@ namespace Elwig.Windows {
if (qual == null || kg == null) { if (qual == null || kg == null) {
WineOriginInput.IsEnabled = (IsEditing || IsCreating); WineOriginInput.IsEnabled = (IsEditing || IsCreating);
UnsetDefaultValue(WineOriginInput); UnsetDefaultValue(WineOriginInput);
ComboBox_SelectionChanged(WineOriginInput, null);
return; return;
} }
WineOriginInput.IsEnabled = false; WineOriginInput.IsEnabled = false;