| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- using System;
- using System.Linq;
- using System.Windows;
- using Comal.Classes;
- using InABox.Clients;
- using InABox.Configuration;
- using InABox.DynamicGrid;
- using InABox.WPF;
- namespace PRSDesktop;
- public partial class ReservationManagementSubstitutionWindow : Window
- {
-
- private ReservationManagementUserSettings? settings;
-
- public ReservationManagementSubstitutionWindow(JobRequisitionItem item, ReservationManagementUserSettings settings)
- {
- InitializeComponent();
- substitutions.JRI = item;
-
- SubstitutionFreeStock.IsChecked = settings.SubstituteFreeStockOnly;
- SubstitutionUpdateStyle.IsChecked = settings.SubstituteUpdateStyle;
- this.settings = settings;
- }
- private void Substitutions_OnOnSelectItem(object sender, DynamicGridSelectionEventArgs e)
- {
- ok.IsEnabled = e.Rows?.Any() == true;
- }
- private void OK_Click(object sender, RoutedEventArgs e)
- {
- var _holding = substitutions.SelectedRows?.FirstOrDefault()?.ToObject<StockHolding>();
- if (_holding == null || substitutions.JRI == null)
- return;
- Progress.ShowModal("Substitution Item", progress =>
- {
- substitutions.JRI.Dimensions.CopyFrom(_holding.Dimensions, true);
- if (substitutions.UpdateStyle)
- substitutions.JRI.Style.CopyFrom(_holding.Style);
- Client.Save(substitutions.JRI,"Substituted by Requisition Management Screen");
-
- var _xferout = _holding.CreateMovement();
- _xferout.Issued = Math.Min(_holding.Available, substitutions.JRI.Qty);
- _xferout.Notes = "Substituted by Requisition Management Screen";
- _xferout.Transaction = Guid.NewGuid();
- _xferout.Type = StockMovementType.TransferOut;
- _xferout.Employee.ID = App.EmployeeID;
- _xferout.Cost = _holding.AverageValue;
-
- var _xferin = _holding.CreateMovement();
- _xferin.JobRequisitionItem.CopyFrom(substitutions.JRI);
- _xferin.Job.CopyFrom(substitutions.JRI.Job);
- _xferin.Received = Math.Min(_holding.Available, substitutions.JRI.Qty);
- _xferin.Notes = "Substituted by Requisition Management Screen";
- _xferin.Transaction = _xferout.Transaction;
- _xferin.Type = StockMovementType.TransferIn;
- _xferin.Employee.ID = App.EmployeeID;
- _xferin.Cost = _holding.AverageValue;
-
- Client.Save(new[] { _xferout, _xferin}, "Substituted by Requisition Management Screen");
- });
-
- DialogResult = true;
- }
- private void Cancel_Click(object sender, RoutedEventArgs e)
- {
- DialogResult = false;
- }
- private void SubstitutionFreeStock_Changed(object sender, RoutedEventArgs e)
- {
- substitutions.FreeStockOnly = SubstitutionFreeStock.IsChecked == true;
- if (settings != null)
- {
- settings.SubstituteFreeStockOnly = substitutions.FreeStockOnly;
- new UserConfiguration<ReservationManagementUserSettings>().Save(settings);
- }
- }
- private void SubstitutionUpdateStyle_Changed(object sender, RoutedEventArgs e)
- {
- substitutions.UpdateStyle = SubstitutionUpdateStyle.IsChecked == true;
- if (settings != null)
- {
- settings.SubstituteUpdateStyle = substitutions.UpdateStyle;
- new UserConfiguration<ReservationManagementUserSettings>().Save(settings);
- }
- }
- }
|