Saltar al contenido principal

Unidades de Obra (Escandallos)

El recurso /workunits gestiona las unidades de obra, partidas técnicas y artículos compuestos (escandallos) de BaseGes ERP.

A diferencia de un artículo simple, una unidad de obra está formada por una cabecera descriptiva y un conjunto de líneas de componentes (artículos simples, consumibles, materiales y horas de mano de obra). Los costes brutos y precios de venta de la unidad de obra se calculan dinámicamente a partir de la suma de sus componentes.

Seguridad

Requiere autorización mediante cabecera HTTP:

  • X-Api-Key: {tu_clave_api} o Authorization: Bearer {tu_token_jwt}

Resumen de Operaciones​

MétodoEndpointAcciónCuerpo de PeticiónCódigo Éxito
GET/workunitsListado paginado de unidades de obraNinguno200 OK
GET/workunits/{reference}Detalle con desglose de componentesNinguno200 OK
POST/workunitsAlta de partida con sus líneasJSON (CreateWorkUnitCommand)201 Created
PUT/workunits/{reference}Modificación completa de la partidaJSON (UpdateWorkUnitCommand)200 OK
PATCH/workunits/{reference}Modificación de datos de cabeceraJSON (PatchWorkUnitHeaderCommand)200 OK

1. Creación de una Unidad de Obra (POST)​

POST /workunits

Crea una partida técnica completa. Puede crearse vacía o directamente con todas sus líneas de descomposición.

Parámetros de la Cabecera​

CampoTipoObligatorioDescripción
referencestringSíCódigo único de la unidad de obra (ej. "UO-CUADRO-01").
descriptionstringSíDescripción técnica de la partida o trabajo a ejecutar.
familyCodestringNoCódigo de familia clasificatoria.
subfamilyCodestringNoCódigo de subfamilia.
groupCodestringNoCódigo de grupo.
salePricenumberNoPVP sugerido (si no se informa, se calcula por suma de líneas + margen).
linesarrayNoLista de componentes que componen el descompuesto.

Estructura de las Líneas de Componentes (lines)​

Campo en cada líneaTipoObligatorioDescripción
lineNumberintegerSíNúmero de orden correlativo (1, 2, 3...).
componentReferencestringSíReferencia de un artículo existente en el catálogo.
quantitynumberSíCantidad de unidades o metros necesarios.
costPricenumberNoCoste unitario del componente.
salePricenumberNoPrecio de venta repercutido del componente.

Ejemplo de Petición POST​

{
"reference": "PARTIDA-CUADRO-ELECTRICO",
"description": "Suministro e instalación de cuadro de protección secundario para nave industrial, compuesto por envolvente IP65, interruptor magnetotérmico general tetrapolar 40A, diferenciales y 4 horas de técnico montador.",
"familyCode": "03",
"lines": [
{
"lineNumber": 1,
"componentReference": "ENV-IP65-12M",
"quantity": 1,
"costPrice": 45.00,
"salePrice": 65.00
},
{
"lineNumber": 2,
"componentReference": "IGA-4P-40A",
"quantity": 1,
"costPrice": 38.50,
"salePrice": 52.00
},
{
"lineNumber": 3,
"componentReference": "MAN-HORA-OF1",
"quantity": 4,
"costPrice": 22.00,
"salePrice": 35.00
}
]
}

Respuestas HTTP​

  • 201 Created: Unidad de obra creada con éxito. Devuelve la referencia generada y el cálculo acumulado de costes.
  • 400 Bad Request: Datos incompletos o referencias de componentes inexistentes.
  • 409 Conflict: Ya existe una unidad de obra con la misma referencia.

2. Detalle de Unidad de Obra y Componentes (GET)​

GET /workunits/{reference}

Devuelve toda la ficha técnica de la partida con el listado completo de sus componentes desglosados para presupuestación o valoración de costes.