# US-MGN-008-003-002: Calcular Distribuciones Automáticas por Reglas

**RF Asociado:** [RF-MGN-008-003](../../02-modelado/requerimientos-funcionales/mgn-008/RF-MGN-008-003-distribución-analítica-multi-cuenta.md)
**Módulo:** MGN-008 - Contabilidad Analítica
**Epic:** Distribuciones Analíticas
**Prioridad:** P1
**Story Points:** 3
**Sprint:** Sprint 19
**Estado:** Ready for Development
**Fecha:** 2025-11-24

---

## User Story
**Como** contador, **Quiero** configurar reglas de distribución automática, **Para** asignar dimensiones sin intervención manual.

## Descripción Detallada
Reglas automáticas:
- Por cuenta contable: Cuenta 6.1.01 → siempre Dpto IT
- Por partner: Cliente ABC → siempre Proyecto A
- Por producto: Producto X → siempre Categoría Desarrollo

## Criterios de Aceptación

### Escenario 1: Regla por cuenta
**Dado que** cuenta 6.1.01 tiene regla "Dpto IT por defecto",
**Cuando** creo línea contable en 6.1.01 sin distribución,
**Entonces** sistema aplica Dpto IT (100%) automáticamente.

### Escenario 2: Múltiples reglas
**Dado que** cuenta tiene regla A (60%), regla B (40%),
**Cuando** creo línea,
**Entonces** sistema aplica ambas reglas automáticamente.

### Escenario 3: Sobrescribir regla manual
**Dado que** cuenta tiene regla automática,
**Cuando** especifico distribución manual diferente,
**Entonces** sistema usa la manual (ignora automática).

## Reglas de Negocio
- **RN-1:** Reglas se aplican si no hay distribución manual.
- **RN-2:** Reglas configurables por cuenta/partner/producto.
- **RN-3:** Suma de reglas automáticas debe ser 100%.

## Tareas Técnicas

### Backend
- [ ] Service: `AnalyticalRuleService.getApplicableRules(line)`
- [ ] Service: `AnalyticalRuleService.applyRules(line)`
- [ ] CRUD de reglas
- [ ] Unit tests

### Frontend
- [ ] Página: `AnalyticalRulesPage.tsx`
- [ ] Formulario de reglas
- [ ] Preview de reglas aplicadas

### Database
- [ ] Tabla: `analytics.rules` (trigger_type, trigger_id, account_id, percentage)

## Estimación Detallada
| Tarea | Horas |
|-------|-------|
| Backend | 1.5 |
| Frontend | 1 |
| Testing | 1 |
| **TOTAL** | **3.5 horas = 3 SP** |

## Definition of Done
- [ ] Reglas automáticas funcionan
- [ ] Tests >80%
- [ ] QA/PO aprobado

## Referencias
- [RF-MGN-008-003](../../02-modelado/requerimientos-funcionales/mgn-008/RF-MGN-008-003-distribución-analítica-multi-cuenta.md)
