Skip to content

12. Получение информации о чеке

Ansar8 edited this page Mar 17, 2023 · 3 revisions

Доступность:

Данный интерфейс позволяет по id чека получить информацию о чеке, который ранее был отправлен на печать с помощью интерфейса "Печать чека (без UI)" или интерфейса "Печать чека" и был успешно зарегистрирован.

  • Если чек с заданным id был найден, то вернется информация о чеке в виде структуры Check, содержащая:

    • Данные, которые пользователь указывал при печати чека через интерфейс "Печати чека (без UI)".

    • Соответствующую фискальную информацию чека FiscalInfo, которая возвращается после успешной регистрации чека.

  • Если чек с заданным id не был найден, то вернется ошибка с соответствующим сообщением.


Перед поиском чека необходимо запросить разрешение "ru.modulkassa.pos.permission.PRINT_CHECK" у пользователя и подключиться к сервису МодульКассы.

Теперь можно искать информацию об оплаченном чеке по его checkId, то есть по id чека, который зарегистрировался одним из способов ("Печать чека (без UI)" или "Печать чека") :

  • CheckInfoRequest - запрос с указанием идентификатора документа checkId
data class CheckInfoRequest(
    var checkId: String
)
  • GetCheckInfoAction - команда для получения информации о чеке c указанием соответствующего CheckInfoRequest
getCheckInfo.setOnClickListener {
    modulkassa?.let {
        GetCheckInfoAction(
            CheckInfoRequest(checkId = "90206213-7ac8-4cm0-bd4f-37a12345abcd")
        ).execute(it, object : ActionCallback<Check> {
            override fun succeed(result: Check?) {
                runOnUiThread {
                    Toast.makeText(this@MainActivity, "Check Info: $result", Toast.LENGTH_LONG).show()
                }
            }

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

Внимание!

  • При регистрации через "Печать чека (без UI)" данный интерфейс позволяет получить информацию только по последним 1000 чекам, к-е были зарегистрированы и сохранены. Например, если уже зарегистрировано/хранится 1000 чеков и регистрируется/сохраняется новый 1001-ый чек, то самый старый чек будет удален из хранилища - тем самым будет поддерживаться лимит в 1000 чеков, к-е могут единовременно хранится.
  • При регистрации через "Печать чека" данный интерфейс позволяет получить информацию о чеках, зарегистрированные за последние полгода.
  • Также стоит учесть, что получать информацию данным способом можно
  • Если чек с заданным id уже регистрировался одним из способов ("Печати чека (без UI)" или "Печать чека" ), то повторная регистрация любого чека с таким id вернет ошибку с соответствующим сообщением.