| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- using System;
- using Comal.Classes;
- using InABox.Core;
- using InABox.Mobile;
- using Xamarin.Forms;
- using Xamarin.Forms.Xaml;
- namespace PRS.Mobile
- {
-
- public class OrderStatusConverter : AbstractConverter<ManufacturingPacketShell, Color>
- {
- public Color NoOrder { get; set; }
- public Color OpenOrder { get; set; }
- public Color ReceivedOrder { get; set; }
-
- protected override Color Convert(ManufacturingPacketShell value, object? parameter = null)
- {
- return value == null
- ? NoOrder
- : value.OrderID != Guid.Empty
- ? value.OrderRecDate.IsEmpty()
- ? OpenOrder
- : ReceivedOrder
- : NoOrder;
- }
- }
-
- public class SerialConverter : AbstractConverter<ManufacturingPacketShell, String>
- {
-
- protected override String Convert(ManufacturingPacketShell value, object? parameter = null)
- {
- return value == null
- ? ""
- : String.IsNullOrWhiteSpace(value.WaterMark)
- ? value.Serial
- : $"{value.Serial} [{value.WaterMark}]";
- }
- }
-
- public class ProgressConverter : AbstractConverter<ManufacturingPacketShell, String>
- {
-
- protected override String Convert(ManufacturingPacketShell value, object? parameter = null)
- {
- return value == null
- ? ""
- : (value.OrderID != Guid.Empty) && (value.OrderRecDate.IsEmpty())
- ? $"ETA: {value.OrderETA:dd MMM yy}"
- : value.Issued.IsEmpty()
- ? "To Be Issued"
- : $"{value.StageLinkSection} {value.StageLinkPercentage}%";
- }
- }
-
- public class JobNameConverter : AbstractConverter<ManufacturingPacketShell, String>
- {
-
- protected override String Convert(ManufacturingPacketShell value, object? parameter = null)
- {
- return value == null
- ? ""
- : $"{value.JobNumber}: {value.JobName}";
- }
- }
-
-
- [XamlCompilation(XamlCompilationOptions.Compile)]
- public partial class ManufacturingPackets
- {
- private ManufacturingPacketModel packets;
-
- public Guid JobID { get; set; }
- public Guid FactoryID { get; set; }
- public ManufacturingPackets()
- {
-
- packets = new ManufacturingPacketModel(App.Data,
- () => new Filter<ManufacturingPacket>(x=>x.Completed).IsEqualTo(DateTime.MinValue),
- CoreRepository.CacheFileName<ManufacturingPacket>
- );
-
- InitializeComponent();
- }
-
- public void RefreshData(bool force, bool async)
- {
-
- if (async)
- packets.Refresh(force, () => Dispatcher.BeginInvokeOnMainThread(Refresh));
- else
- {
- packets.Refresh(force);
- Refresh();
- }
- }
- private void Refresh()
- {
- packets.Search(FilterShell);
- _items.ItemsSource ??= packets.Items;
- }
-
-
- private String _currentFilter;
- private void _search_OnTextChanged(object sender, MobileSearchBarTextChangedArgs args)
- {
- _currentFilter = args.Text.ToUpper();
- Refresh();
- }
- private bool FilterShell(ManufacturingPacketShell shell)
- {
- bool bOK = (FactoryID == Guid.Empty) || (shell.FactoryID == FactoryID);
- bOK = bOK && ((JobID == Guid.Empty) || (shell.JobID == JobID));
- bOK = bOK && (
- String.IsNullOrWhiteSpace(_currentFilter)
- || shell.Title?.ToUpper().Contains(_currentFilter) == true
- || shell.JobNumber?.ToUpper().Contains(_currentFilter) == true
- || shell.JobName?.ToUpper().Contains(_currentFilter) == true
- || shell.Location?.ToUpper().Contains(_currentFilter) == true
- || shell.SetoutNumber?.ToUpper().Contains(_currentFilter) == true
- || shell.Serial?.ToUpper().Contains(_currentFilter) == true
- || shell.WaterMark?.ToUpper().Contains(_currentFilter) == true
- );
- return bOK;
- }
-
- private void ListView_Tapped(object sender, EventArgs e)
- {
- if ((sender as Frame)?.BindingContext is ManufacturingPacketShell shell)
- {
- var editor = new ManufacturingPacketEdit()
- {
- Item = shell
- };
- Navigation.PushAsync(editor);
- }
- }
-
- private void _items_OnRefreshRequested(object sender, MobileListRefreshEventArgs args)
- {
- RefreshData(true, false);
- }
-
- }
- }
|