@page "/Warehouse" @using Blazored.LocalStorage @using Syncfusion.Blazor.Cards @using Syncfusion.Blazor.Grids @using SytelineSaAppEfDataModel.Dtos @using Syncfusion.Blazor.DropDowns @using FilterType = Syncfusion.Blazor.Grids.FilterType @using SelectionMode = Syncfusion.Blazor.Grids.SelectionMode @using Syncfusion.Blazor.Navigations @using Syncfusion.Blazor.Popups @inject WarehouseService WarehouseService @inject NavigationManager NavigationManager @inject ILocalStorageService LocalStorage

Dokumenty WZ na Magazynie

Klient
@if (_isVisible) {
Dokumenty WZ
Packling Listy
}

Błąd: Zaznacz przynajmniej jeden rekord, żeby wygenerowac Pack List!

FA Krosno Manager © @(DateTime.Now.Year)
@code { private SfGrid _grid; private IEnumerable _clients = new List(); private IEnumerable _materialTransactions = new List(); private IEnumerable _dataSource = new List(); private IEnumerable _wzHeaders = new List(); private WzClientDto? _selectedClient; private WzHeaderDto? _selectedHeader; private SfDropDownList _dropdown; private bool _isVisible; private bool Visibility { get; set; } protected override async Task OnAfterRenderAsync(bool firstRender) { if (firstRender) { _clients = await WarehouseService.GetAllClientsAsync(); _clients = _clients.Where(x => x.Name.Equals("MEYLE", StringComparison.OrdinalIgnoreCase)); StateHasChanged(); var savedClientId = await LocalStorage.GetItemAsync("SelectedClientId"); if (savedClientId != null && _clients.FirstOrDefault(c => c.ID == savedClientId) is {} savedClient) { await OnValueChange(new ChangeEventArgs() { Value = savedClient.ID }); StateHasChanged(); } } } private async Task OnValueChange(ChangeEventArgs args) { if (args.Value.HasValue) { _selectedClient = args.ItemData ?? _clients.FirstOrDefault(x => x.ID == args.Value); if (_selectedClient == null) { return; } _isVisible = true; _materialTransactions = await WarehouseService.GetAllClientWzsAsync(_selectedClient.CustomerNumber, _selectedClient.CustomerSequence ?? 0); _dataSource = _materialTransactions.GroupBy(x => x.MTGroupNum).Select(x => x.First()).ToList(); _wzHeaders = await WarehouseService.GetAllClientWzHeadersAsync(_selectedClient.CustomerNumber, _selectedClient.CustomerSequence ?? 0); await LocalStorage.SetItemAsync("SelectedClientId", _selectedClient.ID); _dropdown.Value = _selectedClient.ID; } else { _selectedClient = null; _isVisible = false; } StateHasChanged(); } private void OnRowDoubleClick(RecordDoubleClickEventArgs obj) { Guid headerId = obj.RowData.ID; NavigationManager.NavigateTo("/Warehouse/PackList/" + headerId); } private async Task CreatePackingList() { var selectedRecords = await _grid.GetSelectedRecordsAsync(); if (!selectedRecords.Any()) { Visibility = true; return; } WzHeaderDto wzHeader = new WzHeaderDto { ID = Guid.NewGuid(), FK_Client = _selectedClient?.ID, CreatedDate = DateTime.Now, WzNumbers = string.Join(", ",selectedRecords.Select(x => x.MTGroupNum).Distinct()) }; await WarehouseService.CreateWzHeaderAsync(wzHeader); switch (_selectedClient?.Name.ToUpper()) { case "MEYLE": IList rows = new List(); IList materialTransactions = _materialTransactions.Where(x => selectedRecords.Any(y => y.MTGroupNum == x.MTGroupNum)).ToList(); foreach (MaterialTransactionDto materialTransactionDto in materialTransactions) { CustomerOrderDto customerOrder = await WarehouseService.GetCustomerOrder(materialTransactionDto.RefNum ?? string.Empty); ItemCustDto item = await WarehouseService.GetItem(materialTransactionDto.Item ?? string.Empty, customerOrder.CustNum); rows.Add(new WzRowMeyleDto { ID = Guid.NewGuid(), Quantity = Math.Abs((int?)materialTransactionDto.Qty ?? 0), ItemNumber = item.CustItem, OrderNumber = customerOrder.CustPo, WzNumber = materialTransactionDto.MTGroupNum ?? string.Empty, FK_Header = wzHeader.ID }); } await WarehouseService.CreateWzRowsMeyleAsync(rows); break; } NavigationManager.NavigateTo("/Warehouse/PackList/" + wzHeader.ID); } private void HideModal() { Visibility = false; } }