Exemple #1
0
        public async Task Load(PackingSlipsQueryContext filter = null, SortColumnItem sortColumnItem = null)
        {
            try
            {
                IsBusy = true;


                filter = filter ?? _previousFilter ?? new PackingSlipsQueryContext
                {
                    SelectedQty = 50,
                    Status      = "Ready"
                };

                if (sortColumnItem == null)
                {
                    sortColumnItem = new SortColumnItem(PackingSlipSortableColumns.OrderDate, null)
                    {
                        Ascending = true
                    };
                }

                filter.CustomerInfo     = Api.GetCustomerContext();
                filter.InventLocationId = Settings.MyInfo.CurrentUser.UserBranchCode;
                filter.SalesPoolId      = _salesPool.Key;
                if (filter.Status == "All")//remove filter status to avoid 500 server error if "All" is sent
                {
                    filter.Status = null;
                }
                ICollection <PackingSlip> lines;
                if (IsFilterDifferentFromLast(filter))
                {
                    var result = await Api.GetPackingSlipsNotInvoiced(filter);

                    _previousFilter = filter;
                    if (!result.Successful.GetValueOrDefault())
                    {
                        throw new Exception($"{Translate.Get(nameof(AppResources.ServerError))}:" +
                                            $"{result.ExceptionMessage}");
                    }
                    lines = result.Data;
                }
                else
                {
                    lines = _packingList;
                }
                var sortedLines = SortList(sortColumnItem, lines.ToList())
                                  .Take(filter.SelectedQty);

                PackingList = new ObservableCollection <PackingSlip>(sortedLines);
                NoResults   = !sortedLines.Any();
            }
            catch (Exception e)
            {
                await Alert.DisplayError(e);
            }
            finally
            {
                IsBusy = false;
            }
        }
 private void ResetForm()
 {
     Filter = new PackingSlipsQueryContext {
         Status = _statusList[1].Key, SelectedQty = _qtyList.First()
     };
     ToDate         = null;
     FromDate       = null;
     Ascending      = true;
     SelectedStatus = _statusList[1];
 }
        public async Task GetPackingSlipsNotInvoiced()
        {
            var filter = new PackingSlipsQueryContext
            {
                SelectedQty      = 50,
                CustomerInfo     = Api.GetCustomerContext(),
                InventLocationId = SettingsService.Instance.MyInfo.CurrentUser.UserBranchCode
            };
            var result = await Api.GetPackingSlipsNotInvoiced(filter);

            Assert.IsTrue(result?.Successful.GetValueOrDefault() ?? false);
        }
Exemple #4
0
        /// <summary>
        /// Get the PDF file data for Packing Slip
        /// </summary>
        /// <param name="id">Id of the Packing Slio</param>
        /// <param name="date">Packing Slip Shipped Date</param>
        /// <param name="salesOrderId">Packing Slip Sales Order ID</param>
        /// <returns>byte array for the PDF file</returns>
        public async Task <byte[]> GetPackageSlipCopy(string id, DateTimeOffset date, string salesOrderId)
        {
            var context = new PackingSlipsQueryContext()
            {
                CustomerInfo    = GetCustomerContext(),
                Id              = id,
                PackingSlipDate = date,
                SalesOrderId    = salesOrderId
            };
            var response = await AXClient.Instance.GetCopyPackingSlipAsync(context)
                           .ConfigureAwait(false);

            return(response);
        }
        private async Task OnOpenPackingSlip()
        {
            try
            {
                IsBusy = true;

                CustomerContext customerContext = (Settings.IsDriver)
                    ? new CustomerContext
                {
                    AXCustomerId = _manifest.CustAccount
                }
                    : Api.GetCustomerContext();

                var filter = new PackingSlipsQueryContext
                {
                    CustomerInfo = customerContext,
                    //InventLocationId = Settings.MyInfo.CurrentUser.SiteBranchCode,
                    Id          = _manifest.PackingSlipId,
                    SelectedQty = 1
                };

                var result = await Api.GetPackingSlips(filter);

                if (!result.Successful.GetValueOrDefault())
                {
                    await Alert.DisplayApiCallError(result.ExceptionMessage, result.ValidationErrors,
                                                    Translate.Get(nameof(AppResources.CouldNotRetrievePackingSlip)));

                    return;
                }
                var lines = result.Data.ToList();
                if (!lines.Any())
                {
                    await Alert.ShowMessage(
                        Translate.Get(nameof(AppResources.CouldNotFindPackingSlip)));

                    return;
                }
                await Nav.NavigateTo(new DrvRoutesPackingSlipDetailPage(lines.First(), false));
            }
            catch (Exception e)
            {
                await Alert.DisplayError(e);
            }
            finally
            {
                IsBusy = false;
            }
        }
        public async Task Load()
        {
            try
            {
                IsBusy = true;
                if (_packingSlip != null)
                {
                    return;
                }
                if (_manifest.PackingSlipId == null)
                {
                    return;
                }
                var filter = new PackingSlipsQueryContext
                {
                    CustomerInfo = new CustomerContext
                    {
                        AXCustomerId = _manifest.CustAccount
                    },
                    InventLocationId = Settings.MyInfo.CurrentUser.UserBranchCode,
                    SalesOrderId     = _manifest.SalesOrderId,
                    Id = _manifest.PackingSlipId
                };
                var result = await Api.GetPackingSlips(filter);

                if (!result.Successful.GetValueOrDefault())
                {
                    throw new Exception($"{Translate.Get(nameof(AppResources.ServerError))}:" +
                                        $"{result.ExceptionMessage}");
                }

                PackingSlip = result.Data.FirstOrDefault();
            }
            catch (Exception e)
            {
                await Alert.DisplayError(e);
            }
            finally
            {
                IsBusy = false;
            }
        }
Exemple #7
0
        private async Task <List <PackingSlip> > GetPackingSlips(IEnumerable <ShipManifestDetail> selection)
        {
            var packingSlipList = new List <PackingSlip>();

            foreach (var shipManifestDetail in selection)
            {
                var ctx = new PackingSlipsQueryContext
                {
                    Id           = shipManifestDetail.PackingSlipId,
                    CustomerInfo = new CustomerContext
                    {
                        AXCustomerId = shipManifestDetail.CustAccount
                    }
                };
                var packingSlip = await Api.GetPackingSlips(ctx);

                packingSlipList.AddRange(packingSlip.Data);
            }

            return(packingSlipList);
        }
Exemple #8
0
        private bool IsFilterDifferentFromLast(PackingSlipsQueryContext currentFilter)
        {
            if (_previousFilter == null)
            {
                return(true);
            }
            if (_previousFilter.SelectedQty != currentFilter.SelectedQty)
            {
                return(true);
            }
            if (_previousFilter.FromShipDate != currentFilter.FromShipDate)
            {
                return(true);
            }
            if (_previousFilter.ToShipDate != currentFilter.ToShipDate)
            {
                return(true);
            }
            if (_previousFilter.CustomerPurchaseOrderNo != currentFilter.CustomerPurchaseOrderNo)
            {
                return(true);
            }
            if (_previousFilter.Id != currentFilter.Id)
            {
                return(true);
            }
            if (_previousFilter.SalesOrderId != currentFilter.SalesOrderId)
            {
                return(true);
            }
            if (_previousFilter.Status != currentFilter.Status)
            {
                return(true);
            }

            return(false);
        }
Exemple #9
0
        public async Task Load()
        {
            try
            {
                IsBusy = true;

                if (_loadFromServer)
                {
                    CustomerContext customerContext = (Settings.IsDriver)
                        ? new CustomerContext
                    {
                        AXCustomerId = _packingSlip.CustomerRef
                    }
                        : null;


                    var filter = new PackingSlipsQueryContext
                    {
                        Id           = _packingSlip.Key,
                        CustomerInfo = customerContext
                    };
                    var packingSlipResponse = await Api.GetPackingSlips(filter);

                    if (!packingSlipResponse.Successful.GetValueOrDefault())
                    {
                        await Alert.DisplayApiCallError(packingSlipResponse.ExceptionMessage, packingSlipResponse.ValidationErrors);

                        return;
                    }
                    var packingSlip = packingSlipResponse.Data.Select(p => p.ToPackingSlipModel()).FirstOrDefault();
                    if (packingSlip != null)
                    {
                        PackingSlip = packingSlip.OriginalData;
                    }
                }

                var result = await Api.GetPackingSlipsLines(new PackingSlipLineQueryContext
                {
                    CustomerInfo    = Api.GetCustomerContext(),
                    Id              = PackingSlip.Key,
                    SalesOrderId    = PackingSlip.Order.Key,
                    PackingSlipDate = PackingSlip.DateShipped
                });

                if (!result.Successful.GetValueOrDefault())
                {
                    await Alert.DisplayApiCallError(result.ExceptionMessage, result.ValidationErrors,
                                                    nameof(AppResources.PackingSlipLinesMessage).Translate());

                    return;
                }

                var lines = result.Data.ToArray();

                var list = new List <KeyValuePair <int, PackingSlipLine> >();
                for (int i = 0; i < lines.Length; i++)
                {
                    list.Add(new KeyValuePair <int, PackingSlipLine>(i + 1, lines[i]));
                }
                List = new ObservableCollection <KeyValuePair <int, PackingSlipLine> >(list);
            }
            catch (Exception ex)
            {
                await Alert.DisplayError(ex);
            }
            finally
            {
                IsBusy = false;
            }
        }
Exemple #10
0
        private async Task OnSearch(PackingSlipsQueryContext arg)
        {
            await Load(arg, arg.SortColumn);

            ShowFilter = false;
        }
Exemple #11
0
        public async Task <ApiResponseOfListOfPackingSlip> GetPackingSlipsNotInvoiced(PackingSlipsQueryContext ctx)
        {
            var result = await AXClient.Instance.GetPackingSlipsNotInvoicedAsync(ctx)
                         .ConfigureAwait(false);

            return(result);
        }
Exemple #12
0
        public async Task <ApiResponseOfListOfPackingSlip> GetPackingSlips(PackingSlipsQueryContext filter)
        {
            var result = await AXClient.Instance.PackingSlipsAsync(filter);

            return(result);
        }