Чтобы напечатать z-отчёт:
В манифесте укажите разрешение на печать Z-отчётов:
<uses-permission android:name="ru.evotor.permission.PRINT_Z_REPORT" />
Создайте команду для печати отчёта и вызовите метод .process
:
// uuid пользователя, можно получить через UserApi
// можно не передавать или передать null, тогда будет использован текущий авторизованный пользователь на терминале
val userUuid: String? = null
PrintZReportCommand(userUuid).process(context, callback)
Обработка результата. В параметры метода .process
передайте следующий callback
:
val callback = IntegrationManagerCallback { future ->
if (future.result?.type == IntegrationManagerFuture.Result.Type.OK) {
// Z-отчет успешно напечатан
} else if (future.result?.type == IntegrationManagerFuture.Result.Type.ERROR) {
when (future.result.error.code) {
PrintZReportCommandResult.ERROR_CODE_DATETIME_SYNC_REQUIRED -> {
// Нужна синхронизация даты/времени ККМ и терминала
}
PrintZReportCommandResult.ERROR_CODE_KKM_IS_BUSY -> {
// ККМ в данный момент выполняет другую операцию
}
PrintZReportCommandResult.ERROR_CODE_NO_AUTHENTICATED_USER -> {
// Нет авторизованного пользователя на терминале
// Ошибку возможно получить только если в параметры команды не был передан userUuid
}
PrintZReportCommandResult.ERROR_CODE_NO_PERMISSION -> {
// У приложения нет необходимого разрешения (permission)
// Добавьте в манифест строчку <uses-permission android:name="ru.evotor.permission.PRINT_Z_REPORT" />
}
PrintZReportCommandResult.ERROR_CODE_PRINT_DOCUMENT_FAILED -> {
// Ошибка печати
}
PrintZReportCommandResult.ERROR_CODE_USER_NOT_FOUND -> {
// Пользователь не найден на терминале
// В параметры команды передан несуществующий userUuid
}
}
}
}