DeliveryEditItemsView.xaml.cs 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using Comal.Classes;
  5. using InABox.Core;
  6. using InABox.Mobile;
  7. using Syncfusion.SfPdfViewer.XForms;
  8. using Xamarin.Forms;
  9. using Xamarin.Forms.Xaml;
  10. namespace PRS.Mobile
  11. {
  12. [XamlCompilation(XamlCompilationOptions.Compile)]
  13. public partial class DeliveryEditItemsView
  14. {
  15. public DeliveryEditItemsView()
  16. {
  17. InitializeComponent();
  18. }
  19. public override void Refresh()
  20. {
  21. _items.ItemsSource = null;
  22. _items.ItemsSource = ViewModel.Items;
  23. }
  24. public void AddShipment()
  25. {
  26. var page = new ShipmentSelectionPage((shipment) =>
  27. {
  28. shipment.DeliveryID = ViewModel.Item.ID;
  29. shipment.Save($"Added to Delivery #{ViewModel.Item.Number}");
  30. var _newitems = new DeliveryItemModel(App.Data,
  31. () => new Filter<DeliveryItem>(x => x.ShipmentLink.ID).IsEqualTo(shipment.ID));
  32. _newitems.Refresh(true);
  33. foreach (var item in _newitems.Items)
  34. item.DeliveryID = ViewModel.Item.ID;
  35. _newitems.Save($"Added to Delivery #{ViewModel.Item.Number}");
  36. ViewModel.Items.Refresh(true);
  37. Refresh();
  38. });
  39. Navigation.PushAsync(page);
  40. }
  41. private String _currentfilter = "";
  42. private void _search_OnTextChanged(object sender, MobileSearchBarTextChangedArgs args)
  43. {
  44. _currentfilter = args.Text;
  45. var items = ViewModel.Items.Where(x => FilterShell(x)).ToArray();
  46. _items.ItemsSource = items;
  47. }
  48. private bool FilterShell(DeliveryItemShell shell)
  49. {
  50. bool bOK =
  51. String.IsNullOrWhiteSpace(_currentfilter)
  52. || shell.Rack.ToUpper().Contains(_currentfilter.ToUpper())
  53. || shell.Setout.ToUpper().Contains(_currentfilter.ToUpper())
  54. || shell.Requi.ToString().ToUpper().Contains(_currentfilter.ToUpper())
  55. || shell.Description.ToUpper().Contains(_currentfilter.ToUpper());
  56. return bOK;
  57. }
  58. }
  59. }