private async Task Refresh(SalesInquiryContext filter, SortColumnItem sortColumnItem = null)
        {
            try
            {
                IsBusy = true;
                if (sortColumnItem == null)
                {
                    _sortColumn = new SortColumnItem(PipelineSortColumn.Plant, null)
                    {
                        Ascending = true
                    };
                }
                else
                {
                    _sortColumn = sortColumnItem.CloneJson();
                }
                IEnumerable <SalesQuotationInquiry> lines;
                if (_forceRefresh || IsFilterDifferentFromLast(filter))
                {
                    var result = await Api.GetSalesQuotationInquiry(filter);

                    if (!result.Successful.GetValueOrDefault() &&
                        !string.IsNullOrEmpty(result.ExceptionMessage))
                    {
                        await Alert.DisplayApiCallError(result.ExceptionMessage, result.ValidationErrors);

                        NoResults = true;
                        return;
                    }

                    lines           = result.Data.ToList();
                    _previousFilter = filter;
                }
                else
                {
                    lines = _pipelineList;
                }


                var sortedLines = SortList(_sortColumn, lines.ToList())
                                  .ToList();

                PipelineList = new ObservableCollection <SalesQuotationInquiry>(sortedLines);
                NoResults    = !_pipelineList.Any();
                ListHeight   = _pipelineList.Count * 80;
            }
            catch (Exception ex)
            {
                await Alert.DisplayError(ex);
            }
            finally
            {
                IsBusy = false;
            }
        }
 private bool IsFilterDifferentFromLast(SalesInquiryContext currentFilter)
 {
     if (_previousFilter == null)
     {
         return(true);
     }
     if (_previousFilter.AccountName != currentFilter.AccountName)
     {
         return(true);
     }
     if (_previousFilter.AccountNo != currentFilter.AccountNo)
     {
         return(true);
     }
     if (_previousFilter.SalesResponsible != currentFilter.SalesResponsible)
     {
         return(true);
     }
     if (_previousFilter.Filter != currentFilter.Filter)
     {
         return(true);
     }
     if (_previousFilter.FromAmount != currentFilter.FromAmount)
     {
         return(true);
     }
     if (_previousFilter.ToAmount != currentFilter.ToAmount)
     {
         return(true);
     }
     if (_previousFilter.FromExpiryDate != currentFilter.FromExpiryDate)
     {
         return(true);
     }
     if (_previousFilter.ToExpiryDate != currentFilter.ToExpiryDate)
     {
         return(true);
     }
     if (_previousFilter.InventSiteId != currentFilter.InventSiteId)
     {
         return(true);
     }
     if (_previousFilter.LeadTime != currentFilter.LeadTime)
     {
         return(true);
     }
     if (_previousFilter.Probability != currentFilter.Probability)
     {
         return(true);
     }
     return(false);
 }
        public SalesInquiryContext ToFilter()
        {
            var filter = new SalesInquiryContext
            {
                SalesGroup       = SettingsService.Instance.MyInfo.CurrentUser.SalesRepTag,
                AccountName      = this.AccountName,
                AccountNo        = this.AccountNumber,
                Filter           = this.SelectedStatus.Key,
                FromAmount       = this.FromAmount?.ToNullableDouble(),
                ToAmount         = this.ToAmount?.ToNullableDouble(),
                FromExpiryDate   = this.FromDate,
                ToExpiryDate     = this.ToDate,
                InventSiteId     = this.SelectedBranch?.Code,
                LeadTime         = this.SelectedLeadTime.Key,
                SalesResponsible = string.IsNullOrWhiteSpace(_salesResponsible) ? null : $"{this.SalesResponsible.Trim()}*",
                Probability      = this.Probability?.ToNullableDouble(),
            };

            return(filter);
        }
 private async Task OnSearch(SalesInquiryContext arg)
 {
     ShowFilter = false;
     await Refresh(arg);
 }
Exemple #5
0
 public async Task <ApiResponseOfListOfSalesQuotationInquiry> GetSalesQuotationInquiry(SalesInquiryContext context)
 {
     return(await AXClient.Instance.GetSalesQuotationInquiryAsync(context).ConfigureAwait(false));
 }