@using ftl.app.Shared.Dto.Catalog @using Newtonsoft.Json @using Syncfusion.Blazor.Data @using System.Linq @inject IOrderService OrderService; @inject ICatalogService CatalogService; @inject NavigationManager NavigationManager; @inject AuthenticationStateProvider AuthenticationStateProvider
Grupo de Pedidos: @GroupCode
@if (WeeksCatalog != null) { w.WeekNumber) Max=@WeeksCatalog.Max(w=>w.WeekNumber) Step=1 Format="#" Placeholder="Semana bananera" FloatLabelType="@FloatLabelType.Always"> }
@if (DestinationPortsCatalog != null) { }
@if (ShippingCompaniesCatalog != null) { }
@if (ContractsCatalog != null) { }
@if (ShippingPortsCatalog != null) { }
@{ var aggregate = (context as AggregateTemplateContext);

Sum: @aggregate.Sum

}
@code { [Parameter] public Customer Customer { get; set; } [Parameter] public Order Order { get; set; } = new Order(); #region Catalogs private string GroupCode { get; set; } private byte CurrentWeek { get; set; } private List WeeksCatalog { get; set; } private byte SelectedWeek { get; set; } public Query WeeksCatalogQuery = new Query().Select(new List { nameof(Week.WeekNumber) }).Take(10).RequiresCount(); private List ProductsCatalog { get; set; } private string SelectedProduct { get; set; } = string.Empty; public Query ProductsCatalogQuery = new Query().Select(new List { nameof(Product.Id) }).Take(10).RequiresCount(); private List ShippingCompaniesCatalog { get; set; } private string SelectedShippingCompany { get; set; } = string.Empty; public Query ShippingCompaniesCatalogQuery = new Query().Select(new List { nameof(ShippingCompany.Code) }).Take(10).RequiresCount(); private List ContractsCatalog { get; set; } private string SelectedContract { get; set; } = string.Empty; public Query ContractsCatalogQuery = new Query().Select(new List { nameof(ShippingCompany.Code) }).Take(10).RequiresCount(); private List ShippingPortsCatalog { get; set; } private string SelectedShippingPort { get; set; } = string.Empty; public Query ShippingPortsCatalogQuery = new Query().Select(new List { nameof(ShippingPort.Code) }).Take(10).RequiresCount(); private List DestinationPortsCatalog { get; set; } private string SelectedDestinationPort { get; set; } = string.Empty; public Query DestinationPortsCatalogQuery = new Query().Select(new List { nameof(DestinationPort.Code) }).Take(10).RequiresCount(); public string ProductCode { get; set; } public decimal ProductPrice { get; set; } public int Boxes { get; set; } public int BoxesPerContainer { get; set; } public int Containers { get; set; } #endregion protected override async Task OnInitializedAsync() { await LoadCatalogs(); } private async Task LoadCatalogs() { CurrentWeek = await CatalogService.RetrieveCurrentWeek(); SelectedWeek = CurrentWeek; WeeksCatalog = (await CatalogService.RetrieveWeeksCatalog(DateTime.Now.Year.ToString())) .Where(w => w.WeekNumber >= CurrentWeek).ToList(); ShippingCompaniesCatalog = await CatalogService.RetrieveShippingCompanyCatalog(); ContractsCatalog = await CatalogService.RetrieveShippingCompanyCatalog(); ProductsCatalog = await CatalogService.RetrieveProductsCatalogByCustomerId(Customer.Id); DestinationPortsCatalog = await CatalogService.RetrieveDestinationPortCatalogByCustomerId(Customer.Id); GroupCode = $"{SelectedWeek:00}{Customer.Id}01"; StateHasChanged(); } public async Task OnShippingCompanyChange(Syncfusion.Blazor.DropDowns.ChangeEventArgs args) { var itemData = JsonConvert.DeserializeObject(args.ItemData != null ? args.ItemData.ToString() : ""); ShippingPortsCatalog = await CatalogService.RetrieveShippingPortCatalog(SelectedShippingCompany); SelectedShippingPort = string.Empty; StateHasChanged(); } private void OnSpotChange(Microsoft.AspNetCore.Components.ChangeEventArgs args) { //onChange Event triggered } private void ProductChange(@Syncfusion.Blazor.DropDowns.ChangeEventArgs args) { var product = ProductsCatalog.Where(p => p.Id == args.Value).FirstOrDefault(); ProductCode = product.Id; ProductPrice = Convert.ToDecimal(product.UnitPrice); BoxesPerContainer = product.BoxPerContainer; //Enabled = true; } private void OnBoxesChange(@Syncfusion.Blazor.Inputs.ChangeEventArgs args) { Containers = Boxes / BoxesPerContainer; } private void OnContainersChange(@Syncfusion.Blazor.Inputs.ChangeEventArgs args) { Boxes = Containers * BoxesPerContainer; } public void RowDataBoundHandler(RowDataBoundEventArgs args) { // Here you can customize your code } #region Spinner SfSpinner SpinnerObj; private string target { get; set; } = "#main-text"; void ShowSpinner() { SpinnerObj.ShowSpinner(target); } void HideSpinner() { SpinnerObj.HideSpinner(target); } #endregion }