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 Description static classCheck.CheckLineКласс "линия чека", либо продажа(позиция), либо просто строка (когда сумма и отдел равны -1) В сервере печати используется так же: Строка чека.static classCheck.STAGШорткат для установки сложных вложенных тегов в чек/позицию.static classCheck.Type -
Field Summary
Fields Modifier and Type Field Description protected java.lang.StringcashierINNprotected java.lang.StringcashierNameprotected Check.TypecheckTypeтип чека: приход, возврат прихода, итд сделан чтобы можно было теоретически поменять в скрипте тип с прихода на возврат (например печатать чек возврата прихода на отрицательные платежи) также используется чтобы печатать чек коррекции прихода вместо чека приходаprotected java.lang.StringcustomerEmailУстановленный "адрес пользователя" мыло/телефон.protected java.util.Map<java.lang.Integer,java.lang.Object>customTagsДоп. теги.static java.lang.StringCUT_TEXT_COMMANDстрока которая символизирует отрезку чека, например, в команде драйвера printtextprotected java.util.DatedocumentDateprotected java.lang.StringdocumentIdprotected java.util.List<Check.CheckLine>linesсписок линий чека, заполняем сначала этот список теперь, а не сразу текстовые строки, чтобы иметь возможность гибкого манипулирования позициями, суммами итдstatic intOFD_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 intOFD_TAG_INTERNET1125 Признак расчета в интернет [совпадает с настоящим номером тега, потому что простой тег должен работать в железных кассах искаробки]static intOFD_TAG_SUPPLIER_INFO_INNАтрибуты поставщика (к позиции): [Тег: 1226] ИНН поставщикаstatic intOFD_TAG_SUPPLIER_INFO_NAMEАтрибуты поставщика (к позиции): [Тег: 1225] Наименование поставщикаstatic intOFD_TAG_SUPPLIER_INFO_PHONESАтрибуты поставщика (к позиции): [Тег: 1171] Телефоны поставщика.static intOFD_TAG_TIMEZONE1011 Часовая зона Номер часовой зоны места (адреса) осуществления расчетов, целое число от 1 до 11 [совпадает с настоящим номером тега, потому что простой тег должен работать в железных кассах искаробки]protected booleanonlyElCheckТолько электронный чек, на бумаге не печататьprotected java.math.BigDecimalpaymentsumсчитаем сумму, по всем пунктам чека.protected java.lang.IntegerpaymentTypeтип оплаты (он один на весь чек, не на каждую позицию)protected java.lang.IntegerpayMethodprotected java.lang.IntegerpayObjectprotected java.lang.Integertaxналог, налоговая группа итд. задаётся на весь чек одним числом.static intVAT_0Тип налога/ндс (для setTax) – НДС по ставке 0%static intVAT_10Тип налога/ндс (для setTax) – НДС чека по ставке 10%static intVAT_105Тип налога/ндс (для setTax) – НДС рассчитанный 5/105static intVAT_107Тип налога/ндс (для setTax) – НДС рассчитанный 7/107static intVAT_110Тип налога/ндс (для setTax) – НДС чека по расчетной ставке 10/110static intVAT_118Тип налога/ндс (для setTax) – НДС чека по расчетной ставке 18/118 (историческое)static intVAT_120Тип налога/ндс (для setTax) – НДС чека по расчетной ставке 20/120static intVAT_18Тип налога/ндс (для setTax) – НДС чека по ставке 18% (историческое)static intVAT_20Тип налога/ндс (для setTax) – НДС чека по ставке 20%static intVAT_5Тип налога/ндс (для setTax) – НДС 5%static intVAT_7Тип налога/ндс (для setTax) – НДС 7%static intVAT_NOТип налога/ндс (для setTax) – без НДС -
Constructor Summary
Constructors Constructor Description Check()Check(Check.Type checkType) -
Method Summary
Modifier and Type Method Description protected static java.math.BigDecimal_roundSum(java.math.BigDecimal summa)округление входящих сюда сумм, ибо если например передаются суммы из наработки или каким-то делением полученные, то получатся суммы большой точности и некоторые фискализаторы сходят с ума. если точность была меньше точности чем два после запятой - всё равно для общности всё приводится к Х.ХХvoidaddPayment(java.math.BigDecimal summa, java.lang.String string, int dep)Добавление строки продажи.voidaddPayment(java.math.BigDecimal summa, java.lang.String string, int dep, java.lang.Integer payMethod, java.lang.Integer payObject)voidaddPayment(java.math.BigDecimal summa, java.lang.String string, int dep, java.lang.Integer payMethod, java.lang.Integer payObject, java.lang.Integer tax)Добавление строки продажи с указанием специфичных признаков способа и объекта расчёта.voidaddString(java.lang.String string)Добавление строки текста.java.lang.StringgetCashierINN()java.lang.StringgetCashierName()java.lang.StringgetCheckData()получение текстового представления сожержимого чека в том виде котором оно отдаётся на сервер печатиCheck.TypegetCheckType()java.lang.StringgetCustomerEmail()java.util.Map<java.lang.Integer,java.lang.Object>getCustomTags()java.util.DategetDocumentDate()дата документа, используется в некоторых системахjava.lang.StringgetDocumentId()java.util.List<Check.CheckLine>getLines()Список линий чека, как платежей, так и каментов.java.math.BigDecimalgetPaymentsum()java.lang.IntegergetPaymentType()java.lang.IntegergetPayMethod()Признак способа расчёта, вообще это атрибут позиции чека, но здесь оно на весь чек задаётсяjava.lang.IntegergetPayObject()Признак предмета расчёта, вообще это атрибут позиции чека, но здесь оно на весь чек задаётсяjava.util.List<java.lang.String>getPlines()Метод возвращающий список строк для передачи его к клиенту посылки на удалённый сервер печати.java.lang.IntegergetTax()booleanisOnlyElCheck()Признак "только электронный чек, без печати на ленту".voidsetCashierINN(java.lang.String cashierINN)voidsetCashierName(java.lang.String cashierName)voidsetCheckType(Check.Type checkType)voidsetCustomerEmail(java.lang.String customerEmail)установка "адреса пользователя" - мыло/телефонvoidsetDocumentDate(java.util.Date documentDate)дата документа, используется в некоторых системахvoidsetDocumentId(int documentId)voidsetDocumentId(java.lang.String documentId)voidsetLastPaymentPayMethod(int payMethod)Установка к предыдущей позиции (addPayment) признака способа расчётаvoidsetLastPaymentPayObject(int payObject)Установка к предыдущей позиции (addPayment) признака предмета расчётаvoidsetLastPaymentTag(int tag, byte[] value)Добавление к предыдущей позиции (addPayment) тега, "привязанного к позиции"voidsetLastPaymentTag(int tag, long value)Добавление к предыдущей позиции (addPayment) тега, "привязанного к позиции" целочисленногоvoidsetLastPaymentTag(int tag, java.lang.String value)Добавление к предыдущей позиции (addPayment) тега, "привязанного к позиции" строковогоvoidsetLastPaymentTag(int tag, Check.STAG value)Добавление к предыдущей позиции (addPayment) тега, "привязанного к позиции" вложенного тега, внутри мэп с ключом [целое], значение [целое/строка]voidsetLastPaymentTax(int tax)Установка к предыдущей позиции (addPayment) налога / налоговой группыvoidsetOnlyElCheck(boolean onlyElCheck)Установка признака "только электронный чек, без печати на ленту".voidsetPaymentType(int paymentType)Установка типа оплаты (если используется и протокол позволяет)voidsetPayMethod(int payMethod)Deprecated.использовать setLastPaymentPayMethod для позицийvoidsetPayObject(int payObject)Deprecated.использовать setLastPaymentPayObject для позицийvoidsetTag(int tag, byte[] value)установка произвольного тегаvoidsetTag(int tag, long value)установка произвольного целочисленного тегаvoidsetTag(int tag, java.lang.String value)установка произвольного строкового тегаvoidsetTag(int tag, Check.STAG value)установка вложенного тега, внутри мэп с ключом [целое], значение [целое/строка]voidsetTax(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 Details
-
paymentsum
protected java.math.BigDecimal paymentsumсчитаем сумму, по всем пунктам чека. В том числе, если clientsumma не передана, мы подставим её туда, будто клиент дал -
lines
список линий чека, заполняем сначала этот список теперь, а не сразу текстовые строки, чтобы иметь возможность гибкого манипулирования позициями, суммами итд -
paymentType
protected java.lang.Integer paymentTypeтип оплаты (он один на весь чек, не на каждую позицию) -
tax
protected java.lang.Integer 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Доп. теги. Они могут быть строкой, целым(long), массивом байт, типом STAG (Map) для вложенных тегов. В новом виде передаётся каждый тип по-разному. это те которые на весь чек. -
payMethod
protected java.lang.Integer payMethod -
payObject
protected java.lang.Integer payObject -
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 -
CUT_TEXT_COMMAND
public static final java.lang.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_INTERNET1125 Признак расчета в интернет [совпадает с настоящим номером тега, потому что простой тег должен работать в железных кассах искаробки]- See Also:
- Constant Field Values
-
OFD_TAG_TIMEZONE
public static final int OFD_TAG_TIMEZONE1011 Часовая зона Номер часовой зоны места (адреса) осуществления расчетов, целое число от 1 до 11 [совпадает с настоящим номером тега, потому что простой тег должен работать в железных кассах искаробки]- 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_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
-
-
Constructor Details
-
Check
-
Check
public Check()
-
-
Method Details
-
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) -
_roundSum
protected static java.math.BigDecimal _roundSum(java.math.BigDecimal summa)округление входящих сюда сумм, ибо если например передаются суммы из наработки или каким-то делением полученные, то получатся суммы большой точности и некоторые фискализаторы сходят с ума. если точность была меньше точности чем два после запятой - всё равно для общности всё приводится к Х.ХХ -
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- признак способа расчёта позиции, не задано: nullpayObject- признак предмета расчёта позиции, не задано: nulltax- налог для позиции, не задано: 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) тега, "привязанного к позиции" -
setLastPaymentTag
Добавление к предыдущей позиции (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 java.util.List<java.lang.String> getPlines()Метод возвращающий список строк для передачи его к клиенту посылки на удалённый сервер печати.- Returns:
- список строк
-
getPaymentsum
public java.math.BigDecimal getPaymentsum() -
getLines
Список линий чека, как платежей, так и каментов.- Returns:
- лист объектов
-
getPaymentType
public java.lang.Integer getPaymentType() -
getTax
public java.lang.Integer getTax() -
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
public void setTag(int tag, long value)установка произвольного целочисленного тега -
setTag
public void setTag(int tag, byte[] value)установка произвольного тега -
setTag
установка вложенного тега, внутри мэп с ключом [целое], значение [целое/строка] -
setPayMethod
@Deprecated public void setPayMethod(int payMethod)Deprecated.использовать setLastPaymentPayMethod для позицийПризнак способа расчёта, вообще это атрибут позиции чека, но здесь оно на весь чек задаётся -
setPayObject
@Deprecated public void setPayObject(int payObject)Deprecated.использовать setLastPaymentPayObject для позицийПризнак предмета расчёта, вообще это атрибут позиции чека, но здесь оно на весь чек задаётся -
getPayMethod
public java.lang.Integer getPayMethod()Признак способа расчёта, вообще это атрибут позиции чека, но здесь оно на весь чек задаётся -
getPayObject
public java.lang.Integer getPayObject()Признак предмета расчёта, вообще это атрибут позиции чека, но здесь оно на весь чек задаётся -
getCheckType
- Returns:
- текущий тип чека (теоретически может быть незадан на данный момент).
-
setCheckType
- Parameters:
\u043d\u0430\u0441\u0438\u043b\u044c\u043d\u0430\u044f- установка типа чека.
-
getCustomTags
public java.util.Map<java.lang.Integer,java.lang.Object> getCustomTags() -
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() -
getCashierINN
public java.lang.String getCashierINN() -
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)
-