Áreas Funcionales
Acceso al Módulo
Menú principal: Contabilidad > Áreas Funcionales
Permisos requeridos: accounting:functional-areas:read (lectura), accounting:functional-areas:write (escritura)
Ruta API: /api/accounting/functional-areas
¿Qué son las Áreas Funcionales?
Las Áreas Funcionales son un clasificador normalizado que responde a la pregunta:
"¿Cómo se reporta este flujo a PDVSA?"
Cada área funcional representa una actividad operativa del upstream petrolero (levantamiento, mantenimiento, recolección, etc.) según el catálogo PDVSA. Son una de las 5 dimensiones contables que cualquier línea de un asiento puede llevar — ver Dimensiones Contables.
Hasta el Sub-proyecto 1 (mayo 2026) este clasificador estaba mezclado dentro de cost_centers como columnas pdvsa_code / pdvsa_description. Se extrajo a una tabla independiente para:
- Eliminar duplicados mayúsculas/minúsculas (
atinvsATIN,inprvsINPR, …). - Normalizar descripciones y categorías.
- Permitir filtros independientes en reportes (un mismo CC puede consumir varias áreas funcionales).
Estructura del Modelo
| Campo | Tipo | Descripción |
|---|---|---|
id | UUID | PK |
code | VARCHAR(10) UNIQUE | Código corto PDVSA (LEV, MEP, INPR, …) |
name | VARCHAR(100) | Nombre corto |
description | TEXT | Descripción normalizada |
category | ENUM | UPSTREAM_OPERATIONS, MAINTENANCE, ADMINISTRATIVE, SUPPORT |
pdvsa_external_ref | VARCHAR(20) | Referencia opcional al catálogo PDVSA externo |
status | ENUM | ACTIVE / INACTIVE |
Catálogo Inicial — 26 Áreas Funcionales
El sistema arranca con 26 áreas distribuidas en 4 categorías:
UPSTREAM_OPERATIONS (10)
| Código | Nombre | Descripción |
|---|---|---|
LEV | Levantamiento | Levantamiento artificial de hidrocarburos |
LRTR | Lev/Reacondicionamiento | Levantamiento y reacondicionamiento de pozos |
SGL | Sistema Gas Lift | Sistema de levantamiento por gas |
SCT | Servicio Pozo CT | Servicios a pozo con coiled tubing |
SST | Servicio Pozo ST | Servicios a pozo con slick tubing |
RCT | RARC CT | Reacondicionamiento con coiled tubing |
RST | RARC ST | Reacondicionamiento con slick tubing |
INPR | Inversión en Producción | Inversiones de capital en producción |
REC | Recolección | Recolección de crudo en campo |
TTT | Tratamiento | Tratamiento de crudo en estación |
MAINTENANCE (6)
| Código | Nombre | Descripción |
|---|---|---|
MEP | Mantenimiento Estaciones | Mantenimiento de estaciones de flujo |
MCT | Mantenimiento Calentadores | Mantenimiento de calentadores |
MTQ | Mantenimiento Tanques | Mantenimiento de tanques de almacenamiento |
OLT | Oleoductos y Líneas | Mantenimiento de líneas de proceso/oleoductos |
EQPS | Equipos | Mantenimiento general de equipos |
VEH | Vehículos | Mantenimiento de flota vehicular |
SUPPORT (6)
| Código | Nombre | Descripción |
|---|---|---|
SHA | SIHA-O | Seguridad, Higiene y Ambiente Operativo |
PTIN | Protección Integral | Protección integral / seguridad física |
CCT | CCTV | Sistemas de circuito cerrado de TV |
SSG | Sistemas de Seguridad | Sistemas de seguridad operacional |
SIF | Sistemas Informáticos | Sistemas de información |
ATIN | Asistencia Técnica | Asistencia técnica especializada |
ADMINISTRATIVE (4)
| Código | Nombre | Descripción |
|---|---|---|
ADM | Administrativo | Gastos administrativos generales |
PER | Personal | Gastos de personal |
POL | Patrimoniales | Gastos patrimoniales |
CUGS | Costos y Gastos | Costos y gastos generales |
Dónde se usa el functional_area_id
| Tabla | Uso |
|---|---|
journal_entry_lines | Dimensión contable por línea de asiento |
budget_positions | Cada renglón presupuestario pertenece a un área funcional (FK NOT NULL) |
budget_lines | Para reportes de ejecución por área |
budget_commitments | Para control presupuestario por área |
afe_expenses | Imputación AFE a área funcional |
Inferencia automática
Al crear una línea de asiento, si se proporciona budget_position_id pero no functional_area_id, el servicio journalEntryService.create() copia bp.functional_area_id automáticamente. Ver Dimensiones Contables.
Operaciones disponibles
| Operación | Endpoint | Permiso |
|---|---|---|
| Listar todas | GET /api/accounting/functional-areas | :read |
| Detalle | GET /api/accounting/functional-areas/:id | :read |
| Crear | POST /api/accounting/functional-areas | :write |
| Editar | PUT /api/accounting/functional-areas/:id | :write |
| Eliminar / Desactivar | DELETE /api/accounting/functional-areas/:id | :write |
| Filtrar por categoría | GET /api/accounting/functional-areas/by-category/:category | :read |
Crear un área funcional
- Navegar a Contabilidad > Áreas Funcionales.
- Hacer clic en + Nueva Área Funcional.
- Capturar
code(UNIQUE, máx 10 caracteres),name,description,category. - Opcional:
pdvsa_external_refpara referencia al catálogo PDVSA externo. - Guardar.
Validaciones de negocio
codees UNIQUE y se almacena en mayúsculas — el sistema convierte automáticamente en upsert.- No se puede eliminar un área que tenga asientos contables, líneas presupuestarias o renglones asociados.
- Desactivar un área (
status=INACTIVE) la oculta de selectores pero preserva el histórico.
Marco legal y reglas de negocio
- PDVSA no impone públicamente un Plan Único de Cuentas a contratistas o empresas mixtas; los códigos PDVSA son convención contractual.
- ACE adopta este catálogo para conciliar reportes operacionales con contratistas/clientes que sí lo exigen.
- El catálogo es abierto: puede agregarse, editarse o desactivar áreas conforme cambien los contratos o la operación.