Saltar al contenido principal

Gestión de Centros de Costo

Cambio importante (mayo 2026): Esta guía describe el modelo nuevo de Centros de Costo (unidades organizacionales con responsable, departamento y jerarquía). Si lo que buscas es la matriz de partidas presupuestarias y códigos PDVSA, ve a Renglones Presupuestarios.

Guía operativa para crear, editar y gestionar centros de costo en el sistema.


Cómo acceder

  1. En el menú lateral, seleccione "Contabilidad".
  2. Haga clic en "Centros de Costo".
  3. Verá la vista de árbol o lista con los 22 CCs iniciales.

URL: /accounting/cost-centers Permisos requeridos: accounting:cost-centers:read (lectura), accounting:cost-centers:write (escritura).


Vista de Árbol vs. Vista de Lista

VistaDescripciónCuándo usarla
ÁrbolJerarquía visual padre-hijo con expansión por nivelPara entender la estructura organizacional completa
ListaTabla con filtros y búsquedaPara encontrar y editar un CC específico

Crear un Centro de Costo

Paso 1

En la vista de lista o árbol, haga clic en "+ Nuevo Centro de Costo".

Paso 2: Datos del Centro de Costo

CampoRequeridoDescripción
CódigoUNIQUE; máx. 20 caracteres (ej. CC-OPS-NORTE)
NombreNombre descriptivo (máx. 150 caracteres)
TipoPRODUCTIVE, ADMINISTRATIVE, SUPPORT, PROJECT
DepartamentoDepartamento al que pertenece (FK NOT NULL)
CC PadreCC del que cuelga en la jerarquía (opcional)
ResponsableEmpleado gerente del CC (opcional)
Vigente desdeDefault: fecha actual
Vigente hastaDefault: NULL (vigente sin fin)
EstadoACTIVE o INACTIVE

Paso 3: Guardar

El sistema calcula automáticamente:

  • level: profundidad en el árbol (parent.level + 1).
  • id: UUID generado.

Estructura Jerárquica

Los CCs se organizan en árbol con tantos niveles como necesite la organización. La jerarquía actual de ACE tiene 3 niveles:

Nivel 0 — Raíz organizacional
CC-DIR (Dirección Técnica)
CC-PLT (Planta)
CC-PROD (Producción)

Nivel 1 — Gerencia
CC-OPS (bajo CC-PROD), CC-MTO (bajo CC-DIR), CC-FIN, CC-RRHH, …

Nivel 2 — Áreas productivas
CC-OPS-POZOS, CC-OPS-ESTACIONES, CC-MTO-PLANTA, …

Reglas de la jerarquía

  • Un CC puede tener múltiples hijos.
  • parent_id != id (no se permite auto-referencia — enforced por CHECK constraint).
  • No se permiten ciclos (parent → … → self).
  • Los gastos pueden imputarse a CCs de cualquier nivel; los reportes consolidan saldos hacia los padres.

Departamento Asociado

Todo CC pertenece a un único departamento (department_id NOT NULL). Esto reemplaza la referencia circular previa donde Department.cost_center_id apuntaba al CC y al revés.

Mapeo inicial CC ↔ Departamento

DepartamentoCC asociado
DIR (Dirección Técnica)CC-DIR
PLT (Planta)CC-PLT
PROD (Producción)CC-PROD
OPS (Operaciones)CC-OPS, CC-OPS-POZOS, CC-OPS-ESTACIONES, CC-OPS-RECOLECCION
MTO (Mantenimiento)CC-MTO, CC-MTO-POZOS, CC-MTO-PLANTA, CC-MTO-FLOTA
YAC (Yacimientos)CC-YAC
COM, CONT, FIN, INF, LEG, LOG, PCP, PLAN, RRHH, SIHOA(uno cada uno)

Nota: Las migraciones M5/M9 crean automáticamente los departamentos PLT y PROD si no existían en bases preexistentes.


Editar un Centro de Costo

  1. En lista o árbol, localice el CC.
  2. Clic en lápiz (✏️).
  3. Modifique los campos.
  4. Guardar.

Limitaciones:

  • No puede cambiar el código de un CC con asientos contables asociados.
  • Cambiar el padre recalcula level automáticamente.

Activar / Desactivar un Centro de Costo

Un CC inactivo no aparece en selectores de nuevos asientos:

  1. Vaya al detalle del CC.
  2. Cambie Estado a INACTIVE.
  3. Guarde.

Esta es la forma de "retirar" un CC que ya tiene historial. La eliminación física sólo es posible si no tiene asientos, líneas presupuestarias ni hijos activos (validado por costCenterService.delete()).


Asignar un Responsable

El campo manager_id apunta a un empleado del módulo Empleados:

  1. Detalle del CC > Responsable.
  2. Seleccione un empleado activo.
  3. Guarde.

El responsable aparece en reportes de ejecución como contraparte para escalamientos y aprobaciones.


Reportes por Centro de Costo

Desde el detalle de un CC puede ver:

ReporteContenido
Asientos del períodoLíneas de journal_entry_lines filtradas por cost_center_id
Ejecución por renglónCruce CC × renglón presupuestario
Ejecución por área funcionalCruce CC × área funcional PDVSA
Comparativo históricoEvolución mes a mes
Árbol de hijosSi es CC padre, consolida saldos de descendientes

Asignar un CC en Otros Módulos

En Requisiciones

Al crear una requisición, el formulario obliga a seleccionar cost_center_id (responsable) además de budget_position_id (renglón). El selector usa CostCenterTreeSelector con árbol expandible.

En Órdenes de Compra

Hereda cost_center_id de la requisición; es editable hasta que la OC esté APROBADA.

En Asientos Contables (manuales)

El formulario de líneas de JE ofrece los 5 campos dimensionales. cost_center_id es obligatorio para cuentas EXPENSE y REVENUE. Ver Dimensiones Contables.

En Nómina

payrollService propaga cost_center_id desde el departamento del empleado al asiento de cierre del período (área funcional PER).


Permisos

AcciónPermiso
Ver CCsaccounting:cost-centers:read
Crear / editar / desactivaraccounting:cost-centers:write

Roles típicos:

RolPermisos
Super Admin*:*
Director Técnico`accounting:cost-centers:read
Gerente Finanzas`accounting:cost-centers:read
Contadoraccounting:cost-centers:read
Analistaaccounting:cost-centers:read

Preguntas Frecuentes

"¿Puedo eliminar un CC?"

Sólo si no tiene asientos, ni líneas presupuestarias, ni hijos activos. Si tiene historial, desactívelo (status=INACTIVE).

"¿Cuál es la diferencia entre Centro de Costo y Renglón Presupuestario?"

  • Centro de Costo: ¿quién es responsable? (organizacional, 22 unidades).
  • Renglón Presupuestario: ¿qué partida del presupuesto consume? (matriz PDVSA, 149 partidas).

Las dos dimensiones se cruzan libremente en cada asiento. Ver Dimensiones Contables.

"¿Por qué cambió la URL?"

La URL de los CCs reales pasó a /accounting/cost-centers. La URL antigua /cost-centers redirige (308) a /budget/positions durante un release porque ese path estaba realmente apuntando a los renglones presupuestarios.

"¿Puedo tener un CC sin padre?"

Sí. Los CCs raíz (level=0) no tienen padre. Hoy son CC-DIR, CC-PLT y CC-PROD.

"¿Cómo agrego un nuevo nivel jerárquico?"

Cree un CC nuevo seleccionando como CC Padre el nivel superior. El sistema calcula level automáticamente.