# UID



# Añadir UID

Con esta función se puede agregar un nuevo contenedor al sistema. Si no se especifica un número de identificación única del contenedor (UID), el sistema automáticamente asignará el siguiente UID disponible.
### URL
`/CTNEAT/UID/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 | Formato del valor |
| -------------------- | ------------ | ------------------------ | ----------- | ----------- |
|   ITEMCODE               |  cadena      |    Código interno del artículo |       Sí      | -  | 
|   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> |
|   UID               |  cadena      |    Código único del contenedor |       No       | - |
|   REMQTY               |  numérico      |    Cantidad restante del contenedor |       No      | - |
|   INITQTY               |  numérico      |    Cantidad inicial del contenedor |       No      | - |
|   DATECODE               |  numérico      |    DATECODE del contenedor |       No      | YYWW |
|   LOTNUMBER               |  cadena      |    Número de lote del contenedor |       No      | - |
|   MPARTNUMBER               |  cadena      |    Part Number del fabricante |       No      | - |
|   SPARTNUMBER               |  cadena      |    Part Number del proveedor |       No      | - |
|   ORDERNUMBER               |  cadena      |    Número del pedido del contenedor |       No      | - |
|   ORDERLINE               |  numérico      |    Número de línea del pedido del contenedor|       No      | - |
|   DELIVERYNOTE               |  cadena      |    Número de albarán del contenedor |       No      | - |  
|   SUPPLIER               |  cadena      |    Proveedor  |       No      | - |   

<span style="font-size:0.9em">(si no se especifica el numero único del contenedor (UID) se definirá automaticametne con el siguiente número disponible)</span>
### 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": "ITEM_CODE",
    "CODETYPE": CODIGO_FORMATO,
    "UID": "CODIGO_DEL_CONTENEDOR",
    "REMQTY": CANTIDAD_RESTANTE_DEL_CONTENEDOR,
    "INITQTY": CANTIDAD_INICIAL_DEL_CONTENEDOR,
    "DATECODE": "DATECODE_CONTENEDOR",
    "LOTNUMBER": "LOTE_CONTENEDOR",
    "MPARTNUMBER": "PART_NUMBER_FABRICANTE",
    "SPARTNUMBER": "PART NUMBER PROVEEDOR",
    "ORDERNUMBER": "NUMERO_PEDIDO_DEL_CONTENEDOR",
    "ORDERLINE": LINEA_PEDIDO,
    "DELIVERYNOTE": "NUM_ALBARAN_CONTENEDOR",
    "SUPPLIER": "PROVEEDOR"
}

```

### 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-page-title)</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/UID/ADD/6A201F1F5147079FF9CA80DCDBB032AB386905091BC973B53F50E6493EC53868`
```json
{
    "ITEMCODE": "CODIGO_PN",
    "CODETYPE": 2,
    "UID": "UID0001",
    "REMQTY": 1000,
    "INITQTY": 1000,
    "DATECODE": "2302",
    "LOTNUMBER": "LOT_1",
    "MPARTNUMBER": "PN_1",
    "SPARTNUMBER": "SPN_1",
    "ORDERNUMBER": "ORDER_NUMBER_0001",
    "ORDERLINE": 1,
    "DELIVERYNOTE": "DELNOTE01",
    "SUPPLIER": "SUPPLIER_1"
}
```
### Ejemplo de respuesta
```json
{ "Success":true, "fault":{ "faultcode":"none", "faultstring":"UID added", "detail":"UID: UID0001 successfully added" } }
```

# Modificar cantidad remanente

Esta función permite la modificación de la cantidad remanente de un contenedor específico identificado por su número de identificación única (UID).
### URL
`/CTNEAT/UID/MODIF/REMQTY/{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 |
| -------------------- | ------------ | ------------------------ | ----------- | ----------- |
|   UID               |  cadena      |    Código único del contenedor  |       Sí      | Cualquiera |
|   REMQTY               |  numérico      |    Cantidad restante del contenedor |       Sí      | Cualquiera |

### 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
{ 
  "UID": "CODIGO_DEL_CONTENEDOR",
  "REMQTY": CANTIDAD_RESTANTE_DEL_CONTENEDOR
}
```

### 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-page-title)</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/UID/MODIF/REMQTY/8281A4D634729B979BD2070BFB21DB5C54C1E840078F0825C45337C5E383FEE6`
```json
{ 
  "UID":"UID0001",
  "REMQTY":500
}
```
### Ejemplo de respuesta
```json
{ "Success":true, "fault":{ "faultcode":"none", "faultstring":"UID Modified", "detail":"Remaining quantity of the UID: UID0001 successfully changed to 500" } }
```

# Leer UID

Con esta función es posible llevar a cabo la lectura de los datos asociados a un contenedor específico identificado por su número de identificación única (UID).
### URL
`/CTNEAT/UID/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 |
| -------------------- | ------------ | ------------------------ | ----------- | ----------- |
|   UID               |  cadena      |    Código único del contenedor  |       No (Si el UID no se especifica, la API devolverá todos los UID del sistema)      | Cualquiera |(https://docs.ctneat.com/books/ctneat-api/page/codetype)</span> | 

### 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].UID: Representa el código del contenedor.
- Result.Data[x].ItemCode: código de artículo del producto.
- Result.Data[x].InitialQTY: Cantidad inicial del contenedor.
- Result.Data[x].RemainingQTY: Cantidad restante del contenedor.
- Result.Data[x].DateCode: DateCode del contenedor.
- Result.Data[x].LotNumber: Número de lote del contenedor.
- Result.Data[x].MPartNumber: Part Number del fabricante del contenedor.
- Result.Data[x].SPartNumber: Part Number del proveedor del contenedor.
- Result.Data[x].OrderNumber: Número del pedido del contenedor.
- Result.Data[x].LineOrderNumber: Número de la línea del pedido.
- Result.Data[x].Type: Tipo del contenedor.
- Result.Data[x].Format: Formato del contenedor.
- Result.Data[x].IDDelivNoteLine: Referencia interna del albarnán de entrega.
- Result.Data[x].User: Usuario de creación del contenedor.
- Result.Data[x].Date: Fecha de creación del contenedor.
- Result.Data[x].Supplier: Proveedor del contenedor.


### 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/UID/READ/82567D1EEEA399427154D52F98DB1D95FFAAA6440D535B8B50C8BF7088ACE84E?UID=UID0001`
### Ejemplo de respuesta
```json
{
  "NRecords": 1,
  "Data": [
    {
      "UID": "UID0001",
      "ItemCode": "CODIGO_PN",
      "InitialQTY": 1000,
      "RemainingQTY": 500,
      "DateCode": "2302",
      "LotNumber": "LOT_1",
      "MPartNumber": "PN_1",
      "SPartNumber": "SPN_1",
      "OrderNumber": "ORDER_NUMBER_0001",
      "LineOrderNumber": 1,
      "DeliveryNoteNumber": "DELNOTE01",
      "Type": "REEL",
      "Format": "H08S",
      "IDDelivNoteLine": 0,
      "User": "API-CTNEAT",
      "Date": "2023-05-10T11:09:35.465",
      "Supplier": "SUPPLIER_1",
    }
  ]
}

```

# Leer nuevos UID

Con esta función se puede realizar la lectura de los nuevos contenedores creados en el sistema y que aún no han sido exportados. Su propósito es obtener los datos de los nuevos contenedores que se acaban de crear.
### URL
`/CTNEAT/UID/READ/NEWUIDS/{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 |
| -------------------- | ------------ | ------------------------ | ----------- | ----------- |


### 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].UID: Representa el código del contenedor.
- Result.Data[x].ItemCode: código de artículo del producto.
- Result.Data[x].InitialQTY: Cantidad inicial del contenedor.
- Result.Data[x].RemainingQTY: Cantidad restante del contenedor.
- Result.Data[x].DateCode: DateCode del contenedor.
- Result.Data[x].LotNumber: Número de lote del contenedor.
- Result.Data[x].MPartNumber: Part Number del fabricante del contenedor.
- Result.Data[x].SPartNumber: Part Number del proveedor del contenedor.
- Result.Data[x].OrderNumber: Número del pedido del contenedor.
- Result.Data[x].LineOrderNumber: Número de la línea del pedido.
- Result.Data[x].Type: Tipo del contenedor.
- Result.Data[x].Format: Formato del contenedor.
- Result.Data[x].IDDelivNoteLine: Referencia interna del albarnán de entrega.
- Result.Data[x].User: Usuario de creación del contenedor.
- Result.Data[x].Date: Fecha de creación del contenedor.
- Result.Data[x].Supplier: Proveedor del contenedor.


### 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/UID/READ/NEWUIDS/82567D1EEEA399427154D52F98DB1D95FFAAA6440D535B8B50C8BF7088ACE84E`
### Ejemplo de respuesta
```json
{
  "NRecords": 1,
  "Data": [
    {
      "UID": "UID0001",
      "ItemCode": "CODIGO_PN",
      "InitialQTY": 1000,
      "RemainingQTY": 1000,
      "DateCode": "2302",
      "LotNumber": "LOT_1",
      "MPartNumber": "PN_1",
      "SPartNumber": "SPN_1",
      "OrderNumber": "ORDER_NUMBER_0001",
      "LineOrderNumber": 1,
      "DeliveryNoteNumber": "DELNOTE01",
      "Type": "REEL",
      "Format": "H08S",
      "IDDelivNoteLine": 0,
      "User": "API-CTNEAT",
      "Date": "2023-05-10T11:09:35.465",
      "Supplier": "SUPPLIER_1",
    }
  ]
}


```