TourIAm/TIAMSharedUI/Pages/User/SysAdmins/TransferDestinationToProduc...

173 lines
7.3 KiB
Plaintext

@using AyCode.Core.Helpers
@using TIAM.Entities.Products
@using TIAM.Entities.ServiceProviders
@using TIAM.Entities.Transfers
@using TIAM.Entities.Drivers
@using TIAM.Entities.Users
@using TIAM.Models.Dtos.Users
@using TIAMWebApp.Shared.Application.Interfaces
@using TIAMWebApp.Shared.Application.Services
@using TIAMWebApp.Shared.Application.Utility
@using AyCode.Services.Loggers
@using TIAM.Core.Loggers
@using AyCode.Core
@using TIAM.Services
@using TIAMSharedUI.Shared.Components.Grids
@inject IServiceProviderDataService ServiceProviderDataService
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
@inject AdminSignalRClient AdminSignalRClient;
<TransferDestinationToProductDetailGrid Logger="_logger"
SignalRClient="AdminSignalRClient"
CustomizeEditModel="CustomizeEditModel"
OnGridEditModelSaving="OnGridEditModelSaving"
EditCanceling="EditCanceling"
ContextIds="ContextIds?.Cast<object>().ToArray()"
GetAllMessageTag="GetAllTag"
PageSize="10"
ValidationEnabled="false"
EditMode="GridEditMode.EditRow"
DetailExpandButtonDisplayMode="DetailExpandButtonDisplayMode"
ColumnResizeMode="GridColumnResizeMode.NextColumn">
<Columns>
<DxGridCommandColumn Width="135" MinWidth="135" FixedPosition="GridColumnFixedPosition.Left" />
<DxGridDataColumn FieldName="Id" ShowInColumnChooser="AcDomain.IsDeveloperVersion" Visible="AcDomain.IsDeveloperVersion" />
<DxGridDataColumn FieldName="ProductId" Caption="ServiceId">
<CellEditTemplate>
@{
var transferDestinationToProductEditModel = (TransferDestinationToProduct)context.EditModel;
}
<DxComboBox Data="@_products" TextFieldName="Name" ValueFieldName="Id" @bind-Value="transferDestinationToProductEditModel.ProductId" ReadOnly="@_productIdReadOnly"
SearchFilterCondition="ListSearchFilterCondition.Contains" SearchMode="ListSearchMode.AutoSearch">
</DxComboBox>
</CellEditTemplate>
</DxGridDataColumn>
<DxGridDataColumn FieldName="TransferDestinationId">
<CellEditTemplate>
@{
var transferDestinationToProductEditModel = (TransferDestinationToProduct)context.EditModel;
}
<DxComboBox Data="@_destinations" TextFieldName="Name" ValueFieldName="Id" @bind-Value="transferDestinationToProductEditModel.TransferDestinationId" ReadOnly="@_destinationIdReadOnly"
SearchFilterCondition="ListSearchFilterCondition.Contains" SearchMode="ListSearchMode.AutoSearch">
</DxComboBox>
</CellEditTemplate>
</DxGridDataColumn>
@*<DxGridDataColumn FieldName="TransferDestinationId" SortIndex="0" ShowInColumnChooser="AcDomain.IsDeveloperVersion" Visible="AcDomain.IsDeveloperVersion" DisplayFormat="N" />
@{
var destinationNameFieldName = $"{nameof(TransferDestinationToProduct.TransferDestination.Name)}.{nameof(TransferDestination.Name)}";
}
<DxGridDataColumn FieldName="@destinationNameFieldName" Caption="TransferDestination name" />*@
<DxGridDataColumn FieldName="Price" />
<DxGridDataColumn FieldName="Price2" />
<DxGridDataColumn FieldName="Price3" />
<DxGridDataColumn FieldName="ProductCommis" />
<DxGridDataColumn FieldName="Created" DisplayFormat="g" Width="140" CaptionAlignment="GridTextAlignment.Center" TextAlignment="GridTextAlignment.Center" />
<DxGridDataColumn FieldName="Modified" DisplayFormat="g" Width="140" CaptionAlignment="GridTextAlignment.Center" TextAlignment="GridTextAlignment.Center" />
</Columns>
<DetailRowTemplate>
<DxTabs>
<DxTabPage Text="Partner">
<ProductDetailGridComponent DetailExpandButtonDisplayMode="GridDetailExpandButtonDisplayMode.Never" GetAllTag="SignalRTags.GetProductsById" ContextId="((TransferDestinationToProduct)context.DataItem).ProductId" ParentData="(Company)context.DataItem" />
</DxTabPage>
</DxTabs>
</DetailRowTemplate>
@* <EditFormTemplate Context="editFormContext">
@{
var transferDestinationToProduct = (TransferDestinationToProduct)editFormContext.EditModel;
}
<DxFormLayout CssClass="w-100">
<DxFormLayoutItem Caption="Price" ColSpanMd="4">
@editFormContext.GetEditor("Price")
</DxFormLayoutItem>
<DxFormLayoutItem Caption="Price2" ColSpanMd="4">
@editFormContext.GetEditor("Price2")
</DxFormLayoutItem>
<DxFormLayoutItem Caption="Price3" ColSpanMd="4">
@editFormContext.GetEditor("Price3")
</DxFormLayoutItem>
<DxFormLayoutItem Caption="Commission rate" ColSpanMd="4">
@editFormContext.GetEditor("ProductCommis")
</DxFormLayoutItem>
</DxFormLayout>
</EditFormTemplate> *@
</TransferDestinationToProductDetailGrid>
@code {
[Parameter] public GridDetailExpandButtonDisplayMode DetailExpandButtonDisplayMode { get; set; } = GridDetailExpandButtonDisplayMode.Never;
[Parameter] public Guid[]? ContextIds { get; set; } = null!;
[Parameter] public int GetAllTag { get; set; } = SignalRTags.GetAllTransferDestinationToProducts;
[Parameter] public bool IsProductIdReadonly { get; set; } = false;
[Parameter] public bool IsDestinationIdReadonly { get; set; } = false;
private bool _productIdReadOnly = false;
private bool _destinationIdReadOnly = false;
//private bool? _isNewState = null;
private List<TransferDestination> _destinations = [];
private List<Product> _products = [];
private LoggerClient<TransferDestinationToProductGridComponent> _logger = null!;
protected override void OnInitialized()
{
_logger = new LoggerClient<TransferDestinationToProductGridComponent>(LogWriters.ToArray());
AdminSignalRClient.GetTransferDestinationsInto(_destinations).Forget();
AdminSignalRClient.GetAllIntoAsync(_products, SignalRTags.GetAllProducts).Forget();
base.OnInitialized();
}
void CustomizeEditModel(GridCustomizeEditModelEventArgs e)
{
if (!e.IsNew)
{
_destinationIdReadOnly = true;
_productIdReadOnly = true;
}
else
{
if(IsDestinationIdReadonly)
{
((TransferDestinationToProduct)(e.EditModel)).TransferDestinationId = (Guid)ContextIds[0];
}
_destinationIdReadOnly = IsDestinationIdReadonly;
if (IsProductIdReadonly)
{
((TransferDestinationToProduct)(e.EditModel)).ProductId = (Guid)ContextIds[0];
}
_productIdReadOnly = IsProductIdReadonly;
}
if (!e.IsNew) return;
}
private void OnGridEditModelSaving(GridEditModelSavingEventArgs e)
{
_destinationIdReadOnly = false;
_productIdReadOnly = false;
}
private void EditCanceling(GridEditCancelingEventArgs e)
{
_destinationIdReadOnly = false;
_productIdReadOnly = false;
}
}