1. Funcionamiento de las mermas
El usuario puede registrar las mermas que se producen en su restaurante. Tanto de productos (verduras, carnes o pescados) como de elaboraciones intermedias y finales.
Cada día se registran las mermas generadas y se valoran con el coste del producto o escandallo
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://www.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 las mermas
Para recuperar las mermas diarias
https://www.tspoonlab.com/recipes/api/listThrownPaged?filter=&rows=50&start=0
filter nos permite filtrar por descripción, start y rows nos permiten la paginación y
retorna una lista de las mermas diarias
retorna un List<ThrownEntry>
class ThrownEntry {
private String id;
private String descr;
private String codi;
private String date;
}
nos retorna el id y la descripción (id, descr) el código codi y la fecha en formato de visualización date
1.4. Rest API : Recuperar una merma diaria
Para recuperar una merma diaria
GET https://www.tspoonlab.com/recipes/api/thrown/{id}
id es es el identificador de la agrupación de mermas diarias
Retorna
public class ThrownData {
private String id;
private String descr
private String codi;
private String dateFormatted;
private String comment;
private Date dateGenerated;
private String currency;
private Double cost;
private List<ThrownComponentData> listThrownComponents;
}
class ThrownComponentData {
String id;
String descr;
String idComponent;
String idThrown;
short type;
Long color;
Double quantity;
String unit;
String idUnit;
Double cost;
String currency;
String idUse;
String use;
String idThrownType;
String thrownType;
String thrownTypeCodi;
}
Donde en ThrownData
id es el identificador de la agrupación de mermas diarias
descr el nombre que le hemos dado
codi el código
dateGenerated la fecha
cost el coste de las mermas de ese dia
currency el símbolo de la moneda
La lista de productos tirados nos la detalla listThrownComponents
En ThrownComponentData
id es el identificador de la merma
descr nombre del producto tirado
idComponent identificador del producto tirado
idThrown el identificador de la agrupación de mermas diarias
type el tipo de producto (producto, material, elaboración intermedia o final)
color en caso de producto el color de la familia principial
quantity cantidad tirada
idUnit/unit identificador y descripción de la unidad tirada
cost es el coste unitario. Por tanto para saber el coste de la merma tenemos que multiplicarlo por quantity
currency es el símbolo de la moneda
idUse/use en caso que no se haya mermado el producto en bruto sino con un corte o despiece idUse/use identifican el corte o despiece. Por ejemplo no tiro cebolla sino que tiro cebolla juliana
idThrownType Identifica el tipo de merma
thrownType es el nombre del tipo de merma
thrownTypeCodi es el código del tipo de merma
1.5. Rest API : Listar los tipos de mermas
Para recuperar los tipos de mermas
https://www.tspoonlab.com/recipes/api/listThrownTypesPaged?filter=&rows=50&start=0
filter nos permite filtrar por descripción, start y rows nos permiten la paginación y
retorna una lista de los tipos de mermas
retorna un List<ThrownTypeEntry>
class ThrownTypeEntry {
private String id;
private String descr;
private String codi;
}
nos retorna el id y la descripción (id, descr) y el código codi del tipo de merma