# 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
