# Artículos



# Añadir artículos

Con esta función, es posible llevar a cabo la creación de códigos internos, los cuales se utilizan como referencias de componente dentro del sistema.

NOTA:
- Si se pasa el encapsulado se requerirá el tipo de este. De lo contrario no se podrá añadir el encapsulado.
- Los tipos de ecapsulado disponibles son SMD o THT exclusivamente.
- Los encapsulados requieren el campo Encapsulado y el Tipo. La descripción es opcional, pero es mejor añadirla para dar contexto al usuario desde la aplicación.
### URL
`/CTNEAT/ITEM/ADD/{tkn}`
### Método HTTP

<span style="background-color: RGB(22,216,80); color: white; font-weight: bold; padding: 8px;">POST</span>


### Parámetros de la solicitud

| Nombre del parámetro | Tipo de dato | Descripción del parámetro | Obligatorio | Posibles valores |
| -------------------- | ------------ | ------------------------ | ----------- | ----------- |
|   ITEMCODE               |  cadena      |    Código interno del artículo  |       Sí      | Cualquiera |
|   DESCRIPTION               |  cadena      |    Descripción del artículo |       No      | Cualquiera |
|   CODETYPE               |  cadena      |    Código del formato del artículo |       Sí      | <span style="color:blue">[Ver posibles valores](https://docs.ctneat.com/link/60#bkmrk-page-title)</span> |
|   PACKAGE               |  cadena      |    Descripción del artículo |       No      | Cualquiera |
|   PACKAGETYPE               |  cadena      |    Descripción del artículo |       Sí, solo si añadimos el parámetro PACKAGE | SOLO aceptamos los valores: SMD o THT |
|   PACKAGEDESCRIPTION   |  cadena    |  Descripción del encapsulado |       No      | Cualquiera (preferiblemente se debería adjuntar una descripción si el encapsulado no forma parte del sistema.) |

### Encabezados de la solicitud

| Nombre del encabezado | Descripción del encabezado | Obligatorio |
| --------------------- | -------------------------- | ----------- |
|     Content-Type                  |        Tipo de contenido de la solicitud                    |    Sí         |

### Cuerpo de la solicitud

Formato del cuerpo de la solicitud: application/json

Descripción del cuerpo de la solicitud:
```json
{ 
  "ITEMCODE":"CODIGO_PN",
  "DESCRIPTION":"DESCRIPCION_CODIGO_PN",
  "CODETYPE":"CODETYPE",
  "PACKAGE":"ENCAPSULADO",
  "PACKAGETYPE":"TIPO ENCAPSULADO",
  "PACKAGEDESCRIPTION":"DESCRIPCIÓN ENCAPSULADO",
}
```

### Parámetros de la respuesta

| Nombre del parámetro | Tipo de dato | Descripción del parámetro |Formato|
| -------------------- | ------------ | ------------------------ | ------------------------ |
|        ErrorContent              |      JSON        |       Json con la descripción del resultado de la operación                   | <span style="color:blue">[Formato ErrorContent](https://docs.ctneat.com/link/64#bkmrk-elementos-de-errorco)</span> |

### Códigos de estado de la respuesta

| Código de estado | Descripción del código de estado | Posibles razones |
| ---------------- | -------------------------------- | ---------------- |
|     200             |            OK                      |     La solicitud fue exitosa             |
|     400             |            Petición errónea                      |     	Alguno de los parámetros pasados no es correcto             |
|     500             |            Error interno                      |     	Error en el servidor             |
|     401             |            Unauthorized                      |     	El usuario no está autenticado             |

###  Ejemplo de consulta
`http://ctincoming/CTNEAT/ITEM/ADD/6A201F1F5147079FF9CA80DCDBB032AB386905091BC973B53F50E6493EC53868`
```json
{ 
  "ITEMCODE":"CODIGO_PN",
  "DESCRIPTION":"DESCRIPCION_CODIGO_PN",
  "CODETYPE":2,
  "PACKAGE":"0805",
  "PACKAGETYPE":"SMD",
  "PACKAGEDESCRIPTION":"DESCRIPCIÓN ENCAPSULADO SMD",
}
```
### Ejemplo de respuesta
```json
{ "Success":true, "fault":{ "faultcode":"none", "faultstring":"Item code added", "detail":"Item code: CODIGO_PN successfully added" } }
```

# Modificar artículos

Mediante esta función, se puede llevar a cabo la modificación de un componente en el sistema. Es importante tener en cuenta que únicamente se pueden modificar la descripción y el formato del código de artículo, entre otros, pero no el código del componente en sí.

NOTA:
- Si se pasa el encapsulado se requerirá el tipo de este. De lo contrario no se podrá añadir el encapsulado.
- Los tipos de ecapsulado disponibles son SMD o THT exclusivamente.
- Los encapsulados requieren el campo Encapsulado y el Tipo. La descripción es opcional, pero es mejor añadirla para dar contexto al usuario desde la aplicación.

### URL
`/CTNEAT/ITEM/MODIF/{tkn}`
### Método HTTP

<span style="background-color: RGB(247,140,58); color: white; font-weight: bold; padding: 8px;">PUT</span>


### Parámetros de la solicitud

| Nombre del parámetro | Tipo de dato | Descripción del parámetro | Obligatorio | Posibles valores |
| -------------------- | ------------ | ------------------------ | ----------- | ----------- |
|   ITEMCODE               |  cadena      |    Código interno del artículo  |       Sí      | Cualquiera |
|   DESCRIPTION               |  cadena      |    Descripción del artículo |       No      | Cualquiera |
|   CODETYPE               |  numérico      |    Código del formato del artículo |       Sí      | <span style="color:blue">[Ver posibles valores](https://docs.ctneat.com/link/60#bkmrk-page-title)</span> |
|   PACKAGE               |  cadena      |    Descripción del artículo |       No      | Cualquiera |
|   PACKAGETYPE               |  cadena      |    Descripción del artículo |       Sí, solo si añadimos el parámetro PACKAGE | SOLO aceptamos los valores: SMD o THT |
|   PACKAGEDESCRIPTION   |  cadena    |  Descripción del encapsulado |       No      | Cualquiera (preferiblemente se debería adjuntar una descripción si el encapsulado no forma parte del sistema.) |

### Encabezados de la solicitud

| Nombre del encabezado | Descripción del encabezado | Obligatorio |
| --------------------- | -------------------------- | ----------- |
|     Content-Type                  |        Tipo de contenido de la solicitud                    |    Sí         |

### Cuerpo de la solicitud

Formato del cuerpo de la solicitud: application/json

Descripción del cuerpo de la solicitud:
```json
{ 
  "ITEMCODE":"CODIGO_PN",
  "DESCRIPTION":"DESCRIPCION_CODIGO_PN",
  "CODETYPE":"CODETYPE",
  "PACKAGE":"ENCAPSULADO",
  "PACKAGETYPE":"TIPO ENCAPSULADO",
  "PACKAGEDESCRIPTION":"DESCRIPCIÓN ENCAPSULADO",
}
```

### Parámetros de la respuesta

| Nombre del parámetro | Tipo de dato | Descripción del parámetro |Formato|
| -------------------- | ------------ | ------------------------ | ------------------------ |
|        ErrorContent              |      JSON        |       Json con la descripción del resultado de la operación                   | <span style="color:blue">[Formato ErrorContent](https://docs.ctneat.com/link/64#bkmrk-elementos-de-errorco)</span> |

### Códigos de estado de la respuesta

| Código de estado | Descripción del código de estado | Posibles razones |
| ---------------- | -------------------------------- | ---------------- |
|     200             |            OK                      |     La solicitud fue exitosa             |
|     400             |            Petición errónea                      |     	Alguno de los parámetros pasados no es correcto             |
|     500             |            Error interno                      |     	Error en el servidor             |
|     401             |            Unauthorized                      |     	El usuario no está autenticado             |

###  Ejemplo de consulta
`http://ctincoming/CTNEAT/ITEM/MODIF/6A201F1F5147079FF9CA80DCDBB032AB386905091BC973B53F50E6493EC53868`
```json
{ 
  "ITEMCODE":"CODIGO_PN",
  "DESCRIPTION":"MODIF_DESCRIPCION_CODIGO_PN",
  "CODETYPE":2,
  "PACKAGE":"0805",
  "PACKAGETYPE":"SMD",
  "PACKAGEDESCRIPTION":"DESCRIPCIÓN ENCAPSULADO SMD",
}
```
### Ejemplo de respuesta
```json
{ "Success":true, "fault":{ "faultcode":"none", "faultstring":"Item code modified", "detail":"Item code: CODIGO_PN successfully modified" } }
```

# Leer artículos

Con esta función, se tiene la capacidad de leer los componentes que han sido registrados en el sistema. Es importante destacar que se puede proporcionar el código del artículo que se desea leer a través de un argumento de URL query. En caso de no especificar este código, se llevará a cabo la lectura de todos los componentes del sistema.
### URL
`/CTNEAT/ITEM/READ/{tkn}`
### Método HTTP

<span style="background-color: RGB(49,213,254); color: white; font-weight: bold; padding: 8px;">GET</span>


### Parámetros de la solicitud

| Nombre del parámetro | Tipo de dato | Descripción del parámetro | Obligatorio | Posibles valores |
| -------------------- | ------------ | ------------------------ | ----------- | ----------- |
|   ITEMCODE               |  cadena      |    Código interno del artículo  |       No (Si el código de artículo no se especifica, la API devolverá todos los artículos del sistema)      | Cualquiera |
|   LASTDATE               |  cadena      |    Fecha  |      No (Si no se especifica, se leerán todos los artículos del sistema. Si se especifica el valor, se mostrarán todos los registros entre la introducida y la actual. En cambio, si el valor introducido no se corresponde con el formato adecuado, no se realizará la búsqueda por fecha)      | Cualquiera en formato YYYYMMDDHHMMSS |

### Encabezados de la solicitud

| Nombre del encabezado | Descripción del encabezado | Obligatorio |
| --------------------- | -------------------------- | ----------- |

### Cuerpo de la solicitud

No se requiere un cuerpo de solicitud para este método HTTP.

### Parámetros de la respuesta

| Nombre del parámetro | Tipo de dato | Descripción del parámetro |
| -------------------- | ------------ | ------------------------ |
|        Result              |      JSON        |       Json con la descripción del resultado de la operación                   |
##### Elementos de Result
- Result.NRecords: Valor numérico que indica el número de registros en la matriz Result.Data.
- Result.Data: Matriz que contiene uno o más objetos (Cantidad de registrios leídos).
- Result.Data[x].ItemCode: Representa el código del ítem.
- Result.Data[x].Type: Representa el tipo del ítem.
- Result.Data[x].Format: Representa el formato del ítem.
- Result.Data[x].QTY: Representa la cantidad existente del ítem.
- Result.Data[x].ActCont: Representa el número de contenedores activos del ítem.

### Códigos de estado de la respuesta

| Código de estado | Descripción del código de estado | Posibles razones |
| ---------------- | -------------------------------- | ---------------- |
|     200             |            OK                      |     La solicitud fue exitosa             |
|     400             |            Petición errónea                      |     	Alguno de los parámetros pasados no es correcto             |
|     500             |            Error interno                      |     	Error en el servidor             |
|     401             |            Unauthorized                      |     	El usuario no está autenticado             |

###  Ejemplo de consulta
`http://ctincoming/ITEM/READ/693DDFEC2F4BFDDEAF04DD2724984C9B3CA89D553DD8E5B9BB233AD6BB6075F1?ITEMCODE=CODIGO_PN`
### Ejemplo de respuesta
```json
{ 
  "NRecords":1, 
  "Data":[ 
    { 
      "ItemCode":"CODIGO_PN", 
      "Description":"MODIF_DESCRIPCION_CODIGO_PN", 
      "Type":"REEL", 
      "Format":"H08S", 
      "QTY":0, 
      "ActCont":0 
    } 
  ] 
}
```