improvements
This commit is contained in:
parent
5c6aa6a80f
commit
264ad6256f
|
|
@ -26,6 +26,7 @@ public interface IFruitBankDataControllerCommon
|
||||||
|
|
||||||
#region ShippingItem
|
#region ShippingItem
|
||||||
public Task<List<ShippingItem>?> GetShippingItems();
|
public Task<List<ShippingItem>?> GetShippingItems();
|
||||||
|
public Task<List<ShippingItem>?> GetShippingItemsByShippingId(int shippingId);
|
||||||
public Task<List<ShippingItem>?> GetShippingItemsByDocumentId(int shippingDocumentId);
|
public Task<List<ShippingItem>?> GetShippingItemsByDocumentId(int shippingDocumentId);
|
||||||
public Task<ShippingItem?> GetShippingItemById(int id);
|
public Task<ShippingItem?> GetShippingItemById(int id);
|
||||||
public Task<ShippingItem?> AddShippingItem(ShippingItem shippingItem);
|
public Task<ShippingItem?> AddShippingItem(ShippingItem shippingItem);
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,7 @@ public class SignalRTags : AcSignalRTags
|
||||||
public const int GetShippingItems = 50;
|
public const int GetShippingItems = 50;
|
||||||
public const int GetShippingItemById = 51;
|
public const int GetShippingItemById = 51;
|
||||||
public const int GetShippingItemsByDocumentId = 52;
|
public const int GetShippingItemsByDocumentId = 52;
|
||||||
|
public const int GetShippingItemsByShippingId = 53;
|
||||||
public const int AddShippingItem = 55;
|
public const int AddShippingItem = 55;
|
||||||
public const int UpdateShippingItem = 56;
|
public const int UpdateShippingItem = 56;
|
||||||
public const int UpdateMeasuredShippingItem = 57;
|
public const int UpdateMeasuredShippingItem = 57;
|
||||||
|
|
|
||||||
|
|
@ -1,183 +0,0 @@
|
||||||
@using AyCode.Core.Helpers
|
|
||||||
@using AyCode.Utils.Extensions
|
|
||||||
@using FruitBank.Common.Dtos
|
|
||||||
@using FruitBank.Common.Entities
|
|
||||||
@using FruitBankHybrid.Shared.Databases
|
|
||||||
@using FruitBankHybrid.Shared.Services.SignalRs
|
|
||||||
|
|
||||||
@inject FruitBankSignalRClient FruitBankSignalRClient
|
|
||||||
|
|
||||||
<MgGridBase @ref="Grid" Data="Shippings" IsMasterGrid="IsMasterGrid" AutoSaveLayoutName="GridShipping"
|
|
||||||
EditOnKeyPress="true"
|
|
||||||
ValidationEnabled="false"
|
|
||||||
EditModelSaving="Grid_EditModelSaving">
|
|
||||||
<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 = new AcFastObservableCollection<ShippingDocument>();
|
|
||||||
shippingDocuments.AddRange(shipping?.ShippingDocuments ?? []);
|
|
||||||
|
|
||||||
<DxTabs ActiveTabIndexChanged="(i) => OnActiveTabChanged(i)">
|
|
||||||
<DxTabPage Text="Szállítólevelek">
|
|
||||||
@{
|
|
||||||
|
|
||||||
<GridShippingDocument IsMasterGrid="false" ShippingDocuments="shippingDocuments"></GridShippingDocument>
|
|
||||||
}
|
|
||||||
</DxTabPage>
|
|
||||||
|
|
||||||
<DxTabPage Text="Szállítmány tételek">
|
|
||||||
<GridShippingItemTemplate ShippingItems="shippingDocuments?.SelectMany(sd => sd.ShippingItems ?? [])?.ToList() ?? []" ParentDataItem="shipping" />
|
|
||||||
</DxTabPage>
|
|
||||||
</DxTabs>
|
|
||||||
}
|
|
||||||
</DetailRowTemplate>
|
|
||||||
<ToolbarTemplate>
|
|
||||||
<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="Quantity"
|
|
||||||
FooterColumnName="Quantity" />
|
|
||||||
<DxGridSummaryItem SummaryType="GridSummaryItemType.Sum"
|
|
||||||
FieldName="NetWeight"
|
|
||||||
FooterColumnName="NetWeight" />
|
|
||||||
<DxGridSummaryItem SummaryType="GridSummaryItemType.Sum"
|
|
||||||
FieldName="PriceInclTax"
|
|
||||||
FooterColumnName="PriceInclTax" />
|
|
||||||
</GroupSummary>
|
|
||||||
</MgGridBase>
|
|
||||||
|
|
||||||
@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 List<Shipping>? Shippings{ get; set; }
|
|
||||||
|
|
||||||
const string ExportFileName = "ExportResult";
|
|
||||||
string GridSearchText = "";
|
|
||||||
bool EditItemsEnabled { get; set; }
|
|
||||||
int FocusedRowVisibleIndex { get; set; }
|
|
||||||
public MgGridBase Grid { get; set; }
|
|
||||||
|
|
||||||
private int _activeTabIndex;
|
|
||||||
protected override async Task OnInitializedAsync()
|
|
||||||
{
|
|
||||||
await ReloadDataFromDb(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
private async Task ReloadDataFromDb(bool forceReload = false)
|
|
||||||
{
|
|
||||||
if (!IsMasterGrid) return;
|
|
||||||
|
|
||||||
//ProductDtos ??= await FruitBankSignalRClient.GetProductDtos() ?? [];
|
|
||||||
//ProductDtos ??= await Database.ProductDtoTable.LoadDataAsync(true);
|
|
||||||
|
|
||||||
using (await ObjectLock.GetSemaphore<Shipping>().UseWaitAsync())
|
|
||||||
{
|
|
||||||
if (Shippings == null) Shippings = await FruitBankSignalRClient.GetShippings() ?? [];
|
|
||||||
else if (Shippings.Count == 0 || forceReload)
|
|
||||||
{
|
|
||||||
Shippings.Clear();
|
|
||||||
Shippings.AddRange(await FruitBankSignalRClient.GetShippings() ?? []);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (forceReload) Grid?.Reload();
|
|
||||||
}
|
|
||||||
|
|
||||||
async Task Grid_DataItemDeleting(GridDataItemDeletingEventArgs e) {
|
|
||||||
// await NwindDataService.RemoveEmployeeAsync((EditableEmployee)e.DataItem);
|
|
||||||
// await LoadGridDataAsync();
|
|
||||||
// if(Data.Length == 0)
|
|
||||||
// UpdateEditItemsEnabled(false);
|
|
||||||
}
|
|
||||||
async Task Grid_EditModelSaving(GridEditModelSavingEventArgs e) {
|
|
||||||
// if(e.IsNew) {
|
|
||||||
// await NwindDataService.InsertEmployeeAsync((EditableEmployee)e.EditModel);
|
|
||||||
// UpdateEditItemsEnabled(true);
|
|
||||||
// } else
|
|
||||||
// await NwindDataService.UpdateEmployeeAsync((EditableEmployee)e.DataItem, (EditableEmployee)e.EditModel);
|
|
||||||
// await LoadGridDataAsync();
|
|
||||||
}
|
|
||||||
async Task NewItem_Click() {
|
|
||||||
await Grid.StartEditNewRowAsync();
|
|
||||||
}
|
|
||||||
async Task EditItem_Click() {
|
|
||||||
await Grid.StartEditRowAsync(FocusedRowVisibleIndex);
|
|
||||||
}
|
|
||||||
void DeleteItem_Click() {
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
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;
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
@ -17,7 +17,7 @@
|
||||||
EditModelSaving="Grid_EditModelSaving"
|
EditModelSaving="Grid_EditModelSaving"
|
||||||
FocusedRowChanged="Grid_FocusedRowChanged">
|
FocusedRowChanged="Grid_FocusedRowChanged">
|
||||||
<Columns>
|
<Columns>
|
||||||
<DxGridDataColumn FieldName="Id" SortIndex="0" SortOrder="GridColumnSortOrder.Descending" />
|
<DxGridDataColumn FieldName="Id" SortIndex="0" SortOrder="GridColumnSortOrder.Descending" ReadOnly="true" />
|
||||||
<DxGridDataColumn FieldName="PartnerId" Caption="Partner">
|
<DxGridDataColumn FieldName="PartnerId" Caption="Partner">
|
||||||
<EditSettings>
|
<EditSettings>
|
||||||
<DxComboBoxSettings Data="Partners"
|
<DxComboBoxSettings Data="Partners"
|
||||||
|
|
@ -137,9 +137,9 @@
|
||||||
|
|
||||||
[Parameter] public bool IsMasterGrid { get; set; } = false;
|
[Parameter] public bool IsMasterGrid { get; set; } = false;
|
||||||
|
|
||||||
[Parameter] public List<Shipping>? Shippings { get; set; }
|
[Parameter] public AcObservableCollection<Shipping>? Shippings { get; set; }
|
||||||
[Parameter] public List<Partner>? Partners { get; set; }
|
[Parameter] public List<Partner>? Partners { get; set; }
|
||||||
[Parameter] public AcFastObservableCollection<ShippingDocument>? ShippingDocuments { get; set; }
|
[Parameter] public AcObservableCollection<ShippingDocument>? ShippingDocuments { get; set; }
|
||||||
|
|
||||||
[Parameter] public Func<List<Partner>?, Task>? OnUploadedFileParsed { get; set; }
|
[Parameter] public Func<List<Partner>?, Task>? OnUploadedFileParsed { get; set; }
|
||||||
|
|
||||||
|
|
@ -180,11 +180,10 @@
|
||||||
|
|
||||||
using (await ObjectLock.GetSemaphore<Shipping>().UseWaitAsync())
|
using (await ObjectLock.GetSemaphore<Shipping>().UseWaitAsync())
|
||||||
{
|
{
|
||||||
if (Shippings == null) Shippings = await FruitBankSignalRClient.GetShippings() ?? [];
|
if (Shippings == null) Shippings = new AcObservableCollection<Shipping>(await FruitBankSignalRClient.GetShippings() ?? []);
|
||||||
else if (Shippings.Count == 0 || forceReload)
|
else if (Shippings.Count == 0 || forceReload)
|
||||||
{
|
{
|
||||||
Shippings.Clear();
|
Shippings.Replace(await FruitBankSignalRClient.GetShippings() ?? []);
|
||||||
Shippings.AddRange(await FruitBankSignalRClient.GetShippings() ?? []);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,21 +15,12 @@
|
||||||
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
||||||
@inject FruitBankSignalRClient FruitBankSignalRClient
|
@inject FruitBankSignalRClient FruitBankSignalRClient
|
||||||
|
|
||||||
@* Data="ShippingItems" IsMasterGrid="IsMasterGrid" CssClass="@GridCss" AutoSaveLayoutName="GridShippingItem"
|
<GridShippingItemBase @ref="Grid" ParentDataItem="ParentDataItem" KeyFieldNameToParentId="@nameof(ShippingItem.ShippingDocumentId)"
|
||||||
ValidationEnabled="false" EditMode="GridEditMode.EditRow"
|
|
||||||
EditModelSaving="Grid_EditModelSaving"
|
|
||||||
FocusedRowChanged="Grid_FocusedRowChanged" *@
|
|
||||||
|
|
||||||
<GridShippingItem @ref="Grid" ParentDataItem="ParentDataItem" KeyFieldNameToParentId="@nameof(ShippingItem.ShippingDocumentId)"
|
|
||||||
DataSource="ShippingItems" AutoSaveLayoutName="GridShippingItem" SignalRClient="FruitBankSignalRClient" Logger="_logger"
|
DataSource="ShippingItems" AutoSaveLayoutName="GridShippingItem" SignalRClient="FruitBankSignalRClient" Logger="_logger"
|
||||||
CssClass="@GridCss" ValidationEnabled="false" EditMode="GridEditMode.EditRow"
|
CssClass="@GridCss" ValidationEnabled="false"
|
||||||
FocusedRowChanged="Grid_FocusedRowChanged" OnGridEditModelSaving="EditModelSaving">
|
FocusedRowChanged="Grid_FocusedRowChanged">
|
||||||
@* <MgGridBase Data="ShippingItems" IsMasterGrid="IsMasterGrid" CssClass="@GridCss" AutoSaveLayoutName="GridShippingItem"
|
|
||||||
ValidationEnabled="false" EditMode="GridEditMode.EditRow"
|
|
||||||
EditModelSaving="Grid_EditModelSaving"
|
|
||||||
FocusedRowChanged="Grid_FocusedRowChanged"> *@
|
|
||||||
<Columns>
|
<Columns>
|
||||||
<DxGridDataColumn FieldName="Id" Caption="oiId" Width="125" />
|
<DxGridDataColumn FieldName="Id" Caption="oiId" Width="125" SortIndex="0" SortOrder="GridColumnSortOrder.Descending" ReadOnly="true" />
|
||||||
<DxGridDataColumn FieldName="ShippingDocumentId" Caption="ShippingDocument"
|
<DxGridDataColumn FieldName="ShippingDocumentId" Caption="ShippingDocument"
|
||||||
Visible="@(!ParentDataItemIsShippingDocument)" ReadOnly="@(ParentDataItemIsShippingDocument)">
|
Visible="@(!ParentDataItemIsShippingDocument)" ReadOnly="@(ParentDataItemIsShippingDocument)">
|
||||||
<EditSettings>
|
<EditSettings>
|
||||||
|
|
@ -95,7 +86,7 @@ FocusedRowChanged="Grid_FocusedRowChanged" *@
|
||||||
<DxGridDataColumn FieldName="Modified" ReadOnly="true" />
|
<DxGridDataColumn FieldName="Modified" ReadOnly="true" />
|
||||||
<DxGridCommandColumn Visible="!IsMasterGrid" Width="120"></DxGridCommandColumn>
|
<DxGridCommandColumn Visible="!IsMasterGrid" Width="120"></DxGridCommandColumn>
|
||||||
</Columns>
|
</Columns>
|
||||||
@* <DataColumnCellDisplayTemplate>
|
@* <DataColumnCellDisplayTemplate>
|
||||||
@{
|
@{
|
||||||
if (context.DataColumn.FieldName == nameof(ShippingItem.ShippingDocumentId))
|
if (context.DataColumn.FieldName == nameof(ShippingItem.ShippingDocumentId))
|
||||||
{
|
{
|
||||||
|
|
@ -131,7 +122,7 @@ FocusedRowChanged="Grid_FocusedRowChanged" *@
|
||||||
FieldName="MeasuredNetWeight"
|
FieldName="MeasuredNetWeight"
|
||||||
FooterColumnName="NetWeight" />
|
FooterColumnName="NetWeight" />
|
||||||
</GroupSummary>
|
</GroupSummary>
|
||||||
</GridShippingItem>
|
</GridShippingItemBase>
|
||||||
@* </MgGridBase> *@
|
@* </MgGridBase> *@
|
||||||
|
|
||||||
@code {
|
@code {
|
||||||
|
|
@ -143,7 +134,7 @@ FocusedRowChanged="Grid_FocusedRowChanged" *@
|
||||||
|
|
||||||
[Parameter] public IEnumerable<ProductDto>? ProductDtos { get; set; }
|
[Parameter] public IEnumerable<ProductDto>? ProductDtos { get; set; }
|
||||||
[Parameter] public List<ShippingItem>? ShippingItems { get; set; }
|
[Parameter] public List<ShippingItem>? ShippingItems { get; set; }
|
||||||
[Parameter] public AcFastObservableCollection<ShippingDocument>? ShippingDocuments { get; set; }
|
[Parameter] public AcObservableCollection<ShippingDocument>? ShippingDocuments { get; set; }
|
||||||
|
|
||||||
public bool IsMasterGrid => ParentDataItem == null;
|
public bool IsMasterGrid => ParentDataItem == null;
|
||||||
public bool ParentDataItemIsShippingDocument => (ParentDataItem is ShippingDocument);
|
public bool ParentDataItemIsShippingDocument => (ParentDataItem is ShippingDocument);
|
||||||
|
|
@ -156,7 +147,7 @@ FocusedRowChanged="Grid_FocusedRowChanged" *@
|
||||||
bool EditItemsEnabled { get; set; } = true;
|
bool EditItemsEnabled { get; set; } = true;
|
||||||
int FocusedRowVisibleIndex { get; set; }
|
int FocusedRowVisibleIndex { get; set; }
|
||||||
|
|
||||||
public GridShippingItem Grid { get; set; }
|
public GridShippingItemBase Grid { get; set; }
|
||||||
private LoggerClient<GridShippingItemTemplate> _logger;
|
private LoggerClient<GridShippingItemTemplate> _logger;
|
||||||
|
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
|
|
@ -198,14 +189,13 @@ FocusedRowChanged="Grid_FocusedRowChanged" *@
|
||||||
using (await ObjectLock.GetSemaphore<ShippingItem>().UseWaitAsync())
|
using (await ObjectLock.GetSemaphore<ShippingItem>().UseWaitAsync())
|
||||||
if (forceReload) await Grid.ReloadDataSourceAsync();
|
if (forceReload) await Grid.ReloadDataSourceAsync();
|
||||||
|
|
||||||
if (forceReload)
|
if (forceReload) Grid.Reload();
|
||||||
Grid.Reload();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async Task Grid_FocusedRowChanged(GridFocusedRowChangedEventArgs args)
|
async Task Grid_FocusedRowChanged(GridFocusedRowChangedEventArgs args)
|
||||||
{
|
{
|
||||||
if (Grid != null && Grid.IsEditing() && !Grid.IsEditingNewRow())
|
if ((args.Grid.IsEditing() || args.Grid.IsEditingNewRow()) && (args.DataItem as IId<int>).Id > 0)
|
||||||
await Grid.SaveChangesAsync();
|
await args.Grid.SaveChangesAsync();
|
||||||
|
|
||||||
FocusedRowVisibleIndex = args.VisibleIndex;
|
FocusedRowVisibleIndex = args.VisibleIndex;
|
||||||
EditItemsEnabled = true;
|
EditItemsEnabled = true;
|
||||||
|
|
@ -234,10 +224,4 @@ FocusedRowChanged="Grid_FocusedRowChanged" *@
|
||||||
|
|
||||||
EditItemsEnabled = true;
|
EditItemsEnabled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void EditModelSaving(GridEditModelSavingEventArgs obj)
|
|
||||||
{
|
|
||||||
//obj.
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -14,7 +14,7 @@ namespace FruitBankHybrid.Shared.Components.Grids;
|
||||||
|
|
||||||
//var a = new GridDevExtremeDataSource(DataSource.AsQueryable().Where(x=>x.IsMeasurable));
|
//var a = new GridDevExtremeDataSource(DataSource.AsQueryable().Where(x=>x.IsMeasurable));
|
||||||
|
|
||||||
public class FruitBankListGridBase<TDataItem> : MgGridBase<SignalRDataSourceList<TDataItem>, TDataItem, int, LoggerClient> where TDataItem : class, IId<int>
|
public class FruitBankGridBase<TDataItem> : MgGridBase<SignalRDataSourceList<TDataItem>, TDataItem, int, LoggerClient> where TDataItem : class, IId<int>
|
||||||
{
|
{
|
||||||
[Inject] public required LoggedInModel LoggedInModel { get; set; }
|
[Inject] public required LoggedInModel LoggedInModel { get; set; }
|
||||||
[Inject] public required IJSRuntime JSRuntime { get; set; }
|
[Inject] public required IJSRuntime JSRuntime { get; set; }
|
||||||
|
|
@ -1,24 +1,29 @@
|
||||||
using DevExpress.Blazor;
|
using DevExpress.Blazor;
|
||||||
using FruitBank.Common.Dtos;
|
using FruitBank.Common.Dtos;
|
||||||
|
using FruitBank.Common.Interfaces;
|
||||||
using FruitBank.Common.SignalRs;
|
using FruitBank.Common.SignalRs;
|
||||||
using Microsoft.AspNetCore.Components;
|
using Microsoft.AspNetCore.Components;
|
||||||
|
|
||||||
namespace FruitBankHybrid.Shared.Components.Grids.Products;
|
namespace FruitBankHybrid.Shared.Components.Grids.Products;
|
||||||
|
|
||||||
public class GridStockQuantityHistoryDto : FruitBankListGridBase<StockQuantityHistoryDto>, IGrid
|
public class GridStockQuantityHistoryDtoBase : FruitBankGridBase<StockQuantityHistoryDto>, IGrid
|
||||||
{
|
{
|
||||||
public GridStockQuantityHistoryDto() : base()
|
public GridStockQuantityHistoryDtoBase() : base()
|
||||||
{
|
{
|
||||||
GetAllMessageTag = IsMasterGrid ? SignalRTags.GetStockQuantityHistoryDtos : SignalRTags.GetStockQuantityHistoryDtosByProductId;
|
|
||||||
|
|
||||||
//AddMessageTag = SignalRTags.AddShippingItem;
|
|
||||||
//UpdateMessageTag = SignalRTags.UpdateShippingItem;
|
|
||||||
//RemoveMessageTag = SignalRTags.;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
{
|
{
|
||||||
GetAllMessageTag = IsMasterGrid ? SignalRTags.GetStockQuantityHistoryDtos : SignalRTags.GetStockQuantityHistoryDtosByProductId;
|
if (GetAllMessageTag > 0) return;
|
||||||
|
|
||||||
|
if (IsMasterGrid) GetAllMessageTag = SignalRTags.GetStockQuantityHistoryDtos;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (ContextIds == null || ContextIds.Length == 0) ContextIds = [ParentDataItem!.Id];
|
||||||
|
|
||||||
|
if (ParentDataItem is IProductDto) GetAllMessageTag = SignalRTags.GetStockQuantityHistoryDtosByProductId;
|
||||||
|
//else if (ParentDataItem is IShipping) GetAllMessageTag = SignalRTags.GetShippingItemsByShippingId;
|
||||||
|
}
|
||||||
|
|
||||||
await base.OnInitializedAsync();
|
await base.OnInitializedAsync();
|
||||||
}
|
}
|
||||||
|
|
@ -11,11 +11,11 @@
|
||||||
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
||||||
@inject FruitBankSignalRClient FruitBankSignalRClient
|
@inject FruitBankSignalRClient FruitBankSignalRClient
|
||||||
|
|
||||||
<GridStockQuantityHistoryDto @ref="Grid" ContextIds="ContextIds" ParentDataItem="ParentDataItem" DataSource="StockQuantityHistoryDtos" AutoSaveLayoutName="GridStockQuantityHistoryDto"
|
<GridStockQuantityHistoryDtoBase @ref="Grid" ContextIds="ContextIds" ParentDataItem="ParentDataItem" DataSource="StockQuantityHistoryDtos"
|
||||||
SignalRClient="FruitBankSignalRClient" Logger="_logger"
|
AutoSaveLayoutName="GridStockQuantityHistoryDto" SignalRClient="FruitBankSignalRClient" Logger="_logger"
|
||||||
CssClass="@GridCss" ValidationEnabled="false">
|
CssClass="@GridCss" ValidationEnabled="false">
|
||||||
<Columns>
|
<Columns>
|
||||||
<DxGridDataColumn FieldName="Id" Width="125" SortIndex="0" SortOrder="GridColumnSortOrder.Descending" />
|
<DxGridDataColumn FieldName="Id" Width="125" SortIndex="0" SortOrder="GridColumnSortOrder.Descending" ReadOnly="true" />
|
||||||
|
|
||||||
<DxGridDataColumn FieldName="ProductId" Width="125" ReadOnly="true" Visible="false" />
|
<DxGridDataColumn FieldName="ProductId" Width="125" ReadOnly="true" Visible="false" />
|
||||||
<DxGridDataColumn FieldName="QuantityAdjustment" Width="135" Caption="Adj. Quantity" ReadOnly="true" />
|
<DxGridDataColumn FieldName="QuantityAdjustment" Width="135" Caption="Adj. Quantity" ReadOnly="true" />
|
||||||
|
|
@ -35,7 +35,7 @@
|
||||||
<ToolbarTemplate>
|
<ToolbarTemplate>
|
||||||
@if (IsMasterGrid)
|
@if (IsMasterGrid)
|
||||||
{
|
{
|
||||||
<FruitBankToolbarTemplate Grid="Grid" OnReloadDataClick="() => ReloadDataFromDb(true)"/>
|
<FruitBankToolbarTemplate Grid="Grid" OnReloadDataClick="() => ReloadDataFromDb(true)" />
|
||||||
}
|
}
|
||||||
</ToolbarTemplate>
|
</ToolbarTemplate>
|
||||||
@* <GroupSummary>
|
@* <GroupSummary>
|
||||||
|
|
@ -49,7 +49,7 @@
|
||||||
FieldName="MeasuredNetWeight"
|
FieldName="MeasuredNetWeight"
|
||||||
FooterColumnName="NetWeight" />
|
FooterColumnName="NetWeight" />
|
||||||
</GroupSummary> *@
|
</GroupSummary> *@
|
||||||
</GridStockQuantityHistoryDto>
|
</GridStockQuantityHistoryDtoBase>
|
||||||
|
|
||||||
@code {
|
@code {
|
||||||
[Inject] public required DatabaseClient Database { get; set; }
|
[Inject] public required DatabaseClient Database { get; set; }
|
||||||
|
|
@ -63,7 +63,7 @@
|
||||||
public bool IsMasterGrid => ParentDataItem == null;
|
public bool IsMasterGrid => ParentDataItem == null;
|
||||||
string GridCss => !IsMasterGrid ? "hide-toolbar" : string.Empty;
|
string GridCss => !IsMasterGrid ? "hide-toolbar" : string.Empty;
|
||||||
|
|
||||||
public GridStockQuantityHistoryDto Grid { get; set; }
|
public GridStockQuantityHistoryDtoBase Grid { get; set; }
|
||||||
private LoggerClient<GridStockQuantityHistoryDtoTemplate> _logger = null!;
|
private LoggerClient<GridStockQuantityHistoryDtoTemplate> _logger = null!;
|
||||||
|
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
|
|
|
||||||
|
|
@ -8,12 +8,12 @@ using Microsoft.AspNetCore.Components;
|
||||||
|
|
||||||
namespace FruitBankHybrid.Shared.Components.Grids.ShippingItems;
|
namespace FruitBankHybrid.Shared.Components.Grids.ShippingItems;
|
||||||
|
|
||||||
public class GridShippingItem : FruitBankListGridBase<ShippingItem>, IGrid
|
public class GridShippingItemBase : FruitBankGridBase<ShippingItem>, IGrid
|
||||||
{
|
{
|
||||||
private bool _isFirstInitializeParameterCore;
|
private bool _isFirstInitializeParameterCore;
|
||||||
private bool _isFirstInitializeParameters;
|
private bool _isFirstInitializeParameters;
|
||||||
|
|
||||||
public GridShippingItem () : base()
|
public GridShippingItemBase () : base()
|
||||||
{
|
{
|
||||||
AddMessageTag = SignalRTags.AddShippingItem;
|
AddMessageTag = SignalRTags.AddShippingItem;
|
||||||
UpdateMessageTag = SignalRTags.UpdateShippingItem;
|
UpdateMessageTag = SignalRTags.UpdateShippingItem;
|
||||||
|
|
@ -23,13 +23,24 @@ public class GridShippingItem : FruitBankListGridBase<ShippingItem>, IGrid
|
||||||
|
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
{
|
{
|
||||||
|
if (GetAllMessageTag > 0) return;
|
||||||
|
|
||||||
if (IsMasterGrid) GetAllMessageTag = SignalRTags.GetShippingItems;
|
if (IsMasterGrid) GetAllMessageTag = SignalRTags.GetShippingItems;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ContextIds = [ParentDataItem!.Id];
|
if (ContextIds == null || ContextIds.Length == 0) ContextIds = [ParentDataItem!.Id];
|
||||||
|
|
||||||
if (ParentDataItem is IShippingDocument) GetAllMessageTag = SignalRTags.GetShippingItemsByDocumentId;
|
switch (ParentDataItem)
|
||||||
//else if (ParentDataItem is IShipping) GetAllMessageTag = SignalRTags.GetShippingItemsByShippingId;
|
{
|
||||||
|
case IShippingDocument:
|
||||||
|
GetAllMessageTag = SignalRTags.GetShippingItemsByDocumentId;
|
||||||
|
break;
|
||||||
|
case IShipping:
|
||||||
|
AddMessageTag = SignalRTags.None;
|
||||||
|
|
||||||
|
GetAllMessageTag = SignalRTags.GetShippingItemsByShippingId;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
await base.OnInitializedAsync();
|
await base.OnInitializedAsync();
|
||||||
|
|
@ -0,0 +1,143 @@
|
||||||
|
@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;
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -0,0 +1,67 @@
|
||||||
|
using AyCode.Core.Interfaces;
|
||||||
|
using DevExpress.Blazor;
|
||||||
|
using FruitBank.Common.Entities;
|
||||||
|
using FruitBank.Common.Interfaces;
|
||||||
|
using FruitBank.Common.SignalRs;
|
||||||
|
using FruitBankHybrid.Shared.Pages;
|
||||||
|
using Microsoft.AspNetCore.Components;
|
||||||
|
|
||||||
|
namespace FruitBankHybrid.Shared.Components.Grids.Shippings;
|
||||||
|
|
||||||
|
public class GridShippingBase: FruitBankGridBase<Shipping>, IGrid
|
||||||
|
{
|
||||||
|
private bool _isFirstInitializeParameterCore;
|
||||||
|
private bool _isFirstInitializeParameters;
|
||||||
|
|
||||||
|
public GridShippingBase() : base()
|
||||||
|
{
|
||||||
|
GetAllMessageTag = SignalRTags.GetShippings;
|
||||||
|
AddMessageTag = SignalRTags.AddShipping;
|
||||||
|
UpdateMessageTag = SignalRTags.UpdateShipping;
|
||||||
|
|
||||||
|
//RemoveMessageTag = SignalRTags.;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override async Task OnInitializedAsync()
|
||||||
|
{
|
||||||
|
await base.OnInitializedAsync();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnParametersSet()
|
||||||
|
{
|
||||||
|
base.OnParametersSet();
|
||||||
|
|
||||||
|
if (!_isFirstInitializeParameters)
|
||||||
|
{
|
||||||
|
//if (!IsMasterGrid && (ContextIds == null || ContextIds.Length == 0))
|
||||||
|
//{
|
||||||
|
// ContextIds = [ParentDataItem!.Id];
|
||||||
|
// GetAllMessageTag = SignalRTags.GetShippingItemsByDocumentId;
|
||||||
|
//}
|
||||||
|
|
||||||
|
_isFirstInitializeParameters = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override async Task SetParametersAsyncCore(ParameterView parameters)
|
||||||
|
{
|
||||||
|
await base.SetParametersAsyncCore(parameters);
|
||||||
|
|
||||||
|
if (!_isFirstInitializeParameterCore)
|
||||||
|
{
|
||||||
|
//if (!IsMasterGrid && (ContextIds == null || ContextIds.Length == 0))
|
||||||
|
//{
|
||||||
|
// ContextIds = [ParentDataItem!.Id];
|
||||||
|
// GetAllMessageTag = SignalRTags.GetShippingItemsByDocumentId;
|
||||||
|
//}
|
||||||
|
|
||||||
|
//ShowFilterRow = true;
|
||||||
|
//ShowGroupPanel = true;
|
||||||
|
//AllowSort = false;
|
||||||
|
|
||||||
|
//etc...
|
||||||
|
|
||||||
|
_isFirstInitializeParameterCore = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -56,7 +56,7 @@ public class ShippingItemTable : SignalRDataSourceList<ShippingItemTableItem>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class ProductDtoTable(FruitBankSignalRClient fruitBankSignalRClient) : AcFastObservableCollection<ProductDtoTableItem>
|
public class ProductDtoTable(FruitBankSignalRClient fruitBankSignalRClient) : AcObservableCollection<ProductDtoTableItem>
|
||||||
{
|
{
|
||||||
private readonly SemaphoreSlim _semaphoreSlim = new(1);
|
private readonly SemaphoreSlim _semaphoreSlim = new(1);
|
||||||
public async Task<ProductDtoTable> LoadDataAsync(bool onlyIfEmpty = true)
|
public async Task<ProductDtoTable> LoadDataAsync(bool onlyIfEmpty = true)
|
||||||
|
|
@ -81,7 +81,7 @@ public class ProductDtoTable(FruitBankSignalRClient fruitBankSignalRClient) : Ac
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public class OrderDtoTable(FruitBankSignalRClient fruitBankSignalRClient) : AcFastObservableCollection<OrderDtoTableItem>
|
public class OrderDtoTable(FruitBankSignalRClient fruitBankSignalRClient) : AcObservableCollection<OrderDtoTableItem>
|
||||||
{
|
{
|
||||||
private readonly SemaphoreSlim _semaphoreSlim = new(1);
|
private readonly SemaphoreSlim _semaphoreSlim = new(1);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
@page "/ShippingsAdmin"
|
@page "/ShippingsAdmin"
|
||||||
@using FruitBank.Common.Dtos
|
@using FruitBank.Common.Dtos
|
||||||
@using FruitBankHybrid.Shared.Components
|
@using FruitBankHybrid.Shared.Components
|
||||||
|
@using FruitBankHybrid.Shared.Components.Grids.Shippings
|
||||||
@using FruitBankHybrid.Shared.Databases
|
@using FruitBankHybrid.Shared.Databases
|
||||||
<h3>Szállítmányok - Adminisztrátor</h3>
|
<h3>Szállítmányok - Adminisztrátor</h3>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ using FruitBank.Common.Interfaces;
|
||||||
using FruitBank.Common.Models;
|
using FruitBank.Common.Models;
|
||||||
using FruitBankHybrid.Shared.Components;
|
using FruitBankHybrid.Shared.Components;
|
||||||
using FruitBankHybrid.Shared.Components.Grids.ShippingItems;
|
using FruitBankHybrid.Shared.Components.Grids.ShippingItems;
|
||||||
|
using FruitBankHybrid.Shared.Components.Grids.Shippings;
|
||||||
using FruitBankHybrid.Shared.Databases;
|
using FruitBankHybrid.Shared.Databases;
|
||||||
using FruitBankHybrid.Shared.Services.Loggers;
|
using FruitBankHybrid.Shared.Services.Loggers;
|
||||||
using FruitBankHybrid.Shared.Services.SignalRs;
|
using FruitBankHybrid.Shared.Services.SignalRs;
|
||||||
|
|
@ -31,8 +32,8 @@ public partial class ShippingsAdmin : ComponentBase
|
||||||
private GridShippingItemTemplate gridShippingItemTemplate;
|
private GridShippingItemTemplate gridShippingItemTemplate;
|
||||||
private GridShippingItemPallets gridShippingItemPallet;
|
private GridShippingItemPallets gridShippingItemPallet;
|
||||||
|
|
||||||
public List<Shipping> Shippings { get; set; } = [];
|
public AcObservableCollection<Shipping> Shippings { get; set; } = [];
|
||||||
public AcFastObservableCollection<ShippingDocument> ShippingDocuments { get; set; } = [];
|
public AcObservableCollection<ShippingDocument> ShippingDocuments { get; set; } = [];
|
||||||
public List<ShippingItem> ShippingItems { get; set; } = [];
|
public List<ShippingItem> ShippingItems { get; set; } = [];
|
||||||
public List<ShippingItemPallet> ShippingItemPallets { get; set; } = [];
|
public List<ShippingItemPallet> ShippingItemPallets { get; set; } = [];
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -99,6 +99,9 @@ namespace FruitBankHybrid.Shared.Services.SignalRs
|
||||||
public Task<List<ShippingItem>?> GetShippingItemsByDocumentId(int shippingDocumentId)
|
public Task<List<ShippingItem>?> GetShippingItemsByDocumentId(int shippingDocumentId)
|
||||||
=> GetAllAsync<List<ShippingItem>>(SignalRTags.GetShippingItemsByDocumentId, [shippingDocumentId]);
|
=> GetAllAsync<List<ShippingItem>>(SignalRTags.GetShippingItemsByDocumentId, [shippingDocumentId]);
|
||||||
|
|
||||||
|
public Task<List<ShippingItem>?> GetShippingItemsByShippingId(int shippingId)
|
||||||
|
=> GetAllAsync<List<ShippingItem>>(SignalRTags.GetShippingItemsByShippingId, [shippingId]);
|
||||||
|
|
||||||
public Task<ShippingItem?> GetShippingItemById(int id)
|
public Task<ShippingItem?> GetShippingItemById(int id)
|
||||||
=> GetByIdAsync<ShippingItem?>(SignalRTags.GetShippingItemById, id);
|
=> GetByIdAsync<ShippingItem?>(SignalRTags.GetShippingItemById, id);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue