Estructura Jerárquica de Líneas en Presupuestos
En BaseGes ERP, los presupuestos pueden organizarse en estructuras jerárquicas con varios niveles de profundidad. La propiedad lines permite anidar líneas dentro de otras líneas de forma recursiva.
1. Tipos de Elementos del Árbol
| Tipo | Sinónimos Admitidos | Nivel en BaseGes | Descripción |
|---|---|---|---|
Category (4) | Partida, Capitulo, Hoja | Nivel 1 (Pestaña / Hoja) | Contenedor principal del presupuesto. Corresponde a una pestaña del F1Book en BaseGes. |
Subcategory (2) | Subpartida, Subcategoria | Niveles 2 al 5 | Agrupador jerárquico dentro de una partida. Admite hasta 4 niveles de anidación. |
Workunit (1) | UnidadObra, UO | Nivel de Ejecución | Unidad de obra compuesta por líneas técnicas de descomposición (materiales y mano de obra). |
Product (0) | Articulo, Producto | Línea de Material | Artículo de catálogo o genérico con precio, coste y cantidad. |
Text (3) | Texto | Línea Descriptiva | Texto explicativo libre. Puede incluir importe e impuesto si es facturable. |
Flexibilidad en el Nombre del Tipo
El campo type admite tanto el código numérico como el texto en inglés o castellano (es insensible a mayúsculas, minúsculas y tildes).
2. Deducción Automática de Tipos (Campo Opcional)
El campo type es completamente opcional. Si se omite o es null, el motor de la API deduce automáticamente la naturaleza del nodo según su posición y propiedades:
- Líneas sueltas en la raíz (sin partidas):
Si una integración envía una lista plana de artículos o textos directamente enlines, la API los agrupa automáticamente dentro de una partida por defecto llamada"Partida 1". - Línea en la raíz con hijas (
lines):
Se deduce comoCategory(Partida / Capítulo principal). - Línea con hijas dentro de una partida o subpartida:
Se deduce comoSubcategory(Subpartida). - Línea hija dentro de una Unidad de Obra:
Se deduce como componente técnico de descomposición. - Línea sin hijas con código, precio, coste o cantidad:
Se deduce comoProduct(Artículo). - Línea sin hijas únicamente con descripción:
Se deduce comoText(Texto descriptivo).
3. Ejemplo Completo de Payload Jerárquico
A continuación se muestra un ejemplo de presupuesto con Partida principal, Subpartida, Artículo y Texto descriptivo:
- JSON Payload
- cURL
{
"customerCode": "CLI-00120",
"projectCode": "OBRA-2026-01",
"date": "2026-10-23",
"observations": "Presupuesto para reforma integral de oficinas",
"lines": [
{
"type": "Category",
"description": "Capítulo 1: Instalaciones Eléctricas",
"lines": [
{
"type": "Subcategory",
"description": "Subpartida: Cuadro General y Distribución",
"lines": [
{
"type": "Product",
"code": "CBL-001-AZ",
"description": "Cable Manguera 3G 2.5mm",
"quantity": 150,
"price": 1.55,
"cost": 0.95
},
{
"type": "Product",
"code": "PIA-16A-1P",
"description": "Interruptor magnetotérmico 1P+N 16A",
"quantity": 8,
"price": 12.40,
"cost": 7.20
}
]
},
{
"type": "Text",
"description": "Nota: Se incluye certificado de instalación eléctrica conforme a normativa REBT."
}
]
}
]
}
curl -X POST "http://localhost:5000/budgets" \
-H "Content-Type: application/json" \
-H "X-Api-Key: tu-api-key" \
-d @presupuesto.json