Package ru.bitel.bgbilling.plugins.cashcheck.common

# Class Check

java.lang.Object
ru.bitel.bgbilling.plugins.cashcheck.common.Check

Direct Known Subclasses:
  `Check`

public class Check extends Object
Используется для формирования последовательностей линий чека. Этот же объект передаётся в скрипты формирования вида чека. После этого отсюда получается список строк для непосредственной посылки в сервер печати. Основной код чека, используется во всех фискализаторах.

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static class`
  `Check.CheckLine`
  Класс "линия чека", либо продажа(позиция), либо просто строка (когда сумма и отдел равны -1) В сервере печати используется так же: Строка чека.
  `static class`
  `Check.STAG`
  Шорткат для установки сложных вложенных тегов в чек/позицию.
  `static enum`
  `Check.Type`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected String`
  `cashierINN`
  `protected String`
  `cashierName`
  `protected Check.Type`
  `checkType`
  тип чека: приход, возврат прихода, итд сделан чтобы можно было теоретически поменять в скрипте тип с прихода на возврат (например печатать чек возврата прихода на отрицательные платежи) также используется чтобы печатать чек коррекции прихода вместо чека прихода
  `protected String`
  `customerEmail`
  Установленный "адрес пользователя" мыло/телефон.
  `protected Map<Integer,Object>`
  `customTags`
  Доп. теги.
  `static final String`
  `CUT_TEXT_COMMAND`
  строка которая символизирует отрезку чека, например, в команде драйвера printtext
  `protected Date`
  `documentDate`
  `protected String`
  `documentId`
  `protected List<Check.CheckLine>`
  `lines`
  список линий чека, заполняем сначала этот список теперь, а не сразу текстовые строки, чтобы иметь возможность гибкого манипулирования позициями, суммами итд
  `static final int`
  `OFD_TAG_AGENT_INFO_TYPE`
  Атрибуты агента (к позиции): [Тег: 1222] Признак агента по предмету расчета * 0 (bank_payment_agent) - оказание услуг покупателю (клиенту) пользователем, являющимся банковским платежным агентом * 1 (bank_payment_subagent) - оказание услуг покупателю (клиенту) пользователем, являющимся банковским платежным субагентом * 2 (payment_agent) - оказание услуг покупателю (клиенту) пользователем, являющимся платежным агентом * 3 (payment_subagent) - оказание услуг покупателю (клиенту) пользователем, являющимся платежным субагентом * 4 (solicitor) - осуществление расчета с покупателем (клиентом) пользователем, являющимся поверенным * 5 (commissionaire) - осуществление расчета с покупателем (клиентом) пользователем, являющимся комиссионером * 6 (agent) - осуществление расчета с покупателем (клиентом) пользователем, являющимся агентом и не являющимся банковским платежным агентом (субагентом), платежным агентом (субагентом), поверенным, комиссионером
  `static final int`
  `OFD_TAG_INTERNET`
  1125 Признак расчета в интернет [совпадает с настоящим номером тега, потому что простой тег должен работать в железных кассах искаробки]
  `static final int`
  `OFD_TAG_SUPPLIER_INFO_INN`
  Атрибуты поставщика (к позиции): [Тег: 1226] ИНН поставщика
  `static final int`
  `OFD_TAG_SUPPLIER_INFO_NAME`
  Атрибуты поставщика (к позиции): [Тег: 1225] Наименование поставщика
  `static final int`
  `OFD_TAG_SUPPLIER_INFO_PHONES`
  Атрибуты поставщика (к позиции): [Тег: 1171] Телефоны поставщика.
  `static final int`
  `OFD_TAG_TIMEZONE`
  1011 Часовая зона Номер часовой зоны места (адреса) осуществления расчетов, целое число от 1 до 11 [совпадает с настоящим номером тега, потому что простой тег должен работать в железных кассах искаробки]
  `protected boolean`
  `onlyElCheck`
  Только электронный чек, на бумаге не печатать
  `static final int`
  `PAY_CARD`
  Тип платежа (для setPaymentType) - карта/электронные/безналичные (1081 Сумма по чеку безналичными)
  `static final int`
  `PAY_CASH`
  Тип платежа (для setPaymentType) - наличные (1031 сумма по чеку (БСО) наличными)
  `static final int`
  `PAY_CREDIT`
  Тип платежа (для setPaymentType) - постоплата (кредит) (1216 Сумма по чеку постоплатой (кредит))
  `static final int`
  `PAY_OTHER`
  Тип платежа (для setPaymentType) - иная форма оплаты (встречное предоставление) (1217 Сумма по чеку встречным представлением)
  `static final int`
  `PAY_PREPAYMENT`
  Тип платежа (для setPaymentType) - предварительная оплата (зачет аванса и (или) предыдущих платежей) (1215 Сумма по чеку предоплатой (зачет аванса и (или) предыдущих платежей))
  `protected BigDecimal`
  `paymentsum`
  считаем сумму, по всем пунктам чека.
  `protected Integer`
  `paymentType`
  тип оплаты (он один на весь чек, не на каждую позицию)
  `protected Integer`
  `payMethod`
  `static final int`
  `PAYMETHOD_ADVANCE`
  3 Аванс "АВАНС"
  `static final int`
  `PAYMETHOD_CREDIT`
  6 Передача предмета расчета без его оплаты в момент его передачи с последующей оплатой в кредит "ПЕРЕДАЧА В КРЕДИТ"
  `static final int`
  `PAYMETHOD_CREDIT_PAYMENT`
  7 Оплата предмета расчета после его передачи с оплатой в кредит (оплата кредита) "ОПЛАТА КРЕДИТА"
  `static final int`
  `PAYMETHOD_FULL_PAYMENT`
  4 Полная оплата, в том числе с учетом аванса (предварительной оплаты) в момент передачи предмета расчета "ПОЛНЫЙ РАСЧЕТ" или "4"
  `static final int`
  `PAYMETHOD_FULL_PREPAYMENT`
  1 Полная предварительная оплата до момента передачи предмета расчета "ПРЕДОПЛАТА 100%"
  `static final int`
  `PAYMETHOD_PARTIAL_PAYMENT`
  5 Частичная оплата предмета расчета в момент его передачи с последующей оплатой в кредит "ЧАСТИЧНЫЙ РАСЧЕТ И КРЕДИТ"
  `static final int`
  `PAYMETHOD_PREPAYMENT`
  2 Частичная предварительная оплата до момента передачи предмета расчета "ПРЕДОПЛАТА"
  `protected Integer`
  `payObject`
  `static final int`
  `PAYOBJECT_AGENT_COMMISSION`
  11 о вознаграждении пользователя, являющегося платежным агентом (субагентом), банковским платежным агентом (субагентом), комиссионером, поверенным или иным агентом "АГЕНТСКОЕ ВОЗНАГРАЖДЕНИЕ" или "АВ"
  `static final int`
  `PAYOBJECT_ANOTHER`
  13 о предмете расчета, не относящемуся к предметам расчета, которым может быть присвоено значение от "1" до "11" и от "14" до "26" "ИНОЙ ПРЕДМЕТ РАСЧЕТА" или "ИПР" или может не печататься
  `static final int`
  `PAYOBJECT_COMMODITY`
  1 о реализуемом товаре, за исключением подакцизного товара (наименование и иные сведения, описывающие товар) "ТОВАР" или "Т" или может не печататься
  `static final int`
  `PAYOBJECT_JOB`
  3 о выполняемой работе (наименование и иные сведения, описывающие работу) "РАБОТА" или "Р" или может не печататься
  `static final int`
  `PAYOBJECT_PAYMENT`
  10 об авансе, задатке, предоплате и кредите "ПЛАТЕЖ" или "П" или может не печататься
  `static final int`
  `PAYOBJECT_SERVICE`
  4 об оказываемой услуге (наименование и иные сведения, описывающие услугу) "УСЛУГА" или "У" или может не печататься
  `protected Integer`
  `tax`
  налог, налоговая группа итд. задаётся на весь чек одним числом.
  `static final int`
  `VAT_0`
  Тип налога/ндс (для setTax) – НДС по ставке 0%
  `static final int`
  `VAT_10`
  Тип налога/ндс (для setTax) – НДС чека по ставке 10%
  `static final int`
  `VAT_105`
  Тип налога/ндс (для setTax) – НДС рассчитанный 5/105
  `static final int`
  `VAT_107`
  Тип налога/ндс (для setTax) – НДС рассчитанный 7/107
  `static final int`
  `VAT_110`
  Тип налога/ндс (для setTax) – НДС чека по расчетной ставке 10/110
  `static final int`
  `VAT_118`
  Тип налога/ндс (для setTax) – НДС чека по расчетной ставке 18/118 (историческое)
  `static final int`
  `VAT_120`
  Тип налога/ндс (для setTax) – НДС чека по расчетной ставке 20/120
  `static final int`
  `VAT_122`
  Тип налога/ндс (для setTax) – НДС чека по расчетной ставке 22/122
  `static final int`
  `VAT_18`
  Тип налога/ндс (для setTax) – НДС чека по ставке 18% (историческое)
  `static final int`
  `VAT_20`
  Тип налога/ндс (для setTax) – НДС чека по ставке 20%
  `static final int`
  `VAT_22`
  Тип налога/ндс (для setTax) – НДС чека по ставке 22%
  `static final int`
  `VAT_5`
  Тип налога/ндс (для setTax) – НДС 5%
  `static final int`
  `VAT_7`
  Тип налога/ндс (для setTax) – НДС 7%
  `static final int`
  `VAT_NO`
  Тип налога/ндс (для setTax) – без НДС

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Check()`
  `Check(Check.Type checkType)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected static void`
  `_CUSTOMTAG_decode(String t, Map<Integer,Object> customTags)`
  `protected static BigDecimal`
  `_roundSum(BigDecimal summa)`
  округление входящих сюда сумм, ибо если например передаются суммы из наработки или каким-то делением полученные, то получатся суммы большой точности и некоторые фискализаторы сходят с ума. если точность была меньше точности чем два после запятой - всё равно для общности всё приводится к Х.ХХ
  `void`
  `addPayment(BigDecimal summa, String string, int dep)`
  Добавление строки продажи.
  `void`
  `addPayment(BigDecimal summa, String string, int dep, Integer payMethod, Integer payObject)`
  `void`
  `addPayment(BigDecimal summa, String string, int dep, Integer payMethod, Integer payObject, Integer tax)`
  Добавление строки продажи с указанием специфичных признаков способа и объекта расчёта.
  `void`
  `addString(String string)`
  Добавление строки текста.
  `String`
  `getCashierINN()`
  `String`
  `getCashierName()`
  `String`
  `getCheckData()`
  получение текстового представления сожержимого чека в том виде котором оно отдаётся на сервер печати
  `Check.Type`
  `getCheckType()`
  `String`
  `getCustomerEmail()`
  `Map<Integer,Object>`
  `getCustomTags()`
  `Date`
  `getDocumentDate()`
  дата документа, используется в некоторых системах
  `String`
  `getDocumentId()`
  `List<Check.CheckLine>`
  `getLines()`
  Список линий чека, как платежей, так и каментов.
  `BigDecimal`
  `getPaymentsum()`
  `Integer`
  `getPaymentType()`
  `Integer`
  `getPayMethod()`
  Признак способа расчёта, вообще это атрибут позиции чека, но здесь оно на весь чек задаётся
  `Integer`
  `getPayObject()`
  Признак предмета расчёта, вообще это атрибут позиции чека, но здесь оно на весь чек задаётся
  `List<String>`
  `getPlines()`
  Метод возвращающий список строк для передачи его к клиенту посылки на удалённый сервер печати.
  `Integer`
  `getTax()`
  `boolean`
  `isOnlyElCheck()`
  Признак "только электронный чек, без печати на ленту".
  `static Check`
  `processCommandCheckParameters(String[] parameters, org.slf4j.Logger logger)`
  Разбирает параметры команды "check".
  `void`
  `setCashierINN(String cashierINN)`
  `void`
  `setCashierName(String cashierName)`
  `void`
  `setCheckType(Check.Type checkType)`
  `void`
  `setCustomerEmail(String customerEmail)`
  установка "адреса пользователя" - мыло/телефон
  `void`
  `setDocumentDate(Date documentDate)`
  дата документа, используется в некоторых системах
  `void`
  `setDocumentId(int documentId)`
  `void`
  `setDocumentId(String documentId)`
  `void`
  `setLastPaymentPayMethod(int payMethod)`
  Установка к предыдущей позиции (addPayment) признака способа расчёта
  `void`
  `setLastPaymentPayObject(int payObject)`
  Установка к предыдущей позиции (addPayment) признака предмета расчёта
  `void`
  `setLastPaymentTag(int tag, byte[] value)`
  Добавление к предыдущей позиции (addPayment) тега, "привязанного к позиции"
  `void`
  `setLastPaymentTag(int tag, long value)`
  Добавление к предыдущей позиции (addPayment) тега, "привязанного к позиции" целочисленного
  `void`
  `setLastPaymentTag(int tag, String value)`
  Добавление к предыдущей позиции (addPayment) тега, "привязанного к позиции" строкового
  `void`
  `setLastPaymentTag(int tag, Check.STAG value)`
  Добавление к предыдущей позиции (addPayment) тега, "привязанного к позиции" вложенного тега, внутри мэп с ключом [целое], значение [целое/строка]
  `void`
  `setLastPaymentTax(int tax)`
  Установка к предыдущей позиции (addPayment) налога / налоговой группы
  `void`
  `setOnlyElCheck(boolean onlyElCheck)`
  Установка признака "только электронный чек, без печати на ленту".
  `void`
  `setPaymentType(int paymentType)`
  Установка типа оплаты (если используется и протокол позволяет)
  `void`
  `setPayMethod(int payMethod)`
  Deprecated.
  использовать setLastPaymentPayMethod для позиций
  `void`
  `setPayObject(int payObject)`
  Deprecated.
  использовать setLastPaymentPayObject для позиций
  `void`
  `setTag(int tag, byte[] value)`
  установка произвольного тега
  `void`
  `setTag(int tag, long value)`
  установка произвольного целочисленного тега
  `void`
  `setTag(int tag, String value)`
  установка произвольного строкового тега
  `void`
  `setTag(int tag, Check.STAG value)`
  установка вложенного тега, внутри мэп с ключом [целое], значение [целое/строка]
  `void`
  `setTax(int tax)`
  Установка налога/налоговой группы на весь чек (если используется и протокол позволяет), может иметь другое значение чем налог на позицию.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### paymentsum

    protected BigDecimal paymentsum
    считаем сумму, по всем пунктам чека. В том числе, если clientsumma не передана, мы подставим её туда, будто клиент дал

  - ### lines

    protected List<Check.CheckLine> lines
    список линий чека, заполняем сначала этот список теперь, а не сразу текстовые строки, чтобы иметь возможность гибкого манипулирования позициями, суммами итд

  - ### paymentType

    protected Integer paymentType
    тип оплаты (он один на весь чек, не на каждую позицию)

  - ### tax

    protected Integer tax
    налог, налоговая группа итд. задаётся на весь чек одним числом. хотя например в штрихе задаётся и на продажную позицию и на закрытие чека, также в штрихе можно задать tax1...tax4, но используем только первую в некоторых протоколах имеет другое значение (?) чем налог на позицию.

  - ### customerEmail

    protected String customerEmail
    Установленный "адрес пользователя" мыло/телефон.

  - ### onlyElCheck

    protected boolean onlyElCheck
    Только электронный чек, на бумаге не печатать

  - ### customTags

    protected Map<Integer,Object> customTags
    Доп. теги. Они могут быть строкой, целым(long), массивом байт, типом STAG (Map) для вложенных тегов. В новом виде передаётся каждый тип по-разному. это те которые на весь чек.

  - ### payMethod

    protected Integer payMethod

  - ### payObject

    protected Integer payObject

  - ### checkType

    protected Check.Type checkType
    тип чека: приход, возврат прихода, итд сделан чтобы можно было теоретически поменять в скрипте тип с прихода на возврат (например печатать чек возврата прихода на отрицательные платежи) также используется чтобы печатать чек коррекции прихода вместо чека прихода

  - ### cashierName

    protected String cashierName

  - ### cashierINN

    protected String cashierINN

  - ### documentDate

    protected Date documentDate

  - ### documentId

    protected String documentId

  - ### CUT_TEXT_COMMAND

    public static final String CUT_TEXT_COMMAND
    строка которая символизирует отрезку чека, например, в команде драйвера printtext
    See Also:
      - Constant Field Values

  - ### OFD_TAG_SUPPLIER_INFO_PHONES

    public static final int OFD_TAG_SUPPLIER_INFO_PHONES
    Атрибуты поставщика (к позиции): [Тег: 1171] Телефоны поставщика. Номер телефона необходимо передать вместе с кодом страны без пробелов и дополнительных символов.
    See Also:
      - Constant Field Values

  - ### OFD_TAG_SUPPLIER_INFO_NAME

    public static final int OFD_TAG_SUPPLIER_INFO_NAME
    Атрибуты поставщика (к позиции): [Тег: 1225] Наименование поставщика
    See Also:
      - Constant Field Values

  - ### OFD_TAG_SUPPLIER_INFO_INN

    public static final int OFD_TAG_SUPPLIER_INFO_INN
    Атрибуты поставщика (к позиции): [Тег: 1226] ИНН поставщика
    See Also:
      - Constant Field Values

  - ### OFD_TAG_AGENT_INFO_TYPE

    public static final int OFD_TAG_AGENT_INFO_TYPE
    Атрибуты агента (к позиции): [Тег: 1222] Признак агента по предмету расчета * 0 (bank_payment_agent) - оказание услуг покупателю (клиенту) пользователем, являющимся банковским платежным агентом * 1 (bank_payment_subagent) - оказание услуг покупателю (клиенту) пользователем, являющимся банковским платежным субагентом * 2 (payment_agent) - оказание услуг покупателю (клиенту) пользователем, являющимся платежным агентом * 3 (payment_subagent) - оказание услуг покупателю (клиенту) пользователем, являющимся платежным субагентом * 4 (solicitor) - осуществление расчета с покупателем (клиентом) пользователем, являющимся поверенным * 5 (commissionaire) - осуществление расчета с покупателем (клиентом) пользователем, являющимся комиссионером * 6 (agent) - осуществление расчета с покупателем (клиентом) пользователем, являющимся агентом и не являющимся банковским платежным агентом (субагентом), платежным агентом (субагентом), поверенным, комиссионером
    See Also:
      - Constant Field Values

  - ### OFD_TAG_INTERNET

    public static final int OFD_TAG_INTERNET
    1125 Признак расчета в интернет [совпадает с настоящим номером тега, потому что простой тег должен работать в железных кассах искаробки]
    See Also:
      - Constant Field Values

  - ### OFD_TAG_TIMEZONE

    public static final int OFD_TAG_TIMEZONE
    1011 Часовая зона Номер часовой зоны места (адреса) осуществления расчетов, целое число от 1 до 11 [совпадает с настоящим номером тега, потому что простой тег должен работать в железных кассах искаробки]
    See Also:
      - Constant Field Values

  - ### PAY_CASH

    public static final int PAY_CASH
    Тип платежа (для setPaymentType) - наличные (1031 сумма по чеку (БСО) наличными)
    See Also:
      - Constant Field Values

  - ### PAY_CARD

    public static final int PAY_CARD
    Тип платежа (для setPaymentType) - карта/электронные/безналичные (1081 Сумма по чеку безналичными)
    See Also:
      - Constant Field Values

  - ### PAY_PREPAYMENT

    public static final int PAY_PREPAYMENT
    Тип платежа (для setPaymentType) - предварительная оплата (зачет аванса и (или) предыдущих платежей) (1215 Сумма по чеку предоплатой (зачет аванса и (или) предыдущих платежей))
    See Also:
      - Constant Field Values

  - ### PAY_CREDIT

    public static final int PAY_CREDIT
    Тип платежа (для setPaymentType) - постоплата (кредит) (1216 Сумма по чеку постоплатой (кредит))
    See Also:
      - Constant Field Values

  - ### PAY_OTHER

    public static final int PAY_OTHER
    Тип платежа (для setPaymentType) - иная форма оплаты (встречное предоставление) (1217 Сумма по чеку встречным представлением)
    See Also:
      - Constant Field Values

  - ### VAT_NO

    public static final int VAT_NO
    Тип налога/ндс (для setTax) – без НДС
    See Also:
      - Constant Field Values

  - ### VAT_0

    public static final int VAT_0
    Тип налога/ндс (для setTax) – НДС по ставке 0%
    See Also:
      - Constant Field Values

  - ### VAT_10

    public static final int VAT_10
    Тип налога/ндс (для setTax) – НДС чека по ставке 10%
    See Also:
      - Constant Field Values

  - ### VAT_18

    public static final int VAT_18
    Тип налога/ндс (для setTax) – НДС чека по ставке 18% (историческое)
    See Also:
      - Constant Field Values

  - ### VAT_110

    public static final int VAT_110
    Тип налога/ндс (для setTax) – НДС чека по расчетной ставке 10/110
    See Also:
      - Constant Field Values

  - ### VAT_118

    public static final int VAT_118
    Тип налога/ндс (для setTax) – НДС чека по расчетной ставке 18/118 (историческое)
    See Also:
      - Constant Field Values

  - ### VAT_20

    public static final int VAT_20
    Тип налога/ндс (для setTax) – НДС чека по ставке 20%
    See Also:
      - Constant Field Values

  - ### VAT_120

    public static final int VAT_120
    Тип налога/ндс (для setTax) – НДС чека по расчетной ставке 20/120
    See Also:
      - Constant Field Values

  - ### VAT_22

    public static final int VAT_22
    Тип налога/ндс (для setTax) – НДС чека по ставке 22%
    See Also:
      - Constant Field Values

  - ### VAT_122

    public static final int VAT_122
    Тип налога/ндс (для setTax) – НДС чека по расчетной ставке 22/122
    See Also:
      - Constant Field Values

  - ### VAT_5

    public static final int VAT_5
    Тип налога/ндс (для setTax) – НДС 5%
    See Also:
      - Constant Field Values

  - ### VAT_105

    public static final int VAT_105
    Тип налога/ндс (для setTax) – НДС рассчитанный 5/105
    See Also:
      - Constant Field Values

  - ### VAT_7

    public static final int VAT_7
    Тип налога/ндс (для setTax) – НДС 7%
    See Also:
      - Constant Field Values

  - ### VAT_107

    public static final int VAT_107
    Тип налога/ндс (для setTax) – НДС рассчитанный 7/107
    See Also:
      - Constant Field Values

  - ### PAYMETHOD_FULL_PREPAYMENT

    public static final int PAYMETHOD_FULL_PREPAYMENT
    1 Полная предварительная оплата до момента передачи предмета расчета "ПРЕДОПЛАТА 100%"
    See Also:
      - Constant Field Values

  - ### PAYMETHOD_PREPAYMENT

    public static final int PAYMETHOD_PREPAYMENT
    2 Частичная предварительная оплата до момента передачи предмета расчета "ПРЕДОПЛАТА"
    See Also:
      - Constant Field Values

  - ### PAYMETHOD_ADVANCE

    public static final int PAYMETHOD_ADVANCE
    3 Аванс "АВАНС"
    See Also:
      - Constant Field Values

  - ### PAYMETHOD_FULL_PAYMENT

    public static final int PAYMETHOD_FULL_PAYMENT
    4 Полная оплата, в том числе с учетом аванса (предварительной оплаты) в момент передачи предмета расчета "ПОЛНЫЙ РАСЧЕТ" или "4"
    See Also:
      - Constant Field Values

  - ### PAYMETHOD_PARTIAL_PAYMENT

    public static final int PAYMETHOD_PARTIAL_PAYMENT
    5 Частичная оплата предмета расчета в момент его передачи с последующей оплатой в кредит "ЧАСТИЧНЫЙ РАСЧЕТ И КРЕДИТ"
    See Also:
      - Constant Field Values

  - ### PAYMETHOD_CREDIT

    public static final int PAYMETHOD_CREDIT
    6 Передача предмета расчета без его оплаты в момент его передачи с последующей оплатой в кредит "ПЕРЕДАЧА В КРЕДИТ"
    See Also:
      - Constant Field Values

  - ### PAYMETHOD_CREDIT_PAYMENT

    public static final int PAYMETHOD_CREDIT_PAYMENT
    7 Оплата предмета расчета после его передачи с оплатой в кредит (оплата кредита) "ОПЛАТА КРЕДИТА"
    See Also:
      - Constant Field Values

  - ### PAYOBJECT_COMMODITY

    public static final int PAYOBJECT_COMMODITY
    1 о реализуемом товаре, за исключением подакцизного товара (наименование и иные сведения, описывающие товар) "ТОВАР" или "Т" или может не печататься
    See Also:
      - Constant Field Values

  - ### PAYOBJECT_JOB

    public static final int PAYOBJECT_JOB
    3 о выполняемой работе (наименование и иные сведения, описывающие работу) "РАБОТА" или "Р" или может не печататься
    See Also:
      - Constant Field Values

  - ### PAYOBJECT_SERVICE

    public static final int PAYOBJECT_SERVICE
    4 об оказываемой услуге (наименование и иные сведения, описывающие услугу) "УСЛУГА" или "У" или может не печататься
    See Also:
      - Constant Field Values

  - ### PAYOBJECT_PAYMENT

    public static final int PAYOBJECT_PAYMENT
    10 об авансе, задатке, предоплате и кредите "ПЛАТЕЖ" или "П" или может не печататься
    See Also:
      - Constant Field Values

  - ### PAYOBJECT_AGENT_COMMISSION

    public static final int PAYOBJECT_AGENT_COMMISSION
    11 о вознаграждении пользователя, являющегося платежным агентом (субагентом), банковским платежным агентом (субагентом), комиссионером, поверенным или иным агентом "АГЕНТСКОЕ ВОЗНАГРАЖДЕНИЕ" или "АВ"
    See Also:
      - Constant Field Values

  - ### PAYOBJECT_ANOTHER

    public static final int PAYOBJECT_ANOTHER
    13 о предмете расчета, не относящемуся к предметам расчета, которым может быть присвоено значение от "1" до "11" и от "14" до "26" "ИНОЙ ПРЕДМЕТ РАСЧЕТА" или "ИПР" или может не печататься
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### Check

    public Check(Check.Type checkType)

  - ### Check

    public Check()

- ## Method Details

  - ### addString

    public void addString(String string)
    Добавление строки текста.
    Parameters:
      `string` - строка.

  - ### addPayment

    public void addPayment(BigDecimal summa, String string, int dep)
    Добавление строки продажи.
    Parameters:
      `summa` - сумма.
      `string` - название позиции (если используется и протокол позволяет).
      `dep` - "отдел" в ККМ (если используется и протокол позволяет, иначе ставьте 0).
    See Also:
      - `addPayment(BigDecimal, String, int)`

  - ### addPayment

    public void addPayment(BigDecimal summa, String string, int dep, Integer payMethod, Integer payObject)

  - ### _roundSum

    protected static BigDecimal _roundSum(BigDecimal summa)
    округление входящих сюда сумм, ибо если например передаются суммы из наработки или каким-то делением полученные, то получатся суммы большой точности и некоторые фискализаторы сходят с ума. если точность была меньше точности чем два после запятой - всё равно для общности всё приводится к Х.ХХ

  - ### addPayment

    public void addPayment(BigDecimal summa, String string, int dep, Integer payMethod, Integer payObject, Integer tax)
    Добавление строки продажи с указанием специфичных признаков способа и объекта расчёта.
    Parameters:
      `summa` - сумма, должна быть не null, сумма сразу приводится к двум знакам точности.
      `string` - название позиции (если используется и протокол позволяет).
      `dep` - "отдел" в ККМ (если используется и протокол позволяет, иначе ставьте 0).
      `payMethod` - признак способа расчёта позиции, не задано: null
      `payObject` - признак предмета расчёта позиции, не задано: null
      `tax` - налог для позиции, не задано: null
    See Also:
      - `addPayment(BigDecimal, String, int)`

  - ### setLastPaymentTag

    public void setLastPaymentTag(int tag, String value)
    Добавление к предыдущей позиции (addPayment) тега, "привязанного к позиции" строкового

  - ### setLastPaymentTag

    public void setLastPaymentTag(int tag, long value)
    Добавление к предыдущей позиции (addPayment) тега, "привязанного к позиции" целочисленного

  - ### setLastPaymentTag

    public void setLastPaymentTag(int tag, byte[] value)
    Добавление к предыдущей позиции (addPayment) тега, "привязанного к позиции"

  - ### setLastPaymentTag

    public void setLastPaymentTag(int tag, Check.STAG value)
    Добавление к предыдущей позиции (addPayment) тега, "привязанного к позиции" вложенного тега, внутри мэп с ключом [целое], значение [целое/строка]

  - ### setLastPaymentPayMethod

    public void setLastPaymentPayMethod(int payMethod)
    Установка к предыдущей позиции (addPayment) признака способа расчёта

  - ### setLastPaymentPayObject

    public void setLastPaymentPayObject(int payObject)
    Установка к предыдущей позиции (addPayment) признака предмета расчёта

  - ### setLastPaymentTax

    public void setLastPaymentTax(int tax)
    Установка к предыдущей позиции (addPayment) налога / налоговой группы

  - ### setPaymentType

    public void setPaymentType(int paymentType)
    Установка типа оплаты (если используется и протокол позволяет)
    Parameters:
      `paymentType` - тип оплаты

  - ### setTax

    public void setTax(int tax)
    Установка налога/налоговой группы на весь чек (если используется и протокол позволяет), может иметь другое значение чем налог на позицию. Или просто распространится на все позиции.
    Parameters:
      `tax` - налог/налоговая группа

  - ### setOnlyElCheck

    public void setOnlyElCheck(boolean onlyElCheck)
    Установка признака "только электронный чек, без печати на ленту".

  - ### isOnlyElCheck

    public boolean isOnlyElCheck()
    Признак "только электронный чек, без печати на ленту".

  - ### getPlines

    public List<String> getPlines()
    Метод возвращающий список строк для передачи его к клиенту посылки на удалённый сервер печати.
    Returns:
      список строк

  - ### getPaymentsum

    public BigDecimal getPaymentsum()

  - ### getLines

    public List<Check.CheckLine> getLines()
    Список линий чека, как платежей, так и каментов.
    Returns:
      лист объектов

  - ### getPaymentType

    public Integer getPaymentType()

  - ### getTax

    public Integer getTax()

  - ### setCustomerEmail

    public void setCustomerEmail(String customerEmail)
    установка "адреса пользователя" - мыло/телефон

  - ### getCustomerEmail

    public String getCustomerEmail()

  - ### setTag

    public void setTag(int tag, String value)
    установка произвольного строкового тега

  - ### setTag

    public void setTag(int tag, long value)
    установка произвольного целочисленного тега

  - ### setTag

    public void setTag(int tag, byte[] value)
    установка произвольного тега

  - ### setTag

    public void setTag(int tag, Check.STAG value)
    установка вложенного тега, внутри мэп с ключом [целое], значение [целое/строка]

  - ### setPayMethod

    @Deprecated public void setPayMethod(int payMethod)
    Deprecated.
    использовать setLastPaymentPayMethod для позиций
    Признак способа расчёта, вообще это атрибут позиции чека, но здесь оно на весь чек задаётся

  - ### setPayObject

    @Deprecated public void setPayObject(int payObject)
    Deprecated.
    использовать setLastPaymentPayObject для позиций
    Признак предмета расчёта, вообще это атрибут позиции чека, но здесь оно на весь чек задаётся

  - ### getPayMethod

    public Integer getPayMethod()
    Признак способа расчёта, вообще это атрибут позиции чека, но здесь оно на весь чек задаётся

  - ### getPayObject

    public Integer getPayObject()
    Признак предмета расчёта, вообще это атрибут позиции чека, но здесь оно на весь чек задаётся

  - ### getCheckType

    public Check.Type getCheckType()
    Returns:
      текущий тип чека (теоретически может быть незадан на данный момент).

  - ### setCheckType

    public void setCheckType(Check.Type checkType)
    Parameters:
      `\u043d\u0430\u0441\u0438\u043b\u044c\u043d\u0430\u044f` - установка типа чека.

  - ### getCustomTags

    public Map<Integer,Object> getCustomTags()

  - ### setCashierName

    public void setCashierName(String cashierName)
    Parameters:
      `cashierName` - значение кассир (1021) для чеков

  - ### setCashierINN

    public void setCashierINN(String cashierINN)
    Parameters:
      `cashierINN` - значение инн кассира (1203) для чеков

  - ### getCashierName

    public String getCashierName()

  - ### getCashierINN

    public String getCashierINN()

  - ### getCheckData

    public String getCheckData()
    получение текстового представления сожержимого чека в том виде котором оно отдаётся на сервер печати

  - ### getDocumentDate

    public Date getDocumentDate()
    дата документа, используется в некоторых системах

  - ### setDocumentDate

    public void setDocumentDate(Date documentDate)
    дата документа, используется в некоторых системах

  - ### getDocumentId

    public String getDocumentId()

  - ### setDocumentId

    public void setDocumentId(int documentId)

  - ### setDocumentId

    public void setDocumentId(String documentId)

  - ### _CUSTOMTAG_decode

    protected static void _CUSTOMTAG_decode(String t, Map<Integer,Object> customTags)

  - ### processCommandCheckParameters

    public static Check processCommandCheckParameters(String[] parameters, org.slf4j.Logger logger) throws ru.bitel.bgbilling.common.BGException
    Разбирает параметры команды "check". Заполеняет переданный массив CheckLine. И вычисляет сумму общую по чеку. Первые два параметра не трогает. Заполняет последовательность вида чека строка+платёж, так и доп.параметры чека - налог, тип платежа, ОФД-инфу всякую итд. Вынесен общий код, вот так немного криво вынесен. По идее надо было наследовать итд, но архитектура к тому моменту другая была. Надо рефакторить на досуге.
    Throws:
      `DriverException`
      `ru.bitel.bgbilling.common.BGException`