> ## 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.

# Componentes de fases en órdenes de producción A3ERP

> Consulta los componentes de una fase de producción y añade nuevos componentes a fases de órdenes de producción en A3ERP desde la API.

Los componentes son los materiales o artículos que se consumen en cada fase de producción para fabricar el artículo acabado. Estos endpoints te permiten consultar los componentes asignados a una fase concreta y añadir nuevos componentes directamente desde la API, especificando si son componentes finales o intermedios.

***

## Consultar los componentes de una fase

Devuelve todos los componentes asignados a una fase específica de un producto dentro de una orden de producción.

```http theme={null}
GET /api/ordenproduccion/componente/idprod/{idprod}/producto/{idlinp}/fase/{fase}
```

**Ejemplo:** `/api/ordenproduccion/componente/idprod/10100/producto/12111/fase/BA`

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

<ParamField path="idlinp" type="string" required>
  Identificador de la línea de producción del producto (`idlinp`).
</ParamField>

<ParamField path="fase" type="string" required>
  Código identificador de la fase (p. ej. `BA`, `PP`). No confundir con `idfase`, que es el identificador numérico.
</ParamField>

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

<Note>
  El parámetro `fase` es el código alfanumérico de la fase (p. ej. `BA`), **no** el identificador numérico `idfase`.
</Note>

**Campos de respuesta:**

<ResponseField name="idprod" type="integer">Identificador de la orden de producción.</ResponseField>
<ResponseField name="idlinp" type="integer">Identificador de la línea del componente.</ResponseField>
<ResponseField name="idpadre" type="integer">Identificador de la línea padre.</ResponseField>
<ResponseField name="codalmcon" type="string">Código del almacén de consumo (ajustado a 8 caracteres).</ResponseField>
<ResponseField name="codalmfab" type="string">Código del almacén de fabricación (ajustado a 8 caracteres).</ResponseField>
<ResponseField name="codemp" type="string">Código del empleado asignado.</ResponseField>
<ResponseField name="nombre" type="string">Nombre del empleado asignado.</ResponseField>
<ResponseField name="codmaq" type="string">Código de la máquina asignada.</ResponseField>
<ResponseField name="descmaq" type="string">Descripción de la máquina asignada.</ResponseField>
<ResponseField name="descartc" type="string">Descripción del artículo componente.</ResponseField>
<ResponseField name="descartp" type="string">Descripción del artículo padre.</ResponseField>
<ResponseField name="fase" type="string">Código de la fase.</ResponseField>
<ResponseField name="idfase" type="integer">Identificador numérico de la fase.</ResponseField>
<ResponseField name="nomfase" type="string">Nombre de la fase.</ResponseField>
<ResponseField name="perfilmaq" type="string">Perfil de la máquina asignada.</ResponseField>
<ResponseField name="descperfilm" type="string">Descripción del perfil de máquina.</ResponseField>
<ResponseField name="perfilper" type="string">Perfil del operario asignado.</ResponseField>
<ResponseField name="descperfilp" type="string">Descripción del perfil del operario.</ResponseField>
<ResponseField name="prcmedio" type="integer">Precio medio del componente.</ResponseField>
<ResponseField name="unidadesp" type="integer">Unidades previstas a consumir.</ResponseField>
<ResponseField name="situacion" type="string">Situación del componente.</ResponseField>
<ResponseField name="terminado" type="string">Indica si el componente está terminado.</ResponseField>
<ResponseField name="terminadoc" type="string">Fecha de terminación del consumo.</ResponseField>
<ResponseField name="terminadof" type="string">Fecha de terminación de la fabricación.</ResponseField>
<ResponseField name="texto" type="string">Texto libre asociado al componente.</ResponseField>
<ResponseField name="unidadesa" type="integer">Unidades anuladas.</ResponseField>
<ResponseField name="unidadesf" type="integer">Unidades fabricadas.</ResponseField>
<ResponseField name="unidadesc" type="integer">Unidades consumidas.</ResponseField>
<ResponseField name="uniheredadas" type="integer">Unidades heredadas.</ResponseField>

**Ejemplo de respuesta:**

```json theme={null}
{
  "idprod": 1,
  "idlinp": 1,
  "idpadre": 1,
  "codalmcon": "text",
  "codalmfab": "text",
  "codemp": "text",
  "nombre": "text",
  "codmaq": "text",
  "descmaq": "text",
  "descartc": "text",
  "descartp": "text",
  "fase": "text",
  "idfase": 1,
  "nomfase": "text",
  "perfilmaq": "text",
  "descperfilm": "text",
  "perfilper": "text",
  "descperfilp": "text",
  "prcmedio": 1,
  "unidadesp": 1,
  "situacion": "text",
  "terminado": "text",
  "terminadoc": "text",
  "terminadof": "text",
  "texto": "text",
  "unidadesa": 1,
  "unidadesf": 1,
  "unidadesc": 1,
  "uniheredadas": 1
}
```

***

## Añadir un componente a una fase

Crea un nuevo componente dentro de una fase de un producto en la orden de producción indicada.

```http theme={null}
POST /api/ordenproduccion/componente/idprod/{idprod}/codartp/{codartp}/fase/{fase}/codart/{codart}/unidades/{unidades}/{final}
```

**Ejemplo:** `/api/ordenproduccion/componente/idprod/10109/codartp/30/fase/BA/codart/23/unidades/5/T`

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

<ParamField path="codartp" type="string" required>
  Código del artículo del producto acabado dentro del cual se encuentra la fase. Es el código del artículo padre, no el `idlinp`.
</ParamField>

<ParamField path="fase" type="string" required>
  Código identificador de la fase (p. ej. `BA`). No confundir con `idfase`, que es el identificador numérico.
</ParamField>

<ParamField path="codart" type="string" required>
  Código del artículo componente que se añade a la fase.
</ParamField>

<ParamField path="unidades" type="string" required>
  Número de unidades del componente a asignar en la fase.
</ParamField>

<ParamField path="final" type="string" required>
  Indica si el componente es final o no. Valores posibles: `T` (es componente final) o `F` (no es componente final).
</ParamField>

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

<Note>
  El parámetro `fase` debe ser el código alfanumérico de la fase (p. ej. `BA`), **no** el identificador numérico `idfase`. Utiliza la consulta de fases de la orden para obtener los códigos disponibles.
</Note>
