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); }
/// <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; } }
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); }
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); }
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; } }
private async Task OnSearch(PackingSlipsQueryContext arg) { await Load(arg, arg.SortColumn); ShowFilter = false; }
public async Task <ApiResponseOfListOfPackingSlip> GetPackingSlipsNotInvoiced(PackingSlipsQueryContext ctx) { var result = await AXClient.Instance.GetPackingSlipsNotInvoicedAsync(ctx) .ConfigureAwait(false); return(result); }
public async Task <ApiResponseOfListOfPackingSlip> GetPackingSlips(PackingSlipsQueryContext filter) { var result = await AXClient.Instance.PackingSlipsAsync(filter); return(result); }