private async Task OnBarcodeSelected()
        {
            try
            {
                IsBusy = true;
                var context = new SalesOrderQueryContext
                {
                    CustomerInfo            = Api.GetCustomerContext(),
                    CustomerPurchaseOrderNo = _packingSlip.CustomerPurchaseOrderNo,
                    SalesOrderNo            = _packingSlip.Order.Key,
                    StartDate = _packingSlip.OrderDate,
                    EndDate   = _packingSlip.OrderDate,
                };

                var data = await Api.GetProofOfDelivery(_selectedBarcode.Barcode, context);

                await Nav.NavigateTo(new PdfPage(data, $"{nameof(AppResources.ProofOfDeliveryFor).Translate()} {_packingSlip.Order.Key}"));
            }
            catch (Exception e)
            {
                await Alert.DisplayError(e);
            }
            finally
            {
                SelectedBarcode = null;
                IsBusy          = false;
            }
        }
Beispiel #2
0
        public async Task <byte[]> GetProofOfDelivery(string barcode, SalesOrderQueryContext context)
        {
            var result = await AXClient.Instance.GetOrderProofOfDeliveryAsync(barcode, context)
                         .ConfigureAwait(false);

            return(result);
        }
        public async Task Load()
        {
            try
            {
                if (IsBusy)
                {
                    return;
                }
                IsBusy = true;
                var context = new SalesOrderQueryContext
                {
                    CustomerInfo = new CustomerContext {
                        AXCustomerId = _packingSlip.Account.Key
                    },
                    StartDate = DateTime.Today,
                    EndDate   = DateTime.Today.AddDays(21),
                    Status    = SalesOrderQueryContextStatus.None,
                };

                var result = await Api.UpcomingDeliveries(context);

                if (!result.Successful.GetValueOrDefault())
                {
                    await Alert.DisplayApiCallError(result.ExceptionMessage, result.ValidationErrors,
                                                    $"{Translate.Get(nameof(AppResources.CouldNotMarkAsNotReady))}" +
                                                    $"-{Translate.Get(nameof(AppResources.ServerError))}");

                    return;
                }

                DeliveryList = new ObservableCollection <SalesOrder>(result.Data);
                NoResults    = (!_deliveryList?.Any() ?? true);

                var getCustomerResponse = await Api.GetCustomerInfo(_customerAccount);

                if (!getCustomerResponse.Successful.GetValueOrDefault())
                {
                    await Alert.DisplayApiCallError(getCustomerResponse.ExceptionMessage, getCustomerResponse.ValidationErrors,
                                                    $"{Translate.Get(nameof(AppResources.CouldNotMarkAsNotReady))}" +
                                                    $"-{Translate.Get(nameof(AppResources.ServerError))}");

                    return;
                }

                Email = getCustomerResponse.Data.EmailAddress;
            }
            catch (Exception e)
            {
                await Alert.DisplayError(e);
            }
            finally
            {
                IsBusy = false;
            }
        }
Beispiel #4
0
        /// <summary>
        /// This endpoint is called when a user downloads a copy of a sales order.
        /// To download a sales order copy, please to the Orders page, then click
        /// the download button (cloud icon) next to a sales order row in the grid.
        /// </summary>
        /// <returns></returns>
        public async Task <byte[]> GetConfirmationCopy(string salesOrderNo)
        {
            var context = new SalesOrderQueryContext
            {
                CustomerInfo = GetCustomerContext(),
                SalesOrderNo = salesOrderNo,
            };
            var response = await AXClient.Instance.GetCopyConfirmationAsync(context)
                           .ConfigureAwait(false);

            return(response);
        }
        public async Task Load()
        {
            try
            {
                IsBusy = true;
                var context = new SalesOrderQueryContext
                {
                    CustomerInfo            = Api.GetCustomerContext(),
                    CustomerPurchaseOrderNo = _packingSlip.CustomerPurchaseOrderNo,
                    SalesOrderNo            = _packingSlip.Order.Key,
                    StartDate = _packingSlip.OrderDate,
                    EndDate   = _packingSlip.OrderDate,
                };

                var data = await Api.GetOrderProofOfDeliveriesAsync(context);

                IsBusy = false;
                if (data == null)
                {
                    await Alert.ShowMessage(nameof(AppResources.CouldNotFindProofOfDelivery).Translate());

                    return;
                }

                var barcodes = data.Data.OrderBy(p => p.Barcode).ToList();
                NoResults = !barcodes.Any();
                if (NoResults)
                {
                    await Alert.ShowMessage(nameof(AppResources.NoBarcodesAvailable).Translate());

                    Barcodes = new ObservableCollection <ProofOfDeliveryViewModel>();
                    return;
                }
                Barcodes = new ObservableCollection <ProofOfDeliveryViewModel>(barcodes);
            }
            catch (Exception e)
            {
                await Alert.DisplayError(e);
            }
            finally
            {
                IsBusy = false;
            }
        }
Beispiel #6
0
        public async Task <ApiResponseOfListOfProofOfDeliveryViewModel> GetOrderProofOfDeliveriesAsync(SalesOrderQueryContext context)
        {
            ApiResponseOfListOfProofOfDeliveryViewModel result = await AXClient.Instance.GetOrderProofOfDeliveriesAsync(context)
                                                                 .ConfigureAwait(false);

            return(result);
        }
Beispiel #7
0
 //UpcomingDeliveriesAsync
 public async Task <ApiResponseOfListOfSalesOrder> UpcomingDeliveries(SalesOrderQueryContext context)
 {
     return(await AXClient.Instance.UpcomingDeliveriesAsync(context)
            .ConfigureAwait(false));
 }