# US-MMD001-004: Configurar Datos Fiscales

## Metadata

| Campo | Valor |
|-------|-------|
| **ID** | US-MMD001-004 |
| **Epica** | EPIC-MMD-001 - Fundamentos |
| **Modulo** | fundamentos |
| **Prioridad** | P0 |
| **Story Points** | 3 |
| **Sprint** | Sprint 1 |
| **Estado** | Backlog |
| **Asignado a** | Por asignar |

---

## Historia de Usuario

**Como** administrador del taller,
**quiero** configurar los datos fiscales de mi negocio (RFC, regimen fiscal, direccion fiscal),
**para** poder generar facturas electronicas validas ante el SAT.

## Descripcion Detallada

El taller debe poder registrar su informacion fiscal completa para cumplir con los requisitos de facturacion electronica CFDI 4.0 en Mexico. Esto incluye RFC, razon social, regimen fiscal y direccion fiscal.

---

## Criterios de Aceptacion

**Escenario 1: Configurar RFC y razon social**
```gherkin
DADO que estoy en la configuracion fiscal
CUANDO ingreso RFC "DME850101ABC" y razon social "Diesel Mecanica Express SA de CV"
ENTONCES el sistema valida el formato del RFC
Y guarda los datos correctamente
```

**Escenario 2: Validacion de RFC**
```gherkin
DADO que ingreso un RFC con formato invalido
CUANDO intento guardar
ENTONCES el sistema muestra error "RFC invalido"
Y no permite continuar
```

**Escenario 3: Seleccionar regimen fiscal**
```gherkin
DADO que configuro el regimen fiscal
CUANDO selecciono de la lista de regimenes SAT
  | Clave | Descripcion |
  | 601 | General de Ley Personas Morales |
  | 603 | Personas Morales con Fines no Lucrativos |
  | 612 | Personas Fisicas con Actividades Empresariales |
  | 621 | Incorporacion Fiscal |
ENTONCES el sistema registra el regimen seleccionado
```

**Escenario 4: Configurar direccion fiscal**
```gherkin
DADO que configuro la direccion fiscal
CUANDO completo los campos:
  | Campo | Valor |
  | Calle | Av. Industrial |
  | Numero Exterior | 1234 |
  | Colonia | Zona Industrial |
  | Codigo Postal | 64000 |
  | Ciudad | Monterrey |
  | Estado | Nuevo Leon |
ENTONCES el sistema valida el CP contra catalogo SAT
Y guarda la direccion completa
```

---

## Campos Requeridos

| Campo | Tipo | Requerido | Validacion |
|-------|------|-----------|------------|
| RFC | string(13) | Si | Formato RFC valido |
| Razon Social | string | Si | Min 5 caracteres |
| Regimen Fiscal | enum | Si | Catalogo SAT c_RegimenFiscal |
| Calle | string | Si | - |
| Numero Exterior | string | Si | - |
| Numero Interior | string | No | - |
| Colonia | string | Si | - |
| Codigo Postal | string(5) | Si | Catalogo SAT c_CodigoPostal |
| Municipio | string | Si | - |
| Estado | string | Si | Catalogo SAT c_Estado |
| Pais | string | Si | Default: MEX |

---

## Tareas Tecnicas

**Database:**
- [ ] DB-010: Agregar campos fiscales a tabla `workshops`
- [ ] DB-011: Cargar catalogo SAT c_RegimenFiscal

**Backend:**
- [ ] BE-013: Agregar validacion RFC con algoritmo
- [ ] BE-014: Endpoint PATCH /api/workshops/me/fiscal
- [ ] BE-015: Validar CP contra catalogo SAT

**Frontend:**
- [ ] FE-013: Crear FiscalDataForm component
- [ ] FE-014: Integrar selector de regimen fiscal
- [ ] FE-015: Validacion de RFC en tiempo real

---

## Dependencias

**Depende de:**
- [ ] US-MMD001-001: Configurar taller

**Bloquea:**
- [ ] EPIC-MME-007: Facturacion CFDI

---

## Definition of Done (DoD)

- [ ] Formulario de datos fiscales funcionando
- [ ] Validacion de RFC implementada
- [ ] Catalogos SAT cargados
- [ ] Tests pasando
- [ ] Datos guardados correctamente

---

**Creada por:** Requirements-Analyst
**Fecha:** 2025-12-06
