@using AyCode.Core.Extensions @using AyCode.Utils.Extensions @using DevExpress.Blazor @using FruitBank.Common.Dtos @using FruitBank.Common.Entities @using FruitBank.Common.Helpers @using FruitBank.Common.Models @using FruitBank.Common.SignalRs @using FruitBankHybrid.Shared.Databases @using FruitBankHybrid.Shared.Extensions @using FruitBankHybrid.Shared.Services @using FruitBankHybrid.Shared.Services.SignalRs @using Mango.Nop.Core.Entities @* CaptionCssClass="@(SelectedProductDto?.IsMeasured == true ? "text-success" : "")"> *@ @* TextFieldName="StockTakingItem.Product.Name" *@
@if (SelectedStockTakingItem is { ProductId: > 0 }) {

#@(SelectedStockTakingItem.ProductId). @(SelectedStockTakingItem.Product!.Name)

@{ var a = $"Várható rekesz: {SelectedStockTakingItem.TotalOriginalQuantity} ({SelectedStockTakingItem.OriginalStockQuantity} + {SelectedStockTakingItem.InProcessOrdersQuantity}), Várható net.súly: {SelectedStockTakingItem.OriginalNetWeight} kg."; @a }
@for (var index = 0; index < (SelectedStockTakingItem?.StockTakingItemPallets?.Count ?? 0); index++) { var localI = index + 1; var currentShippingItemPallet = SelectedStockTakingItem!.StockTakingItemPallets![index]; } @* TOTAL: Rekesz: @(SelectedStockTakingItem.MeasuredStockQuantity) db Br: @(SelectedStockTakingItem.MeasuredGrossWeight) kg Net: @(SelectedStockTakingItem.MeasuredNetWeight) kg *@ }
@code { [Inject] public required DatabaseClient Database { get; set; } [Inject] public required LoggedInModel LoggedInModel { get; set; } [Inject] public required IDialogService DialogService { get; set; } = null!; [Inject] public required FruitBankSignalRClient FruitBankSignalRClient { get; set; } List _stockTakings { get; set; } = []; List _stockTakingItems { get; set; } = []; List _stockTakingItemPallets { get; set; } = []; StockTaking? SelectedStockTaking { get; set; } StockTakingItem? SelectedStockTakingItem { get; set; } protected override async Task OnInitializedAsync() { await ReloadDataFromDb(false); } public async Task ReloadDataFromDb(bool forceReload) { LoadingPanelVisibility.Visible = true; _stockTakings = await FruitBankSignalRClient.GetStockTakings(false) ?? []; await StockTakingComboValueChanged(_stockTakings.FirstOrDefault()); LoadingPanelVisibility.Visible = false; } private async Task NewStockTakingClick() { var stockTaking = new StockTaking(); stockTaking.StartDateTime = DateTime.Now; stockTaking.Creator = LoggedInModel.CustomerDto!.Id; var resultStockTakings = await FruitBankSignalRClient.AddStockTaking(stockTaking); if (resultStockTakings == null) return; _stockTakings.UpdateCollection(resultStockTakings, false); await StockTakingComboValueChanged(_stockTakings.FirstOrDefault(x => x.Id == stockTaking.Id)); } private async Task UpdateStockTakingClick() { // var resultStockTaking = await FruitBankSignalRClient.AddStockTaking(stockTaking); // if (resultStockTaking == null) return; // _stockTakings.Add(resultStockTaking); await InvokeAsync(StateHasChanged); } private async Task StockTakingCloseClick(int stockTakingId) { var resultStockTaking = await FruitBankSignalRClient.CloseStockTaking(stockTakingId); if (resultStockTaking == null) return; _stockTakings.UpdateCollection(resultStockTaking, false); await StockTakingComboValueChanged(_stockTakings.FirstOrDefault(x => x.Id == resultStockTaking.Id)); await InvokeAsync(StateHasChanged); } private async Task StockTakingComboValueChanged(StockTaking? newValue) { SelectedStockTaking = newValue; SelectedStockTaking?.StockTakingItems = await FruitBankSignalRClient.GetStockTakingItemsByStockTakingId(SelectedStockTaking.Id); PrepareStockTakingItems(SelectedStockTaking); SelectedStockTakingItem = _stockTakingItems.FirstOrDefault(); await InvokeAsync(StateHasChanged); } private void PrepareStockTakingItems(StockTaking? stockTaking) { _stockTakingItems = stockTaking?.StockTakingItems? .OrderByDescending(x => x.IsInvalid) .ThenByDescending(x => x.IsRequiredForMeasuring) .ThenBy(x => x.Product?.Name) .ToList() ?? []; foreach (var stockTakingItem in _stockTakingItems) { stockTakingItem.StockTakingItemPallets ??= []; stockTakingItem.StockTaking = stockTaking; if (!stockTakingItem.IsInvalid && stockTakingItem.StockTakingItemPallets.Count == 0) { stockTakingItem.StockTakingItemPallets.Add(MeasurementService.CreateNewStockTakingItemPallet(stockTakingItem, LoggedInModel.CustomerDto)); } else { foreach (var stockTakingItemPallet in stockTakingItem.StockTakingItemPallets) stockTakingItemPallet.StockTakingItem = stockTakingItem; } } } private Task OnStockTakingItemPalletValueChanged(StockTakingItemPallet stockTakingItemPallet, StockTakingItem stockTakingItem) { // MeasuringValuesHelper.SetShippingItemTotalMeasuringValues(stockTakingItem); // BtnSaveEnabled = stockTakingItem.IsValidMeasuringValues() && stockTakingItemPallet.IsValidMeasuringValues(stockTakingItem.IsMeasurable); StateHasChanged(); return Task.CompletedTask; } private async Task OnStockTakingItemPalletSaved(StockTakingItemPallet? responseStockTakingItemPallet) { if (responseStockTakingItemPallet != null) { responseStockTakingItemPallet.StockTakingItem = SelectedStockTakingItem; SelectedStockTakingItem!.MeasuredStockQuantity = responseStockTakingItemPallet.TrayQuantity; if (SelectedStockTakingItem.IsMeasurable) SelectedStockTakingItem.MeasuredNetWeight = responseStockTakingItemPallet.NetWeight; SelectedStockTakingItem.StockTakingItemPallets!.UpdateCollection(responseStockTakingItemPallet, false); SelectedStockTakingItem.IsMeasured = SelectedStockTakingItem.StockTakingItemPallets!.All(sip => sip.IsMeasuredAndValid(SelectedStockTakingItem.IsMeasurable)); // MeasuringValuesHelper.SetShippingItemTotalMeasuringValues(SelectedShippingItem); } else await DialogService.ShowMessageBoxAsync("Hiba", "Adatok mentése sikertelen volt, ellenőrizze a mérés adatait!", MessageBoxRenderStyle.Danger); await InvokeAsync(StateHasChanged); } }