@page "/stock/productdivisions" @using phronCare.UIBlazor.Services.Stock @using Domain.Entities @using Domain.Generics @inject IToastService toastService @inject NavigationManager Navigation @inject ProductDivisionService productDivisionService

Divisiones de productos


@if (Tabla != null && Tabla.Any()) { } else {

No hay resultados.

}
@code { private PagedResult? Resultado; private List> Tabla = new(); private List Columnas = new() { "Id", "Codigo", "Nombre", "Descripción" }; private ProductDivisionSearchParams SearchParams = new() { PageSize = 10 }; private List Botones; private int PaginaDeseada = 1; protected override void OnInitialized() { Botones = new List { new PhTable.ButtonOptions { Caption = "Editar", ElementClass = "btn btn-primary btn-sm", UrlAction = "/stock/productdivisionform/", OnClickAction = async (id) => { Navigation.NavigateTo($"/stock/productdivisionform/{id}"); } } }; } private async Task Buscar() { SearchParams.Page = 1; await CargarPaginaActual(); } private async Task CargarPaginaActual() { Resultado = await productDivisionService.SearchAsync(SearchParams); if (Resultado?.Items != null) { Tabla = Resultado.Items.Select(d => new Dictionary { { "Id", d.Id }, { "Codigo", d.Code ?? string.Empty }, { "Nombre", d.Name ?? string.Empty }, { "Descripción", d.Description ?? string.Empty } }).ToList(); } } private async Task PrimeraPagina() { SearchParams.Page = 1; await CargarPaginaActual(); } private async Task UltimaPagina() { SearchParams.Page = TotalPaginas; await CargarPaginaActual(); } private async Task SiguientePagina() => await CambiarPagina(1); private async Task AnteriorPagina() => await CambiarPagina(-1); private async Task CambiarPagina(int delta) { var nuevaPagina = SearchParams.Page + delta; if (nuevaPagina >= 1 && nuevaPagina <= TotalPaginas) { SearchParams.Page = nuevaPagina; await CargarPaginaActual(); } } private int TotalPaginas => Resultado == null || Resultado.TotalItems == 0 ? 1 : (int)Math.Ceiling((double)(Resultado.TotalItems) / SearchParams.PageSize); private async Task IrAPagina() { if (PaginaDeseada >= 1 && PaginaDeseada <= TotalPaginas) { SearchParams.Page = PaginaDeseada; await Buscar(); } else { toastService.ShowWarning("Número de página fuera de rango."); } } private void Nuevo() => Navigation.NavigateTo("/stock/productdivisionform/"); private void Volver() => Navigation.NavigateTo("/DashboardPanel"); private bool PuedeRetroceder => Resultado != null && SearchParams.Page > 1; private bool PuedeAvanzar => Resultado != null && SearchParams.Page < TotalPaginas; // private int TotalPaginas => Resultado is null ? 1 : // (int)Math.Ceiling((double)(Resultado.TotalItems) / SearchParams.PageSize); }