erp-core/docs/05-user-stories/mgn-004/US-MGN-004-006-001-crear-factura-proveedor-draft.md

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

Estimación: 9 horas = 5 SP


Referencias