26 lines
3.2 KiB
Markdown
26 lines
3.2 KiB
Markdown
#tx #TranzAxis
|
||
Дополнительно можно настроить **Пользовательское уточнение** в операции, которое перед выполнением транзакции проверит, доступен ли сервис печати. Для этого в **Функции проверки применимости уточнения** проверяем, доступен ли сервис печати:
|
||
|
||
// Показать, если печать недоступна, а клиент выбрал печать чека
|
||
return !term.isAvailReceipt() && tranRq.Specific != null && tranRq.Specific.ReceiptRequested == true;
|
||
|
||
На экране пишется текст "Извините, печать временно недоступна". Можно также предложить оборвать операцию, если наличие чека принципиально. Набор возможный действий определяется на вкладке **Действия** пользовательского уточнения:
|
||
|
||
- Настройте действие ** Отмена операции** на какую-то клавишу, если хотите позволить клиенту завершить операцию на этом этапе(это если ему принципиально наличие чека). Если такое действие не требуется, а нужно лишь уведомление, то просто не добавляйте это действие и отменить операцию с этого экрана будет нельзя. Операция при этом отклонится с результатом **Отмена операции клиентом**, на которую можно настроить детализацию
|
||
- Настройте действие ** Согласие клиента**
|
||
|
||
В **Функции обновления транзакционного запроса** сбрасываем флаг запроса чека:
|
||
|
||
tranRq.Specific.ReceiptRequested = false;
|
||
return null;
|
||
|
||
Проверять выбранное действие необязательно, поскольку при отказе от операции функция не вызывается. С другой стороны, вы можете вместо действия **Отмена операции** выбрать **Отказ клиента**. Для этого действия функция будет вызвана и вы сами сможете определить, что делать далее. Например:
|
||
|
||
// При согласии снимаем признак необходимости чека и продолжаем операцию
|
||
if (action == XdcKeyAction:Yes) {
|
||
tranRq.Specific.ReceiptRequested = false;
|
||
return null;
|
||
}
|
||
// Выбран No = Отказ клиента
|
||
// В случае отказа отклоняем операцию с причиной "Отклонено пользовательской функцией (1)"
|
||
return DeclineReason:UserDecline1; |