JobRequisitionReviewPage.xaml.cs 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. using Comal.Classes;
  2. using InABox.Clients;
  3. using InABox.Core;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows;
  10. using System.Windows.Controls;
  11. using System.Windows.Data;
  12. using System.Windows.Documents;
  13. using System.Windows.Input;
  14. using System.Windows.Media;
  15. using System.Windows.Media.Imaging;
  16. using System.Windows.Navigation;
  17. using System.Windows.Shapes;
  18. namespace PRSDesktop
  19. {
  20. /// <summary>
  21. /// Interaction logic for JobRequisitionReviewPage.xaml
  22. /// </summary>
  23. public partial class JobRequisitionReviewPage : Page
  24. {
  25. public List<JobRequiReviewDashboardFilterItem> filterItems = new List<JobRequiReviewDashboardFilterItem>();
  26. public JobRequisitionReviewPage()
  27. {
  28. InitializeComponent();
  29. Grid.Refresh(true, true);
  30. }
  31. private void Filter_SelectionChanged(object sender, SelectionChangedEventArgs e)
  32. {
  33. var item = filterComboBox.SelectedItem as JobRequiReviewDashboardFilterItem;
  34. Grid.RefreshOnFilterChanged(item.SupplierID);
  35. }
  36. private void LoadFilters()
  37. {
  38. List<Guid> productIDs = new List<Guid>();
  39. CoreTable productsTable = new Client<JobRequisitionItem>().Query(new Filter<JobRequisitionItem>(x => x.Product).LinkValid(),
  40. new Columns<JobRequisitionItem>(x => x.Product.ID));
  41. foreach (CoreRow row1 in productsTable.Rows)
  42. {
  43. productIDs.Add(Guid.Parse(row1.Values[0].ToString()));
  44. }
  45. CoreTable table = new Client<SupplierProduct>().Query(
  46. new Filter<SupplierProduct>(x => x.Product).LinkValid()
  47. .And(x => x.SupplierLink).LinkValid(),
  48. new Columns<SupplierProduct>(x => x.SupplierLink.ID, x => x.Product.ID, x => x.SupplierLink.Name, x => x.SupplierLink.Code));
  49. if (table.Rows.Any())
  50. {
  51. JobRequiReviewDashboardFilterItem firstItem = new JobRequiReviewDashboardFilterItem
  52. {
  53. Text = "No Filter"
  54. };
  55. filterItems.Add(firstItem);
  56. foreach (CoreRow row in table.Rows)
  57. {
  58. JobRequiReviewDashboardFilterItem filterItem = new JobRequiReviewDashboardFilterItem
  59. {
  60. SupplierID = Guid.Parse(row.Values[0].ToString()),
  61. ProductID = Guid.Parse(row.Values[1].ToString()),
  62. };
  63. if (row.Values[3] != null)
  64. {
  65. filterItem.Text = row.Values[3].ToString();
  66. if (row.Values[2] != null)
  67. {
  68. filterItem.Text = filterItem.Text + " " + row.Values[2].ToString();
  69. }
  70. }
  71. var founditem = filterItems.Find(x => x.SupplierID == filterItem.SupplierID);
  72. if (founditem == null)
  73. {
  74. if (productIDs.Contains(filterItem.ProductID))
  75. filterItems.Add(filterItem);
  76. }
  77. }
  78. }
  79. filterComboBox.ItemsSource = filterItems;
  80. }
  81. }
  82. }