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 java.lang.Object

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

- - ### Nested Class Summary

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

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected java.lang.String` | `cashierINN`
    `protected java.lang.String` | `cashierName`
    `protected Check.Type` | `checkType` тип чека: приход, возврат прихода, итд сделан чтобы можно было теоретически поменять в скрипте тип с прихода на возврат (например печатать чек возврата прихода на отрицательные платежи) также используется чтобы печатать чек коррекции прихода вместо чека прихода
    `protected java.lang.String` | `customerEmail` Установленный "адрес пользователя" мыло/телефон.
    `protected java.util.Map<java.lang.Integer,java.lang.Object>` | `customTags` Доп. теги.
    `protected java.util.Date` | `documentDate`
    `protected java.lang.String` | `documentId`
    `protected java.util.List<Check.CheckLine>` | `lines` список линий чека, заполняем сначала этот список теперь, а не сразу текстовые строки, чтобы иметь возможность гибкого манипулирования позициями, суммами итд
    `protected boolean` | `onlyElCheck` Только электронный чек, на бумаге не печатать
    `protected java.math.BigDecimal` | `paymentsum` считаем сумму, по всем пунктам чека.
    `protected int` | `paymentType` тип оплаты (он один на весь чек, не на каждую позицию)
    `protected java.lang.Integer` | `payMethod`
    `protected java.lang.Integer` | `payObject`
    `protected int` | `tax` налог, налоговая группа итд. задаётся на весь чек одним числом.

  - ### Constructor Summary

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

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addPayment(java.math.BigDecimal summa, java.lang.String string, int dep)` Добавление строки продажи.
    `void` | `addPayment(java.math.BigDecimal summa, java.lang.String string, int dep, java.lang.Integer payMethod, java.lang.Integer payObject)`
    `void` | `addPayment(java.math.BigDecimal summa, java.lang.String string, int dep, java.lang.Integer payMethod, java.lang.Integer payObject, java.lang.Integer tax)` Добавление строки продажи с указанием специфичных признаков способа и объекта расчёта.
    `void` | `addString(java.lang.String string)` Добавление строки текста.
    `java.lang.String` | `getCashierName()`
    `java.lang.String` | `getCheckData()` получение текстового представления сожержимого чека в том виде котором оно отдаётся на сервер печати
    `Check.Type` | `getCheckType()`
    `java.lang.String` | `getCustomerEmail()`
    `java.util.Date` | `getDocumentDate()` дата документа, используется в некоторых системах
    `java.lang.String` | `getDocumentId()`
    `java.util.List<Check.CheckLine>` | `getLines()` Список линий чека, как платежей, так и каментов.
    `java.math.BigDecimal` | `getPaymentsum()`
    `int` | `getPaymentType()`
    `java.lang.Integer` | `getPayMethod()` Признак способа расчёта, вообще это атрибут позиции чека, но здесь оно на весь чек задаётся
    `java.lang.Integer` | `getPayObject()` Признак предмета расчёта, вообще это атрибут позиции чека, но здесь оно на весь чек задаётся
    `java.util.List<java.lang.String>` | `getPlines()` Метод возвращающий список строк для передачи его к клиенту посылки на удалённый сервер печати.
    `int` | `getTax()`
    `java.lang.String` | `makeClientsumma(java.math.BigDecimal clientsumma)` Deprecated. заменить на clientsumma.toPlainString()
    `void` | `setCashierINN(java.lang.String cashierINN)`
    `void` | `setCashierName(java.lang.String cashierName)`
    `void` | `setCheckType(Check.Type checkType)`
    `void` | `setCustomerEmail(java.lang.String customerEmail)` установка "адреса пользователя" - мыло/телефон
    `void` | `setDocumentDate(java.util.Date documentDate)` дата документа, используется в некоторых системах
    `void` | `setDocumentId(int documentId)`
    `void` | `setDocumentId(java.lang.String documentId)`
    `void` | `setLastPaymentTag(int tag, byte[] value)` Добавление к предыдущей позиции (addPayment) тега, "привязанного к позиции"
    `void` | `setLastPaymentTag(int tag, long value)` Добавление к предыдущей позиции (addPayment) тега, "привязанного к позиции" целочисленного
    `void` | `setLastPaymentTag(int tag, java.lang.String value)` Добавление к предыдущей позиции (addPayment) тега, "привязанного к позиции" строкового
    `void` | `setOnlyElCheck(boolean onlyElCheck)` Установка признака "только электронный чек, без печати на ленту".
    `void` | `setPaymentType(int paymentType)` Установка типа оплаты (если используется и протокол позволяет)
    `void` | `setPayMethod(int payMethod)` Признак способа расчёта, вообще это атрибут позиции чека, но здесь оно на весь чек задаётся
    `void` | `setPayObject(int payObject)` Признак предмета расчёта, вообще это атрибут позиции чека, но здесь оно на весь чек задаётся
    `void` | `setTag(int tag, byte value)` Deprecated.
    `void` | `setTag(int tag, byte[] value)` установка произвольного тега
    `void` | `setTag(int tag, long value)` установка произвольного целочисленного тега
    `void` | `setTag(int tag, java.lang.String value)` установка произвольного строкового тега
    `void` | `setTax(int tax)` Установка налога/налоговой группы (если используется и протокол позволяет)
    `static byte[]` | `STLV(byte[]... tlvs)` создаёт общую структуру из нескольких переданных TLV-структур
    `static byte[]` | `TLV(int tag, byte[] value)`
    `static byte[]` | `TLV(int tag, long value, int len)`
    `static byte[]` | `TLV(int tag, java.lang.String value, java.lang.String charsetName)`

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

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

- - ### Field Detail

    - #### paymentsum

          protected java.math.BigDecimal paymentsum

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

    - #### lines

          protected java.util.List<Check.CheckLine> lines

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

    - #### paymentType

          protected int paymentType

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

    - #### tax

          protected int tax

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

    - #### customerEmail

          protected java.lang.String customerEmail

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

    - #### onlyElCheck

          protected boolean onlyElCheck

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

    - #### customTags

          protected java.util.Map<java.lang.Integer,java.lang.Object> customTags

      Доп. теги. Они могут быть строкой, целым(byte устаревшим), целым(long), массивом байт. В новом виде передаётся каждый тип по-разному.

    - #### payMethod

          protected java.lang.Integer payMethod

    - #### payObject

          protected java.lang.Integer payObject

    - #### checkType

          protected Check.Type checkType

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

    - #### cashierName

          protected java.lang.String cashierName

    - #### cashierINN

          protected java.lang.String cashierINN

    - #### documentDate

          protected java.util.Date documentDate

    - #### documentId

          protected java.lang.String documentId

  - ### Constructor Detail

    - #### Check

          public Check(Check.Type checkType)

    - #### Check

          public Check()

  - ### Method Detail

    - #### addString

          public void addString(java.lang.String string)

      Добавление строки текста.
      Parameters:
        `string` - строка.

    - #### addPayment

          public void addPayment(java.math.BigDecimal summa,
                                 java.lang.String string,
                                 int dep)

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

    - #### addPayment

          public void addPayment(java.math.BigDecimal summa,
                                 java.lang.String string,
                                 int dep,
                                 java.lang.Integer payMethod,
                                 java.lang.Integer payObject)

    - #### addPayment

          public void addPayment(java.math.BigDecimal summa,
                                 java.lang.String string,
                                 int dep,
                                 java.lang.Integer payMethod,
                                 java.lang.Integer payObject,
                                 java.lang.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,
                                        java.lang.String value)

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

    - #### setLastPaymentTag

          public void setLastPaymentTag(int tag,
                                        long value)

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

    - #### setLastPaymentTag

          public void setLastPaymentTag(int tag,
                                        byte[] value)

      Добавление к предыдущей позиции (addPayment) тега, "привязанного к позиции"

    - #### setPaymentType

          public void setPaymentType(int paymentType)

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

    - #### setTax

          public void setTax(int tax)

      Установка налога/налоговой группы (если используется и протокол позволяет)
      Parameters:
        `tax` - налог/налоговая группа (-1 не задан)

    - #### setOnlyElCheck

          public void setOnlyElCheck(boolean onlyElCheck)

      Установка признака "только электронный чек, без печати на ленту".

    - #### getPlines

          public java.util.List<java.lang.String> getPlines()

      Метод возвращающий список строк для передачи его к клиенту посылки на удалённый сервер печати.
      Returns:
        список строк

    - #### getPaymentsum

          public java.math.BigDecimal getPaymentsum()

    - #### getLines

          public java.util.List<Check.CheckLine> getLines()

      Список линий чека, как платежей, так и каментов.
      Returns:
        лист объектов

    - #### getPaymentType

          public int getPaymentType()

    - #### getTax

          public int getTax()

    - #### makeClientsumma

          @Deprecated
          public java.lang.String makeClientsumma(java.math.BigDecimal clientsumma)

      Deprecated. заменить на clientsumma.toPlainString()

    - #### setCustomerEmail

          public void setCustomerEmail(java.lang.String customerEmail)

      установка "адреса пользователя" - мыло/телефон

    - #### getCustomerEmail

          public java.lang.String getCustomerEmail()

    - #### setTag

          public void setTag(int tag,
                             java.lang.String value)

      установка произвольного строкового тега

    - #### setTag

          @Deprecated
          public void setTag(int tag,
                                         byte value)

      Deprecated.
      установка произвольного байтового тега

    - #### setTag

          public void setTag(int tag,
                             long value)

      установка произвольного целочисленного тега

    - #### setTag

          public void setTag(int tag,
                             byte[] value)

      установка произвольного тега

    - #### setPayMethod

          public void setPayMethod(int payMethod)

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

    - #### setPayObject

          public void setPayObject(int payObject)

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

    - #### getPayMethod

          public java.lang.Integer getPayMethod()

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

    - #### getPayObject

          public java.lang.Integer getPayObject()

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

    - #### getCheckType

          public Check.Type getCheckType()

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

    - #### setCheckType

          public void setCheckType(Check.Type checkType)

      Parameters:
        `насильная` - установка типа чека.

    - #### TLV

          public static byte[] TLV(int tag,
                                   java.lang.String value,
                                   java.lang.String charsetName)

    - #### TLV

          public static byte[] TLV(int tag,
                                   long value,
                                   int len)

    - #### TLV

          public static byte[] TLV(int tag,
                                   byte[] value)

    - #### STLV

          public static byte[] STLV(byte[]... tlvs)

      создаёт общую структуру из нескольких переданных TLV-структур

    - #### setCashierName

          public void setCashierName(java.lang.String cashierName)

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

    - #### setCashierINN

          public void setCashierINN(java.lang.String cashierINN)

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

    - #### getCashierName

          public java.lang.String getCashierName()

    - #### getCheckData

          public java.lang.String getCheckData()

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

    - #### getDocumentDate

          public java.util.Date getDocumentDate()

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

    - #### setDocumentDate

          public void setDocumentDate(java.util.Date documentDate)

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

    - #### getDocumentId

          public java.lang.String getDocumentId()

    - #### setDocumentId

          public void setDocumentId(int documentId)

    - #### setDocumentId

          public void setDocumentId(java.lang.String documentId)