##Task
##Printer
##Printer Template
[LAYOUT]
{ORDERS}
[ORDERS]
++{PRODUCT NAME}.{PORTION NAME} - {TAX TOTAL} - {PRICE}
(Id={ORDER UID})
(name={PRODUCT NAME})
(portion={PORTION NAME})
(price={PRICE})
(taxTotal={TAX TOTAL})
(ticketTotal={TICKET TOTAL})
##Print Job
##The Printed Task as “seen” in the DB
##Report to show the Task
[Price Check Tasks:2,1, 1, 1, 1, 1]
>>taskName|name|portion|price|tax|total
>{REPORT TASK DETAILS:T.Name,TSC.name,TSC.portion,TSC.price,TSC.taxTotal,TSC.ticketTotal:T.Completed=False && (TST=PC Price Check Task)}
##Script to get Task using GQL
Name: PC Price Check
Handler: priceCheck
function getTasks(taskTypeName,isCompleted) {
var data = gql.Exec('{tasks:getTasks(taskType:"'+taskTypeName+'",isCompleted:'+isCompleted+'){id,isCompleted,identifier,name,content,contentText,customData{name,value},startDate,endDate,userName}}');
return data;
}
##Better Script
function getTasks(taskTypeName,isCompleted) {
var data = gql.Exec('{tasks:getTasks(taskType:"'+taskTypeName+'",isCompleted:'+isCompleted+'){id,isCompleted,identifier,name,content,contentText,customData{name,value},startDate,endDate,userName}}');
var obj = JSON.parse(data);
//return data;
var tasks = obj.data.tasks;
var task = tasks[0];
var taskType = taskTypeName;
var id = task.id;
var ident = task.identifier;
var name = task.name;
var customData = task.customData;
itemName = customData[0].value;
portion = customData[1].value;
price = Helper.ToNumber(customData[2].value);
taxTotal = Helper.ToNumber(customData[3].value);
ticketTotal = Helper.ToNumber(customData[4].value);
pricePlusTax = price + taxTotal;
var info = '';
info+='Item : ' + itemName + ' ('+portion+')';
info+='\rPrice: ' + Helper.Format(price);
info+='\rTax : ' + Helper.Format(taxTotal);
info+='\rTotal: ' + Helper.Format(pricePlusTax);
dlg.ShowMessage(info);
var formattedInfo = '<font Consolas>' + info.replace(/\r/g,'<br/>') + '</font>';
dlg.AskQuestion(formattedInfo,'Ok');
// delete the Task
var del = gql.Exec('mutation m {deleteTask(id:'+id+'){id}}');
return formattedInfo;
}
##Rule (uses Automation Command Button but you could invoke this from barcode scanned)
##Working