Реализация базовых команд протокола Пирит на Java
Для возможности использования проекта в качестве практического инструмента для интеграции кассового ПО проект необходимо "клонировать" в среде разработки или через GitBash командой:
git clone https://gitlab.dreamkas.ru/viki/test-pirit
Рекомендуемая версия JDK для работы с данным проектом - 1.8.0_201
Далее можно открыть в IDE (например IntelliJ Idea) как Gradle проект указав файл build.gradle
Более подробно о разрешительном режиме можно прочитать в документации ЧЗ по ссылке: Методические рекомендации по разрешительному режиму ЧЗ.
В проекте задействованы библиотеки:
Tests:
- 'org.junit.jupiter:junit-jupiter-api:5.8.1'
- 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
Implementation:
- 'org.scream3r', name: 'jssc', version: '2.8.0'
- 'org.apache.commons', name: 'commons-lang3', version: '3.0'
Если работа происходит через COM/USB с использованием службы ComProxy:
- Подключить фискальный принтер через COM или USB порт
- Установить значение константы COM_PORT в классе VikiPrint:
- Проверить, что служба ComProxy запущена
Если взаимодействие происходит через VikiDriver:
- Подключить фискальный принтер через COM или USB порт
- Проверить, что служба VikiDriver запущена и слушает порт 50003 (или установить актуальные для вас значения IP и порта)
Вызов метода main(String[] args) класса VikiPrint поднимет SerialPort и выполнит базовые команды протокола FM16, такие, как:
- Проверка связи с ККТ
- Обмен информацией с ФН
- Запрос состояния печатающего устройства
- Чтение даты/времени ККТ
- Запрос флагов статуса ККТ
- Запрос сведений о ККТ
- Печать сервисного чека
- Продажа штучного и весового товара (Обычный режим формирования документа)
- Продажа штучного и весового товара (Пакетный режим формирования документа)
В тестах класса VikiPrintTest производится выполнение основных команд протокола FM16, такие, как:
- Закрытие / открытие кассовой смены
- Перерегистрация ККТ без замены ФН
- Формирование чека в пакетном режиме (Продажа)
- Формирование чека в синхронном режиме (Продажа)
- Формирование копии чека в пакетном режиме
В тесте продажи проверяется добавление
- Маркированного товара, включая его проверку в ФН
- Штучного товара
- Весового товара
Вызов метода main(String[] args) класса VikiPrintWithVikiDriver поднимет Socket(TCP/IP) и выполнит базовые команды протокола FM16, такие, как:
- Проверка связи с ККТ
- Обмен информацией с ФН
- Запрос состояния печатающего устройства
- Чтение даты/времени ККТ
- Запрос флагов статуса ККТ
- Запрос сведений о ККТ
- Печать сервисного чека
- Продажа штучного и весового товара (Обычный режим формирования документа)
- Продажа штучного и весового товара (Пакетный режим формирования документа)
В тестах класса VikiPrintTest производится выполнение основных команд протокола FM16, такие, как:
- Закрытие / открытие кассовой смены
- Перерегистрация ККТ без замены ФН
- Формирование чека в пакетном режиме (Продажа)
- Формирование чека в синхронном режиме (Продажа)
- Формирование копии чека в пакетном режиме
В тесте продажи проверяется добавление
- Маркированного товара, включая его проверку в ФН
- Штучного товара
- Весового товара
Для связи с поддержкой данного проекта, отправки сообщений об ошибках, пожеланий и запросов на изменения можно связаться по почте: [email protected]