Действия с “Чек-листом” осуществляются в личном чате сотрудника. Для перехода в модуль сотрудник должен перейти по ссылке из группового чата.
Для старта сотруднику необходимо нажать на кнопку: “СТАРТ”
inlineButtons:
{text: "СТАРТ", callback_data: "shiftStep"}
После нажатия кнопки “СТАРТ” в групповой чат приходит сообщение:
После нажатия сотрудником инлайн-кнопки “СТАРТ” в индивидуальном чате, запускается сценарий выполнения Чек-листа на текущий день недели. Задания берутся из словаря checklists.yaml
Сценарий чек листа зависит от дня недели. С помощью встроенной функцииcurrentDate происходитопределение дня недели из модуляmoment, подключенного в файлеrequirements.sc.
require: dateTime/moment.min.js
module = sys.zb-common
Далее вызывается функция prepareForChecklist() из файла utils.js.
function prepareForChecklist() {
var session = $jsapi.context().session;
var client = $jsapi.context().client;
var request = $jsapi.context().request.rawRequest;
Эта функция объявляет переменные и присваивает им значения. С этого момента начинается отсчет времени выполнения Чек-листа. По умолчанию, на его выполнение дается 420 минут, и на каждый шаг не более 30 минут. Также на экран выводится первое задание из Чек-листа, оно может быть таким:
Чек-лист включает в себя набор задач необходимых к выполнению за определенное время. На выполнение одного задания по умолчанию отводится 30 минут.
По мере выполнения сотруднику необходимо отправлять фотоотчет:
event: fileEvent
script:
// если пользователь еще не отправлял файл, то сохроняем его в $client.report
// иначе сообщаем ему, что отправлять больше одного файла нельзя
Если сотрудник не отправляет отчет в отведенное время включается счетчик ошибок и в личный чат приходит напоминание про выполнение задания.
Стейт для обработки таймаута:
state: timeout
script:
$session.timeout = true;
$session.ErrorCounter++;
go!: /Checklist/LoopBySteps
Отчет по одному заданию может содержать только одно фото, иначе возникнет ошибка, которую бот обработает фразой: “Запрещено присылать больше одного фото”.
При возникновении более трех ошибок у сотрудника бот отправляет в групповой чат сообщение: “У сотрудника сложность с чек-листом”, при этом уточняя у какого именно сотрудника возникли сложности с каким чек листом и на каком пункте.