public async Task Load(PackingSlipFilterModel filter = null, SortColumnItem sortColumnItem = null) { try { IsBusy = true; if (filter == null) { filter = new PackingSlipFilterModel { AccountNumber = Settings.AxCustomerId, DateFrom = DateTime.Today.AddDays(-900), DateTo = DateTime.Today, }; } var sortOrder = sortColumnItem ?? _currentSortColumn ?? new SortColumnItem(PackingSlipSortableColumns.OrderDate, null) { Ascending = true }; IEnumerable <PackingSlipModel> lines; if (IsFilterDifferentFromLast(filter)) { var result = await Api.GetPackingSlips(filter.ToQueryContext()); if (!result.Successful.GetValueOrDefault()) { await Alert.DisplayApiCallError(result.ExceptionMessage, result.ValidationErrors); return; } _previousFilter = filter; lines = new List <PackingSlipModel>(result.Data.Select(p => p.ToPackingSlipModel())); } else { lines = _list; } var sortedLines = SortList(sortOrder, lines.ToList()) .Take(filter.SelectedQty) .ToList(); _currentSortColumn = sortOrder; List = new ObservableCollection <PackingSlipModel>(sortedLines); NoResults = !sortedLines.Any(); } catch (Exception e) { await Alert.DisplayError(e); } finally { IsBusy = false; } }
private void Init(bool resetExistingValues = false) { Filter = new PackingSlipFilterModel { AccountNumber = SettingsService.Instance.AxCustomerId, DateFrom = DateTime.Today.AddDays(-900), DateTo = DateTime.Today, }; QtyList = new ObservableCollection <int> { 50, 100, 150, 200 }; if (resetExistingValues || _filter.SelectedQty == 0) { Filter.SelectedQty = _qtyList.First(); } Children[0].BindingContext = this; SortColumns = new ObservableCollection <SortColumnItem> { new SortColumnItem(PackingSlipSortableColumns.AccountNumber, nameof(AppResources.AccountNumber).Translate()), new SortColumnItem(PackingSlipSortableColumns.Account, nameof(AppResources.Account).Translate()), new SortColumnItem(PackingSlipSortableColumns.PurchaseOrder, nameof(AppResources.PurchaseOrder).Translate()), new SortColumnItem(PackingSlipSortableColumns.JobName, nameof(AppResources.JobName).Translate()), new SortColumnItem(PackingSlipSortableColumns.OrderNumber, nameof(AppResources.OrderNumber).Translate()), new SortColumnItem(PackingSlipSortableColumns.Plant, nameof(AppResources.TrulitePlant).Translate()), new SortColumnItem(PackingSlipSortableColumns.PackingSlip, nameof(AppResources.PackingSlip).Translate()), new SortColumnItem(PackingSlipSortableColumns.OrderDate, nameof(AppResources.OrderDate).Translate()), new SortColumnItem(PackingSlipSortableColumns.RequestedDeliveryDate, nameof(AppResources.RequestedDeliveryDate).Translate()), new SortColumnItem(PackingSlipSortableColumns.DateShipped, nameof(AppResources.DateShipped).Translate()), new SortColumnItem(PackingSlipSortableColumns.Terms, nameof(AppResources.Terms).Translate()), new SortColumnItem(PackingSlipSortableColumns.Voucher, nameof(AppResources.Voucher).Translate()), new SortColumnItem(PackingSlipSortableColumns.Weight, nameof(AppResources.Weight).Translate()), new SortColumnItem(PackingSlipSortableColumns.Sqft, nameof(AppResources.SquareFoot).Translate()), new SortColumnItem(PackingSlipSortableColumns.Lines, nameof(AppResources.LinesCamelCase).Translate()), }; if (resetExistingValues || _selectedSortColumn == null) { SelectedSortColumn = _sortColumns[7]; Ascending = true; } }
private bool IsFilterDifferentFromLast(PackingSlipFilterModel currentFilter) { if (_previousFilter == null) { return(true); } if (_previousFilter.SelectedQty != currentFilter.SelectedQty) { return(true); } if (_previousFilter.AccountNumber != currentFilter.AccountNumber) { return(true); } if (_previousFilter.CustAccount != currentFilter.CustAccount) { return(true); } if (_previousFilter.DateFrom != currentFilter.DateFrom) { return(true); } if (_previousFilter.DateTo != currentFilter.DateTo) { return(true); } if (_previousFilter.SalesOrder != currentFilter.SalesOrder) { return(true); } if (_previousFilter.PackingSlipId != currentFilter.PackingSlipId) { return(true); } if (_previousFilter.PurchaseOrder != currentFilter.PurchaseOrder) { return(true); } return(false); }
private async Task OnSearch(PackingSlipFilterModel arg) { ShowFilter = false; await Load(arg); }