96 lines
3.9 KiB
Plaintext
96 lines
3.9 KiB
Plaintext
@using AyCode.Blazor.Components.Components.Grids
|
|
@using AyCode.Core.Helpers
|
|
@using AyCode.Core.Interfaces
|
|
@using AyCode.Core.Loggers
|
|
@using AyCode.Services.Nav.Ekaer.Models
|
|
@using FruitBank.Common.Entities
|
|
@using FruitBankHybrid.Shared.Services.Loggers
|
|
@using FruitBankHybrid.Shared.Services.SignalRs
|
|
|
|
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
|
@inject FruitBankSignalRClient FruitBankSignalRClient
|
|
|
|
@if (TradeCard != null)
|
|
{
|
|
@* Fejléc: csak a user-nek fontos, a mapper által ténylegesen töltött mezők. *@
|
|
<div style="display:grid; grid-template-columns:auto 1fr auto 1fr; gap:2px 12px; padding:8px 12px; font-size:0.85rem;">
|
|
<b>Irány:</b><span>@TradeCard.TradeType</span>
|
|
<b>Fuvarozó:</b><span>@TradeCard.CarrierText</span>
|
|
|
|
<b>Eladó:</b><span>@FormatParty(TradeCard.SellerName, TradeCard.SellerVatNumber, TradeCard.SellerAddress)</span>
|
|
<b>Címzett:</b><span>@FormatParty(TradeCard.DestinationName, TradeCard.DestinationVatNumber, TradeCard.DestinationAddress)</span>
|
|
|
|
<b>Felrakodás:</b><span>@FormatLocation(TradeCard.LoadLocation)</span>
|
|
<b>Lerakodás:</b><span>@FormatLocation(TradeCard.UnloadLocation)</span>
|
|
|
|
<b>Vontató:</b><span>@TradeCard.Vehicle?.PlateNumber</span>
|
|
<b>Pótkocsi:</b><span>@TradeCard.Vehicle2?.PlateNumber</span>
|
|
</div>
|
|
}
|
|
|
|
@if (!string.IsNullOrWhiteSpace(ErrorText))
|
|
{
|
|
@* A generálás/küldés hibái egyben olvashatóan — soronként (a validátor NewLine-nal fűzi). *@
|
|
<div class="text-danger" style="padding:0 12px 8px 12px; font-size:0.85rem; white-space:pre-line;">@ErrorText</div>
|
|
}
|
|
|
|
<MgGridWithInfoPanel ShowInfoPanel="false">
|
|
<GridContent>
|
|
<GridEkaerDetailBase @ref="Grid"
|
|
DataSource="TradeCardItems"
|
|
ParentDataItem="ParentDataItem"
|
|
SignalRClient="FruitBankSignalRClient"
|
|
AutoSaveLayoutName="GridEkaerDetail"
|
|
Logger="_logger"
|
|
CssClass="@GridCss"
|
|
ValidationEnabled="false">
|
|
<Columns>
|
|
<DxGridDataColumn FieldName="@nameof(TradeCardItemType.ItemExternalId)" Caption="Tétel az." ReadOnly="true" />
|
|
<DxGridDataColumn FieldName="@nameof(TradeCardItemType.TradeReason)" Caption="Jogcím" ReadOnly="true" />
|
|
<DxGridDataColumn FieldName="@nameof(TradeCardItemType.ProductVtsz)" Caption="VTSZ" ReadOnly="true" />
|
|
<DxGridDataColumn FieldName="@nameof(TradeCardItemType.ProductName)" Caption="Megnevezés" ReadOnly="true" />
|
|
<DxGridDataColumn FieldName="@nameof(TradeCardItemType.Weight)" Caption="Bruttó tömeg (kg)" ReadOnly="true" />
|
|
<DxGridDataColumn FieldName="@nameof(TradeCardItemType.Value)" Caption="Érték (HUF)" ReadOnly="true" />
|
|
</Columns>
|
|
</GridEkaerDetailBase>
|
|
</GridContent>
|
|
</MgGridWithInfoPanel>
|
|
|
|
@code {
|
|
[Parameter] public TradeCardType? TradeCard { get; set; }
|
|
[Parameter] public IId<int>? ParentDataItem { get; set; }
|
|
|
|
public GridEkaerDetailBase Grid { get; set; }
|
|
|
|
public bool IsMasterGrid => ParentDataItem == null;
|
|
string GridCss => !IsMasterGrid ? "hide-toolbar" : string.Empty;
|
|
|
|
private string? ErrorText => (ParentDataItem as EkaerHistory)?.ErrorText;
|
|
|
|
private AcObservableCollection<TradeCardItemType> TradeCardItems = [];
|
|
|
|
private LoggerClient<GridEkaerDetail> _logger;
|
|
|
|
protected override void OnInitialized()
|
|
{
|
|
_logger = new LoggerClient<GridEkaerDetail>(LogWriters.ToArray());
|
|
}
|
|
|
|
protected override void OnParametersSet()
|
|
{
|
|
TradeCardItems = TradeCard?.Items is { } items ? new AcObservableCollection<TradeCardItemType>(items) : [];
|
|
}
|
|
|
|
private static string FormatParty(string? name, string? vatNumber, string? address)
|
|
{
|
|
var party = string.IsNullOrWhiteSpace(vatNumber) ? name : $"{name} ({vatNumber})";
|
|
return string.IsNullOrWhiteSpace(address) ? party ?? string.Empty : $"{party} — {address}";
|
|
}
|
|
|
|
private static string FormatLocation(LocationType? location)
|
|
{
|
|
if (location == null) return string.Empty;
|
|
return string.Join(" ", new[] { location.ZipCode, location.City, location.Street }.Where(p => !string.IsNullOrWhiteSpace(p)));
|
|
}
|
|
}
|