# US-MGN-003-006-001: Gestión de Condiciones de Pago (Payment Terms)

**RF Asociado:** [RF-MGN-003-006](../../02-modelado/requerimientos-funcionales/mgn-003/RF-MGN-003-006-condiciones-de-pago-payment-terms.md)
**Módulo:** MGN-003 - Catálogos Maestros
**Epic:** Configuración Financiera
**Prioridad:** P0 (MVP)
**Story Points:** 5
**Sprint:** Sprint 6
**Fecha:** 2025-11-24

---

## User Story

**Como** administrador,
**Quiero** definir condiciones de pago (inmediato, 30 días, 60/90 días, etc.),
**Para** calcular fechas de vencimiento automáticamente en facturas.

---

## Criterios de Aceptación

### Escenario 1: Condición de pago simple
**Cuando** creo payment term "30 días neto",
**Entonces** facturas con este término vencen 30 días después de fecha factura.

### Escenario 2: Condición con múltiples plazos
**Cuando** creo "50% inmediato, 50% a 30 días",
**Entonces** factura genera 2 líneas de vencimiento.

### Escenario 3: Descuento por pronto pago
**Cuando** configuro "2% descuento si paga en 10 días, neto 30",
**Entonces** sistema calcula descuento si pago antes de 10 días.

---

## Reglas de Negocio

- **RN-1:** Payment term puede tener múltiples líneas (plazos)
- **RN-2:** Cada línea: % monto, días de plazo, descuento opcional
- **RN-3:** Sistema calcula due_date = invoice_date + días

---

## Tareas Técnicas

- [ ] CRUD de payment terms
- [ ] Tabla: master.payment_term_lines
- [ ] Función: calculateDueDates(invoiceDate, paymentTerm)
- [ ] Seed data: términos comunes
- [ ] Tests

---

## Estimación: 5 SP

---

## Referencias

- [RF-MGN-003-006](../../02-modelado/requerimientos-funcionales/mgn-003/RF-MGN-003-006-condiciones-de-pago-payment-terms.md)
