All checks were successful
CI/CD Pipeline / Build and Deploy with Docker Compose (pull_request) Successful in 26m7s
166 lines
3.1 KiB
Markdown
166 lines
3.1 KiB
Markdown
# PhronCare — Story #74: Sales Document Draft Review & Validation
|
|
|
|
## Objetivo
|
|
|
|
Incorporar una etapa formal de revisión administrativa para Sales Documents en estado Draft antes de su futura utilización en procesos de facturación fiscal.
|
|
|
|
La story debe permitir revisar, completar, validar y aprobar un documento comercial sin realizar ninguna emisión fiscal.
|
|
|
|
---
|
|
|
|
## Contexto funcional
|
|
|
|
Actualmente:
|
|
|
|
Delivery Note
|
|
↓
|
|
Sales Document
|
|
|
|
El documento se crea correctamente y queda almacenado con estado Draft.
|
|
|
|
Sin embargo:
|
|
|
|
- no existe una pantalla de revisión;
|
|
- no existe un proceso formal de validación;
|
|
- no existe una separación clara entre creación y aprobación;
|
|
- el usuario no puede revisar fácilmente la información antes de continuar el circuito comercial.
|
|
|
|
Antes de implementar integración ARCA se requiere formalizar esta etapa.
|
|
|
|
---
|
|
|
|
## Alcance
|
|
|
|
### Domain
|
|
|
|
Incorporar DTOs específicos para revisión y validación:
|
|
|
|
- SalesDocumentDraftPreviewDto
|
|
- SalesDocumentDraftReviewDto
|
|
- SalesDocumentDraftValidationDto
|
|
|
|
### Core
|
|
|
|
Extender SalesDocumentService para:
|
|
|
|
- Obtener preview completo.
|
|
- Actualizar información editable del draft.
|
|
- Validar draft.
|
|
- Cambiar estado Draft → Validated.
|
|
|
|
### Data
|
|
|
|
- Extender repositorios existentes.
|
|
- No crear nuevas tablas.
|
|
- No modificar modelos scaffold.
|
|
- Reutilizar PhS_SalesDocuments como fuente de verdad.
|
|
|
|
### API
|
|
|
|
Agregar endpoints:
|
|
|
|
GET /api/SalesDocument/{id}/draft-preview
|
|
PUT /api/SalesDocument/{id}/draft-review
|
|
POST /api/SalesDocument/{id}/validate
|
|
|
|
### UI BackOffice
|
|
|
|
Nueva pantalla:
|
|
|
|
SalesDocumentReview.razor
|
|
|
|
Ruta:
|
|
|
|
/salesdocuments/{id}/review
|
|
|
|
Debe mostrar:
|
|
|
|
- Cabecera del documento
|
|
- Estado
|
|
- Remitos origen
|
|
- Cliente
|
|
- Bill To Customer
|
|
- Coverage
|
|
- Items
|
|
- Importes
|
|
- Observaciones
|
|
|
|
Permitir:
|
|
|
|
- Guardar revisión
|
|
- Validar documento
|
|
|
|
---
|
|
|
|
## Reglas de negocio
|
|
|
|
Un documento podrá validarse únicamente si:
|
|
|
|
- Tiene detalles.
|
|
- Tiene importes válidos.
|
|
- Posee cliente asignado.
|
|
- Permanece en estado Draft.
|
|
|
|
Una vez validado:
|
|
|
|
Draft → Validated
|
|
|
|
No podrá modificarse mediante la pantalla de revisión.
|
|
|
|
---
|
|
|
|
## Fuera de alcance
|
|
|
|
- ARCA
|
|
- AFIP
|
|
- CAE
|
|
- WSFE
|
|
- Numeración fiscal
|
|
- Factura A/B/C
|
|
- Cálculo IVA
|
|
- Condición fiscal
|
|
- Notas de crédito
|
|
- Notas de débito
|
|
- PDF fiscal
|
|
|
|
---
|
|
|
|
## Criterios de aceptación
|
|
|
|
- Se puede visualizar un Draft completo.
|
|
- Se puede revisar un Draft.
|
|
- Se puede guardar la revisión.
|
|
- Se puede validar un Draft.
|
|
- El estado cambia a Validated.
|
|
- No se modifican modelos EF generados.
|
|
- Se mantienen contratos existentes.
|
|
- Compila correctamente.
|
|
|
|
---
|
|
|
|
## Decisiones de diseño
|
|
|
|
- Sales Document continúa siendo la entidad principal.
|
|
- No se crea entidad SalesDocumentDraft.
|
|
- El concepto Draft se representa mediante Status.
|
|
- La revisión administrativa se implementa como workflow sobre el documento existente.
|
|
- La futura emisión fiscal se implementará en una story posterior.
|
|
|
|
---
|
|
|
|
## Entregable esperado
|
|
|
|
- Domain/*
|
|
- Core/*
|
|
- Models/*
|
|
- API/*
|
|
- UIBlazor/Pages/Sales/SalesDocuments/SalesDocumentReview.razor
|
|
|
|
### Branch sugerido
|
|
|
|
feature/leandro/74-sales-document-draft-review
|
|
|
|
### Commit sugerido
|
|
|
|
feat(sales): add sales document draft review and validation close #74
|