@page "/deliverynotes" @using Domain.Dtos.Sales @using Domain.Generics @using phronCare.UIBlazor.Services.Sales.DeliveryNotes @inject NavigationManager Navigation @inject IDeliveryNoteService deliveryNoteService @inject IToastService toastService

Consulta de Remitos

@if (PagedDeliveryNotes?.Items?.Any() == true) { @foreach (var deliveryNote in PagedDeliveryNotes.Items) { } } else if (IsLoading) { } else { }
Remito Emisión Presupuesto Cliente Estado Observaciones Reimpresiones Acciones
@deliveryNote.DeliveryNoteNumber @deliveryNote.IssueDate.ToString("dd/MM/yyyy") @(string.IsNullOrWhiteSpace(deliveryNote.QuoteNumber) ? "—" : deliveryNote.QuoteNumber) @deliveryNote.CustomerName @deliveryNote.Status @(string.IsNullOrWhiteSpace(deliveryNote.Observations) ? "—" : deliveryNote.Observations) @deliveryNote.PrintCount
Cargando...
Sin resultados
Página @Filters.Page de @TotalPaginas
@code { private DeliveryNoteSearchParams Filters = new() { PageSize = 10 }; private PagedResult? PagedDeliveryNotes; private bool IsLoading; private int PaginaDeseada = 1; private async Task Search() { try { IsLoading = true; PagedDeliveryNotes = await deliveryNoteService.SearchAsync(Filters); PaginaDeseada = Filters.Page; } catch (Exception ex) { toastService.ShowError(ex.Message); } finally { IsLoading = false; } } private async Task PrimeraPagina() { Filters.Page = 1; await Search(); } private async Task UltimaPagina() { Filters.Page = TotalPaginas; await Search(); } private async Task SiguientePagina() => await CambiarPagina(1); private async Task AnteriorPagina() => await CambiarPagina(-1); private async Task CambiarPagina(int delta) { var nuevaPagina = Filters.Page + delta; if (nuevaPagina >= 1 && nuevaPagina <= TotalPaginas) { Filters.Page = nuevaPagina; await Search(); } } private async Task IrAPagina() { if (PaginaDeseada >= 1 && PaginaDeseada <= TotalPaginas) { Filters.Page = PaginaDeseada; await Search(); } else { toastService.ShowWarning("Número de página fuera de rango."); } } private bool PuedeRetroceder => PagedDeliveryNotes != null && Filters.Page > 1; private bool PuedeAvanzar => PagedDeliveryNotes != null && Filters.Page < TotalPaginas; private int TotalPaginas => PagedDeliveryNotes is null ? 1 : (int)Math.Ceiling((double)(PagedDeliveryNotes.TotalItems) / Filters.PageSize); private void Create() { toastService.ShowInfo("La creación de remitos se implementará en una próxima story."); } private void OnClear() { Filters = new DeliveryNoteSearchParams { PageSize = 10 }; PagedDeliveryNotes = null; PaginaDeseada = 1; } private string GetStatusBadge(string status) => status switch { "Anulado" => "bg-danger text-white", "Emitido" => "bg-primary text-white", "Aprobado" => "bg-success", "Cerrado" => "bg-dark text-white", _ => "bg-light text-dark" }; private void ViewDetail(int id) { toastService.ShowInfo($"El detalle del remito {id} se implementará en una próxima story."); } private void ExportarExcel() { toastService.ShowInfo("La exportación a Excel se implementará en una próxima story."); } }