Ir al contenido principal

REST API: Almacenes ​🏬​

Cómo crear, gestionar y eliminar almacenes mediante Rest API.

Rest API: Gestión de Almacenes

En este artículo veremos como crear, gestionar y eliminar los almacenes.

Rest API : Login

Para poder hacer llamadas a nuestras API'S lo primero que necesitamos es identificarnos mediante una llamada de login.

Esa llamada nos retornará una token que después debemos asociar en cada llamada posterior.

Este shell script muestra como autenticarnos mediante curl:

[email protected]
password=XXXXXXX

url=https://app.tspoonlab.com/recipes/api
authenticate='username='$username'&password='$password

echo -n 'rememberme:' > rememberme.txt
curl -v --data $authenticate $url/login >> rememberme.txt

En las llamadas posteriores debemos añadir a nuestros headers el token recibido de la llamada de login:

curl -X PUT -v -H "$(cat rememberme.txt)" $url/integration/llamada

Rest API : Seleccionar un centro de coste/restaurante

Las peticiones que se describen en los apartados siguientes hacen referencia a un centro de coste, en la mayoría de los casos se correspondería con un restaurante

Para recuperar la lista de centros de costes y sus identificadores consulta el artículo Rest API: Centros de coste.

El identificador de centro de coste se corresponde al campo idOrderCenter de la clase UserOrderCenter.

Una vez tenemos el identificador este deberá añadirse a los headers para que sea utilizado en llamadas posteriores:

echo -n 'order:351583444167656299610202XXXXXXXXXXXX' >> rememberme.txt

Por lo tanto en nuestros request headers debemos especificar tanto el token devuelto por el login como el identificador del centro de coste:

rememberme:aGVucnkudXBzYWxsLmRAZXXXXXXXXXXXXXXXXXX
order:351583444167656299610202XXXXXXXXXXXX

Rest API : Recuperar los almacenes

Para recuperar los almacenes:

GET: 
https://app.tspoonlab.com/recipes/api/listStoresPaged

Podemos pasar los siguientes request parameters:

  1. start (int). Número de la primera fila a retornar. Es obligatorio.

  2. rows (int). Número de filas a retornar. Es obligatorio.

  3. filter (String). Cadena para filtrar los ingredientes. Es opcional.

Retorna:

retorna una List<StoreEntry> 

StoreEntry {
String id;
String descr;
boolean defecte;
}

Donde:

id es el identificador del almacén.

descr es el nombre del almacén.

defecte es un almacén por defecto.

Rest API : Recuperar un almacén

GET: 
https://app.tspoonlab.com/recipes/api/store/{idStore}/inventory/{idInventory}/components/num/{numComponents}

Donde:

idStore es el identificador del almacén.

idInventory es el inventario a partir del cual queremos recuperar los datos.

null para recuperar todos los datos desde el último inventario.

numComponents indica cuantos componentes queremos retornar.

Retorna:

public class Store  {

String id; // Id del almacén
String descr; // Descripción del almacén
String comment; // Comentario del almacén
List<StoreComponent> listComponent; // Components del almacen
}

public class StoreComponent {
String id; // Id del store component
String descr; // Descripción del componente
String idComponent; // Identificador del componente
private String idUse; // Identificador del uso
private String use; // Descipción del uso
private String unit; // unidad
private String idUnit; // Id d la unidad
private Double quantityInventory; // Cantidad del último inventario
private Double quantityInput; // Cantidad total de entradas
private Double quantityOutput; // Canditad total de salidas
private Double quantityDesviation; // Cantidad de las desviaciones detectadas
}

Para poder acceder a mas StoreComponents:

GET: 
https://app.tspoonlab.com/recipes/api/store/{idStore}/inventory/{idInventory}/components/paged

Podemos pasar los siguientes request parameters:

  1. start (int). Número de la primera fila a retornar. Es obligatorio.

  2. rows (int). Número de filas a retornar. Es obligatorio.

  3. filter (String). Cadena para filtrar los components. Es opcional.

Retorna una lista de StoreComponent.

Rest API : Crear un almacén

Para crear un almacén:

POST: 
https://app.tspoonlab.com/recipes/api/store

Donde en el requestbody pasamos:

public class NewStore {

String descr; // Descripciñon del almacén
String comment; // Comentario
boolean defaultReception; // Almacén por defecto para recepación
boolean defaultProduction; // Almacén por defecto para producción
boolean defaultExpedition; // Almacén por defecto para expedicion
}

Rest API : Borrar un almacén

DELETE: 
https://app.tspoonlab.com/recipes/api/store/{idStore}

Al eliminar un almacén se eliminan todos sus inventarios.

Rest API : Añadir un component al almacén

PUT: 
https://app.tspoonlab.com/recipes/api/store/{idStore}/components

En el requestbody pasaremos:

public class NewStoreComponentsWrapper {
List<NewStoreComponent> components;
}

public class NewStoreComponent {

String id; // Al añadir nulo
String idComponent; // Identificador del componente
String idUse; // Id del corte o despiece
}

Rest API : Quitar un component de un almacén

Para quitar un producto del almacén:

DELETE: 
https://app.tspoonlab.com/recipes/api/store/{idStore}/component/{idStoreComponent}

Rest API : Listar ubicaciones

Para listar las ubicaciones de un almacén:

GET: 
https://app.tspoonlab.com/recipes/api/store/{idStore}/locations

Retorna:

Retorna una List<StoreLocation>

public class StoreLocation {

String id; // Identificador de la ubicación
String descr; // Descripción de la ubicación
Integer countStoreComponents; // Número de componentes en la ubicación
String comment;

Rest API : Crear una ubicación

Para crear una ubicación en un almacén:

POST: 
https://app.tspoonlab.com/recipes/api/store/{idStore}/location

Pasando:

public class NewStoreLocation {
String descr; // Nombre de la location
String comment;
}

Retorna un IdWrapper con el identificador de la nueva ubicación:

public class IdWrapper {

String id;
}

Rest API : Eliminar una ubicación

Para eliminar una ubicación:

DELETE: 
https://app.tspoonlab.com/recipes/api/store/{idStore}/location/{idStoreLocation}

Rest API : Listar componentes dentro de una ubicación

GET: 
https://app.tspoonlab.com/recipes/api/storeLocation/{idStoreLocation}/storeComponents

Retorna:

Retorna List<StoreLocationStoreComponent>


public class StoreLocationStoreComponent {
String id; // Identificador del storelocationstorecomponent
String descr; // Descripción del componente
String idComponent; // Identificador del components
String idUse; // Identificador del corte o depiece
String use; // Descripción del corte o despiece

Rest API : Añadir componentes a una ubicación

Para añadir storeComponents a una ubicación debemos pasar una lista de storeComponents a añadir:

POST: 
https://app.tspoonlab.com/recipes/api/storeLocation/{idStoreLocation}/storeComponents/add

Pasando en el request body una lista de los idStoreComponents:

public class NewStoreLocationStoreComponentsWrapper {
List<NewStoreLocationStoreComponent> storeComponents;
}

public class NewStoreLocationStoreComponent {


private String id; // Nulo al añadir
private String idStoreComponent; // Identificador del storecomponent
}

Rest API : Quitar componentes de una ubicación

Para quitar storeComponents de una ubicación debemos pasar una lista de storeComponents a eliminar:

POST: 
https://app.tspoonlab.com/recipes/api/storeLocation/{idStoreLocation}/storeComponents/delete

Pasando en el request body una lista de los idStoreComponents:

public class NewStoreLocationStoreComponentsWrapper {
List<NewStoreLocationStoreComponent> storeComponents;
}

public class NewStoreLocationStoreComponent {


private String id; // Identificador a eliminar
private String idStoreComponent; // Identificador del storecomponent
}

Rest API : Para mover algunos componentes de un almacén a otro

Para mover algunos storeComponent de un almacén a otro debemos:

PUT: 
https://app.tspoonlab.com/recipes/api/store/{idStore}/components/move/some/{idStoreDest}

idStore es el almacén origen y idStoreDest el almacén destino.

Donde pasamos los ids de los storeComponents que queremos mover a otro almacén.

public class NewListIds {
List<String> listIds; // Identificadores de los storecompoenents a mover
}

Rest API : Listar todos los inventarios

Para listar todos los inventarios:

GET: 
https://app.tspoonlab.com/recipes/api/listInventoriesPaged

Podemos pasar los siguientes request parameters:

  1. start (int). Número de la primera fila a retornar. Es obligatorio.

  2. rows (int). Número de filas a retornar. Es obligatorio.

  3. filter (String). Cadena para filtrar los almacenes. Es opcional.

  4. year (int). Año de los inventarios a recuperar. Es opcional.

  5. month (int). Mes de los inventarios a recuperar. Es opcional.

Retorna:

retorna una List<EntityBaseData> 

EntityBaseDate {
String id; // Id del inventario
String descr; // Nombre del almacen
String idAux; // Id del almacen
Integer year;
Integer month;
Date dateGenerated; // Fecha del inventario
}

Donde:

id es el identificador del inventario.

idAux es el identificador del almacén.

descr es el nombre del almacén.

year y month es el año y mes del inventario.

dateGenerated es la fecha del inventario.

Los datos devueltos se ordenan por la fecha del inventario de forma descendente.

Rest API : Recuperar el valor de un inventario

Para recuperar valor de un inventario:

GET: 
https://app.tspoonlab.com/recipes/api/inventory/{idInventory}/total

Retorna:

class DoubleWrapper  {
Double value;
}

Donde value es la valoración del inventario.

Rest API : Recuperar las cantidades de cada uno de los componentes

Para recuperar las cantidades introducidas en el inventario debemos llamar a:

GET: 

https://app.tspoonlab.com/recipes/api/inventory/{idInventory}/components/paged?start=0&rows=50

Donde idInventory es el identificador del inventario.

Podemos pasar los siguientes request parameters:

  1. start (int). Número de la primera fila a retornar. Es obligatorio.

  2. rows (int). Número de filas a retornar. Es obligatorio.

  3. filter (String). Cadena para filtrar los ingredientes. Es opcional.

Retorna:

class StoreComponent  {
String id; // Identificador de la entrada del producto en el inventario
String descr; // Nombre del producto
String idComponent; // Identificador del producto

String idComponentType; // id de la familia principal
String componentType; // descripción de la familia principal

Double quantity; // Cantidad del inventario
Double cost; // Coste del recuento
}

idComponentType es el id de la familia principal del producto y componentType su descripción. Más información en el artículo Rest API: Familias.

¿Te ha resultado útil este artículo?

Si necesitas más ayuda, contacta con soporte haciendo clic en el Chat de Soporte Integrado en la esquina inferior derecha de tu pantalla.


¿Ha quedado contestada tu pregunta?