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

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

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

  1. Настроить принтер (см. пункт "Настройка принтера (на примере принтеров HP)").
  2. Заполнить данные в БД Dictionaries:
    • Shop. Указываются данные продавца и грузоотправителя (в УПД этими данными заполняется раздел Продавец).
    • Country. Страна происхождения товара.
    • Tmc. Поле manufacturercountrycode, в котором указывается связка с таблицей стран-производителей Country.
  3. Создать карты клиентов с указанием организаций:
    • Client. Связка с организацией, на которую будет выписан УПД осуществляется по полю organizationcode.
    • Organization. В данном случае под организацией понимаются юридические лица, которые являются клиентами торговой сети (в УПД этими данными заполняется раздел Покупатель).
  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 необходимо выполнить команду:

Пример команды для HP LaserJet P1102
lpoptions -d HP_LaserJet_P1102

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

Пример команды для HP LaserJet P1102
sudo -u autologon lpoptions -d HP_LaserJet_P1102

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

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

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

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

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

  • при значении on при закрытии чека печатается фискальный чек и счет-фактура. Поведение по умолчанию;
  • при значении off при закрытии чека печатается только фискальный чек.
НаименованиеТип данныхОписаниеПримечания
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

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

  • При подтверждении операции выполняется запрос на сервер для получения номера УПД:
    • если номер успешно получен, то после закрытия чека будет напечатан УПД, в БД Documents в таблицу Document в поле waybillprinted будет установлено значение 1 (УПД напечатан), а в поле waybillnumber полученный номер УПД;
    • если при получении номера УПД произошла ошибка, то на экране кассира отобразится сообщение "Не удалось получить номер счета-фактуры. Повторить? Иначе счет-фактура не будет напечатан".
  • При отказе от печати СФ после закрытия чека продажи УПД не печатается, поля waybillprinted и waybillnumber не заполняются.

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

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

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

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

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

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

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

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

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

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

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

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

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

  • на клавишу настроить действие "Печать УПД" с командой COMMAND_PRINTWAYBILL,
  • настроить пункт меню "Печать УПД" с командой COMMAND_PRINTWAYBILL.

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

  • при значении true будет напечатан УПД для последнего закрытого чека;
  • при значении false / отсутствии параметра будет предложено выбрать смену и документ. Поиск возможен как в текущей смене, так и в любой из закрытых смен на кассе.

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

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

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

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

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

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

  • на клавишу настроить действие "Печать копии чека" с командой COMMAND_PRINTCOPY,
  • настроить пункт меню "Печать копии чека" с командой COMMAND_PRINTCOPY.

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

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

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

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

  • No labels