@page "/sales/customers" @using phronCare.UIBlazor.Services.Sales @using phronCare.UIBlazor.Data @using Domain.Entities @using Domain.Generics @inject NavigationManager Navigation @inject CustomerHttpService CustomerService

Listado de clientes

@* wtf? *@
@*

Buscar Clientes

*@
@if (TablaClientes != null && TablaClientes.Any()) {
Página @SearchParams.Page de @TotalPaginas
} else {

No hay resultados.

}
@code { private CustomerSearchParams SearchParams = new(); private PagedResult? PagedResult; private List> TablaClientes = new(); private List TableColumns = new() { "Id", "Nombre", "Activo", "Crédito", "Límite", "Email", "Teléfono", "Dirección", "Documento" }; private async Task BuscarClientes() { SearchParams.Page = 1; await CargarClientes(); } private async Task CargarClientes() { PagedResult = await CustomerService.SearchCustomersAsync(SearchParams); TablaClientes = PagedResult.Items.Select(c => { var addr = c.PhSCustomerAddresses.FirstOrDefault(); var doc = c.PhSCustomerDocuments.FirstOrDefault(); return new Dictionary { { "Id", c.Id }, { "Nombre", c.Name ?? string.Empty }, { "Activo", c.Active ? "Sí" : "No" }, { "Crédito", c.HasCreditAccount ? "Sí" : "No" }, { "Límite", c.CreditLimit }, { "Email", addr?.Email ?? "" }, { "Teléfono", addr?.Phonenumber ?? "" }, { "Dirección", $"{addr?.Streetaddress1} {addr?.Streetaddress2}, {addr?.City}, {addr?.Postalcode}, {addr?.Country}" }, { "Documento", $"{doc?.Documenttypes} | {doc?.DocumentNumber}" } }; }).ToList(); } 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 CargarClientes(); } } private async Task XSLXExportar() { // string endpoint = "/api/Ticket/ExportDashboardDetail"; // var response = await _httpClient.PostAsJsonAsync(endpoint, new { Param1 = Group, Param2 = "ASC" }); // response.EnsureSuccessStatusCode(); // var fileBytes = await response.Content.ReadAsByteArrayAsync(); // var currentDate = DateTime.Now.ToString("ddMMyyyyhhmmss"); // var filename = $"Tickets_{Group}_{currentDate}.xlsx"; // await js.InvokeAsync("saveAsFile", filename, Convert.ToBase64String(fileBytes)); } private int TotalPaginas => PagedResult is null ? 1 : (int)Math.Ceiling((double)(PagedResult.TotalItems) / SearchParams.PageSize); private bool PuedeAvanzar => PagedResult != null && SearchParams.Page < TotalPaginas; private bool PuedeRetroceder => PagedResult != null && SearchParams.Page > 1; public void Cancel() { Navigation.NavigateTo("/DashboardPanel"); } }