feat(sales): exportación Excel de Delivery Notes con snapshot clínico #46
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Objetivo
Implementar la exportación a Excel del módulo Sales → Delivery Note reutilizando el patrón existente en Quotes y Expeditions, incluyendo el snapshot clínico (
ExtrainfoJson) desnormalizado a columnas de negocio.Contexto funcional
El módulo Delivery Note ya cuenta con:
ExtrainfoJson)/deliverynotes) con filtros y grillaActualmente el botón de exportación Excel está visible pero no implementado.
En el sistema ya existe un patrón consolidado de exportación Excel en:
Este patrón:
XLSXExportBase(EPPlus)saveAsFileDefinición funcional clave
El snapshot clínico (
ExtrainfoJson) proviene del presupuesto (Quote) y para esta versión (Biodec) contiene:Este snapshot debe incluirse en el Excel, pero desnormalizado a columnas, no como JSON.
Alcance
Esta story incluye:
IDeliveryNoteDomCoreSearchAsyncdel repositorioExtrainfoJsony mapearlo a columnasPOST /api/deliverynote/exportfilteredDeliveryNotes.razorColumnas del Excel
Fuera de alcance
ExtrainfoJson)Criterios de aceptación
✔ El botón Excel ejecuta la exportación real
✔ Se respetan los filtros de búsqueda
✔ Se exportan todos los resultados filtrados
✔ El archivo se genera en backend usando
XLSXExportBase✔ La descarga se realiza con
saveAsFile✔ El Excel contiene una fila por Delivery Note
✔ El snapshot clínico se muestra en columnas separadas (no JSON)
✔ No se crean DTOs nuevos
✔ No se modifican modelos EF generados
✔ Código compila sin errores
✔ Exportación funciona con y sin resultados
✔ Mensajes al usuario en español
Decisiones de diseño
XLSXExportBase(EPPlus)ExtrainfoJsonse parsea en Core y se expone en columnas:Page = 1PageSize = int.MaxValueFlujo técnico
UI → API → Core → XLSXExportBase → API File → UI saveAsFile
Plan de implementación (bottom-up)
Data
Domain
Core
IDeliveryNoteDomTask<byte[]> ExportFilteredToExcelAsync(DeliveryNoteSearchParams searchParams)DeliveryNoteServiceExtrainfoJsonXLSXExportBaseAPI
DeliveryNoteControllerPOST /api/deliverynote/exportfilteredUI Services
IDeliveryNoteServiceExportFilteredAsyncDeliveryNoteServicesaveAsFileUI
DeliveryNotes.razorExportToExcel()Page = 1PageSize = int.MaxValueArchivos impactados
Core:
API:
UI:
Entregable esperado
Exportación Excel funcional desde la pantalla de Delivery Notes, consistente con Quotes y Expeditions, incluyendo snapshot clínico en columnas de negocio.
Próxima story sugerida
feat(sales): exportación Excel detallada de Delivery Notes por ítems