Purchases.xaml.cs 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Threading.Tasks;
  4. using Comal.Classes;
  5. using InABox.Clients;
  6. using InABox.Core;
  7. using Xamarin.Forms;
  8. using XF.Material.Forms.UI.Dialogs;
  9. namespace comal.timesheets
  10. {
  11. public partial class Purchases
  12. {
  13. private Employee _employee = null;
  14. public Purchases(Employee employee)
  15. {
  16. _employee = employee;
  17. InitializeComponent();
  18. NavigationPage.SetHasBackButton(this, false);
  19. ToolbarItems.Clear();
  20. ToolbarItems.Add(
  21. new ToolbarItem("Back", "", () =>
  22. {
  23. Navigation.PopAsync();
  24. })
  25. );
  26. Title = "Purchase Orders";
  27. }
  28. protected override async void OnAppearing()
  29. {
  30. base.OnAppearing();
  31. await LoadData();
  32. }
  33. private async Task LoadData()
  34. {
  35. Device.BeginInvokeOnMainThread(() => NewPurch.IsVisible = false);
  36. using (await MaterialDialog.Instance.LoadingDialogAsync(message: "Loading Data"))
  37. {
  38. CoreTable orders = new Client<PurchaseOrder>().Query(
  39. new Filter<PurchaseOrder>(x => x.IssuedBy.ID).IsEqualTo(_employee.ID).And(X => X.ClosedDate).IsEqualTo(DateTime.MinValue),
  40. new Columns<PurchaseOrder>(X => X.ID, X => X.PONumber, X => X.SupplierLink.Name, X => X.ExTax, X => X.IssuedDate),
  41. new SortOrder<PurchaseOrder>(x => x.PONumber)
  42. );
  43. Device.BeginInvokeOnMainThread(() =>
  44. {
  45. foreach (var row in orders.Rows)
  46. {
  47. PurchaseOrder order = row.ToObject<PurchaseOrder>();
  48. PurchaseCard card = new PurchaseCard(order);
  49. Cards.Children.Add(card);
  50. }
  51. NewPurch.IsVisible = true;
  52. });
  53. }
  54. }
  55. void NewPurchase_Clicked(System.Object sender, System.EventArgs e)
  56. {
  57. NewPurch.IsVisible = false;
  58. NewPurchase purchase = new NewPurchase();
  59. Navigation.PushAsync(purchase);
  60. }
  61. }
  62. }