improvements, fixes, etc...
This commit is contained in:
parent
4c5b31f123
commit
955d7ec963
|
|
@ -35,8 +35,6 @@ public static class FruitBankConstClient
|
|||
public const string ShippingDocumentDbTableName = "fbShippingDocument";
|
||||
public const string ShippingDocumentToFilesDbTableName = "fbShippingDocumentToFiles";
|
||||
|
||||
|
||||
|
||||
//public static Guid[] DevAdminIds = new Guid[2] { Guid.Parse("dcf451d2-cc4c-4ac2-8c1f-da00041be1fd"), Guid.Parse("4cbaed43-2465-4d99-84f1-c8bc6b7025f7") };
|
||||
//public static Guid[] SysAdmins = new Guid[3]
|
||||
//{
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@ public interface IFruitBankDataControllerCommon
|
|||
#region ShippingItem
|
||||
public Task<List<ShippingItem>?> GetShippingItems();
|
||||
public Task<ShippingItem?> GetShippingItemById(int id);
|
||||
public Task<ShippingItem?> AddShippingItem(ShippingItem shippingItem);
|
||||
public Task<ShippingItem?> UpdateShippingItem(ShippingItem shippingItem);
|
||||
public Task<ShippingItem?> UpdateMeasuredShippingItem(ShippingItem shippingItem);
|
||||
#endregion ShippingItem
|
||||
|
|
@ -41,6 +42,7 @@ public interface IFruitBankDataControllerCommon
|
|||
#region ShippingDocument
|
||||
public Task<List<ShippingDocument>?> GetShippingDocuments();
|
||||
public Task<ShippingDocument?> GetShippingDocumentById(int id);
|
||||
public Task<ShippingDocument?> AddShippingDocument(ShippingDocument shippingDocument);
|
||||
public Task<ShippingDocument?> UpdateShippingDocument(ShippingDocument shippingDocument);
|
||||
#endregion ShippingDocument
|
||||
|
||||
|
|
@ -57,4 +59,5 @@ public interface IFruitBankDataControllerCommon
|
|||
#endregion Product
|
||||
|
||||
Task<MgLoginModelResponse?> LoginMeasuringUser(MgLoginModelRequest loginModelRequest);
|
||||
Task<List<Partner>?> ProcessAndSaveFullShippingJson(string fullShippingJson, int customerId);
|
||||
}
|
||||
|
|
@ -20,6 +20,7 @@ public class SignalRTags : AcSignalRTags
|
|||
public const int GetShippingById = 42;
|
||||
public const int AddShipping = 45;
|
||||
public const int UpdateShipping = 46;
|
||||
public const int ProcessAndSaveFullShippingJson = 48;
|
||||
|
||||
public const int GetShippingItems = 50;
|
||||
public const int GetShippingItemById = 51;
|
||||
|
|
|
|||
|
|
@ -14,13 +14,13 @@
|
|||
<DxGridDataColumn FieldName="OrderTotal" />
|
||||
|
||||
<DxGridDataColumn FieldName="OrderStatus" />
|
||||
<DxGridDataColumn FieldName="IsMeasured" />
|
||||
<DxGridDataColumn FieldName="IsMeasurable" />
|
||||
<DxGridDataColumn FieldName="IsMeasured" ReadOnly="true" />
|
||||
<DxGridDataColumn FieldName="IsMeasurable" ReadOnly="true" />
|
||||
|
||||
<DxGridDataColumn FieldName="RevisorId" />
|
||||
<DxGridDataColumn FieldName="MeasurementOwnerId" />
|
||||
<DxGridDataColumn FieldName="RevisorId" ReadOnly="true" />
|
||||
<DxGridDataColumn FieldName="MeasurementOwnerId" ReadOnly="true" />
|
||||
<DxGridDataColumn FieldName="DateOfReceipt" />
|
||||
<DxGridDataColumn FieldName="CreatedOnUtc" />
|
||||
<DxGridDataColumn FieldName="CreatedOnUtc" ReadOnly="true" />
|
||||
<DxGridCommandColumn Visible="!IsMasterGrid" Width="120"></DxGridCommandColumn>
|
||||
</Columns>
|
||||
<DetailRowTemplate>
|
||||
|
|
|
|||
|
|
@ -20,6 +20,9 @@
|
|||
<DxComboBoxSettings Data="ProductDtos"
|
||||
ValueFieldName="Id"
|
||||
TextFieldName="Name"
|
||||
DropDownBodyCssClass="dd-body-class"
|
||||
ListRenderMode="ListRenderMode.Entire"
|
||||
SearchMode="ListSearchMode.AutoSearch"
|
||||
SearchFilterCondition="ListSearchFilterCondition.Contains"
|
||||
ClearButtonDisplayMode="DataEditorClearButtonDisplayMode.Auto" />
|
||||
</EditSettings>
|
||||
|
|
@ -32,9 +35,9 @@
|
|||
<DxGridDataColumn FieldName="Quantity" />
|
||||
<DxGridDataColumn FieldName="NetWeight" />
|
||||
|
||||
<DxGridDataColumn FieldName="IsMeasurable" />
|
||||
<DxGridDataColumn FieldName="IsMeasured" />
|
||||
<DxGridDataColumn FieldName="IsAudited" />
|
||||
<DxGridDataColumn FieldName="IsMeasurable" ReadOnly="true" />
|
||||
<DxGridDataColumn FieldName="IsMeasured" ReadOnly="true" />
|
||||
<DxGridDataColumn FieldName="IsAudited" ReadOnly="true" />
|
||||
<DxGridCommandColumn Visible="!IsMasterGrid" Width="120"></DxGridCommandColumn>
|
||||
</Columns>
|
||||
<DetailRowTemplate>
|
||||
|
|
|
|||
|
|
@ -23,8 +23,8 @@
|
|||
<DxGridDataColumn FieldName="GrossWeight" />
|
||||
<DxGridDataColumn FieldName="NetWeight" />
|
||||
|
||||
<DxGridDataColumn FieldName="IsMeasured" />
|
||||
<DxGridDataColumn FieldName="IsAudited" />
|
||||
<DxGridDataColumn FieldName="IsMeasured" ReadOnly="true" />
|
||||
<DxGridDataColumn FieldName="IsAudited" ReadOnly="true" />
|
||||
<DxGridCommandColumn Visible="!IsMasterGrid" Width="120"></DxGridCommandColumn>
|
||||
</Columns>
|
||||
<GroupSummary>
|
||||
|
|
|
|||
|
|
@ -6,19 +6,15 @@
|
|||
|
||||
@inject FruitBankSignalRClient FruitBankSignalRClient
|
||||
|
||||
<GridProductDto Data="ProductDtos" IsMasterGrid="IsMasterGrid"
|
||||
PageSize="@(IsMasterGrid ? 15 : 50)" ShowFilterRow="IsMasterGrid" ShowGroupPanel="IsMasterGrid"
|
||||
ColumnResizeMode="GridColumnResizeMode.NextColumn" TextWrapEnabled="false"
|
||||
FilterMenuButtonDisplayMode="@(IsMasterGrid ? GridFilterMenuButtonDisplayMode.Never : GridFilterMenuButtonDisplayMode.Always)"
|
||||
FocusedRowChanged="OnFocusedRowChanged" FocusedRowEnabled="true">
|
||||
<GridProductDto Data="ProductDtos" IsMasterGrid="IsMasterGrid" FocusedRowChanged="OnFocusedRowChanged">
|
||||
<Columns>
|
||||
<DxGridDataColumn FieldName="Id" SortIndex="0" SortOrder="GridColumnSortOrder.Ascending" />
|
||||
<DxGridDataColumn FieldName="Name" />
|
||||
<DxGridDataColumn FieldName="Price" />
|
||||
<DxGridDataColumn FieldName="AvailableQuantity" />
|
||||
<DxGridDataColumn FieldName="AvailableQuantity" ReadOnly="true" />
|
||||
<DxGridDataColumn FieldName="StockQuantity" />
|
||||
<DxGridDataColumn FieldName="IncomingQuantity" />
|
||||
<DxGridDataColumn FieldName="NetWeight" />
|
||||
<DxGridDataColumn FieldName="IncomingQuantity" ReadOnly="true" />
|
||||
<DxGridDataColumn FieldName="NetWeight" ReadOnly="true" />
|
||||
<DxGridDataColumn FieldName="IsMeasurable" />
|
||||
<DxGridCommandColumn Visible="!IsMasterGrid" Width="120"></DxGridCommandColumn>
|
||||
</Columns>
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
@inject FruitBankSignalRClient FruitBankSignalRClient
|
||||
|
||||
<MgGridBase @ref="Grid" Data="Shippings" IsMasterGrid="IsMasterGrid"
|
||||
<MgGridBase @ref="Grid" Data="Shippings" IsMasterGrid="IsMasterGrid"
|
||||
EditOnKeyPress="true"
|
||||
ValidationEnabled="false"
|
||||
EditModelSaving="Grid_EditModelSaving">
|
||||
|
|
@ -14,9 +14,9 @@
|
|||
<DxGridDataColumn FieldName="ShippingDate" />
|
||||
<DxGridDataColumn FieldName="LicencePlate" />
|
||||
|
||||
<DxGridDataColumn FieldName="IsAllMeasured" />
|
||||
<DxGridDataColumn FieldName="Created" />
|
||||
<DxGridDataColumn FieldName="Modified" />
|
||||
<DxGridDataColumn FieldName="IsAllMeasured" ReadOnly="true" />
|
||||
<DxGridDataColumn FieldName="Created" ReadOnly="true" />
|
||||
<DxGridDataColumn FieldName="Modified" ReadOnly="true" />
|
||||
<DxGridCommandColumn Visible="!IsMasterGrid" Width="120"></DxGridCommandColumn>
|
||||
</Columns>
|
||||
<DetailRowTemplate>
|
||||
|
|
|
|||
|
|
@ -5,20 +5,24 @@
|
|||
@using FruitBankHybrid.Shared.Services.SignalRs
|
||||
@using System.Text
|
||||
@using AyCode.Core.Extensions
|
||||
@using FruitBank.Common.Models
|
||||
|
||||
@inject FruitBankSignalRClient FruitBankSignalRClient
|
||||
|
||||
<MgGridBase @ref="Grid" Data="ShippingDocuments" IsMasterGrid="IsMasterGrid"
|
||||
EditOnKeyPress="true"
|
||||
ValidationEnabled="false"
|
||||
EditModelSaving="Grid_EditModelSaving">
|
||||
<MgGridBase @ref="Grid" CssClass="@GridCss" Data="@ShippingDocuments" IsMasterGrid="@IsMasterGrid"
|
||||
ValidationEnabled="false" EditMode="GridEditMode.EditRow"
|
||||
EditModelSaving="Grid_EditModelSaving"
|
||||
FocusedRowChanged="Grid_FocusedRowChanged">
|
||||
<Columns>
|
||||
<DxGridDataColumn FieldName="Id" SortIndex="0" SortOrder="GridColumnSortOrder.Descending" />
|
||||
<DxGridDataColumn FieldName="PartnerId" Caption="Partner">
|
||||
<EditSettings>
|
||||
<DxComboBoxSettings Data="ProductDtos"
|
||||
<DxComboBoxSettings Data="Partners"
|
||||
ValueFieldName="Id"
|
||||
TextFieldName="Name"
|
||||
DropDownBodyCssClass="dd-body-class"
|
||||
ListRenderMode="ListRenderMode.Entire"
|
||||
SearchMode="ListSearchMode.AutoSearch"
|
||||
SearchFilterCondition="ListSearchFilterCondition.Contains"
|
||||
ClearButtonDisplayMode="DataEditorClearButtonDisplayMode.Auto" />
|
||||
</EditSettings>
|
||||
|
|
@ -28,6 +32,9 @@
|
|||
<DxComboBoxSettings Data="Shippings"
|
||||
ValueFieldName="Id"
|
||||
TextFieldName="ShippingDate"
|
||||
DropDownBodyCssClass="dd-body-class"
|
||||
ListRenderMode="ListRenderMode.Entire"
|
||||
SearchMode="ListSearchMode.AutoSearch"
|
||||
SearchFilterCondition="ListSearchFilterCondition.Contains"
|
||||
ClearButtonDisplayMode="DataEditorClearButtonDisplayMode.Auto" />
|
||||
</EditSettings>
|
||||
|
|
@ -38,10 +45,10 @@
|
|||
<DxGridDataColumn FieldName="Country" />
|
||||
|
||||
<DxGridDataColumn FieldName="TotalPallets" />
|
||||
<DxGridDataColumn FieldName="IsAllMeasured" />
|
||||
<DxGridDataColumn FieldName="IsAllMeasured" ReadOnly="true"/>
|
||||
<DxGridDataColumn FieldName="Comment" />
|
||||
<DxGridDataColumn FieldName="Created" />
|
||||
<DxGridDataColumn FieldName="Modified" />
|
||||
<DxGridDataColumn FieldName="Created"ReadOnly="true" />
|
||||
<DxGridDataColumn FieldName="Modified" ReadOnly="true"/>
|
||||
<DxGridCommandColumn Visible="!IsMasterGrid" Width="120"></DxGridCommandColumn>
|
||||
</Columns>
|
||||
<DetailRowTemplate>
|
||||
|
|
@ -64,39 +71,42 @@
|
|||
}
|
||||
</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="ctxToolbarItemFileUpload">
|
||||
@* <DxUpload Name="myFile"
|
||||
@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="ctxToolbarItemFileUpload">
|
||||
@* <DxUpload Name="myFile"
|
||||
UploadMode="@UploadMode.Instant"
|
||||
AllowMultiFileUpload="false"
|
||||
ShowSelectButton="true"
|
||||
MaxFileSize="15000000">
|
||||
</DxUpload> *@
|
||||
<FileUpload OnFileUploaded="OnFileUploaded"></FileUpload>
|
||||
</Template>
|
||||
</DxToolbarItem>
|
||||
@* <DxToolbarItem BeginGroup="true">
|
||||
<FileUpload OnFileUploaded="OnFileUploaded"></FileUpload>
|
||||
</Template>
|
||||
</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>
|
||||
</DxToolbarItem>*@
|
||||
</DxToolbar>
|
||||
}
|
||||
</ToolbarTemplate>
|
||||
<GroupSummary>
|
||||
<DxGridSummaryItem SummaryType="GridSummaryItemType.Sum"
|
||||
|
|
@ -113,16 +123,21 @@
|
|||
|
||||
@code {
|
||||
[Inject] public required DatabaseClient Database { get; set; }
|
||||
[Inject] public required LoggedInModel LoggedInModel { get; set; }
|
||||
|
||||
[Parameter] public bool IsMasterGrid { get; set; } = false;
|
||||
|
||||
[Parameter] public List<Shipping>? Shippings { get; set; }
|
||||
[Parameter] public IEnumerable<ProductDto>? ProductDtos { get; set; }
|
||||
[Parameter] public IEnumerable<Partner>? Partners { get; set; }
|
||||
[Parameter] public List<ShippingDocument>? ShippingDocuments { get; set; }
|
||||
|
||||
[Parameter] public Func<List<Partner>?, Task>? OnUploadedFileParsed { 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; }
|
||||
|
|
@ -131,8 +146,10 @@
|
|||
private int _activeTabIndex;
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
ProductDtos ??= await Database.ProductDtoTable.LoadDataAsync(true);
|
||||
_localStorageKey += LoggedInModel.CustomerDto!.Id;
|
||||
|
||||
//ProductDtos ??= await Database.ProductDtoTable.LoadDataAsync(true);
|
||||
Partners ??= await FruitBankSignalRClient.GetPartners() ?? [];
|
||||
Shippings ??= await FruitBankSignalRClient.GetShippings() ?? [];
|
||||
//ProductDtos ??= await FruitBankSignalRClient.GetProductDtos() ?? [];
|
||||
ShippingDocuments ??= await FruitBankSignalRClient.GetShippingDocuments() ?? [];
|
||||
|
|
@ -142,28 +159,33 @@
|
|||
|
||||
private async Task OnFileUploaded(byte[] arg)
|
||||
{
|
||||
string utfString = Encoding.UTF8.GetString(arg, 0, arg.Length);
|
||||
var utfString = Encoding.UTF8.GetString(arg, 0, arg.Length);
|
||||
var result = await FruitBankSignalRClient.ProcessAndSaveFullShippingJson(utfString, LoggedInModel.CustomerDto!.Id);
|
||||
|
||||
var partners = utfString.JsonTo<List<Partner>>();
|
||||
if (partners != null)
|
||||
if (result != null)
|
||||
{
|
||||
var id = ShippingDocuments.Max(x => x.Id);
|
||||
foreach (var shippingDocument in partners.SelectMany(partner => partner.ShippingDocuments ?? []))
|
||||
foreach (var shippingDocument in result.SelectMany(partner => partner.ShippingDocuments ?? []))
|
||||
{
|
||||
shippingDocument.Id = ++id;
|
||||
|
||||
ShippingDocuments.Add(shippingDocument);
|
||||
ShippingDocuments!.Add(shippingDocument);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Grid.Reload();
|
||||
|
||||
if (OnUploadedFileParsed != null)
|
||||
await OnUploadedFileParsed(partners);
|
||||
await OnUploadedFileParsed(result);
|
||||
//await InvokeAsync(StateHasChanged);
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
// await NwindDataService.RemoveEmployeeAsync((EditableEmployee)e.DataItem);
|
||||
|
|
@ -173,6 +195,21 @@
|
|||
}
|
||||
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
|
||||
|
|
@ -237,5 +274,4 @@
|
|||
// break;
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,4 +1,5 @@
|
|||
@using FruitBank.Common.Dtos
|
||||
@using AyCode.Core.Extensions
|
||||
@using FruitBank.Common.Dtos
|
||||
@using FruitBank.Common.Entities
|
||||
@using FruitBankHybrid.Shared.Databases
|
||||
@using FruitBankHybrid.Shared.Services.SignalRs
|
||||
|
|
@ -9,31 +10,36 @@
|
|||
Contact Phone: @OrderDto.Email
|
||||
</div> *@
|
||||
|
||||
<MgGridBase Data="ShippingItems" IsMasterGrid="IsMasterGrid"
|
||||
PageSize="@(IsMasterGrid ? 15 : 50)" ShowFilterRow="IsMasterGrid" ShowGroupPanel="IsMasterGrid"
|
||||
AutoExpandAllGroupRows="false"
|
||||
ColumnResizeMode="GridColumnResizeMode.NextColumn"
|
||||
FilterMenuButtonDisplayMode="@(IsMasterGrid ? GridFilterMenuButtonDisplayMode.Never : GridFilterMenuButtonDisplayMode.Always)">
|
||||
<MgGridBase @ref="Grid" Data="ShippingItems" IsMasterGrid="IsMasterGrid" CssClass="@GridCss"
|
||||
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"
|
||||
ValueFieldName="Id"
|
||||
TextFieldName="DocumentIdNumber"
|
||||
SearchFilterCondition="ListSearchFilterCondition.Contains"
|
||||
ClearButtonDisplayMode="DataEditorClearButtonDisplayMode.Auto" />
|
||||
DropDownBodyCssClass="dd-body-class"
|
||||
ListRenderMode="ListRenderMode.Entire"
|
||||
SearchMode="ListSearchMode.AutoSearch"
|
||||
SearchFilterCondition="ListSearchFilterCondition.Contains"
|
||||
ClearButtonDisplayMode="DataEditorClearButtonDisplayMode.Auto" />
|
||||
</EditSettings>
|
||||
</DxGridDataColumn>
|
||||
|
||||
|
||||
@* <DxGridDataColumn FieldName="PalletId" Caption="pId" Width="125" /> *@
|
||||
<DxGridDataColumn FieldName="ProductId" Caption="Product">
|
||||
<EditSettings>
|
||||
<DxComboBoxSettings Data="ProductDtos"
|
||||
ValueFieldName="Id"
|
||||
TextFieldName="Name"
|
||||
SearchFilterCondition="ListSearchFilterCondition.Contains"
|
||||
ClearButtonDisplayMode="DataEditorClearButtonDisplayMode.Auto" />
|
||||
ValueFieldName="Id"
|
||||
TextFieldName="Name"
|
||||
DropDownBodyCssClass="dd-body-class"
|
||||
ListRenderMode="ListRenderMode.Entire"
|
||||
SearchMode="ListSearchMode.AutoSearch"
|
||||
SearchFilterCondition="ListSearchFilterCondition.Contains"
|
||||
ClearButtonDisplayMode="DataEditorClearButtonDisplayMode.Auto" />
|
||||
</EditSettings>
|
||||
</DxGridDataColumn>
|
||||
|
||||
|
|
@ -42,17 +48,17 @@
|
|||
<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" />
|
||||
<DxGridDataColumn FieldName="MeasuredNetWeight" Caption="Mért net.súly(kg)" />
|
||||
<DxGridDataColumn FieldName="MeasuredGrossWeight" Caption="Mért br.súly(kg)" />
|
||||
|
||||
<DxGridDataColumn FieldName="IsMeasurable" />
|
||||
<DxGridDataColumn FieldName="IsMeasured" />
|
||||
<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="Created" />
|
||||
<DxGridDataColumn FieldName="Modified" />
|
||||
<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>
|
||||
|
|
@ -61,6 +67,33 @@
|
|||
<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"
|
||||
|
|
@ -78,11 +111,21 @@
|
|||
[Inject] public required DatabaseClient Database { get; set; }
|
||||
|
||||
[Parameter] public bool IsMasterGrid { get; set; } = false;
|
||||
|
||||
|
||||
[Parameter] public IEnumerable<ProductDto>? ProductDtos { get; set; }
|
||||
[Parameter] public IEnumerable<ShippingItem>? ShippingItems { 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);
|
||||
|
|
@ -92,4 +135,73 @@
|
|||
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);
|
||||
}
|
||||
}
|
||||
|
|
@ -23,7 +23,7 @@
|
|||
<DxGridDataColumn FieldName="GrossWeight" />
|
||||
<DxGridDataColumn FieldName="NetWeight" />
|
||||
|
||||
<DxGridDataColumn FieldName="IsMeasured" />
|
||||
<DxGridDataColumn FieldName="IsMeasured" ReadOnly="true" />
|
||||
<DxGridCommandColumn Visible="!IsMasterGrid" Width="120"></DxGridCommandColumn>
|
||||
</Columns>
|
||||
<GroupSummary>
|
||||
|
|
|
|||
|
|
@ -62,6 +62,7 @@ public class MgGridBase : DxGrid
|
|||
{
|
||||
if (!_isFirstInitializeParameters)
|
||||
{
|
||||
SizeMode = DevExpress.Blazor.SizeMode.Small;
|
||||
ShowGroupPanel = IsMasterGrid;
|
||||
ShowSearchBox = IsMasterGrid;
|
||||
ShowFilterRow = IsMasterGrid;
|
||||
|
|
@ -78,15 +79,15 @@ public class MgGridBase : DxGrid
|
|||
AutoExpandAllGroupRows = false;
|
||||
|
||||
PagerVisible = IsMasterGrid;
|
||||
PageSize = IsMasterGrid ? 15 : 50;
|
||||
PageSize = IsMasterGrid ? (SizeMode == DevExpress.Blazor.SizeMode.Small ? 23 : 15) : 50;
|
||||
|
||||
AllowColumnReorder = true;
|
||||
AllowGroup = IsMasterGrid;
|
||||
AllowSort = true;
|
||||
|
||||
EditMode = GridEditMode.EditRow;
|
||||
FocusedRowEnabled = true;
|
||||
ColumnResizeMode = GridColumnResizeMode.ColumnsContainer;
|
||||
EditMode = GridEditMode.EditRow;
|
||||
//VirtualScrollingEnabled = IsMasterGrid;
|
||||
PageSizeSelectorVisible = true;
|
||||
|
||||
|
|
|
|||
|
|
@ -77,6 +77,9 @@ namespace FruitBankHybrid.Shared.Services.SignalRs
|
|||
public Task<Shipping?> UpdateShipping(Shipping shipping)
|
||||
=> PostDataAsync(SignalRTags.UpdateShipping, shipping);
|
||||
|
||||
public Task<List<Partner>?> ProcessAndSaveFullShippingJson(string fullShippingJson, int customerId)
|
||||
=> GetAllAsync<List<Partner>>(SignalRTags.ProcessAndSaveFullShippingJson, [fullShippingJson, customerId]);
|
||||
|
||||
#endregion Shipping
|
||||
|
||||
#region ShippingItem
|
||||
|
|
@ -87,6 +90,9 @@ namespace FruitBankHybrid.Shared.Services.SignalRs
|
|||
public Task<ShippingItem?> GetShippingItemById(int id)
|
||||
=> GetByIdAsync<ShippingItem?>(SignalRTags.GetShippingItemById, id);
|
||||
|
||||
public Task<ShippingItem?> AddShippingItem(ShippingItem shippingItem)
|
||||
=> PostDataAsync(SignalRTags.AddShippingItem, shippingItem);
|
||||
|
||||
public Task<ShippingItem?> UpdateShippingItem(ShippingItem shippingItem)
|
||||
=> PostDataAsync(SignalRTags.UpdateShippingItem, shippingItem);
|
||||
|
||||
|
|
@ -118,6 +124,9 @@ namespace FruitBankHybrid.Shared.Services.SignalRs
|
|||
public Task<ShippingDocument?> GetShippingDocumentById(int id)
|
||||
=> GetByIdAsync<ShippingDocument?>(SignalRTags.GetShippingDocumentById, id);
|
||||
|
||||
public Task<ShippingDocument?> AddShippingDocument(ShippingDocument shippingDocument)
|
||||
=> PostDataAsync(SignalRTags.AddShippingDocument, shippingDocument);
|
||||
|
||||
public Task<ShippingDocument?> UpdateShippingDocument(ShippingDocument shippingDocument)
|
||||
=> PostDataAsync(SignalRTags.UpdateShippingDocument, shippingDocument);
|
||||
#endregion ShippingDocument
|
||||
|
|
@ -212,7 +221,6 @@ namespace FruitBankHybrid.Shared.Services.SignalRs
|
|||
|
||||
public Task<List<OrderItemPallet>?> GetAllOrderItemPalletByProductId(int productId)
|
||||
=> GetAllAsync<List<OrderItemPallet>>(SignalRTags.GetAllOrderItemPalletByProductId, [productId]);
|
||||
|
||||
#endregion Orders
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -81,12 +81,18 @@ h1:focus {
|
|||
}
|
||||
|
||||
/*region: DSGrids*/
|
||||
|
||||
/*.dxbl-grid {
|
||||
height: 522px;
|
||||
}
|
||||
*/
|
||||
|
||||
.hide-toolbar .dxbl-grid-toolbar-container {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.hideDetailButton .dxbl-grid-expand-button-cell .dxbl-grid-expand-button {
|
||||
visibility: hidden;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.header-bold span {
|
||||
|
|
@ -103,6 +109,7 @@ h1:focus {
|
|||
/*.alt-item {
|
||||
--dxbl-grid-row-bg: var(--DS-color-surface-neutral-subdued-rest);
|
||||
}*/
|
||||
|
||||
/*endregion: DSGrids*/
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue