Skip to content

17. Закрытие смены (без UI)

Ansar8 edited this page Mar 17, 2023 · 1 revision

Доступность: с версии 8.75.0

Длительность смены в ККТ ограничена по времени. При завершении рабочего дня (рабочей смены) вам нужно выполнить запрос к МодульКассе на закрытие смены.

Если смена уже закрыта, запрос на закрытие смены завершится с успешным результатом.

В соответствии с требованиями ФЗ-54 вам нужно указать ФИО пользователя, который закрывает смену.

Команда CloseShiftAction отправит запрос на закрытие смены указанным пользователем Employee в Модулькассу:

closeShift.setOnClickListener {
    modulkassa?.let {
        CloseShiftAction(
            employee = Employee(name = "Иванов Иван")
        ).execute(it, object : ActionCallback<Boolean> {
            override fun succeed(result: Boolean?) {
                runOnUiThread {
                    Toast.makeText(this@MainActivity, "Закрытие смены выполнено", Toast.LENGTH_LONG).show()
                }
            }

            override fun failed(message: String, extra: Map<String, Any>?) {
                runOnUiThread {
                    Toast.makeText(this@MainActivity, message, Toast.LENGTH_LONG).show()
                }
            }
        })
    }
}

Внимание!

Используя данный вариант закрытия смены, необходимо дополнительно позаботиться об обработке возникающих ошибок, визуализации процесса закрытия смены. Кроме того, при закрытии смены через SDK без UI-интерфейса Модулькассы сверка итогов для эквайринга не предусмотрена - заложено только закрытие смены на самой кассе.

Если на кассе были отложенные чеки, но при этом в настройках торговой точки не включена возможность "Переносить отложенные чеки на следующую смену", то такие чеки при закрытии смены будут удалены.