Концепция проекта и алгоритм работы программы
Концепция проекта
Онлайн-касса — программа для учета расчетов в магазине и их контроля. Сервис Онлайн-касса покупают коммерсанты (предприниматели, мерчанты). Коммерсанты создают в пульте онлайн-кассы и регистрируют их в Управлении государственных доходов.
Чтобы упростить бюрократию при регистрации, после того как коммерсант создает новую кассу, пульт генерирует необходимые документы, заполненные известной ему информацией о коммерсанте и новой кассе.
Онлайн-кассы позволяют отправлять чеки по SMS и электронной почте, а также передавать данные об операциях в Управление государственных доходов. Для внедрения онлайн-касс от коммерсантов требуются затраты на обновление кассовой техники, оплата подписки в ОФД и обеспечение постоянного доступа к интернету.
На кассах работают кассиры, которых регистрируют коммерсанты в пульте. Кассиры — это продавцы в магазине. Кассиры на кассах (как и в магазинах) работают посменно. Смена кассира — это его рабочий день. Это значит, что в в конце рабочего дня кассир сдает сумму денежных средств из кассы, делает отчет с гашением (Z-отчет) в кассе и закрывает смену. Следующий кассир принимает сумму денежных средств в кассе и открывает новую смену.
Когда кассир находится на смене, он отправляет через программное обеспечение кассовые (фискальные) операции. Операции бывают пяти видов: продажа, приход, покупка, расход и инкассация, возврат. Продажа и приход пополняют баланс кассы, а расход и покупка расходуют его. Инкассация обнуляет баланс кассы. Возврат отменяет торговую операцию.
Баланс бывает двух видов: наличный и безналичный. Баланс наличности в кассе показывает, сколько денег должно быть на руках у кассира. Безналичный баланс показывает сумму всех безналичных операций. Для проверок кассы в течение смены кассир использует промежуточный отчет (X-отчет) в кассовом ПО.
Алгоритм работы программы
- Пользователь авторизуется по логину и паролю, используя эндпоинт авторизации и получает токен (токен действителен 24 часа; по истечении 24-х часов нужно авторизоваться заново).
- Пользователь получает информацию о кассе (кассах).
- Пользователь получает секции выбранной кассы.
- Пользователь открывает смену на выбранной кассе. При открытии смены в заголовке придет UID.
- Пользователь совершает кассовые операции: продажа, покупка, приход и т. д. При совершении кассовых операций в заголовке нужно посылать UID.
- Пользователь дожидается ответа на запрос кассовой операции, в ответе получает фискальный признак, актуальный баланс кассы, фискальный чек в формате png Base64 и новый UID, который потребуется для совершения следующей фискальной операции.
- В конце рабочего дня пользователь закрывает смену и получает Z-отчет. Смена не может быть открыта более 24 часов.