Exemple #1
0
        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;
            }
        }
Exemple #2
0
        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;
            }
        }
Exemple #3
0
 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);
 }
Exemple #4
0
 private async Task OnSearch(PackingSlipFilterModel arg)
 {
     ShowFilter = false;
     await Load(arg);
 }