| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194 |
- using System;
- using System.Linq;
- using InABox.Core;
- using InABox.Mobile;
- using Xamarin.Forms.Xaml;
- using ZXing;
- namespace PRS.Mobile
- {
- [XamlCompilation(XamlCompilationOptions.Compile)]
- public partial class RequisitionEditItemsView : RequisitionEditView
- {
- public RequisitionEditItemsView()
- {
- InitializeComponent();
- }
- public override void Refresh()
- {
-
- }
- private void Complete_Clicked(object sender, MobileButtonClickEventArgs args)
- {
- DoChanged(nameof(RequisitionShell.Filled));
- }
- private void ScanView_OnScanResult(ZXing.Result result)
- {
- }
- public void AddItem()
- {
- if (ViewModel.Mode == RequisitionEditMode.PickStock)
- AddScannerItems();
- else
- AddSiteItems();
- }
-
- private void RequisitionItem_Clicked(object sender, EventArgs e)
- {
- if ((sender as MobileCard)?.BindingContext is RequisitionItemShell item)
- {
- if (ViewModel.Mode == RequisitionEditMode.PickStock)
- EditScannerItem(item);
- else
- EditSiteItem(item);
- }
- }
-
- private void EditScannerItem(RequisitionItemShell item)
- {
- var editor = new RequisitionItemScanner(item);
- editor.OnSave += (sender, args) =>
- {
- SaveScannerItem(item, args);
- item.Save("Updated on Mobile Device");
- };
- Navigation.PushAsync(editor);
- }
- private void AddScannerItems()
- {
- var editor = new RequisitionItemScanner(null);
- editor.OnSave += (sender, args) =>
- {
- var item = ViewModel.Items.AddItem();
- item.RequisitionID = ViewModel.Item.ID;
- item.RequisitionJobID = ViewModel.Item.JobID;
- SaveScannerItem(item, args);
- item.Save("Created on Mobile Device");
- };
- Navigation.PushAsync(editor);
- }
- private static void SaveScannerItem(RequisitionItemShell item, RequisitionItemScannerSaveArgs args)
- {
- item.ProductID = args.Holding.ProductID;
- item.ProductCode = args.Holding.ProductCode;
- item.ProductName = args.Holding.ProductName;
- item.StyleID = args.Holding.StyleID;
- item.StyleCode = args.Holding.StyleCode;
- item.StyleDescription = args.Holding.StyleDescription;
- item.DimensionsUnitID = args.Holding.DimensionsUnitID;
- item.DimensionsHeight = args.Holding.DimensionsHeight;
- item.DimensionsLength = args.Holding.DimensionsLength;
- item.DimensionsWidth = args.Holding.DimensionsWidth;
- item.DimensionsWeight = args.Holding.DimensionsWeight;
- item.DimensionsQuantity = args.Holding.DimensionsQuantity;
- item.DimensionsValue = args.Holding.DimensionsValue;
- item.DimensionsUnitSize = args.Holding.DimensionsUnitSize;
- item.TargetJRI = args.JobRequisitionItemID;
- item.LocationID = args.Holding.LocationID;
- item.ActualQuantity = args.Quantity;
- }
- private void AddSiteItems()
- {
- var editor = new RequisitionItemEditor(null);
- editor.Saving += (sender, args) =>
- {
- var item = ViewModel.Items.AddItem();
- item.RequisitionID = ViewModel.Item.ID;
- item.RequisitionJobID = ViewModel.Item.JobID;
- SaveSiteItem(item,args);
- };
- Navigation.PushAsync(editor);
- }
-
- private void EditSiteItem(RequisitionItemShell item)
- {
- var editor = new RequisitionItemEditor(item);
- editor.Saving += (sender, args) =>
- {
- SaveSiteItem(item,args);
- };
- Navigation.PushAsync(editor);
- }
- private void SaveSiteItem(RequisitionItemShell item, RequisitionItemEditorSaveArgs args)
- {
- if (args.Product != null)
- {
- item.ProductID = args.Product.ID;
- item.ProductCode = args.Product.Code;
- item.ProductName = args.Product.Name;
- item.StyleID = args.Product.DefaultStyleID;
- item.StyleCode = args.Product.DefaultStyleCode;
- item.StyleDescription = args.Product.DefaultStyleDescription;
- item.DimensionsUnitID = args.Product.DimensionsUnitID;
- item.DimensionsHeight = args.Product.DimensionsHeight;
- item.DimensionsLength = args.Product.DimensionsLength;
- item.DimensionsWidth = args.Product.DimensionsWidth;
- item.DimensionsWeight = args.Product.DimensionsWeight;
- item.DimensionsQuantity = args.Product.DimensionsQuantity;
- item.DimensionsValue = args.Product.DimensionsValue;
- item.DimensionsUnitSize = args.Product.DimensionsUnitSize;
- if (args.Product.ImageID != Guid.Empty)
- {
- item.ImageID = args.Product.ImageID;
- if (item.ImageID != Guid.Empty)
- ViewModel.Items.Images[item.ImageID] = args.Image;
- }
- else
- item.ImageID = SaveRequisitionImage(args);
- }
- else
- {
- item.ProductID = Guid.Empty;
- item.ProductCode = "";
- item.ProductName = "";
- item.StyleID = Guid.Empty;
- item.StyleCode = "";
- item.StyleDescription = "";
- item.DimensionsUnitID = Guid.Empty;
- item.DimensionsHeight = 0.0F;
- item.DimensionsLength = 0.0F;
- item.DimensionsWidth = 0.0F;
- item.DimensionsWeight = 0.0F;
- item.DimensionsQuantity = 0.0F;
- item.DimensionsValue = 0.0F;
- item.DimensionsUnitSize = "";
- item.ImageID = SaveRequisitionImage(args);
- }
- item.Description = args.Description ?? string.Empty;
- item.Quantity = args.Quantity;
-
- item.Save("Created on Mobile Device");
- ViewModel.Items.Refresh(false);
- }
- private Guid SaveRequisitionImage(RequisitionItemEditorSaveArgs args)
- {
- if ((args.ImageID == Guid.Empty) && (args.Image?.Any() == true))
- {
- var docmodel = new DocumentModel(App.Data, () => new Filter<Document>().None());
- docmodel.Refresh(true);
- var doc = docmodel.AddItem();
- doc.Data = args.Image;
- doc.FileName = $"Requisition Item{DateTime.Now:yyyy-MM-dd-hh-mm-ss.zzz}.jpg";
- doc.CRC = CoreUtils.CalculateCRC(args.Image);
- doc.TimeStamp = DateTime.Now;
- doc.Save("Created on Mobile Device");
- ViewModel.Items.Images[doc.ID] = args.Image;
- return doc.ID;
- }
- return args.ImageID;
- }
- }
- }
|