# Facturas de proveedor

En este apartado se podrán consultar las facturas de proveedor del sistema.

# Leer Facturas de proveedor

Con esta función, se pueden leer las facturas de proveedores que hay registradas en el sistema.
En estas se puede filtrar por fecha de creación y por nombre de la factura.

NOTAS:
- Se recomienda usar alguno de estos tres parámetros para filtrar y devolver los resultados deseados y no toda la tabla sin filtrar.
- Si una factura de proveedor no tiene albaranes de entrega vinculados, no se devolverá en la lista.

### URL
`/CTNEAT/SUPPLIERINVOICE/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 |
| -------------------- | ------------ | ------------------------ | ----------- | ----------- |
|   INVOICENAME               |  cadena      |  Nombre de la factura de proveedor  |   No   | Cualquiera |
|   CREATIONDATE               |  cadena      |  Fecha de creación de la factura de proveedor  |   No   | Cualquiera que sea de tipo "DD/MM/YYYY HH:mm:SS" pero en formato YYYYMMDDHHmmSS |
|   FINISHED               |  Numérico  |  Muestra facturas terminadas o por terminar  |   No   | Valores aceptados: 0 o 1. Para mostrar ambas, no añadir este parámetro en la query de la URL|

### 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].INVOICENAME: Representa elnombre de la factura.
- Result.Data[x].INVOICEDATE: Representa la fecha de la factura.
- Result.Data[x].INVOICECREATIONDATE: Representa la fecha de creación de la factura.
- Result.Data[x].PRICE: Representa el precio sin portes total de la factura.
- Result.Data[x].SHIPPINGTOTALPRICE: Representa el precio con portes total de la factura.
- Result.Data[x].SUPPLIERNAME: Representa el nombre del proveedor.
- Result.Data[x].FINISHED: Muestra si la factura está o no terminada.
- Result.Data[x].LINES: Representa el número de líneas de la factura.
- Result.Data[x].LINES[y].DELYNAME: Representa el nombre del albarán asociado a la factura.
- Result.Data[x].LINES[y].DELYLINES: Representan las diferentes líneas del albarán asociado a la factura.
- Result.Data[x].LINES[y].DELYLINES[t].DELYDATE: Representa la fecha de la línea del albarán asociado a la factura.
- Result.Data[x].LINES[y].DELYLINES[t].ITEMCODE: Representa el código de artículo línea del albarán asociado a la factura.
- Result.Data[x].LINES[y].DELYLINES[t].PRICE: Representa el precio total sin portes línea del albarán asociado a la factura.
- Result.Data[x].LINES[y].DELYLINES[t].SHIPPINGPRICE: Representa el precio total con portes línea del albarán asociado a la factura.
- Result.Data[x].LINES[y].DELYLINES[t].UNITS: Representa el número de unidades de la línea del albarán asociado a la factura.

### 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://localhost/CTNEAT/SUPPLIERINVOICE/READ/693DDFEC2F4BFDDEAF04DD2724984C9B3CA89D553DD8E5B9BB233AD6BB6075F1?INVOICENAME=TEST_INV`
### Ejemplo de respuesta
```json
{ 
  "NRecords":1, 
  "Data":[ 
    {
        "INVOICENAME": "",
        "INVOICEDATE":"DD/MM/YYYY",
        "INVOICECREATIONDATE":"DD/MM/YYYY",
        "PRICE": 0,
        "SHIPPINGTOTALPRICE":0,
        "SUPPLIERNAME":"",
        "FINISHED": 0,
        "LINES": [
            "DELYNAME":"DELY_1"
            "DELYLINES": [{
                "DELYDATE":"03/02/2025",
                "ITEMCODE":"",
                "PRICE":0,
                "SHIPPINGPRICE":0,	
          		"UNITS": 10
            }]
        ],
    }
  ] 
}
```