DeliveryAdminWindow: Add button to correct tare
This commit is contained in:
@@ -9,6 +9,7 @@ using Microsoft.EntityFrameworkCore;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text.Json.Nodes;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
@@ -103,6 +104,7 @@ namespace Elwig.Windows {
|
||||
WeighingBButton.Visibility = Visibility.Hidden;
|
||||
WeighingCButton.Visibility = Visibility.Hidden;
|
||||
WeighingDButton.Visibility = Visibility.Hidden;
|
||||
DisableWeighingButtons();
|
||||
}
|
||||
|
||||
Menu_Statistics_WineQuality_ModeOe.IsChecked = false;
|
||||
@@ -612,14 +614,34 @@ namespace Elwig.Windows {
|
||||
ClearOriginalValues();
|
||||
ClearDefaultValues();
|
||||
ViewModel.FillInputs(p);
|
||||
CorrectTareButton.Visibility = !ViewModel.IsReceipt && p.WeighingInfo.Tare != null && p.WeighingInfo.Tare != 0 ? Visibility.Visible : Visibility.Hidden;
|
||||
FinishInputFilling();
|
||||
}
|
||||
|
||||
new protected void ClearInputs(bool validate = false) {
|
||||
ViewModel.ClearInputs();
|
||||
CorrectTareButton.Visibility = Visibility.Hidden;
|
||||
base.ClearInputs(validate);
|
||||
}
|
||||
|
||||
private void CorrectTareButton_Click(object sender, RoutedEventArgs evt) {
|
||||
var lastCorrection = (ViewModel.TargetTare ?? ViewModel.ActualTare) - ViewModel.ActualTare;
|
||||
var correction = Utils.ShowTareCorrectionDialog(ViewModel.ActualTare, ViewModel.TargetTare);
|
||||
if (correction == null) return;
|
||||
ViewModel.Weight += lastCorrection - correction;
|
||||
ViewModel.TargetTare = correction == 0 ? null : ViewModel.ActualTare + correction;
|
||||
ViewModel.Tare = ViewModel.TargetTare ?? ViewModel.ActualTare;
|
||||
if (ViewModel.WeighingData is string s) {
|
||||
var obj = JsonNode.Parse(s)!.AsObject();
|
||||
if (correction == 0) {
|
||||
obj.Remove("tare_correction");
|
||||
} else {
|
||||
obj["tare_correction"] = correction;
|
||||
}
|
||||
ViewModel.WeighingData = obj.ToJsonString(Utils.JsonOpts);
|
||||
}
|
||||
}
|
||||
|
||||
private void WeighingButton_Click(object sender, RoutedEventArgs evt) {
|
||||
int index = Array.IndexOf(WeighingButtons, sender as Button);
|
||||
if (index >= 0) WeighingButton_Click(index);
|
||||
@@ -651,12 +673,18 @@ namespace Elwig.Windows {
|
||||
private void OnWeighingResult(IScale scale, WeighingResult res) {
|
||||
if ((res.NetWeight ?? 0) > 0 && res.FullWeighingId != null) {
|
||||
ViewModel.Weight = res.NetWeight;
|
||||
ViewModel.ActualTare = res.TareWeight ?? 0;
|
||||
ViewModel.TargetTare = null;
|
||||
ViewModel.Tare = ViewModel.ActualTare != 0 ? ViewModel.ActualTare : null;
|
||||
ViewModel.ScaleTerminalId = scale.ScaleTerminalId;
|
||||
ViewModel.WeighingData = res.ToJson().ToJsonString();
|
||||
ViewModel.ManualWeighingReason = null;
|
||||
ManualWeighingInput.IsChecked = false;
|
||||
} else {
|
||||
ViewModel.Weight = null;
|
||||
ViewModel.ActualTare = 0;
|
||||
ViewModel.TargetTare = null;
|
||||
ViewModel.Tare = null;
|
||||
ViewModel.ScaleTerminalId = null;
|
||||
ViewModel.WeighingData = null;
|
||||
}
|
||||
@@ -971,6 +999,8 @@ namespace Elwig.Windows {
|
||||
DeliveryList.IsEnabled = false;
|
||||
DeliveryPartList.IsEnabled = false;
|
||||
|
||||
if (!ViewModel.IsReceipt)
|
||||
EnableWeighingButtons();
|
||||
HideNewEditDeleteButtons();
|
||||
ShowSaveResetCancelButtons();
|
||||
UnlockInputs();
|
||||
@@ -1034,6 +1064,8 @@ namespace Elwig.Windows {
|
||||
DeliveryList.IsEnabled = true;
|
||||
DeliveryPartList.IsEnabled = true;
|
||||
|
||||
if (!ViewModel.IsReceipt)
|
||||
DisableWeighingButtons();
|
||||
HideSaveResetCancelButtons();
|
||||
ShowNewEditDeleteButtons();
|
||||
LockInputs();
|
||||
@@ -1067,6 +1099,8 @@ namespace Elwig.Windows {
|
||||
DeliveryList.IsEnabled = true;
|
||||
DeliveryPartList.IsEnabled = true;
|
||||
|
||||
if (!ViewModel.IsReceipt)
|
||||
DisableWeighingButtons();
|
||||
HideSaveResetCancelButtons();
|
||||
ShowNewEditDeleteButtons();
|
||||
RefreshInputs();
|
||||
@@ -1171,6 +1205,7 @@ namespace Elwig.Windows {
|
||||
}
|
||||
|
||||
private void DisableWeighingButtons() {
|
||||
CorrectTareButton.IsEnabled = false;
|
||||
WeighingManualButton.IsEnabled = false;
|
||||
WeighingAButton.IsEnabled = false;
|
||||
WeighingBButton.IsEnabled = false;
|
||||
@@ -1179,6 +1214,7 @@ namespace Elwig.Windows {
|
||||
}
|
||||
|
||||
private void EnableWeighingButtons() {
|
||||
CorrectTareButton.IsEnabled = true;
|
||||
WeighingManualButton.IsEnabled = true;
|
||||
var n = App.CommandScales.Count;
|
||||
WeighingAButton.IsEnabled = n > 0 && App.CommandScales[0].IsReady;
|
||||
|
||||
Reference in New Issue
Block a user