> ## Documentation Index
> Fetch the complete documentation index at: https://a3erpapi.appcloud.es/llms.txt
> Use this file to discover all available pages before exploring further.

# Trabajos en órdenes de producción A3ERP: guía API

> Consulta, abre, cierra, añade y elimina trabajos dentro de órdenes de producción de A3ERP. Los trabajos agrupan fabricaciones por periodo o motivo.

Los trabajos son agrupaciones de fabricaciones dentro de una orden de producción, organizadas por periodo, turno o motivo. Permiten controlar el estado de la producción de forma granular, pudiendo abrir o cerrar cada trabajo de forma independiente. Estos endpoints te dan control total sobre el ciclo de vida de los trabajos de una orden.

***

## Consultar los trabajos de una orden

Devuelve todos los trabajos asociados a la orden de producción indicada.

```http theme={null}
GET /api/ordenproduccion/trabajo/idprod/{idprod}
```

**Ejemplo:** `/api/ordenproduccion/trabajo/idprod/10100`

<ParamField path="idprod" type="string" required>
  Identificador de la orden de producción.
</ParamField>

<ParamField header="Authorization" type="string" required>
  Bearer + JWT\_token
</ParamField>

**Campos de respuesta:**

<ResponseField name="idprod" type="integer">Identificador de la orden de producción.</ResponseField>
<ResponseField name="idtrab" type="integer">Identificador del trabajo.</ResponseField>
<ResponseField name="motivo" type="string">Motivo o descripción del trabajo.</ResponseField>
<ResponseField name="situacion" type="string">Estado del trabajo. `F` = cerrado, `S` = abierto.</ResponseField>
<ResponseField name="tipostock" type="string">Tipo de stock del trabajo. Puede ser `P` (trabajo en curso) o `S` (estándar).</ResponseField>
<ResponseField name="fechaini" type="string">Fecha de inicio del trabajo.</ResponseField>
<ResponseField name="fechafin" type="string">Fecha de fin del trabajo.</ResponseField>

**Ejemplo de respuesta:**

```json theme={null}
{
  "idprod": 1,
  "idtrab": 1,
  "motivo": "text",
  "situacion": "text",
  "tipostock": "text",
  "fechaini": "text",
  "fechafin": "text"
}
```

***

## Abrir un trabajo

Cambia el estado del trabajo indicado a abierto, permitiendo registrar nuevas fabricaciones en él.

```http theme={null}
GET /api/ordenproduccion/Trabajo/abrir/idprod/{idprod}/idtrab/{idtrab}
```

**Ejemplo:** `/api/ordenproduccion/Trabajo/abrir/idprod/10100/idtrab/1`

<ParamField path="idprod" type="string" required>
  Identificador de la orden de producción.
</ParamField>

<ParamField path="idtrab" type="string" required>
  Identificador del trabajo a abrir.
</ParamField>

<ParamField header="Authorization" type="string" required>
  Bearer + JWT\_token
</ParamField>

**Respuesta exitosa:**

```
Se ha abierto el trabajo de la orden de producción {idprod}
```

***

## Cerrar un trabajo

Cambia el estado del trabajo indicado a cerrado, impidiendo nuevas fabricaciones en él.

```http theme={null}
GET /api/ordenproduccion/Trabajo/cerrar/idprod/{idprod}/idtrab/{idtrab}
```

**Ejemplo:** `/api/ordenproduccion/Trabajo/cerrar/idprod/10100/idtrab/1`

<ParamField path="idprod" type="string" required>
  Identificador de la orden de producción.
</ParamField>

<ParamField path="idtrab" type="string" required>
  Identificador del trabajo a cerrar.
</ParamField>

<ParamField header="Authorization" type="string" required>
  Bearer + JWT\_token
</ParamField>

**Respuesta exitosa:**

```
Se ha cerrado el trabajo de la orden de producción {idprod}
```

***

## Añadir un trabajo a una orden

Crea un nuevo trabajo dentro de la orden de producción indicada, con una fecha de inicio y un motivo.

```http theme={null}
POST /api/ordenproduccion/Trabajo/idprod/{idprod}/fechaini/{fechaini}/motivo/{motivo}
```

**Ejemplo:** `/api/ordenproduccion/Trabajo/idprod/10100/fechaini/20221018/motivo/trabajo becarios`

<ParamField path="idprod" type="string" required>
  Identificador de la orden de producción a la que se añade el trabajo.
</ParamField>

<ParamField path="fechaini" type="string" required>
  Fecha de inicio del trabajo en formato `YYYYMMDD` (p. ej. `20221018`).
</ParamField>

<ParamField path="motivo" type="string" required>
  Motivo o descripción que identifica el trabajo (p. ej. `trabajo becarios`).
</ParamField>

<ParamField header="Authorization" type="string" required>
  Bearer + JWT\_token
</ParamField>

**Respuesta exitosa:**

```json theme={null}
{
  "idTrab": "text"
}
```

***

## Eliminar un trabajo

Elimina el trabajo indicado de la orden de producción.

```http theme={null}
DELETE /api/ordenproduccion/Trabajo/idprod/{idprod}/idtrab/{idtrab}
```

**Ejemplo:** `/api/ordenproduccion/Trabajo/idprod/10100/idtrab/1`

<ParamField path="idprod" type="string" required>
  Identificador de la orden de producción.
</ParamField>

<ParamField path="idtrab" type="string" required>
  Identificador del trabajo a eliminar.
</ParamField>

<ParamField header="Authorization" type="string" required>
  Bearer + JWT\_token
</ParamField>

<Warning>
  La eliminación de un trabajo es irreversible. Asegúrate de que el trabajo no tenga fabricaciones asociadas antes de eliminarlo.
</Warning>
