feat (sales): Normalización de OriginType con Enum en Sales Document #62
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
Normalizar el manejo de
OriginTypeen Sales Document usando un enum de negocio y persistencia semántica, eliminando ints mágicos en el flujo Core/Domain.Contexto funcional
La Story #60 dejó aplicado el flujo Core de Sales Document con persistencia de Coverage, DTOs Create/Summary/Detail, repositories, mappings Domain ↔ EF y validaciones mínimas.
Durante la revisión se detectó que
OriginTypetodavía estaba modelado comointen el request de detalle y luego se persistía conx.OriginType.ToString(). Ese comportamiento guardaba valores como"1","2"o"3", en lugar de códigos de negocio legibles y auditables como"QUOTE","DELIVERY_NOTE","CAPITA","MANUAL"o"ADJUSTMENT".Esta story pertenece al módulo Sales y prepara el modelo para trazabilidad, auditoría, cobertura mixta y futura homologación ARCA, sin implementar todavía emisión fiscal.
Alcance
Incluye:
SalesDocumentOriginType.DeliveryNotepara contemplar origen por remito de venta.SalesDocumentCreateDetailRequest.OriginTypedeintaSalesDocumentOriginType.OriginTypecomo código semántico, no como número.OriginTypeválido,OriginType,OriginIdyQuoteDetailId.OriginId/QuoteDetailIdpara líneas originadas en presupuesto cuando uno de los dos venga informado.ESalesDocumentDetail.OriginTypepara documentar los códigos esperados.Archivos modificados o creados:
Domain/Constants/SalesDocumentOriginType.csDomain/Constants/SalesDocumentOriginTypeExtensions.csDomain/Dtos/Sales/SalesDocumentCreateDetailRequest.csDomain/Entities/ESalesDocumentDetail.csCore/Services/SalesDocumentService.csFuera de alcance
No incluye:
Criterios de aceptación
✔
OriginTypedeja de serintcrudo enSalesDocumentCreateDetailRequest.✔ El Core valida que
OriginTypesea un valor definido del enum.✔ El Core persiste códigos semánticos como
QUOTE,DELIVERY_NOTE,CAPITA,MANUALoADJUSTMENT.✔ No se persisten valores como
"1","2"o"3".✔ No se modifican modelos EF generados por scaffold.
✔ No se modifica la estructura SQL.
✔ El patch aplica correctamente con
git apply --check.✔ El cambio queda acotado a Domain/Core, manteniendo la arquitectura Data → Domain → Core → API → UI.
Decisiones de diseño
SalesDocumentOriginTypepara respetar convenciones actuales del repo.SalesDocumentOriginTypeExtensions.ToStorageCode()en lugar de usarToString()directamente.DeliveryNotecomo origen posible para preparar el flujo futuro de facturación desde remitos.OriginTyperepresenta de dónde viene la línea.OriginIdrepresenta cuál es el registro origen.QuoteDetailIdmantiene trazabilidad granular cuando la línea viene de un detalle de presupuesto.Entregable esperado
.mddescargable..patchdescargable.Resultado de validación:
Build local no ejecutado en este entorno porque no está disponible el SDK
dotneten el contenedor de análisis.Branch sugerido
Commit sugerido