Expose Sales Document Application API Endpoints #64
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
Exponer oficialmente el módulo Sales Document desde la capa API de PhronCare, permitiendo crear, consultar detalle y listar documentos comerciales internos de venta mediante endpoints consumibles desde Swagger y futuras pantallas UI.
Contexto funcional
El módulo Sales Document ya cuenta con persistencia, contratos Domain, DTOs, enums, Coverage, repositories, mappings Domain ↔ EF y flujo Core funcional.
Las stories previas dejaron implementada la base de datos y el flujo de aplicación, pero todavía faltaba cerrar la capa:
Esta story publica el Core existente sin incorporar UI, workflow fiscal, impresión ni exportación.
Alcance
Incluye los siguientes cambios:
SalesDocumentControlleren la estructura real de controllers de ventas.POST /api/SalesDocumentpara crear un Sales Document usandoSalesDocumentCreateRequest.GET /api/SalesDocument/{id}para obtener el detalle completo usandoSalesDocumentDto.GET /api/SalesDocument/searchpara browse paginado usandoPagedResult<SalesDocumentSummaryDto>.ISalesDocumentDomyIPhSSalesDocumentRepository.PhSSalesDocumentRepositorycon filtros simples compatibles con patrones existentes.ISalesDocumentDom,SalesDocumentService,IPhSSalesDocumentRepositoryyPhSSalesDocumentRepositoryenProgram.cs.OriginTypecompatible con storage legacy: enum en request create, string storage code en persisted detail DTO.Endpoints incorporados:
Filtros mínimos del browse:
customerIdcustomerTextquoteIddocumentTypestatusissueDateFromissueDateTopagepageSizeFuera de alcance
No incluye:
Criterios de aceptación
✔ El controller compila dentro de la estructura API existente.
✔ Swagger expone
SalesDocumentControllersin conflictos de schemas nuevos.✔
POST /api/SalesDocumentconsumeSalesDocumentCreateRequesty devuelve el documento creado.✔
GET /api/SalesDocument/{id}devuelve cabecera, details y coverage.✔
GET /api/SalesDocument/searchdevuelvePagedResult<SalesDocumentSummaryDto>.✔ El browse aplica orden descendente por fecha de emisión e ID.
✔ DI queda registrado sin duplicar registros previos.
✔ No se modifican modelos EF generados por scaffold.
✔ Se preserva compatibilidad de
OriginTypecon storage legacy.✔ No se incorporan dependencias nuevas.
✔ No se rompe el flujo Core existente.
Decisiones de diseño
[Route("api/[controller]")],[ApiController],ActionResult<T>,try/catchy mensajes conMethodBase.CreatedAtActionconSalesDocumentDtocompleto para facilitar consumo desde Swagger/UI.GET search, alineado conQuoteControlleryDeliveryNoteController.PagedResult<T>ya existente.SalesDocumentOriginTypeen create detail.Entregable esperado
Archivos creados o modificados:
Patch esperado:
Branch sugerido:
Commit sugerido: