TareCorrectionDialog: Allow actual tare to be null
This commit is contained in:
@@ -8,10 +8,11 @@ namespace Elwig.Dialogs {
|
|||||||
public int ActualTare { get; private set; }
|
public int ActualTare { get; private set; }
|
||||||
public int TargetTare { get; private set; }
|
public int TargetTare { get; private set; }
|
||||||
|
|
||||||
public TareCorrectionDialog(int actualTare, int? targetTare = null) {
|
public TareCorrectionDialog(int? actualTare, int? targetTare = null) {
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
ActualTare = actualTare;
|
ActualTare = actualTare ?? 0;
|
||||||
TargetTare = targetTare ?? actualTare;
|
TargetTare = targetTare ?? actualTare ?? 0;
|
||||||
|
ActualTareInput.IsReadOnly = actualTare != null;
|
||||||
ActualTareInput.Text = ActualTare.ToString();
|
ActualTareInput.Text = ActualTare.ToString();
|
||||||
TargetTareInput.Text = TargetTare.ToString();
|
TargetTareInput.Text = TargetTare.ToString();
|
||||||
TargetTareInput.SelectAll();
|
TargetTareInput.SelectAll();
|
||||||
@@ -19,12 +20,13 @@ namespace Elwig.Dialogs {
|
|||||||
|
|
||||||
private void ConfirmButton_Click(object sender, RoutedEventArgs evt) {
|
private void ConfirmButton_Click(object sender, RoutedEventArgs evt) {
|
||||||
DialogResult = true;
|
DialogResult = true;
|
||||||
|
ActualTare = int.Parse(ActualTareInput.Text);
|
||||||
TargetTare = int.Parse(TargetTareInput.Text);
|
TargetTare = int.Parse(TargetTareInput.Text);
|
||||||
Close();
|
Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void UpdateButtons() {
|
private void UpdateButtons() {
|
||||||
ConfirmButton.IsEnabled = TargetTareInput.Text.Length > 0;
|
ConfirmButton.IsEnabled = ActualTareInput.Text.Length > 0 && TargetTareInput.Text.Length > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void TareInput_TextChanged(object sender, TextChangedEventArgs evt) {
|
private void TareInput_TextChanged(object sender, TextChangedEventArgs evt) {
|
||||||
|
|||||||
@@ -303,7 +303,7 @@ namespace Elwig.Helpers {
|
|||||||
return d.ShowDialog() == true ? (d.Weight, d.Reason) : null;
|
return d.ShowDialog() == true ? (d.Weight, d.Reason) : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int? ShowTareCorrectionDialog(int actualTare, int? targetTare = null) {
|
public static int? ShowTareCorrectionDialog(int? actualTare, int? targetTare = null) {
|
||||||
var d = new TareCorrectionDialog(actualTare, targetTare);
|
var d = new TareCorrectionDialog(actualTare, targetTare);
|
||||||
return d.ShowDialog() == true ? d.TargetTare - d.ActualTare : null;
|
return d.ShowDialog() == true ? d.TargetTare - d.ActualTare : null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ namespace Elwig.Services {
|
|||||||
vm.GradationKmwString = "";
|
vm.GradationKmwString = "";
|
||||||
|
|
||||||
vm.Weight = null;
|
vm.Weight = null;
|
||||||
vm.ActualTare = 0;
|
vm.ActualTare = null;
|
||||||
vm.TargetTare = null;
|
vm.TargetTare = null;
|
||||||
vm.Tare = null;
|
vm.Tare = null;
|
||||||
vm.IsManualWeighing = false;
|
vm.IsManualWeighing = false;
|
||||||
@@ -58,9 +58,9 @@ namespace Elwig.Services {
|
|||||||
vm.WineOrigin = ControlUtils.GetItemFromSourceWithPk(vm.WineOriginSource, p.HkId) as WineOrigin;
|
vm.WineOrigin = ControlUtils.GetItemFromSourceWithPk(vm.WineOriginSource, p.HkId) as WineOrigin;
|
||||||
|
|
||||||
vm.Weight = p.Weight;
|
vm.Weight = p.Weight;
|
||||||
vm.ActualTare = p.WeighingInfo.Tare ?? 0;
|
vm.ActualTare = p.WeighingInfo.Tare;
|
||||||
vm.TargetTare = vm.ActualTare + p.WeighingInfo.TareCorrection;
|
vm.TargetTare = vm.ActualTare + p.WeighingInfo.TareCorrection;
|
||||||
vm.Tare = vm.TargetTare ?? (vm.ActualTare != 0 ? vm.ActualTare : null);
|
vm.Tare = vm.TargetTare ?? (vm.ActualTare is int t && t != 0 ? t : null);
|
||||||
vm.IsManualWeighing = p.IsManualWeighing;
|
vm.IsManualWeighing = p.IsManualWeighing;
|
||||||
vm.IsNetWeight = p.IsNetWeight;
|
vm.IsNetWeight = p.IsNetWeight;
|
||||||
|
|
||||||
|
|||||||
@@ -125,7 +125,7 @@ namespace Elwig.ViewModels {
|
|||||||
get => int.TryParse(TareString?.Replace(Utils.GroupSeparator, "").Replace(" kg", ""), out var w) ? w : null;
|
get => int.TryParse(TareString?.Replace(Utils.GroupSeparator, "").Replace(" kg", ""), out var w) ? w : null;
|
||||||
set => TareString = value == null ? "-" : $"{value:N0} kg{(TargetTare != null ? "*" : "")}";
|
set => TareString = value == null ? "-" : $"{value:N0} kg{(TargetTare != null ? "*" : "")}";
|
||||||
}
|
}
|
||||||
public int ActualTare;
|
public int? ActualTare;
|
||||||
public int? TargetTare;
|
public int? TargetTare;
|
||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
private bool _isManualWeighing;
|
private bool _isManualWeighing;
|
||||||
|
|||||||
@@ -614,7 +614,7 @@ namespace Elwig.Windows {
|
|||||||
ClearOriginalValues();
|
ClearOriginalValues();
|
||||||
ClearDefaultValues();
|
ClearDefaultValues();
|
||||||
ViewModel.FillInputs(p);
|
ViewModel.FillInputs(p);
|
||||||
CorrectTareButton.Visibility = !ViewModel.IsReceipt && (ViewModel.ActualTare != 0 || ViewModel.IsUnloadingBox) ? Visibility.Visible : Visibility.Hidden;
|
CorrectTareButton.Visibility = !ViewModel.IsReceipt && ((ViewModel.ActualTare is int t && t != 0) || ViewModel.IsUnloadingBox) ? Visibility.Visible : Visibility.Hidden;
|
||||||
FinishInputFilling();
|
FinishInputFilling();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -625,13 +625,13 @@ namespace Elwig.Windows {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void CorrectTareButton_Click(object sender, RoutedEventArgs evt) {
|
private void CorrectTareButton_Click(object sender, RoutedEventArgs evt) {
|
||||||
var lastCorrection = (ViewModel.TargetTare ?? ViewModel.ActualTare) - ViewModel.ActualTare;
|
var lastCorrection = (ViewModel.TargetTare ?? ViewModel.ActualTare ?? 0) - (ViewModel.ActualTare ?? 0);
|
||||||
var correction = Utils.ShowTareCorrectionDialog(ViewModel.ActualTare, ViewModel.TargetTare);
|
var correction = Utils.ShowTareCorrectionDialog(ViewModel.ActualTare, ViewModel.TargetTare);
|
||||||
if (correction == null) return;
|
if (correction == null) return;
|
||||||
ViewModel.Weight += lastCorrection - correction;
|
ViewModel.Weight += lastCorrection - correction;
|
||||||
ViewModel.TargetTare = correction == 0 ? null : ViewModel.ActualTare + correction;
|
|
||||||
ViewModel.Tare = ViewModel.TargetTare ?? ViewModel.ActualTare;
|
|
||||||
if (ViewModel.WeighingData is string s) {
|
if (ViewModel.WeighingData is string s) {
|
||||||
|
ViewModel.TargetTare = correction == 0 ? null : (ViewModel.ActualTare ?? 0) + correction;
|
||||||
|
ViewModel.Tare = ViewModel.TargetTare ?? ViewModel.ActualTare;
|
||||||
var obj = JsonNode.Parse(s)!.AsObject();
|
var obj = JsonNode.Parse(s)!.AsObject();
|
||||||
if (correction == 0) {
|
if (correction == 0) {
|
||||||
obj.Remove("tare_correction");
|
obj.Remove("tare_correction");
|
||||||
@@ -673,16 +673,16 @@ namespace Elwig.Windows {
|
|||||||
private void OnWeighingResult(IScale scale, WeighingResult res) {
|
private void OnWeighingResult(IScale scale, WeighingResult res) {
|
||||||
if ((res.NetWeight ?? 0) > 0 && res.FullWeighingId != null) {
|
if ((res.NetWeight ?? 0) > 0 && res.FullWeighingId != null) {
|
||||||
ViewModel.Weight = res.NetWeight;
|
ViewModel.Weight = res.NetWeight;
|
||||||
ViewModel.ActualTare = res.TareWeight ?? 0;
|
ViewModel.ActualTare = res.TareWeight;
|
||||||
ViewModel.TargetTare = null;
|
ViewModel.TargetTare = null;
|
||||||
ViewModel.Tare = ViewModel.ActualTare != 0 ? ViewModel.ActualTare : null;
|
ViewModel.Tare = ViewModel.ActualTare is int t && t != 0 ? t : null;
|
||||||
ViewModel.ScaleTerminalId = scale.ScaleTerminalId;
|
ViewModel.ScaleTerminalId = scale.ScaleTerminalId;
|
||||||
ViewModel.WeighingData = res.ToJson().ToJsonString();
|
ViewModel.WeighingData = res.ToJson().ToJsonString();
|
||||||
ViewModel.ManualWeighingReason = null;
|
ViewModel.ManualWeighingReason = null;
|
||||||
ManualWeighingInput.IsChecked = false;
|
ManualWeighingInput.IsChecked = false;
|
||||||
} else {
|
} else {
|
||||||
ViewModel.Weight = null;
|
ViewModel.Weight = null;
|
||||||
ViewModel.ActualTare = 0;
|
ViewModel.ActualTare = null;
|
||||||
ViewModel.TargetTare = null;
|
ViewModel.TargetTare = null;
|
||||||
ViewModel.Tare = null;
|
ViewModel.Tare = null;
|
||||||
ViewModel.ScaleTerminalId = null;
|
ViewModel.ScaleTerminalId = null;
|
||||||
@@ -1410,7 +1410,7 @@ namespace Elwig.Windows {
|
|||||||
private void UnloadingInput_Checked(object sender, RoutedEventArgs evt) {
|
private void UnloadingInput_Checked(object sender, RoutedEventArgs evt) {
|
||||||
if (!IsEditing && !IsCreating) return;
|
if (!IsEditing && !IsCreating) return;
|
||||||
if (!ViewModel.IsReceipt)
|
if (!ViewModel.IsReceipt)
|
||||||
CorrectTareButton.Visibility = ViewModel.ActualTare != 0 || ViewModel.IsUnloadingBox ? Visibility.Visible : Visibility.Hidden;
|
CorrectTareButton.Visibility = (ViewModel.ActualTare is int t && t != 0) || ViewModel.IsUnloadingBox ? Visibility.Visible : Visibility.Hidden;
|
||||||
var mod = ViewModel.Modifiers.ToList();
|
var mod = ViewModel.Modifiers.ToList();
|
||||||
var source = ViewModel.ModifiersSource.ToList();
|
var source = ViewModel.ModifiersSource.ToList();
|
||||||
if (App.Client.IsMatzen) {
|
if (App.Client.IsMatzen) {
|
||||||
|
|||||||
Reference in New Issue
Block a user