improvements
This commit is contained in:
parent
264ad6256f
commit
34be547e85
|
|
@ -21,6 +21,7 @@ public interface IFruitBankDataControllerCommon
|
|||
public Task<List<Shipping>?> GetShippings();
|
||||
Task<List<Shipping>?> GetNotMeasuredShippings();
|
||||
public Task<Shipping?> GetShippingById(int id);
|
||||
public Task<Shipping?> AddShipping(Shipping shipping);
|
||||
public Task<Shipping?> UpdateShipping(Shipping shipping);
|
||||
#endregion Shipping
|
||||
|
||||
|
|
@ -44,6 +45,9 @@ public interface IFruitBankDataControllerCommon
|
|||
#region ShippingDocument
|
||||
public Task<List<ShippingDocument>?> GetShippingDocuments();
|
||||
public Task<ShippingDocument?> GetShippingDocumentById(int id);
|
||||
public Task<List<ShippingDocument>?> GetShippingDocumentsByShippingId(int shippingId);
|
||||
public Task<List<ShippingDocument>?> GetShippingDocumentsByProductId(int productId);
|
||||
public Task<List<ShippingDocument>?> GetShippingDocumentsByPartnerId(int partnerId);
|
||||
public Task<ShippingDocument?> AddShippingDocument(ShippingDocument shippingDocument);
|
||||
public Task<ShippingDocument?> UpdateShippingDocument(ShippingDocument shippingDocument);
|
||||
#endregion ShippingDocument
|
||||
|
|
|
|||
|
|
@ -32,6 +32,9 @@ public class SignalRTags : AcSignalRTags
|
|||
|
||||
public const int GetShippingDocuments = 60;
|
||||
public const int GetShippingDocumentById = 61;
|
||||
public const int GetShippingDocumentsByShippingId = 62;
|
||||
public const int GetShippingDocumentsByProductId = 63;
|
||||
public const int GetShippingDocumentsByPartnerId = 64;
|
||||
public const int AddShippingDocument = 65;
|
||||
public const int UpdateShippingDocument = 66;
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
@inject LoggedInModel LoggedInModel;
|
||||
@inject FruitBankSignalRClient FruitBankSignalRClient
|
||||
|
||||
<GridProductDto @ref="Grid" Data="ProductDtos" IsMasterGrid="IsMasterGrid" FocusedRowChanged="OnFocusedRowChanged"
|
||||
<GridProductDto @ref="Grid" DataSource="ProductDtos" IsMasterGrid="IsMasterGrid" FocusedRowChanged="OnFocusedRowChanged"
|
||||
CssClass="@GridCss" AutoSaveLayoutName="GridProductDtoTemplate">
|
||||
<Columns>
|
||||
<DxGridDataColumn FieldName="Id" SortIndex="0" SortOrder="GridColumnSortOrder.Ascending" />
|
||||
|
|
|
|||
|
|
@ -1,21 +1,23 @@
|
|||
@using AyCode.Utils.Extensions
|
||||
@using FruitBank.Common.Dtos
|
||||
@using FruitBank.Common.Entities
|
||||
@using FruitBankHybrid.Shared.Components.FileUploads
|
||||
@using FruitBankHybrid.Shared.Components.Grids.ShippingDocuments
|
||||
@using FruitBankHybrid.Shared.Components.Toolbars
|
||||
@using FruitBankHybrid.Shared.Databases
|
||||
@using FruitBankHybrid.Shared.Services.SignalRs
|
||||
@using System.Text
|
||||
@using AyCode.Core.Extensions
|
||||
@using AyCode.Core.Helpers
|
||||
@using AyCode.Core.Interfaces
|
||||
@using AyCode.Core.Loggers
|
||||
@using FruitBank.Common.Models
|
||||
@using FruitBankHybrid.Shared.Services.Loggers
|
||||
|
||||
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
||||
@inject FruitBankSignalRClient FruitBankSignalRClient
|
||||
|
||||
<MgGridBase @ref="Grid" CssClass="@GridCss" Data="@ShippingDocuments" IsMasterGrid="@IsMasterGrid" AutoSaveLayoutName="GridShippingDocument"
|
||||
ValidationEnabled="false" EditMode="GridEditMode.EditRow"
|
||||
EditModelSaving="Grid_EditModelSaving"
|
||||
FocusedRowChanged="Grid_FocusedRowChanged">
|
||||
<GridShippingDocumentBase @ref="Grid" CssClass="@GridCss" DataSource="@ShippingDocuments" SignalRClient="FruitBankSignalRClient" AutoSaveLayoutName="GridShippingDocument"
|
||||
ParentDataItem="@ParentDataItem" Logger="_logger" ValidationEnabled="false" EditMode="GridEditMode.EditRow" FocusedRowChanged="Grid_FocusedRowChanged">
|
||||
<Columns>
|
||||
<DxGridDataColumn FieldName="Id" SortIndex="0" SortOrder="GridColumnSortOrder.Descending" ReadOnly="true" />
|
||||
<DxGridDataColumn FieldName="PartnerId" Caption="Partner">
|
||||
|
|
@ -36,7 +38,7 @@
|
|||
</DxComboBoxSettings>
|
||||
</EditSettings>
|
||||
</DxGridDataColumn>
|
||||
<DxGridDataColumn FieldName="ShippingId" Caption="Shipping">
|
||||
<DxGridDataColumn FieldName="ShippingId" Caption="Shipping" Visible="@(!ParentDataItemIsShipping)" ReadOnly="@ParentDataItemIsShipping">
|
||||
<EditSettings>
|
||||
<DxComboBoxSettings Data="Shippings"
|
||||
ValueFieldName="Id"
|
||||
|
|
@ -65,7 +67,7 @@
|
|||
<DxGridDataColumn FieldName="PdfFileName" />
|
||||
<DxGridDataColumn FieldName="Created" ReadOnly="true" />
|
||||
<DxGridDataColumn FieldName="Modified" ReadOnly="true" />
|
||||
<DxGridCommandColumn Visible="!IsMasterGrid" Width="120"></DxGridCommandColumn>
|
||||
<DxGridCommandColumn Visible="@(!IsMasterGrid)" Width="120"/>
|
||||
</Columns>
|
||||
<DetailRowTemplate>
|
||||
@if (IsMasterGrid)
|
||||
|
|
@ -74,12 +76,15 @@
|
|||
|
||||
<DxTabs ActiveTabIndexChanged="(i) => OnActiveTabChanged(i)">
|
||||
<DxTabPage Text="Szállítmány tételek">
|
||||
<GridShippingItemTemplate ShippingItems="shippingDocument.ShippingItems" ParentDataItem="@shippingDocument" />
|
||||
@{
|
||||
var observableShippingItem = new AcObservableCollection<ShippingItem>(shippingDocument?.ShippingItems ?? []);
|
||||
<GridShippingItemTemplate ShippingItems="@observableShippingItem" ParentDataItem="@shippingDocument" />
|
||||
}
|
||||
</DxTabPage>
|
||||
<DxTabPage Text="Mérések">
|
||||
@{
|
||||
var shippingItemPallets = shippingDocument?.ShippingItems?.SelectMany(oi => oi.ShippingItemPallets ?? []).ToList() ?? [];
|
||||
<GridShippingItemPallets ShippingItemPallets="shippingItemPallets" IsMasterGrid="false" />
|
||||
<GridShippingItemPallets ShippingItemPallets="@shippingItemPallets" IsMasterGrid="false" />
|
||||
}
|
||||
</DxTabPage>
|
||||
|
||||
|
|
@ -125,7 +130,7 @@
|
|||
FieldName="PriceInclTax"
|
||||
FooterColumnName="PriceInclTax" />
|
||||
</GroupSummary>
|
||||
</MgGridBase>
|
||||
</GridShippingDocumentBase>
|
||||
|
||||
@code {
|
||||
//EditRow dblClick
|
||||
|
|
@ -135,39 +140,38 @@
|
|||
[Inject] public required DatabaseClient Database { get; set; }
|
||||
[Inject] public required LoggedInModel LoggedInModel { get; set; }
|
||||
|
||||
[Parameter] public bool IsMasterGrid { get; set; } = false;
|
||||
|
||||
[Parameter] public AcObservableCollection<Shipping>? Shippings { get; set; }
|
||||
[Parameter] public List<Partner>? Partners { get; set; }
|
||||
[Parameter] public AcObservableCollection<ShippingDocument>? ShippingDocuments { get; set; }
|
||||
|
||||
[Parameter] public Func<List<Partner>?, Task>? OnUploadedFileParsed { get; set; }
|
||||
[Parameter] public IId<int>? ParentDataItem { get; set; }
|
||||
|
||||
public bool IsMasterGrid => ParentDataItem == null;
|
||||
public bool ParentDataItemIsShipping => (ParentDataItem is Shipping);
|
||||
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; }
|
||||
public MgGridBase Grid { get; set; }
|
||||
|
||||
public GridShippingDocumentBase Grid { get; set; }
|
||||
private LoggerClient<GridShippingDocument> _logger = null!;
|
||||
private int _activeTabIndex;
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
_logger = new LoggerClient<GridShippingDocument>(LogWriters.ToArray());
|
||||
|
||||
_localStorageKey += LoggedInModel.CustomerDto!.Id;
|
||||
await ReloadDataFromDb();
|
||||
}
|
||||
|
||||
private async Task ReloadDataFromDb(bool forceReload = false)
|
||||
{
|
||||
if (!IsMasterGrid) return;
|
||||
|
||||
//ProductDtos ??= await FruitBankSignalRClient.GetProductDtos() ?? [];
|
||||
//ProductDtos ??= await Database.ProductDtoTable.LoadDataAsync(true);
|
||||
|
||||
using (await ObjectLock.GetSemaphore<Partner>().UseWaitAsync())
|
||||
{
|
||||
if (Partners == null) Partners = await FruitBankSignalRClient.GetPartners() ?? [];
|
||||
|
|
@ -178,6 +182,12 @@
|
|||
}
|
||||
}
|
||||
|
||||
if (!IsMasterGrid)
|
||||
{
|
||||
if (Shippings == null && ParentDataItem is Shipping shippingParent) Shippings = [shippingParent];
|
||||
return;
|
||||
}
|
||||
|
||||
using (await ObjectLock.GetSemaphore<Shipping>().UseWaitAsync())
|
||||
{
|
||||
if (Shippings == null) Shippings = new AcObservableCollection<Shipping>(await FruitBankSignalRClient.GetShippings() ?? []);
|
||||
|
|
@ -187,20 +197,12 @@
|
|||
}
|
||||
}
|
||||
|
||||
using (await ObjectLock.GetSemaphore<ShippingDocument>().UseWaitAsync())
|
||||
{
|
||||
if (ShippingDocuments == null)
|
||||
{
|
||||
ShippingDocuments = [];
|
||||
ShippingDocuments.AddRange(await FruitBankSignalRClient.GetShippingDocuments() ?? []);
|
||||
}
|
||||
else if (ShippingDocuments.Count == 0 || forceReload)
|
||||
{
|
||||
ShippingDocuments.Replace(await FruitBankSignalRClient.GetShippingDocuments() ?? []);
|
||||
}
|
||||
}
|
||||
if (Grid == null) return;
|
||||
|
||||
if (forceReload) Grid?.Reload();
|
||||
using (await ObjectLock.GetSemaphore<ShippingDocument>().UseWaitAsync())
|
||||
if (forceReload) await Grid.ReloadDataSourceAsync();
|
||||
|
||||
if (forceReload) Grid.Reload();
|
||||
}
|
||||
|
||||
private async Task OnFileUploaded(byte[] arg)
|
||||
|
|
@ -232,73 +234,6 @@
|
|||
EditItemsEnabled = true;
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
ShippingDocument? resultShippingDocument = null;
|
||||
|
||||
if (!e.IsNew)
|
||||
{
|
||||
resultShippingDocument = await FruitBankSignalRClient.UpdateShippingDocument((ShippingDocument)e.EditModel);
|
||||
}
|
||||
else
|
||||
{
|
||||
resultShippingDocument = await FruitBankSignalRClient.AddShippingDocument((ShippingDocument)e.EditModel);
|
||||
EditItemsEnabled = true;
|
||||
}
|
||||
|
||||
if (resultShippingDocument != null)
|
||||
ShippingDocuments!.UpdateCollection(resultShippingDocument, false);
|
||||
|
||||
// if(e.IsNew) {
|
||||
// await NwindDataService.InsertEmployeeAsync((EditableEmployee)e.EditModel);
|
||||
// } else
|
||||
// await NwindDataService.UpdateEmployeeAsync((EditableEmployee)e.DataItem, (EditableEmployee)e.EditModel);
|
||||
// await LoadGridDataAsync();
|
||||
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);
|
||||
}
|
||||
protected async Task OnActiveTabChanged(int activeTabIndex)
|
||||
{
|
||||
_activeTabIndex = activeTabIndex;
|
||||
|
|
|
|||
|
|
@ -133,7 +133,7 @@
|
|||
[Parameter] public IId<int>? ParentDataItem { get; set; }
|
||||
|
||||
[Parameter] public IEnumerable<ProductDto>? ProductDtos { get; set; }
|
||||
[Parameter] public List<ShippingItem>? ShippingItems { get; set; }
|
||||
[Parameter] public AcObservableCollection<ShippingItem>? ShippingItems { get; set; }
|
||||
[Parameter] public AcObservableCollection<ShippingDocument>? ShippingDocuments { get; set; }
|
||||
|
||||
public bool IsMasterGrid => ParentDataItem == null;
|
||||
|
|
@ -167,7 +167,6 @@
|
|||
if (!IsMasterGrid)
|
||||
{
|
||||
if (ShippingDocuments == null && ParentDataItem is ShippingDocument shippingDocumentParent) ShippingDocuments = [shippingDocumentParent];
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -175,8 +174,7 @@
|
|||
{
|
||||
if (ShippingDocuments == null)
|
||||
{
|
||||
ShippingDocuments = [];
|
||||
ShippingDocuments.AddRange(await FruitBankSignalRClient.GetShippingDocuments() ?? []);
|
||||
ShippingDocuments = new AcObservableCollection<ShippingDocument>(await FruitBankSignalRClient.GetShippingDocuments() ?? []);
|
||||
}
|
||||
else if (ShippingDocuments.Count == 0 || forceReload)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ namespace FruitBankHybrid.Shared.Components.Grids;
|
|||
|
||||
//var a = new GridDevExtremeDataSource(DataSource.AsQueryable().Where(x=>x.IsMeasurable));
|
||||
|
||||
public class FruitBankGridBase<TDataItem> : MgGridBase<SignalRDataSourceList<TDataItem>, TDataItem, int, LoggerClient> where TDataItem : class, IId<int>
|
||||
public class FruitBankGridBase<TDataItem> : MgGridBase<SignalRDataSourceObservable<TDataItem>, TDataItem, int, LoggerClient> where TDataItem : class, IId<int>
|
||||
{
|
||||
[Inject] public required LoggedInModel LoggedInModel { get; set; }
|
||||
[Inject] public required IJSRuntime JSRuntime { get; set; }
|
||||
|
|
|
|||
|
|
@ -0,0 +1,93 @@
|
|||
using AyCode.Core.Interfaces;
|
||||
using AyCode.Utils.Extensions;
|
||||
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.ShippingDocuments;
|
||||
|
||||
public class GridShippingDocumentBase : FruitBankGridBase<ShippingDocument>, IGrid
|
||||
{
|
||||
private bool _isFirstInitializeParameterCore;
|
||||
private bool _isFirstInitializeParameters;
|
||||
|
||||
public GridShippingDocumentBase () : base()
|
||||
{
|
||||
AddMessageTag = SignalRTags.AddShippingDocument;
|
||||
UpdateMessageTag = SignalRTags.UpdateShippingDocument;
|
||||
|
||||
//RemoveMessageTag = SignalRTags.;
|
||||
}
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
if (GetAllMessageTag > 0) return;
|
||||
|
||||
if (IsMasterGrid) GetAllMessageTag = SignalRTags.GetShippingDocuments;
|
||||
else
|
||||
{
|
||||
if (ContextIds == null || ContextIds.Length == 0) ContextIds = [ParentDataItem!.Id];
|
||||
|
||||
switch (ParentDataItem)
|
||||
{
|
||||
case IShipping:
|
||||
GetAllMessageTag = SignalRTags.GetShippingDocumentsByShippingId;
|
||||
if (KeyFieldNameToParentId.IsNullOrWhiteSpace()) KeyFieldNameToParentId = nameof(ShippingDocument.ShippingId);
|
||||
break;
|
||||
|
||||
case IProductDto:
|
||||
AddMessageTag = 0;//SignalRTags.None;
|
||||
GetAllMessageTag = SignalRTags.GetShippingDocumentsByProductId;
|
||||
break;
|
||||
|
||||
case IPartner:
|
||||
GetAllMessageTag = SignalRTags.GetShippingDocumentsByPartnerId;
|
||||
if (KeyFieldNameToParentId.IsNullOrWhiteSpace()) KeyFieldNameToParentId = nameof(ShippingDocument.PartnerId);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -36,7 +36,7 @@ public class GridShippingItemBase : FruitBankGridBase<ShippingItem>, IGrid
|
|||
GetAllMessageTag = SignalRTags.GetShippingItemsByDocumentId;
|
||||
break;
|
||||
case IShipping:
|
||||
AddMessageTag = SignalRTags.None;
|
||||
AddMessageTag = 0;//SignalRTags.None;
|
||||
|
||||
GetAllMessageTag = SignalRTags.GetShippingItemsByShippingId;
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
CssClass="@GridCss" ValidationEnabled="false"
|
||||
FocusedRowChanged="Grid_FocusedRowChanged">
|
||||
<Columns>
|
||||
<DxGridDataColumn FieldName="Id" SortIndex="0" SortOrder="GridColumnSortOrder.Descending" />
|
||||
<DxGridDataColumn FieldName="Id" SortIndex="0" SortOrder="GridColumnSortOrder.Descending" ReadOnly="true" />
|
||||
|
||||
<DxGridDataColumn FieldName="ShippingDate" />
|
||||
<DxGridDataColumn FieldName="LicencePlate" />
|
||||
|
|
@ -39,12 +39,15 @@
|
|||
<DxTabPage Text="Szállítólevelek">
|
||||
@{
|
||||
var observableShippingDocuments = new AcObservableCollection<ShippingDocument>(shippingDocuments);
|
||||
<GridShippingDocument IsMasterGrid="false" ShippingDocuments="observableShippingDocuments"></GridShippingDocument>
|
||||
<GridShippingDocument ShippingDocuments="@observableShippingDocuments" ParentDataItem="@shipping" Partners="@Partners"></GridShippingDocument>
|
||||
}
|
||||
</DxTabPage>
|
||||
|
||||
<DxTabPage Text="Szállítmány tételek">
|
||||
<GridShippingItemTemplate ShippingItems="shippingDocuments.SelectMany(sd => sd.ShippingItems ?? [])?.ToList() ?? []" ParentDataItem="shipping" />
|
||||
@{
|
||||
var observableShippingItems = new AcObservableCollection<ShippingItem>(shippingDocuments.SelectMany(sd => sd.ShippingItems ?? []));
|
||||
<GridShippingItemTemplate ShippingItems="@observableShippingItems" ParentDataItem="@shipping" />
|
||||
}
|
||||
</DxTabPage>
|
||||
</DxTabs>
|
||||
}
|
||||
|
|
@ -73,7 +76,7 @@
|
|||
[Inject] public required DatabaseClient Database { get; set; }
|
||||
|
||||
[Parameter] public bool IsMasterGrid { get; set; } = false;
|
||||
//[Parameter] public OrderDto? OrderDto { get; set; }
|
||||
[Parameter] public List<Partner>? Partners { get; set; }
|
||||
[Parameter] public AcObservableCollection<Shipping>? Shippings { get; set; }
|
||||
|
||||
const string ExportFileName = "ExportResult";
|
||||
|
|
@ -96,8 +99,15 @@
|
|||
{
|
||||
if (!IsMasterGrid) return;
|
||||
|
||||
//ProductDtos ??= await FruitBankSignalRClient.GetProductDtos() ?? [];
|
||||
//ProductDtos ??= await Database.ProductDtoTable.LoadDataAsync(true);
|
||||
using (await ObjectLock.GetSemaphore<Partner>().UseWaitAsync())
|
||||
{
|
||||
if (Partners == null) Partners = await FruitBankSignalRClient.GetPartners() ?? [];
|
||||
else if (Partners.Count == 0 || forceReload)
|
||||
{
|
||||
Partners.Clear();
|
||||
Partners.AddRange(await FruitBankSignalRClient.GetPartners() ?? []);
|
||||
}
|
||||
}
|
||||
|
||||
if (Grid == null) return;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
@page "/ShippingsAdmin"
|
||||
@using FruitBank.Common.Dtos
|
||||
@using FruitBank.Common.Entities
|
||||
@using FruitBankHybrid.Shared.Components
|
||||
@using FruitBankHybrid.Shared.Components.Grids.Shippings
|
||||
@using FruitBankHybrid.Shared.Databases
|
||||
|
|
@ -16,15 +17,15 @@
|
|||
Text="Adatok szinkronizálása folyamatban...">
|
||||
|
||||
@* @bind-ActiveTabIndex="@ActiveTabIndex" *@
|
||||
<DxTabs ActiveTabIndexChanged="(i) => OnActiveTabChanged(i)" RenderMode="TabsRenderMode.AllTabs" AllowTabReorder="true">
|
||||
<DxTabs ActiveTabIndexChanged="(i) => OnActiveTabChanged(i)" RenderMode="TabsRenderMode.OnDemand" AllowTabReorder="true">
|
||||
<DxTabPage Text="Termékek">
|
||||
<GridProductDtoTemplate @ref="gridProductDtoTemplate" IsMasterGrid="true"></GridProductDtoTemplate>
|
||||
</DxTabPage>
|
||||
<DxTabPage Text="Szállítmányok">
|
||||
<GridShipping @ref="gridShipping" Shippings="Shippings" IsMasterGrid="true"></GridShipping>
|
||||
<GridShipping @ref="gridShipping" Shippings="@Shippings" Partners="@Partners" IsMasterGrid="true"></GridShipping>
|
||||
</DxTabPage>
|
||||
<DxTabPage Text="Szállítólevelek">
|
||||
<GridShippingDocument @ref="gridShippingDocument" ShippingDocuments="ShippingDocuments" Shippings="Shippings" IsMasterGrid="true"></GridShippingDocument>
|
||||
<GridShippingDocument @ref="gridShippingDocument" ShippingDocuments="ShippingDocuments" Shippings="Shippings" Partners="@Partners"></GridShippingDocument>
|
||||
</DxTabPage>
|
||||
<DxTabPage Text="Szállítólevél tételek">
|
||||
<GridShippingItemTemplate @ref="gridShippingItemTemplate" ShippingItems="ShippingItems" ShippingDocuments="ShippingDocuments"></GridShippingItemTemplate>
|
||||
|
|
|
|||
|
|
@ -34,8 +34,9 @@ public partial class ShippingsAdmin : ComponentBase
|
|||
|
||||
public AcObservableCollection<Shipping> Shippings { get; set; } = [];
|
||||
public AcObservableCollection<ShippingDocument> ShippingDocuments { get; set; } = [];
|
||||
public List<ShippingItem> ShippingItems { get; set; } = [];
|
||||
public AcObservableCollection<ShippingItem> ShippingItems { get; set; } = [];
|
||||
public List<ShippingItemPallet> ShippingItemPallets { get; set; } = [];
|
||||
public List<Partner> Partners { get; set; } = [];
|
||||
|
||||
public bool AutoCollapseDetailRow { get; set; }
|
||||
|
||||
|
|
@ -74,7 +75,7 @@ public partial class ShippingsAdmin : ComponentBase
|
|||
{
|
||||
case 0:
|
||||
//await Database.ProductDtoTable.LoadDataAsync(true);
|
||||
gridProductDtoTemplate.Grid.Reload();
|
||||
//gridProductDtoTemplate.Grid.Reload();
|
||||
break;
|
||||
case 1:
|
||||
if (Shippings.Count == 0)
|
||||
|
|
@ -82,7 +83,7 @@ public partial class ShippingsAdmin : ComponentBase
|
|||
//Shippings.AddRange((await FruitBankSignalRClient.GetShippings() ?? []).OrderByDescending(o => o.Id)); //.Where(o => o.HasMeasuringAccess(LoggedInModel.CustomerDto?.Id, LoggedInModel.IsRevisor)).OrderBy(o => o.DateOfReceipt).ToList();}
|
||||
}
|
||||
|
||||
gridShipping.Grid.Reload();
|
||||
//gridShipping.Grid.Reload();
|
||||
|
||||
break;
|
||||
case 2:
|
||||
|
|
@ -91,14 +92,14 @@ public partial class ShippingsAdmin : ComponentBase
|
|||
//ShippingDocuments.AddRange((await FruitBankSignalRClient.GetShippingDocuments() ?? []).OrderByDescending(o => o.Id)); //.Where(o => o.HasMeasuringAccess(LoggedInModel.CustomerDto?.Id, LoggedInModel.IsRevisor)).OrderBy(o => o.DateOfReceipt).ToList();
|
||||
}
|
||||
|
||||
gridShippingDocument.Grid.Reload();
|
||||
//gridShippingDocument.Grid.Reload();
|
||||
break;
|
||||
case 3:
|
||||
gridShippingItemTemplate.Grid.Reload();
|
||||
//gridShippingItemTemplate.Grid.Reload();
|
||||
//if(ShippingItems.Count=0) ShippingItems.AddRange((await FruitBankSignalRClient.GetShippingItems() ?? []).OrderByDescending(o => o.Id)); //.Where(o => o.HasMeasuringAccess(LoggedInModel.CustomerDto?.Id, LoggedInModel.IsRevisor)).OrderBy(o => o.DateOfReceipt).ToList();
|
||||
break;
|
||||
case 4:
|
||||
gridShippingItemPallet.gridOrderItemPallet.Reload();
|
||||
//gridShippingItemPallet.gridOrderItemPallet.Reload();
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -83,6 +83,9 @@ namespace FruitBankHybrid.Shared.Services.SignalRs
|
|||
public Task<Shipping?> GetShippingById(int id)
|
||||
=> GetByIdAsync<Shipping?>(SignalRTags.GetShippingById, id);
|
||||
|
||||
public Task<Shipping?> AddShipping(Shipping shipping)
|
||||
=> PostDataAsync(SignalRTags.AddShipping, shipping);
|
||||
|
||||
public Task<Shipping?> UpdateShipping(Shipping shipping)
|
||||
=> PostDataAsync(SignalRTags.UpdateShipping, shipping);
|
||||
|
||||
|
|
@ -139,6 +142,15 @@ namespace FruitBankHybrid.Shared.Services.SignalRs
|
|||
public Task<ShippingDocument?> GetShippingDocumentById(int id)
|
||||
=> GetByIdAsync<ShippingDocument?>(SignalRTags.GetShippingDocumentById, id);
|
||||
|
||||
public Task<List<ShippingDocument>?> GetShippingDocumentsByShippingId(int shippingId)
|
||||
=> GetAllAsync<List<ShippingDocument>>(SignalRTags.GetShippingDocumentsByShippingId, [shippingId]);
|
||||
|
||||
public Task<List<ShippingDocument>?> GetShippingDocumentsByProductId(int productId)
|
||||
=> GetAllAsync<List<ShippingDocument>>(SignalRTags.GetShippingDocumentsByShippingId, [productId]);
|
||||
|
||||
public Task<List<ShippingDocument>?> GetShippingDocumentsByPartnerId(int partnerId)
|
||||
=> GetAllAsync<List<ShippingDocument>>(SignalRTags.GetShippingDocumentsByShippingId, [partnerId]);
|
||||
|
||||
public Task<ShippingDocument?> AddShippingDocument(ShippingDocument shippingDocument)
|
||||
=> PostDataAsync(SignalRTags.AddShippingDocument, shippingDocument);
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ using AyCode.Core.Interfaces;
|
|||
using AyCode.Services.Server.SignalRs;
|
||||
using AyCode.Services.SignalRs;
|
||||
using System.Diagnostics;
|
||||
using AyCode.Core.Helpers;
|
||||
|
||||
namespace FruitBankHybrid.Shared.Services.SignalRs;
|
||||
|
||||
|
|
@ -14,4 +15,4 @@ public class SignalRDataSourceList<TDataItem>(AcSignalRClientBase signalRClient,
|
|||
[Serializable]
|
||||
[DebuggerDisplay("Count = {Count}")]
|
||||
public class SignalRDataSourceObservable<TDataItem>(AcSignalRClientBase signalRClient, SignalRCrudTags signalRCrudTags, params object[]? contextIds)
|
||||
: AcSignalRDataSource<TDataItem, int, ObservableCollection<TDataItem>>(signalRClient, signalRCrudTags, contextIds) where TDataItem : class, IId<int>;
|
||||
: AcSignalRDataSource<TDataItem, int, AcObservableCollection<TDataItem>>(signalRClient, signalRCrudTags, contextIds) where TDataItem : class, IId<int>;
|
||||
Loading…
Reference in New Issue