erp-core/docs/05-user-stories/mgn-002/US-MGN-002-001-001-crud-empresas.md

2.0 KiB

US-MGN-002-001-001: CRUD de Empresas (Companies)

RF Asociado: RF-MGN-002-001 Módulo: MGN-002 - Empresas y Organizaciones Epic: Gestión de Empresas Prioridad: P0 (MVP) Story Points: 5 Sprint: Sprint 3 Fecha: 2025-11-24


User Story

Como administrador, Quiero crear, listar, editar y desactivar empresas (companies), Para gestionar las organizaciones que operan dentro del tenant.


Criterios de Aceptación

Escenario 1: Crear empresa

Cuando creo empresa con nombre, RFC/NIT, dirección fiscal, Entonces empresa creada, disponible para operaciones.

Escenario 2: Listar empresas con jerarquía

Cuando listo empresas, Entonces veo estructura jerárquica (holding → subsidiarias).

Escenario 3: Editar empresa

Cuando actualizo datos fiscales o logo, Entonces cambios se aplican inmediatamente.

Escenario 4: Desactivar empresa

Cuando desactivo empresa con transacciones, Entonces empresa inactiva, transacciones históricas preservadas.


Reglas de Negocio

  • RN-1: Una empresa pertenece a un tenant
  • RN-2: Empresa puede ser holding (parent_company_id=null) o subsidiaria
  • RN-3: Soft delete: status='inactive'
  • RN-4: RFC/NIT único por tenant

Tareas Técnicas

Backend

  • POST /api/v1/companies - Crear
  • GET /api/v1/companies - Listar con jerarquía
  • PATCH /api/v1/companies/:id - Actualizar
  • DELETE /api/v1/companies/:id - Soft delete
  • CompaniesService.create/findAll/update/deactivate
  • Tests (10 casos)

Frontend

  • CompaniesListPage con árbol jerárquico
  • CompanyFormModal (crear/editar)
  • API client + tests

Estimación: 5 SP (9 horas)


Referencias