Мелкооптовая торговля (по-английски обычно «Cash & Carry», с англ. – «Заплати и уноси») – формат торговли, где количество отпускаемого товара превышает розничное, но ниже оптового. Продажи в таком случае обычно идут по нескольким прейскурантам, в зависимости от объёма покупки. Поскольку основными клиентами являются оптовые (юридические лица) и мелкооптовые покупатели (индивидуальные предприниматели), оформление покупки предполагает составление и печать универсального передаточного документа (УПД).

Универсальный передаточный документ представляет собой унифицированный документ, который включает в себя счет-фактуру, дополненный реквизитами первичного документа об отгрузке и приемке товара.

Для использования функционала Cash & Carry необходимо:

  1. Настроить принтер (см. пункт "Настройка принтера (на примере принтеров HP)").
  2. Заполнить данные в БД Dictionaries:
  3. Создать карты клиентов с указанием организаций:
  4. Активировать модуль печати УПД (см. пункт "Печать универсального передаточного документа").
  5. Настроить подключение к серверу для получения и обновления статуса номера УПД (см. пункт "Печать универсального передаточного документа").
  6. Задать количество печатаемых экземпляров УПД (см. пункт "Печать универсального передаточного документа").
  7. Перезапустить программу.
  8. Применить карту клиента в чеке.
  9. Подтвердить печать УПД.


Поля в УПД заполняются на основании полей из БД Dictionaries:

  • 1 – номер счета-фактуры, полученный с кассового сервера;
  • 2 – значение поля vendorname таблицы Shop;
  • 3 – значение поля vendorlegaladdress таблицы Shop;
  • 4 – значения полей vendorinn и vendorkpp таблицы Shop, указанные через "/";
  • 5 – значения полей shippername и shipperaddress таблицы Shop;
  • 6 – значения полей receiver и deliveryaddress таблицы Organization;
  • 7 – значение поля customer таблицы Organization;
  • 8 – значение поля registeredaddress таблицы Organization;
  • 9 – значения полей inn и kpp таблицы Organization, указанные через "/";
  • 10 – значения полей code и name таблицы Country;
  • 11 – ФИО кассира;
  • 12 – значение поля name таблицы Client.




Поля в чеке, для которого распечатан УПД, заполняются на основании полей из БД Dictionaries:


Настройка принтера для Ubuntu 18.04 и 22.04 (на примере принтеров HP)

Тестирование функционала проводилось на модели HP LaserJet P1102.

Для возможности печати УПД из кассы необходимо выполнить следующие шаги:

  1. Установить пакет artix45-print, выполнив команду:

    aptitude install artix45-print

    Пакет используется для конвертации документов из формата html (в котором формируется отчет) в pdf (в котором выполняется печать отчета).

  2. Подключить и настроить принтер. Для этого:
    1. Указать репозиторий для скачивания и установки пакета, содержащего библиотеки для работы с принтером:

      • для Ubuntu 18.04:

        deb http://ru.archive.ubuntu.com/ubuntu/ bionic main restricted universe


      • для Ubuntu 22.04:

        deb http://ru.archive.ubuntu.com/ubuntu/ jammy main restricted universe


    2. После указания репозитория необходимо установить пакет hplip, выполнив команду:

      aptitude install hplip


    3. Для настройки принтера выполнить команду:

      hp-setup -i

      При настройке принтера указать последовательно данные:

      1. usb

      2. download plug-in from HP

      3. accept the license terms for plug-in

      4. use model name:...

      5. PPD file is correct
      6. "some printer description"
      7. Enter
      8. Print test page
    4. Для кассового ПО на базе 18.04 пакет cups устанавливается автоматически с пакетом artix45-print.

    5. Настроить пакет cups в конфигурационном файле /etc/cups/cupsd.conf, указав в нем ip-адрес кассы и порт 631.
  3. Для возможности просмотра настроек принтера и задач на печать необходимо:
    1. Выполнить команду:

      service cups restart


    2. Для встроенного браузера указать ссылку на страницу https://<ip-адрес_кассы>:631/.

Назначение принтера по умолчанию

Для назначения принтера по умолчанию пользователю root необходимо выполнить команду:

lpoptions -d HP_LaserJet_P1102

Для назначения принтера по умолчанию пользователю autologon необходимо выполнить команду:

sudo -u autologon lpoptions -d HP_LaserJet_P1102

Печать универсального передаточного документа

Автоматическая печать

Начиная с версии 4.6.120 добавлено получение номера УПД с кассового сервера.

Для автоматической печати универсального передаточного документа необходимо, чтобы в карточке клиента был заполнен уникальный код организации (БД Dictionaries таблица Client поле organizationcode).

Для печати универсального передаточного документа необходимо включить плагин printwaybill в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/printwaybill.ini в секции [plugins].

НаименованиеТип данныхОписаниеПримечания
printwaybillстроковыйВключение и выключение плагина для возможности печати счета-фактурыПо умолчанию on


[plugins]
; Включение и выключение плагина для возможности печати счета-фактуры
; по умолчанию on
printwaybill = on

Кассовое ПО запрашивает номер УПД с кассового сервера (КС, ЦКС или МКС).

Маска для формирования номера УПД и начальное значение порядкового номера УПД задаются в настройках кассового сервера. Подробнее об этом можно прочитать в разделе "Настройки сервера".

Подключение к серверу настраивается в секции [Waybill] в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/printwaybill.ini.

НаименованиеТип данныхОписаниеПримечания
serverUrlстроковыйАдрес сервера, на который отправляются запросы на получение и обновление статуса номера счета-фактуры

По умолчанию http://localhost:8080/

Для работы с КС используется следующий url: "http://<host>:8080/CSrest/rest/"

timeoutчисловойТаймаут обращения к серверу в секундахПо умолчанию 30
numberToPrintчисловой

Количество экземпляров передаточного документа, которое нужно распечатать при закрытии чека, если печать была подтверждена

По умолчанию 2


[Waybill]

; Адрес сервера, на который отправляются запросы на получение и обновление статуса номера счета-фактуры. 
; Для работы с КС используется следующий URL "http://'IP-адрес КС':8080/CSrest/rest/"
; По умолчанию http://localhost:8080
;serverUrl = "http://localhost:8080"

; Таймаут обращения к серверу в секундах. По умолчанию 30
;timeout = 30

; Количество экземпляров передаточного документа, которое нужно распечатать при закрытии чека (если печать была подтверждена)
; По умочанию 2
;numberToPrint = 2

При добавлении карты клиента в чек проверяется наличие кода организации, который свидетельствует о том, что карта выдана на юридическое лицо. Если поле заполнено, то при добавлении карты на экран выводится диалоговое окно с сообщением "Выполнить печать счета-фактуры при закрытии чека?".

Обновление статуса УПД при закрытии чека осуществляется через очередь сообщений Artix-Queue.

Задать количество распечатанных экземпляров УПД можно при помощи параметра numberToPrint в секции [Waybill] в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/printwaybill.ini. По умолчанию печатается 2 экземпляра УПД.

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

Реквизиты организации

Если печать УПД подтверждена, то при закрытии чека данные покупателя: наименование организации (БД Dictionaries таблица Organization поле name) и ИНН организации (БД Dictionaries таблица Organization поле inn) будут переданы в ФР и напечатаны на чеке.

Максимальная длина реквизитов организации при передаче в ФР: наименование – 128 символов, ИНН – 12 символов.

Для ФР Пирит печать реквизитов организации на чеке не реализована производителем ФР.

Запрет продажи алкоголя на юридическое лицо

Запрещена продажа акцизной и неакцизной алкогольной продукции в чеке, по которому требуется печать УПД:

Печать УПД для ранее закрытых документов

При печати УПД для ранее закрытых документов в поле waybillprinted не устанавливается признак того, что УПД был напечатан.

Для настройки печати универсального передаточного документа в утилите администрирования Yuki необходимо:

В параметрах действия необходимо указать useLastDocument, который определяет какой документ необходимо распечатать:

О настройке пунктов меню подробнее можно прочитать в разделе "Настройка действий".

При печати УПД для ранее закрытого документа, в котором отсутствует карта покупателя, будут заполнены только данные продавца.

Печать УПД при печати копии документа

Начиная с версии 4.6.213 реализована печать УПД при печати копии документа.

Если при закрытии документа был напечатан УПД, то УПД распечатается при печати копии документа.

Для печати УПД при печати копии документа необходимо в утилите администрирования Yuki:

О настройке действий подробнее можно прочитать в разделе "Настройка действий".

Работа с универсальным передаточным документом в кластерном режиме

Начиная с версии 4.6.140 реализован функционал работы с универсальным передаточным документом в режиме подключения к кластеру (кассовый сервер версии 3).

При использовании кластерного режима возникает необходимость вести УПД отдельно для каждого из клиентов, подключенных к кассовому серверу. В этом случае при получении номера УПД касса отправляет на кассовый сервер запрос, включающий идентификатор кластера. При подключении к кассовому серверу в файле настроек sync-агента /linuxcash/cash/sync/properties/cash.ini устанавливается ID кластера.