Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Система управления кассовым терминалом (ККТ)

Набор Python-скриптов для управления онлайн-кассой через KKMServer (HTTP API для фискальных регистраторов) — на примере продажи и возврата билетов автовокзала.

Реквизиты организации и ФИО кассира в этой версии заменены на плейсхолдеры и вынесены в переменные окружения (см. config.py) — в оригинале скрипты использовались с реальными данными действующей кассы.

Что делает

  • shift.py — управление сменой и кассой: открытие/закрытие смены (с печатью Z-отчёта), X-отчёт без закрытия смены, получение текущего состояния кассы (баланс, номер смены), внесение и изъятие наличных. Интерактивное меню в консоли.
  • sell.py — открывает смену (если не открыта) и печатает фискальный чек продажи билета: формирует фискальные позиции (обязательные для чека) и нефискальные строки (билетная информация — рейс, станция, пассажир, место).
  • return.py — печатает фискальный чек возврата билета по номеру исходного фискального документа.
  • vehicles.py — вспомогательный скрипт: разбирает текстовые реестры транспорта перевозчиков (по одному .TXT-файлу на перевозчика, формат Марка Модель (мест), госномер) в единую сводную Excel-таблицу через регулярные выражения и pandas.

Как устроена интеграция

Все команды идут HTTP POST-запросом на локальный KKMServer (Execute) в формате JSON: OpenShift, CloseShift, XReport, GetDataKKT, DepositingCash, PaymentCash, RegisterCheck (с флагом IsFiscalCheck для фискальных чеков продажи/возврата). Ответ проверяется по полю Status (0 — успех), обрабатываются типовые ошибки (например, «смена уже открыта»).

Как запустить

pip install -r requirements.txt

# реквизиты организации задаются через переменные окружения — см. config.py
export COMPANY_NAME='ООО "ВАША КОМПАНИЯ"'
export COMPANY_INN="1234567890"
export COMPANY_ADDRESS="г. Город, ул. Улица, д. 1"
export COMPANY_STATION_NAME='АС, "Название станции"'
export KKM_CASHIER_NAME="Фамилия И.О."
export KKM_URL="https://localhost:5893/Execute"  # адрес вашего KKMServer

python shift.py   # интерактивное меню управления кассой
python sell.py    # тестовая продажа
python return.py  # тестовый возврат

Для vehicles.py положите свои .TXT-реестры в папку datas/ (пример формата — в sample_datas/) и запустите python vehicles.py.

Стек

Python, requests (HTTP-интеграция с KKMServer), pandas + openpyxl, регулярные выражения, uuid

About

Управление кассовым терминалом (ККТ) через KKMServer: смены, фискальные чеки продажи/возврата, X/Z-отчёты

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages