@page "/Warehouse/PackList/{WzHeader:guid}"
@using Syncfusion.Blazor.Cards
@using Syncfusion.Blazor.Grids
@using SytelineSaAppEfDataModel.Dtos
@using Syncfusion.Blazor.Navigations
@using Syncfusion.Blazor.Popups
@using Syncfusion.Blazor.Inputs
@inject WarehouseService WarehouseService
Packing List
@if (_isValid)
{
Packing List został wygenerowany i wysłany!
}
else if(string.IsNullOrWhiteSpace(EmailAddresses))
{
Błąd: Proszę wprowadzić przynajmniej jeden ADRES EMAIL do wysyłki raportu!
}
else if (!_isValid)
{
Błąd: Nie Wszystkie linie mają wypełniony NUMER PALETY.
Packing List nie zostanie wygenerowany!
}
FA Krosno Manager © @(DateTime.Now.Year)
@code {
[Parameter] public Guid WzHeader { get; set; }
private SfGrid _grid;
private IEnumerable _wzRowsMeyle { get; set; } = new List();
private WzHeaderDto _wzHeader;
private bool _isValid;
private bool Visibility { get; set; }
private string EmailAddresses { get; set; } = string.Empty;
private void HideModal()
{
Visibility = false;
}
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (firstRender)
{
_wzHeader = await WarehouseService.GetWzHeaderByIdAsync(WzHeader);
_wzRowsMeyle = await WarehouseService.GetWzRowsByWzHeaderId(WzHeader);
EmailAddresses = _wzHeader.EmailAddresses;
StateHasChanged();
}
}
private async Task SaveChanges()
{
await WarehouseService.AddEmailsToWzHeaderAsync(WzHeader, EmailAddresses);
await _grid.EndEditAsync();
}
private async Task OnBatchSave(BeforeBatchSaveArgs obj)
{
var changes = obj.BatchChanges;
var changedRecords = changes.ChangedRecords;
if (!changedRecords.Any()) return;
await WarehouseService.UpdateWzRowsMeyleAsync(changedRecords);
_wzRowsMeyle = await WarehouseService.GetWzRowsByWzHeaderId(WzHeader);
StateHasChanged();
await _grid.Refresh();
}
private async Task ExportXls()
{
int count = _wzRowsMeyle.Count(x => x.PalletNumber == null);
_isValid = count == 0;
_isValid = _isValid && !string.IsNullOrWhiteSpace(EmailAddresses);
if (_isValid)
{
await WarehouseService.AddEmailsToWzHeaderAsync(WzHeader, EmailAddresses);
await WarehouseService.GenerateXlsForMeyleAsync(WzHeader);
}
Visibility = true;
}
}