1. Gestión de Almacenes
En este artículo veremos como gestionar los almacenes
1.1. 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 retornara una token que después debemos asociar en cada llamada posterior.
Este shell script muestra como autenticar-nos 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
1.2. Rest API : Seleccionar un centro de coste/restaurante
Las peticiones que se describen en los apartados siguientes hacen referencia a un centro de coste. Que 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 documento
El identificador de cenetro de coste se corresponde al campo idOrderCenter de la classe 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 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
1.3. Rest API : Recuperar los almacenes
Para recuperar los almacenes
GET:
https://app.tspoonlab.com/recipes/api/listStoresPaged
Podemos pasar los siguentes request params
start (int). Número de la primera fila a retornar. Es obligatorio
rows (int). Número de filas a retornar. Es obligatorio
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 defectp
1.4. 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 siguentes request params
start (int). Número de la primera fila a retornar. Es obligatorio
rows (int). Número de filas a retornar. Es obligatorio
filter (String). Cadena para filtrar los components. Es opcional
Retorna una lista de StoreComponent
1.5. 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
}
1.6. 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
1.7. 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
}
1.8. Rest API : Quitar un component de un almacen
Para quitar un producto del almacen
DELETE:
https://app.tspoonlab.com/recipes/api/store/{idStore}/component/{idStoreComponent}
1.9. 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; // Numero de componentes en la ubicación
String comment;
1.10. Rest API : Crear una ubicación
Para crear una ubitacion 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;
}
1.11. Rest API : Eliminar una ubicación
Para eliminar una ubicación
DELETE:
https://app.tspoonlab.com/recipes/api/store/{idStore}/location/{idStoreLocation}
1.12. Rest API : Listar storecomponents 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
1.13. 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
}
1.14. Rest API : Quitar components de una ubicación
Para quitar StoreComponents a una ubicación debemos pasar una lista de storecomponents a añadir
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
}
1.15. Rest API : Para mover algunos store component de un almacén a otro
Para mover algunos store component 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 i idStoreDest el alamacén destino
Donde pasamos los ids de los store components que queremos mover a otro almacén
public class NewListIds {
List<String> listIds; // Identificadores de los storecompoenents a mover
}
1.16. Rest API : Listar todos los Inventarios
Para listar todos los inventarios
GET:
https://app.tspoonlab.com/recipes/api/listInventoriesPaged
Podemos pasar los siguentes request params
start (int). Número de la primera fila a retornar. Es obligatorio
rows (int). Número de filas a retornar. Es obligatorio
filter (String). Cadena para filtrar los almacenes Es opcional
year (int). Año de los inventarios a recuperar. Es opcional
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
1.17. 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
1.18. 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 params
start (int). Número de la primera fila a retornar. Es obligatorio
rows (int). Número de filas a retornar. Es obligatorio
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
Double quantity; // Cantidad del inventario
Double cost; // Coste del recuento
}