# US-MGN-004-006-001: Crear Factura de Proveedor (Draft) **RF Asociado:** [RF-MGN-004-006](../../02-modelado/requerimientos-funcionales/mgn-004/RF-MGN-004-006-gestión-de-facturas-de-proveedor.md) **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 --- ## Estimación: 9 horas = 5 SP --- ## Referencias - [RF-MGN-004-006](../../02-modelado/requerimientos-funcionales/mgn-004/RF-MGN-004-006-gestión-de-facturas-de-proveedor.md)