Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

  • Позиция - это несколько строк, представляющие одну позицию в чеке, добавляются в объект check с помощью addPayment/addString

  • один раз должна присутствовать установка платежа addPayment( ), это будет "фискальная" строка, которая собственно представляет собой продажу, в этой строке может быть ещё одна строка, типа наименование продажи и отдел. Теоретически может не быть фискальной строки, в печать не выведется тогда платёж, но внимание - по всем остальным признакам платёж пометится напечатанным. Замечание касается работы с фискальным оборудованием. При печати на произвольном принтере (термопринтере или обычном) возможно формирование с помощью скриптов любых данных для вывода.

  • в остальных строках - по одному параметру String которая выведется

  • или: прямой текст указан, так и выведется

  • или: просто ничего (пробел), это будет пустая строка, типа вертикальная табуляция (например, для красоты при отделении блоков текста друг от друга и т.д.)

Примеры кода:

  • добавление позиции

    Блок кода
    languagejava
    linenumbersfalse
    public void addPayment( Payment payment, Check check, Printer printer ) throws BGException
    {
      // 1) строка сумма-контракт, плюс отдел (если надо, то вычисляется в этом же скрипте)
      check.addPayment( payment.getSumma(), payment.getContractTitle(), 0 );
      // 2) строка с каментом
      check.addString( payment.getContractComment() );
      // 3) пустая строка
      check.addString( " " );
    }
  • завершение формирования

    Блок кода
    languagejava
    linenumbersfalse
    public void endCreate( intSet<Integer> cidcids, Check check, Printer printer ) throws BGException
    {
      check.addString( "footer 1" );
      check.addString( "footer 2" );
      check.addString( "footer 3" );
    }
Примечание

Обратите особое внимание, что в каждом скрипте формирования внешнего вида чека (а именно происходит формирование каждой отдельной позиции чека) обязательно должна присутствовать ровно одна команда addPayment для всех устройств, являющихся ККМ. Дополнительно может быть любое количество addString. Для устройств, представляющих обычный принтер, для FOP-устройств (см. ниже) и т.п. команда addPayment не нужна, так как там не происходит добавление продажи во внутреннюю память. Но сумма платежа будет считаться только для позиций, добавленных через addPayment.

Далее приведём пример кода "добавление позиции" для формирования FO-документа, для FOP-драйвера. Эти строки соответствуют шаблону cashcheck_pko.xsl, находящемуся в стандартной поставке сервера печати.

...