144 lines
5.2 KiB
Plaintext
144 lines
5.2 KiB
Plaintext
@using System.Collections.ObjectModel
|
|
@using AyCode.Core.Helpers
|
|
@using AyCode.Core.Loggers
|
|
@using AyCode.Utils.Extensions
|
|
@using FruitBank.Common.Dtos
|
|
@using FruitBank.Common.Entities
|
|
@using FruitBankHybrid.Shared.Components.Grids.Shippings
|
|
@using FruitBankHybrid.Shared.Components.Toolbars
|
|
@using FruitBankHybrid.Shared.Databases
|
|
@using FruitBankHybrid.Shared.Services.Loggers
|
|
@using FruitBankHybrid.Shared.Services.SignalRs
|
|
|
|
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
|
@inject FruitBankSignalRClient FruitBankSignalRClient
|
|
|
|
@* <GridShippingBase @ref="Grid" Data="Shippings" AutoSaveLayoutName="GridShipping"> *@
|
|
|
|
<GridShippingBase @ref="Grid" DataSource="Shippings" AutoSaveLayoutName="GridShipping" SignalRClient="FruitBankSignalRClient" Logger="_logger"
|
|
CssClass="@GridCss" ValidationEnabled="false"
|
|
FocusedRowChanged="Grid_FocusedRowChanged">
|
|
<Columns>
|
|
<DxGridDataColumn FieldName="Id" SortIndex="0" SortOrder="GridColumnSortOrder.Descending" />
|
|
|
|
<DxGridDataColumn FieldName="ShippingDate" />
|
|
<DxGridDataColumn FieldName="LicencePlate" />
|
|
|
|
<DxGridDataColumn FieldName="IsAllMeasured" ReadOnly="true" />
|
|
<DxGridDataColumn FieldName="Created" ReadOnly="true" />
|
|
<DxGridDataColumn FieldName="Modified" ReadOnly="true" />
|
|
<DxGridCommandColumn Visible="!IsMasterGrid" Width="120"></DxGridCommandColumn>
|
|
</Columns>
|
|
<DetailRowTemplate>
|
|
@if (IsMasterGrid)
|
|
{
|
|
var shipping = ((Shipping)context.DataItem);
|
|
var shippingDocuments = shipping?.ShippingDocuments ?? [];
|
|
|
|
<DxTabs ActiveTabIndexChanged="(i) => OnActiveTabChanged(i)">
|
|
<DxTabPage Text="Szállítólevelek">
|
|
@{
|
|
var observableShippingDocuments = new AcObservableCollection<ShippingDocument>(shippingDocuments);
|
|
<GridShippingDocument IsMasterGrid="false" ShippingDocuments="observableShippingDocuments"></GridShippingDocument>
|
|
}
|
|
</DxTabPage>
|
|
|
|
<DxTabPage Text="Szállítmány tételek">
|
|
<GridShippingItemTemplate ShippingItems="shippingDocuments.SelectMany(sd => sd.ShippingItems ?? [])?.ToList() ?? []" ParentDataItem="shipping" />
|
|
</DxTabPage>
|
|
</DxTabs>
|
|
}
|
|
</DetailRowTemplate>
|
|
<ToolbarTemplate>
|
|
@if (IsMasterGrid)
|
|
{
|
|
<FruitBankToolbarTemplate Grid="Grid" OnReloadDataClick="() => ReloadDataFromDb(true)" />
|
|
}
|
|
</ToolbarTemplate>
|
|
<GroupSummary>
|
|
<DxGridSummaryItem SummaryType="GridSummaryItemType.Sum"
|
|
FieldName="Quantity"
|
|
FooterColumnName="Quantity" />
|
|
<DxGridSummaryItem SummaryType="GridSummaryItemType.Sum"
|
|
FieldName="NetWeight"
|
|
FooterColumnName="NetWeight" />
|
|
<DxGridSummaryItem SummaryType="GridSummaryItemType.Sum"
|
|
FieldName="PriceInclTax"
|
|
FooterColumnName="PriceInclTax" />
|
|
</GroupSummary>
|
|
</GridShippingBase>
|
|
|
|
@code {
|
|
//[Inject] public required ObjectLock ObjectLock { get; set; }
|
|
[Inject] public required DatabaseClient Database { get; set; }
|
|
|
|
[Parameter] public bool IsMasterGrid { get; set; } = false;
|
|
//[Parameter] public OrderDto? OrderDto { get; set; }
|
|
[Parameter] public AcObservableCollection<Shipping>? Shippings { get; set; }
|
|
|
|
const string ExportFileName = "ExportResult";
|
|
string GridSearchText = "";
|
|
bool EditItemsEnabled { get; set; }
|
|
int FocusedRowVisibleIndex { get; set; }
|
|
public GridShippingBase Grid { get; set; }
|
|
string GridCss => !IsMasterGrid ? "hide-toolbar" : string.Empty;
|
|
|
|
private int _activeTabIndex;
|
|
private LoggerClient<GridShipping> _logger;
|
|
|
|
protected override async Task OnInitializedAsync()
|
|
{
|
|
_logger = new LoggerClient<GridShipping>(LogWriters.ToArray());
|
|
await ReloadDataFromDb(false);
|
|
}
|
|
|
|
private async Task ReloadDataFromDb(bool forceReload = false)
|
|
{
|
|
if (!IsMasterGrid) return;
|
|
|
|
//ProductDtos ??= await FruitBankSignalRClient.GetProductDtos() ?? [];
|
|
//ProductDtos ??= await Database.ProductDtoTable.LoadDataAsync(true);
|
|
|
|
if (Grid == null) return;
|
|
|
|
using (await ObjectLock.GetSemaphore<Shipping>().UseWaitAsync())
|
|
if (forceReload) await Grid.ReloadDataSourceAsync();
|
|
|
|
if (forceReload) Grid.Reload();
|
|
}
|
|
|
|
async Task Grid_FocusedRowChanged(GridFocusedRowChangedEventArgs args)
|
|
{
|
|
if (Grid == null) return;
|
|
|
|
if (Grid.IsEditing() && !Grid.IsEditingNewRow())
|
|
await Grid.SaveChangesAsync();
|
|
|
|
FocusedRowVisibleIndex = args.VisibleIndex;
|
|
EditItemsEnabled = true;
|
|
}
|
|
|
|
protected async Task OnActiveTabChanged(int activeTabIndex)
|
|
{
|
|
_activeTabIndex = activeTabIndex;
|
|
return;
|
|
|
|
// switch (_activeTabIndex)
|
|
// {
|
|
// case 0:
|
|
// if(ProductDtos == null)
|
|
// ProductDtos = (await FruitBankSignalRClient.GetProductDtos() ?? []); //.Where(o => o.HasMeasuringAccess(LoggedInModel.CustomerDto?.Id, LoggedInModel.IsRevisor)).OrderBy(o => o.DateOfReceipt).ToList();
|
|
// break;
|
|
// case 1:
|
|
// if(OrderDtos == null)
|
|
// OrderDtos = (await FruitBankSignalRClient.GetAllOrderDtos() ?? []).OrderByDescending(o => o.Id).ToList(); //.Where(o => o.HasMeasuringAccess(LoggedInModel.CustomerDto?.Id, LoggedInModel.IsRevisor)).OrderBy(o => o.DateOfReceipt).ToList();
|
|
// break;
|
|
// case 2:
|
|
// if (OrderItemDtos == null)
|
|
// OrderItemDtos = (await FruitBankSignalRClient.GetAllOrderItemDtos() ?? []).OrderByDescending(o => o.Id).ToList(); //.Where(o => o.HasMeasuringAccess(LoggedInModel.CustomerDto?.Id, LoggedInModel.IsRevisor)).OrderBy(o => o.DateOfReceipt).ToList();
|
|
// break;
|
|
// }
|
|
}
|
|
}
|
|
|