223 lines
8.4 KiB
Plaintext
223 lines
8.4 KiB
Plaintext
@using AyCode.Core.Extensions
|
|
@using FruitBank.Common.Dtos
|
|
@using FruitBank.Common.Entities
|
|
@using FruitBankHybrid.Shared.Databases
|
|
@using FruitBankHybrid.Shared.Services.SignalRs
|
|
|
|
@inject FruitBankSignalRClient FruitBankSignalRClient
|
|
|
|
@* <div class="mb-2">
|
|
Contact Phone: @OrderDto.Email
|
|
</div> *@
|
|
|
|
<MgGridBase @ref="Grid" Data="ShippingItems" IsMasterGrid="IsMasterGrid" CssClass="@GridCss" AutoSaveLayoutName="GridShippingItem"
|
|
ValidationEnabled="false" EditMode="GridEditMode.EditRow"
|
|
EditModelSaving="Grid_EditModelSaving"
|
|
FocusedRowChanged="Grid_FocusedRowChanged">
|
|
<Columns>
|
|
<DxGridDataColumn FieldName="Id" Caption="oiId" Width="125" />
|
|
<DxGridDataColumn FieldName="ShippingDocumentId" Caption="ShippingDocument">
|
|
<EditSettings>
|
|
<DxComboBoxSettings Data="ShippingDocuments"
|
|
ValueFieldName="Id"
|
|
TextFieldName="DocumentIdNumber"
|
|
DropDownBodyCssClass="dd-body-class"
|
|
ListRenderMode="ListRenderMode.Entire"
|
|
SearchMode="ListSearchMode.AutoSearch"
|
|
SearchFilterCondition="ListSearchFilterCondition.Contains"
|
|
ClearButtonDisplayMode="DataEditorClearButtonDisplayMode.Auto">
|
|
<Columns>
|
|
<DxListEditorColumn FieldName="@nameof(ShippingDocument.Id)" />
|
|
<DxListEditorColumn FieldName="@nameof(ShippingDocument.DocumentIdNumber)" />
|
|
<DxListEditorColumn FieldName="@("Partner.Name")" />
|
|
</Columns>
|
|
</DxComboBoxSettings>
|
|
</EditSettings>
|
|
</DxGridDataColumn>
|
|
|
|
@* <DxGridDataColumn FieldName="PalletId" Caption="pId" Width="125" /> *@
|
|
<DxGridDataColumn FieldName="ProductId" Caption="Product">
|
|
<EditSettings>
|
|
<DxComboBoxSettings Data="ProductDtos"
|
|
ValueFieldName="Id"
|
|
TextFieldName="Name"
|
|
DropDownBodyCssClass="dd-body-class"
|
|
ListRenderMode="ListRenderMode.Entire"
|
|
SearchMode="ListSearchMode.AutoSearch"
|
|
SearchFilterCondition="ListSearchFilterCondition.Contains"
|
|
ClearButtonDisplayMode="DataEditorClearButtonDisplayMode.Auto" >
|
|
<Columns>
|
|
<DxListEditorColumn FieldName="@nameof(ProductDto.Id)" />
|
|
<DxListEditorColumn FieldName="@nameof(ProductDto.Name)" />
|
|
<DxListEditorColumn FieldName="@nameof(ProductDto.AvailableQuantity)" />
|
|
<DxListEditorColumn FieldName="@nameof(ProductDto.StockQuantity)" />
|
|
<DxListEditorColumn FieldName="@nameof(ProductDto.IncomingQuantity)" />
|
|
<DxListEditorColumn FieldName="@nameof(ProductDto.NetWeight)" />
|
|
<DxListEditorColumn FieldName="@nameof(ProductDto.IsMeasurable)" />
|
|
</Columns>
|
|
</DxComboBoxSettings>
|
|
</EditSettings>
|
|
</DxGridDataColumn>
|
|
|
|
<DxGridDataColumn FieldName="NameOnDocument" MinWidth="120" Caption="Name(OnDoc)" />
|
|
<DxGridDataColumn FieldName="PalletsOnDocument" Caption="Raklap(OnDoc)" />
|
|
<DxGridDataColumn FieldName="QuantityOnDocument" Caption="Mennyiség(OnDoc)" />
|
|
<DxGridDataColumn FieldName="NetWeightOnDocument" Caption="Net.súly(OnDoc)" />
|
|
<DxGridDataColumn FieldName="GrossWeightOnDocument" Caption="Br.súly(OnDoc)" />
|
|
<DxGridDataColumn FieldName="MeasuringCount" Caption="Mérések száma" />
|
|
|
|
<DxGridDataColumn FieldName="MeasuredQuantity" Caption="Mért mennyiség" ReadOnly="true" />
|
|
<DxGridDataColumn FieldName="MeasuredNetWeight" Caption="Mért net.súly(kg)" ReadOnly="true" />
|
|
<DxGridDataColumn FieldName="MeasuredGrossWeight" Caption="Mért br.súly(kg)" ReadOnly="true" />
|
|
|
|
<DxGridDataColumn FieldName="IsMeasurable" ReadOnly="true" />
|
|
<DxGridDataColumn FieldName="IsMeasured" ReadOnly="true"/>
|
|
|
|
<DxGridDataColumn FieldName="Created" ReadOnly="true" />
|
|
<DxGridDataColumn FieldName="Modified" ReadOnly="true" />
|
|
<DxGridCommandColumn Visible="!IsMasterGrid" Width="120"></DxGridCommandColumn>
|
|
</Columns>
|
|
<DetailRowTemplate>
|
|
@{
|
|
var shippingItemPallets = ((ShippingItem)context.DataItem).ShippingItemPallets;
|
|
<GridShippingItemPallets ShippingItemPallets="shippingItemPallets" IsMasterGrid="false"></GridShippingItemPallets>
|
|
}
|
|
</DetailRowTemplate>
|
|
<ToolbarTemplate>
|
|
@if (IsMasterGrid)
|
|
{
|
|
<DxToolbar ItemRenderStyleMode="ToolbarRenderStyleMode.Plain">
|
|
<DxToolbarItem Text="New" Click="NewItem_Click" IconCssClass="grid-toolbar-new" />
|
|
<DxToolbarItem Text="Edit" Click="EditItem_Click" IconCssClass="grid-toolbar-edit" Enabled="EditItemsEnabled" />
|
|
<DxToolbarItem Text="Delete" Click="DeleteItem_Click" IconCssClass="grid-toolbar-delete" Enabled="EditItemsEnabled" />
|
|
<DxToolbarItem Text="Column Chooser" BeginGroup="true" Click="ColumnChooserItem_Click" IconCssClass="grid-toolbar-column-chooser" />
|
|
<DxToolbarItem Text="Export" IconCssClass="grid-toolbar-export">
|
|
<Items>
|
|
<DxToolbarItem Text="To CSV" Click="ExportCsvItem_Click" />
|
|
<DxToolbarItem Text="To XLSX" Click="ExportXlsxItem_Click" />
|
|
<DxToolbarItem Text="To XLS" Click="ExportXlsItem_Click" />
|
|
<DxToolbarItem Text="To PDF" Click="ExportPdfItem_Click" />
|
|
</Items>
|
|
</DxToolbarItem>
|
|
@* <DxToolbarItem BeginGroup="true">
|
|
<Template Context="toolbar_item_context">
|
|
<DxSearchBox @bind-Text="GridSearchText"
|
|
BindValueMode="BindValueMode.OnInput"
|
|
ClearButtonDisplayMode="DataEditorClearButtonDisplayMode.Auto"
|
|
aria-label="Search" />
|
|
</Template>
|
|
</DxToolbarItem>*@
|
|
</DxToolbar>
|
|
}
|
|
</ToolbarTemplate>
|
|
<GroupSummary>
|
|
<DxGridSummaryItem SummaryType="GridSummaryItemType.Sum"
|
|
FieldName="MeasuredQuantity"
|
|
FooterColumnName="Quantity" />
|
|
<DxGridSummaryItem SummaryType="GridSummaryItemType.Sum"
|
|
FieldName="MeasuredGrossWeight"
|
|
FooterColumnName="GrossWeight" />
|
|
<DxGridSummaryItem SummaryType="GridSummaryItemType.Sum"
|
|
FieldName="MeasuredNetWeight"
|
|
FooterColumnName="NetWeight" />
|
|
</GroupSummary>
|
|
</MgGridBase>
|
|
|
|
@code {
|
|
[Inject] public required DatabaseClient Database { get; set; }
|
|
|
|
[Parameter] public bool IsMasterGrid { get; set; } = false;
|
|
|
|
[Parameter] public IEnumerable<ProductDto>? ProductDtos { get; set; }
|
|
[Parameter] public List<ShippingItem>? ShippingItems { get; set; }
|
|
[Parameter] public IEnumerable<ShippingDocument>? ShippingDocuments { get; set; }
|
|
|
|
string GridCss => !IsMasterGrid ? "hide-toolbar" : string.Empty;
|
|
|
|
const string ExportFileName = "ExportResult";
|
|
string _localStorageKey = "GridShippingDocument_";
|
|
|
|
string GridSearchText = "";
|
|
bool EditItemsEnabled { get; set; } = true;
|
|
int FocusedRowVisibleIndex { get; set; }
|
|
IGrid Grid { get; set; }
|
|
|
|
protected override async Task OnInitializedAsync()
|
|
{
|
|
ProductDtos ??= await Database.ProductDtoTable.LoadDataAsync(true);
|
|
|
|
//ProductDtos ??= await FruitBankSignalRClient.GetProductDtos() ?? [];
|
|
ShippingItems ??= await FruitBankSignalRClient.GetShippingItems() ?? [];
|
|
ShippingDocuments ??= await FruitBankSignalRClient.GetShippingDocuments() ?? [];
|
|
}
|
|
|
|
async Task Grid_FocusedRowChanged(GridFocusedRowChangedEventArgs args)
|
|
{
|
|
if (Grid != null && Grid.IsEditing() && !Grid.IsEditingNewRow())
|
|
await Grid.SaveChangesAsync();
|
|
|
|
FocusedRowVisibleIndex = args.VisibleIndex;
|
|
EditItemsEnabled = true;
|
|
}
|
|
|
|
async Task Grid_DataItemDeleting(GridDataItemDeletingEventArgs e)
|
|
{
|
|
}
|
|
|
|
async Task Grid_EditModelSaving(GridEditModelSavingEventArgs e)
|
|
{
|
|
ShippingItem? resultShippingItem = null;
|
|
|
|
if (!e.IsNew)
|
|
{
|
|
resultShippingItem = await FruitBankSignalRClient.UpdateShippingItem((ShippingItem)e.EditModel);
|
|
}
|
|
else
|
|
{
|
|
resultShippingItem = await FruitBankSignalRClient.AddShippingItem((ShippingItem)e.EditModel);
|
|
EditItemsEnabled = true;
|
|
}
|
|
|
|
if (resultShippingItem != null)
|
|
ShippingItems!.UpdateCollection(resultShippingItem, false);
|
|
|
|
EditItemsEnabled = true;
|
|
}
|
|
|
|
async Task NewItem_Click()
|
|
{
|
|
EditItemsEnabled = false;
|
|
await Grid.StartEditNewRowAsync();
|
|
}
|
|
async Task EditItem_Click()
|
|
{
|
|
EditItemsEnabled = false;
|
|
await Grid.StartEditRowAsync(FocusedRowVisibleIndex);
|
|
}
|
|
void DeleteItem_Click()
|
|
{
|
|
EditItemsEnabled = false;
|
|
Grid.ShowRowDeleteConfirmation(FocusedRowVisibleIndex);
|
|
}
|
|
|
|
void ColumnChooserItem_Click(ToolbarItemClickEventArgs e)
|
|
{
|
|
Grid.ShowColumnChooser();
|
|
}
|
|
async Task ExportXlsxItem_Click()
|
|
{
|
|
await Grid.ExportToXlsxAsync(ExportFileName);
|
|
}
|
|
async Task ExportXlsItem_Click()
|
|
{
|
|
await Grid.ExportToXlsAsync(ExportFileName);
|
|
}
|
|
async Task ExportCsvItem_Click()
|
|
{
|
|
await Grid.ExportToCsvAsync(ExportFileName);
|
|
}
|
|
async Task ExportPdfItem_Click()
|
|
{
|
|
await Grid.ExportToPdfAsync(ExportFileName);
|
|
}
|
|
} |