feat(sales): enable excel export button in DeliveryNotes UI #49
@ -269,8 +269,19 @@
|
||||
}
|
||||
}
|
||||
|
||||
private void ExportarExcel()
|
||||
private async Task ExportarExcel()
|
||||
{
|
||||
toastService.ShowInfo("La exportación a Excel se implementará en una próxima story.");
|
||||
Filters.Page = 1;
|
||||
Filters.PageSize = int.MaxValue; // Exportar todos los resultados
|
||||
|
||||
try
|
||||
{
|
||||
await deliveryNoteService.ExportFilteredAsync(Filters);
|
||||
toastService.ShowSuccess("Exportación completada.");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
toastService.ShowError($"Error: {ex.Message}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,6 +2,8 @@ using Domain.Dtos.Sales;
|
||||
using Domain.Generics;
|
||||
using Microsoft.JSInterop;
|
||||
using System.Net.Http.Json;
|
||||
using System.Text;
|
||||
using System.Text.Json;
|
||||
|
||||
namespace phronCare.UIBlazor.Services.Sales.DeliveryNotes
|
||||
{
|
||||
@ -121,5 +123,25 @@ namespace phronCare.UIBlazor.Services.Sales.DeliveryNotes
|
||||
throw new Exception($"ExportPdfAsync: {ex.Message}", ex);
|
||||
}
|
||||
}
|
||||
|
||||
public async Task ExportFilteredAsync(DeliveryNoteSearchParams searchParams)
|
||||
{
|
||||
var content = new StringContent(JsonSerializer.Serialize(searchParams), Encoding.UTF8, "application/json");
|
||||
var response = await _http.PostAsync("/api/deliverynote/exportfiltered", content);
|
||||
|
||||
if (!response.IsSuccessStatusCode)
|
||||
{
|
||||
var serverMessage = await response.Content.ReadAsStringAsync();
|
||||
throw new Exception(string.IsNullOrWhiteSpace(serverMessage)
|
||||
? "No se pudo exportar el Excel de remitos."
|
||||
: serverMessage);
|
||||
}
|
||||
|
||||
var bytes = await response.Content.ReadAsByteArrayAsync();
|
||||
var base64 = Convert.ToBase64String(bytes);
|
||||
var fileName = $"{DateTime.Now:yyyyMMddHHmm}_deliverynotes.xlsx";
|
||||
|
||||
await _js.InvokeVoidAsync("saveAsFile", fileName, base64);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -11,5 +11,6 @@ namespace phronCare.UIBlazor.Services.Sales.DeliveryNotes
|
||||
Task<IEnumerable<DeliveryNoteDto>> GetByQuoteIdAsync(int quoteId);
|
||||
Task<DeliveryNoteCreateResponse> CreateAndIssueAsync(DeliveryNoteCreateRequest request);
|
||||
Task ExportPdfAsync(int deliveryNoteId, string deliveryNoteNumber);
|
||||
Task ExportFilteredAsync(DeliveryNoteSearchParams searchParams);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user