Печать последнего клиентского чека¶
Данный стейт является расширением стандартного набора стейтов протокола NDC и может вызываться в любой момент прохождения транзакции с целью печати последнего чека, распечатанного из клиентской сессии.
В качестве State Type используется символ „#“.
Примечание
Сохранение содержимого клиентского чека NDC активируется параметром реестра PrintingLastCustomerReceiptAllowed.
Описание стейта:
Table Entry |
Number of characters |
Comments |
Description |
---|---|---|---|
1 |
1 |
State Type |
«#» |
2 |
3 |
Screen Number |
Номер экрана, отображаемого в процессе печати чека. Если данный параметр имеет нулевое значение, то экран не перерисовывается и продолжает отображаться предыдущий экран |
3 |
3 |
Good Next State Number |
Номер стейта, на который переходит терминал в случае успешной распечатки последнего чека |
4 |
3 |
Error Next State Number |
Номер стейта, на который переходит терминал при ошибке печати чека (принтер не готов к печати, отсутствуют чеки распечатанные из клиентской сессии). Если данный параметр не задан, то результат печати не контролируется, сразу после перехода на стейт печати последнего клиентского чека и отправки данных на печать, осуществляется выход по Good Next State Number, печать идет в фоне, экран, указанный в параметре 2, не отображается |
5 |
3 |
Reserved |
|
6 |
3 |
Reserved |
|
7 |
3 |
Reserved |
|
8 |
3 |
Reserved |
|
9 |
3 |
Reserved |
Пример стейта в сценарии:
< 30\1c000\1c000\1c12\1c955#097D01782000000000000000
где
955
— номер стейта;#
— тип стейта;097D01782000000000000000
— параметры стейта:097
— номер экрана, отображаемого в процессе печати чека;D01
— номер стейта, на который переходит терминал в случае успешной распечатки последнего чека;782
— номер стейта, на который переходит терминал при ошибки печати чека.
Логика работы ПроАТМ при использовании данного расширения:
Есть распечатанный клиентский чек, чековый принтер исправен и успешно печатает чек.
Screen Number — задан. Error Next State — задан. Результат — В процессе печати отображается экран «Пожалуйста, подождите». После успешной распечатки чека отображается исходный экран.
Screen Number — задан. Error Next State — не задан. Результат — экран «Пожалуйста, подождите» в процессе печати не отображается, обработчик стейта не ждет завершения печати, возврат на исходный экран осуществляется сразу же после входа на стейт и отправки данных на печать(еще в процессе печати доступны иные клавиши).
Screen Number — не задан. Error Next State — не задан. Результат — экран «Пожалуйста, подождите» в процессе печати не отображается, обработчик стейта не ждет завершения печати, возврат на исходный экран осуществляется сразу же после входа на стейт и отправки данных на печать(еще в процессе печати доступны иные клавиши).
Screen Number — не задан. Error Next State — задан. Результат — экран «Пожалуйста, подождите» в процессе печати не отображается, но обработчик стейта ждет завершения печати(без промаргивания отображается исходный экран, но клавиши в процессе печати недоступны).
Все параметры стейта не заданы. Результат — развала ПроАТМ нет, при входе на стейт в RedLabel отображаются записи о некорректных параметрах, «развал»(завершение) сценария и возврат карты с синим экраном.
Нет распечатанного клиентского чека, принтер отсутствует, неисправен или изначально не готов к печати чека.
Screen Number — задан. Error Next State — задан. Результат — после входа на стейт без показа экрана осуществляется переход на Error Next State (картинка «Ошибка чекового принтера»).
Screen Number — задан. Error Next State — не задан. Результат — после входа на стейт без показа экрана осуществляется переход на Good Next State (возврат на исходный экран).
Screen Number — не задан. Error Next State — не задан. Результат — после входа на стейт без показа экрана осуществляется переход на Good Next State(возврат на исходный экран).
Screen Number — не задан. Error Next State — задан. Результат — после входа на стейт без показа экрана осуществляется переход на Error Next State (картинка «Ошибка чекового принтера»).
Все параметры стейта не заданы. Результат — развала ПроАТМ нет, при входе на стейт в RedLabel отображаются записи о некорректных параметрах, «развал»(завершение) сценария и возврат карты с синим экраном.
Есть распечатанный клиентский чек, принтер готов к печати чека, но в процессе печати возникает ошибка(Control_media не завершается c Success).
Screen Number — задан. Error Next State — задан. Результат — после входа на стейт без показа экрана осуществляется переход на Error Next State (картинка «Ошибка чекового принтера»).
Screen Number — задан. Error Next State — не задан. Результат — экран «Пожалуйста, подождите» в процессе печати не отображается, обработчик стейта не ждет завершения печати, возврат на исходный экран осуществляется сразу же после входа на стейт и отправки данных на печать(еще в процессе печати доступны иные клавиши).
Screen Number — не задан. Error Next State — не задан. Результат — экран «Пожалуйста, подождите» в процессе печати не отображается, обработчик стейта не ждет завершения печати, возврат на исходный экран осуществляется сразу же после входа на стейт и отправки данных на печать(еще в процессе печати доступны иные клавиши).
Screen Number — не задан. Error Next State — задан. Результат — экран «Пожалуйста, подождите» в процессе печати не отображается, обработчик стейта не ждет завершения печати (без промаргивания отображается исходный экран, но клавиши в процессе печати недоступны), после возникновения ошибки осуществляется переход на Error Next State(картинка «Ошибка чекового принтера»).
Все параметры стейта не заданы. Результат — развала ПроАТМ нет, при входе на стейт в RedLabel отображаются записи о некорректных параметрах, «развал»(завершение) сценария и возврат карты с синим экраном.
Примечание
При использовании расширения предлагается отказаться от печати второго чека, а все необходимые данные поместить в первый (приходит с хоста) путем включения специальных макроопределений (см. шаблон ndc_deposit_success_additional_receipt.txt, работает начиная с версии 26758).