示例#1
0
        private void Init()
        {
            Filter = new ReturnOrderQueryContext();
            //Filter.AccountNumber = SettingsService.Instance.AxCustomerId;
            StatusList = new ObservableCollection <KeyValuePair <ReturnOrderQueryContextStatus, string> >
            {
                new KeyValuePair <ReturnOrderQueryContextStatus, string>(ReturnOrderQueryContextStatus.BackOrder,
                                                                         nameof(AppResources.OpenOrder).Translate()),
                new KeyValuePair <ReturnOrderQueryContextStatus, string>(ReturnOrderQueryContextStatus.Invoiced,
                                                                         nameof(AppResources.Invoiced).Translate()),
                new KeyValuePair <ReturnOrderQueryContextStatus, string>(ReturnOrderQueryContextStatus.Delivered,
                                                                         nameof(AppResources.Delivered).Translate()),
            };
            Filter.Status = _statusList.First().Key;

            SortColumns = new ObservableCollection <SortColumnItem>
            {
                new SortColumnItem(ReturnedOrdersSortColumns.SalesOrder, nameof(AppResources.SalesOrder).Translate()),
                new SortColumnItem(ReturnedOrdersSortColumns.Invoice, nameof(AppResources.Invoice).Translate()),
                new SortColumnItem(ReturnedOrdersSortColumns.Amount, nameof(AppResources.Amount).Translate()),
                new SortColumnItem(ReturnedOrdersSortColumns.OrderNumber, nameof(AppResources.OrderNumber).Translate()),
                new SortColumnItem(ReturnedOrdersSortColumns.Status, nameof(AppResources.Status).Translate()),
                new SortColumnItem(ReturnedOrdersSortColumns.ReturnDate, nameof(AppResources.ReturnDate).Translate()),
                new SortColumnItem(ReturnedOrdersSortColumns.Lines, nameof(AppResources.LinesCamelCase).Translate()),
                new SortColumnItem(ReturnedOrdersSortColumns.Id, "Id"),
            };
            Children[0].BindingContext = this;
            SelectedSortColumn         = _sortColumns[4];
            Ascending = true;
        }
 private bool IsFilterDifferentFromLast(ReturnOrderQueryContext currentFilter)
 {
     if (_previousFilter == null)
     {
         return(true);
     }
     if (_previousFilter.EndDate != currentFilter.EndDate)
     {
         return(true);
     }
     if (_previousFilter.StartDate != currentFilter.StartDate)
     {
         return(true);
     }
     return(false);
 }
        public async Task Load(ReturnOrderQueryContext filter = null, SortColumnItem sortColumnItem = null)
        {
            try
            {
                IsBusy = true;
                if (filter == null)
                {
                    filter = new ReturnOrderQueryContext
                    {
                        CustomerInfo = Api.GetCustomerContext(),
                    };
                }

                if ((filter.EndDate.GetValueOrDefault() - filter.StartDate.GetValueOrDefault()).TotalDays > 90)
                {
                    await Alert.ShowMessage(nameof(AppResources.DiffLessThan90DaysMessage).Translate());

                    return;
                }

                if (sortColumnItem != null)
                {
                    _sortColumnItem = sortColumnItem;
                }
                else if (_sortColumnItem == null)
                {
                    _sortColumnItem = new SortColumnItem(OrdersSortableColumns.OrderNumber, null)
                    {
                        Ascending = true
                    };
                }

                if (IsFilterDifferentFromLast(filter))
                {
                    var lines = await Api.GetReturnOrders(filter);

                    if (!lines.Successful.GetValueOrDefault())
                    {
                        await Alert.ShowMessage(lines.ExceptionMessage);

                        return;
                    }
                    _previousFilter = filter;
                    _rawList        = lines.Data.ToList();
                }

                TotalAmount = (decimal)_rawList.Sum(p => p.Amount.GetValueOrDefault());
                RowCount    = _rawList.Count;

                var sortedLines = SortList(_sortColumnItem, _rawList)
                                  .ToList();

                ReturnedOrderList = new ObservableCollection <ReturnOrder>(sortedLines);
                NoResults         = !sortedLines.Any();
            }
            catch (Exception e)
            {
                await Alert.DisplayError(e);
            }
            finally
            {
                IsBusy = false;
            }
        }
 private async Task OnSearch(ReturnOrderQueryContext arg)
 {
     ShowFilter = false;
     await Load(arg);
 }
示例#5
0
 public Task <ApiResponseOfListOfReturnOrder> GetReturnOrders(ReturnOrderQueryContext context)
 {
     return(AXClient.Instance.GetReturnOrdersAsync(context));
 }