12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- using Comal.Classes;
- using InABox.Core;
- using InABox.Mobile;
- using Xamarin.Forms;
- using Xamarin.Forms.Xaml;
- namespace PRS.Mobile
- {
- [XamlCompilation(XamlCompilationOptions.Compile)]
- public partial class PurchaseOrderDetails
- {
- private readonly PurchaseOrderItemModel _poitems;
-
- public PurchaseOrderDetails(PurchaseOrderShell shell)
- {
- _poitems = new PurchaseOrderItemModel(App.Data,
- () => new Filter<PurchaseOrderItem>(x => x.PurchaseOrderLink.ID).IsEqualTo(shell.ID)
- );
-
- InitializeComponent();
- Title = $"PO #{shell.PONumber}";
- _items.Columns
- .BeginUpdate()
- .Clear()
- .Add(new MobileGridTextColumn<PurchaseOrderItemShell>()
- { Column = x => x.JobNumber, Width = GridLength.Auto, Caption = "Job" })
- .Add(new MobileGridTextColumn<PurchaseOrderItemShell>()
- { Column = x => x.Description, Width = GridLength.Star, Alignment = TextAlignment.Start})
- .Add(new MobileGridDoubleColumn<PurchaseOrderItemShell>()
- { Column = x => x.Qty, Width = GridLength.Auto })
- .Add(new MobileGridDateColumn<PurchaseOrderItemShell>() { Column = x => x.ReceivedDate, Format = "dd MMM yy", Caption="Rec'd" })
- .EndUpdate();
-
- RefreshData(false, true);
- }
- private void RefreshData(bool force, bool async)
- {
- if (async)
- _poitems.Refresh(force, () => Dispatcher.BeginInvokeOnMainThread(Refresh));
- else
- {
- _poitems.Refresh(force);
- Refresh();
- }
- }
- private void Refresh()
- {
- _items.ItemsSource ??= _poitems.Items;
- }
-
- private void _items_OnRefreshRequested(object sender, MobileGridRefreshRequestArgs args)
- {
- RefreshData(true, false);
- }
- }
-
- }
|