erp-core/docs/04-modelado/requerimientos-funcionales/mgn-002/RF-MGN-002-002-configuracion-empresa.md

5.0 KiB

RF-MGN-002-002: Configuración de Empresa

Módulo: MGN-002 - Empresas y Organizaciones Prioridad: P0 (MVP) Story Points: 5 Estado: Definido Fecha: 2025-11-23

Descripción

El sistema debe permitir configurar parámetros operativos y contables de cada empresa, como cuentas contables por defecto, journals, términos de pago, almacenes, y configuraciones de módulos.

Actores

  • Actor Principal: Administrador de Empresa
  • Actores Secundarios: Contador (configura cuentas contables)

Precondiciones

  1. Empresa debe estar creada (RF-MGN-002-001)
  2. Plan de cuentas debe estar definido (MGN-004)
  3. Usuario debe tener permisos de administración de empresa

Flujo Principal

  1. Administrador accede a Configuración de Empresa
  2. Administrador configura parámetros contables:
    • Cuenta de ingresos por defecto
    • Cuenta de egresos por defecto
    • Cuenta de banco principal
    • Journal de ventas, compras, banco, misceláneos
  3. Administrador configura parámetros operativos:
    • Términos de pago por defecto (ej: 30 días)
    • Almacén principal
    • Prefijos de documentos (SO-, PO-, INV-)
    • Zona horaria
    • Idioma por defecto
  4. Administrador configura módulos habilitados:
    • ¿Usar inventario? (true/false)
    • ¿Usar proyectos? (true/false)
    • ¿Usar CRM? (true/false)
  5. Sistema valida configuración
  6. Sistema guarda en core.company_settings
  7. Configuración se aplica a nuevos documentos

Flujos Alternativos

FA-1: Configuración de Facturación Electrónica

  1. Si país requiere facturación electrónica (ej: México CFDI)
  2. Administrador configura credenciales de PAC
  3. Administrador configura certificados (CSD)
  4. Sistema valida credenciales con PAC
  5. Facturación electrónica queda habilitada

FA-2: Configuración de Multi-Moneda

  1. Administrador habilita multi-moneda
  2. Administrador selecciona monedas adicionales permitidas
  3. Sistema configura tasas de cambio (MGN-003)
  4. Documentos pueden crearse en múltiples monedas

FA-3: Plantillas de Documentos

  1. Administrador personaliza plantillas de documentos
  2. Administrador sube plantilla PDF para facturas/cotizaciones
  3. Sistema valida formato (HTML + CSS o PDF template)
  4. Plantilla se usa en generación de PDFs

FA-4: Configuración Inválida

  1. Si administrador configura cuenta contable inexistente
  2. Sistema retorna error 400: "Cuenta contable no encontrada"

Reglas de Negocio

  • RN-1: Configuración es por empresa (multi-empresa independiente)
  • RN-2: Cuentas contables por defecto deben existir en plan de cuentas
  • RN-3: Almacén principal debe existir en core.warehouses
  • RN-4: Prefijos de documentos deben ser únicos por empresa
  • RN-5: Zona horaria afecta fechas de documentos y reportes
  • RN-6: Idioma por defecto aplica a emails y documentos
  • RN-7: Configuración de módulos controla funcionalidades visibles

Criterios de Aceptación

  • Administrador puede configurar cuentas contables por defecto
  • Administrador puede configurar journals por defecto
  • Administrador puede configurar términos de pago por defecto
  • Administrador puede configurar almacén principal
  • Administrador puede personalizar prefijos de documentos
  • Administrador puede configurar zona horaria e idioma
  • Administrador puede habilitar/deshabilitar módulos
  • Sistema valida que cuentas y almacenes existan
  • Configuración se aplica a nuevos documentos
  • Cambios de configuración son inmediatos

Entidades Involucradas

  • Principales:
    • core.company_settings (configuración por empresa)
    • core.companies (empresa propietaria)
  • Relacionadas:
    • financial.accounts (cuentas contables)
    • financial.journals (journals)
    • inventory.warehouses (almacén principal)

Referencias

Notas Técnicas

  • Patrón Odoo: res.company (campos de configuración)
  • Almacenamiento: JSON en core.company_settings.settings_json
  • Ejemplo Settings JSON:
    {
      "accounting": {
        "default_income_account_id": 123,
        "default_expense_account_id": 124,
        "sales_journal_id": 1,
        "purchase_journal_id": 2
      },
      "operations": {
        "default_payment_term": "30 days",
        "default_warehouse_id": 1,
        "document_prefixes": {"SO": "SO-", "PO": "PO-"}
      },
      "regional": {
        "timezone": "America/Mexico_City",
        "language": "es_MX"
      },
      "modules": {
        "use_inventory": true,
        "use_projects": true,
        "use_crm": false
      }
    }
    
  • Backend: NestJS CompanySettingsService
  • Frontend: Formulario con tabs por categoría

Dependencias

  • RF Dependientes:
    • RF-MGN-002-001 (Gestión de Empresas)
    • RF-MGN-004-001 (Plan de Cuentas)
  • Bloqueante para: Módulos transaccionales (usan configuración de empresa)