123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Runtime.CompilerServices;
- using System.Windows;
- using Comal.Classes;
- namespace PRSDesktop;
- public class StockTransformWindowViewModel : INotifyPropertyChanged
- {
- private double _oldAvailable;
- private double _newAvailable;
- private string oldUnitSize;
- private string newUnitSize;
- private double maxAvailable;
- public void Load(StockHolding holding)
- {
- OldDimensions.CopyFrom(holding.Dimensions, true);
- NewDimensions.CopyFrom(holding.Dimensions, true);
- MaxAvailable = holding.Available;
- OldAvailable = holding.Available;
- NewAvailable = holding.Available;
- }
- public void Unload(StockHolding holding)
- {
- holding.Dimensions.CopyFrom(NewDimensions, true);
- holding.Units = NewAvailable;
- }
-
- public StockDimensions OldDimensions { get; private set; }
- public StockDimensions NewDimensions { get; private set; }
- public bool CanSave => NewDimensions.Value != 0.0 && !NewDimensions.Equals(OldDimensions);
- public string OldUnitSize
- {
- get => oldUnitSize;
- set
- {
- oldUnitSize = value;
- OnPropertyChanged();
- }
- }
- public string NewUnitSize
- {
- get => newUnitSize;
- set
- {
- newUnitSize = value;
- OnPropertyChanged();
- }
- }
- public double MaxAvailable
- {
- get => maxAvailable;
- private set
- {
- maxAvailable = value;
- OnPropertyChanged();
- }
- }
- public double OldAvailable
- {
- get => _oldAvailable;
- set
- {
- if (value.Equals(_oldAvailable)) return;
- _oldAvailable = value;
- if(NewDimensions.Value == 0.0)
- {
- NewAvailable = 0.0;
- }
- else
- {
- NewAvailable = value * OldDimensions.Value / NewDimensions.Value;
- }
- OnPropertyChanged();
- OnPropertyChanged(nameof(CanSave));
- }
- }
- public double NewAvailable
- {
- get => _newAvailable;
- set
- {
- if (value.Equals(_newAvailable)) return;
- _newAvailable = value;
- OnPropertyChanged();
- }
- }
- public StockTransformWindowViewModel()
- {
- OldDimensions = new StockDimensions();
- NewDimensions = new StockDimensions();
- NewDimensions.PropertyChanged += (sender, args) =>
- {
- if(NewDimensions.Value == 0.0)
- {
- NewAvailable = 0.0;
- }
- else
- {
- NewAvailable = OldAvailable * OldDimensions.Value / NewDimensions.Value;
- }
- OldUnitSize = OldDimensions.UnitSize;
- NewUnitSize = NewDimensions.UnitSize;
- OnPropertyChanged(nameof(CanSave));
- };
- }
- public event PropertyChangedEventHandler? PropertyChanged;
- protected virtual void OnPropertyChanged([CallerMemberName] string? propertyName = null)
- {
- PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
- }
- protected bool SetField<T>(ref T field, T value, [CallerMemberName] string? propertyName = null)
- {
- if (EqualityComparer<T>.Default.Equals(field, value)) return false;
- field = value;
- OnPropertyChanged(propertyName);
- return true;
- }
- }
- public partial class StockTransformWindow : Window
- {
-
- public StockDimensions Dimensions => _viewModel.NewDimensions;
- public double NewAvailable => _viewModel.NewAvailable;
- public double OldAvailable => _viewModel.OldAvailable;
-
- public StockTransformWindow(StockHolding holding)
- {
- InitializeComponent();
- _viewModel.Load(holding);
- }
- private void OK_Click(object sender, RoutedEventArgs e)
- {
- DialogResult = true;
- }
- private void Cancel_Click(object sender, RoutedEventArgs e)
- {
- DialogResult = false;
- }
- }
|