2.4 KiB
US-MGN-004-006-001: Crear Factura de Proveedor (Draft)
RF Asociado: RF-MGN-004-006 Módulo: MGN-004 - Financiero Básico Epic: Facturas de Proveedor Prioridad: P0 (MVP) Story Points: 5 Sprint: Sprint 11 Estado: Ready for Development Fecha: 2025-11-24
User Story
Como usuario de compras, Quiero crear facturas de proveedor en estado borrador, Para registrar compras a proveedores antes de validar y contabilizar.
Descripción Detallada
Factura de proveedor (in_invoice) registra una compra. Similar a factura cliente pero tipo='in_invoice', partner debe ser supplier, y al validar genera asiento con débito a gastos/inventario y crédito a cuentas por pagar.
Criterios de Aceptación
Escenario 1: Crear factura proveedor draft
Dado que soy usuario compras, Cuando creo factura con partner_id (supplier), invoice_date, vendor_reference, líneas, Entonces type='in_invoice', state='draft', totales calculados, número generado.
Escenario 2: Validar partner es proveedor
Dado que partner no es tipo "supplier", Cuando creo factura, Entonces error 400 "Partner debe ser tipo proveedor".
Escenario 3: Referencia del proveedor obligatoria
Dado que omito vendor_reference, Cuando creo factura, Entonces error 400 "Referencia del proveedor es obligatoria".
Reglas de Negocio
- RN-1: type='in_invoice' para facturas proveedor.
- RN-2: Partner debe ser supplier o both.
- RN-3: vendor_reference obligatorio (número factura del proveedor).
- RN-4: Estado inicial 'draft'.
- RN-5: Impuestos purchase o both.
- RN-6: RLS filtra por company_id.
Tareas Técnicas
Backend
- POST /api/v1/financial/vendor-invoices
- Service: VendorInvoiceService.create()
- DTO: CreateVendorInvoiceDto
- Validar partner supplier
- Validar vendor_reference required
- Unit tests (8 test cases)
- Integration tests (6 test cases)
Frontend
- CreateVendorInvoicePage.tsx
- CreateVendorInvoiceForm.tsx
- Campo: vendor_reference (required)
- E2E test