Compare commits

..

2 Commits

Author SHA1 Message Date
bfff69fb47 Merge pull request 'feat(sales): enable excel export button in DeliveryNotes UI' (#49) from feature/leandro/48-deliverynote-excel-export-ui into master
All checks were successful
CI/CD Pipeline / Build and Deploy with Docker Compose (push) Successful in 2m16s
Reviewed-on: http://saludlab.com.ar:3000/leandro/phronCare/pulls/49
2026-03-27 23:57:32 +00:00
49f5a259a0 feat(sales): enable excel export button in DeliveryNotes UI
All checks were successful
CI/CD Pipeline / Build and Deploy with Docker Compose (pull_request) Successful in 9m14s
Closes #48
2026-03-27 20:57:08 -03:00
3 changed files with 36 additions and 2 deletions

View File

@ -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}");
}
} }
} }

View File

@ -2,6 +2,8 @@ using Domain.Dtos.Sales;
using Domain.Generics; using Domain.Generics;
using Microsoft.JSInterop; using Microsoft.JSInterop;
using System.Net.Http.Json; using System.Net.Http.Json;
using System.Text;
using System.Text.Json;
namespace phronCare.UIBlazor.Services.Sales.DeliveryNotes namespace phronCare.UIBlazor.Services.Sales.DeliveryNotes
{ {
@ -121,5 +123,25 @@ namespace phronCare.UIBlazor.Services.Sales.DeliveryNotes
throw new Exception($"ExportPdfAsync: {ex.Message}", ex); 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);
}
} }
} }

View File

@ -11,5 +11,6 @@ namespace phronCare.UIBlazor.Services.Sales.DeliveryNotes
Task<IEnumerable<DeliveryNoteDto>> GetByQuoteIdAsync(int quoteId); Task<IEnumerable<DeliveryNoteDto>> GetByQuoteIdAsync(int quoteId);
Task<DeliveryNoteCreateResponse> CreateAndIssueAsync(DeliveryNoteCreateRequest request); Task<DeliveryNoteCreateResponse> CreateAndIssueAsync(DeliveryNoteCreateRequest request);
Task ExportPdfAsync(int deliveryNoteId, string deliveryNoteNumber); Task ExportPdfAsync(int deliveryNoteId, string deliveryNoteNumber);
Task ExportFilteredAsync(DeliveryNoteSearchParams searchParams);
} }
} }