Описание шаблона
Шаблон чека продажи(возврата)
Шаблон имеет строго определенную, но расширяемую структуру. Шаблон чека описан в формате JSON и имеет обязательные переменные.
Базовая структура шаблона чека:
{
"margin_left": 0,
"margin_right": 10,
"variables":{
"type_sale":"Sotuv",
"type_return":"Qaytaruv"
},
"header":[ ],
"positions":[ ],
"position_totals":[ ],
"payments":[ ],
"footer":[ ]
}
Переменные, отвечающие за отображение данных:
- "margin_left" - Отступ в пикселях от края слева.
- "margin_right" - Отступ в пикселях от края справа.
- "alignment" - выравнивание текста. 0 - по левому краю, 1 - по центру, 2 - по правому краю;
- заполнение пробелами (" "); - заполнение прочерками ("-"); - заполнение знаком ("_"); - заполнение знаком равенства ("="); - заполнение знаком плюс ("+"); - заполнение знаком звёздочка ("*").
Текстовые переменные:
- "type_sale":"Sotuv" - Текст переменной doc.type в чеке домента продажи
- "type_return":"Qaytaruv" - Текст переменной doc.type в чеке домента возврата
Далее структура шаблона имеет следующие разделы:
1. header - Заголовок шаблона чека.
Может содержать информацию о смене, кассире, кассе, дате продажи.
Пример раздела header:
"header":[
{
"text": "",
"font": "",
"interval": 10,
"img_src": "1",
"alignment": 1,
"img_width": 220,
"img_height": 60
},
{
"text": "<company.name> ",
"font": "Lucida Console, 8pt, style=bold",
"interval": -10,
"alignment": 1
}
]
В разделе доступны для использования следующие переменные:
- doc.id - ID документа в фискальном модуле
- doc.code - Код документа
- doc.date - Дата регистрации чека
- doc.time - Время регистрации чека
- doc.session - Кассовая смена, в которой регистрируется чек
- doc.cashier_name - Имя кассира
- doc.cash_id - ID кассы
- doc.type - Тип документа. Данные переменной берутся из переменных в начале шаблона
- doc.fiscal_sign - Фискальный признак чека
- doc.terminal_id - ID фискального модуля
- doc.sn - Серйиный номер REGOS: VCR
- doc.qr_code - QR код
- doc.total_recieved - Сумма принятых оплат
- doc.duplicate - Номер дубликата чека. Если чек печатается в первый раз, данная переменная не выводится
- doc.terminal_slip - SLIP (ответ терминала в текстовом виде с информацией о платеже)
- company.inn - ИНН компании
- company.name - Наименование компании
- company.address - Адрес торговой точки или компании
- company.phone - контактный номер
В данном разделе можно использовать собственные переменные, которые передаются непосредственно в чеке. Наименование такой переменной задаётся по следующему формату:
custom.
Блок иображения
Если текстовый блок в данном разделе включает в себя следующие теги, то текстовое содержимое блока игнорируется и в блоке отображается указанное изображение:
- "img_src":"\Cheque\regos.png" - Адрес изображения
- "img_width":180 - ширина изображения в пикселях
- "img_height":180 - высота изображения в пикселях
Пример блока изображения:
{
"text" : "",
"font" : "",
"interval" : 30,
"alignment": 1,
"img_src":"\\Cheque\\regos.png",
"img_width":180,
"img_height":180
}
Блок штрих-кода
Если текстовый блок в данном разделе включает в себя следующие теги, то текстовое содержимое блока шифруется в указанный тип штрих-кода и отображается в блоке:
- "barcode_height":50 - Высота штрих-кода в пикселях
- "barcode_module":2 - Размер штрих-кода, коэффициент масштабирования. Минимальное значение 1.
- "barcode_show_text":(true, false) - Отображать текст под штрих-кодом
- "barcode_type":1 - Тип штрих-кода. 1 - Code128, 2 - EAN13, 3 - QRCode
Пример блока штрих-кода:
{
"font" : "Lucida Console, 8pt",
"text" : "<doc.code>",
"barcode_height":50,
"barcode_module":2,
"barcode_show_text":false,
"barcode_type":1,
"interval" : 30,
"alignment": 1
}
2. positions - Список позиций.
Содержит информацию о списке номенклатуры, её количестве, цене.
Пример раздела positions:
"positions":[
{
"text": "<pos.n>. <pos.name> [<pos.unit>]",
"font": "Lucida Console, 7pt",
"interval": 15,
"alignment": 0
},
{
"text": "Sh.k: <pos.barcode>",
"font": "Lucida Console, 7pt",
"interval": -10,
"alignment": 0
}
]
В разделе доступны для использования следующие переменные:
- pos.n - Номер позиции номенклатуры
- pos.name - Наименование номенклатуры
- pos.code - Код номенклатуры
- pos.articul - Артикул номенклатуры
- pos.unit - Единица измерения количества номенклатуры
- pos.unit2 - Единица измерения количества номенклатуры с КДТ
- pos.kdt - Количество номенклатуры с КДТ
- pos.size - Размер номенклатуры
- pos.color - Цвет номенклатуры
- pos.brand - Бренд номенклатуры
- pos.producer - Производитель номенклатуры
- pos.country - Страна производителя номенклатуры
- pos.department - Отдел номенклатуры
- pos.group - Номенклатурная группа
- pos.quantity - Количество номенклатуры
- pos.price - Цена номенклатуры
- pos.amount - Значение суммы цены номенклатуры (pos.quantity * pos.price)
- pos.vat_value - Ставки НДС
- pos.vat_amount - Значение суммы ставки НДС
- pos.discount - Процент скидки
- pos.amount_discount - Сумма скидки
- pos.icps - ИКПУ. Примечание: данное поле указывать в отдельном блоке
- pos.label - Маркировка. Примечание: данное поле указывать в отдельном блоке
- pos.owner_type - Происхождение товара
- pos.barcode - Штрих-код цифрами
- pos.inn - ИНН комиссионера
3. position_totals - Итоги по списку позиций.
Содержит информацию о итоговой сумме, сумме скидки.
Пример раздела position_totals:
"position_totals":[
{
"text": "<DF>",
"font": "Lucida Console, 8pt",
"interval": -10,
"alignment": 1
},
{
"text": "Jami:<SF><pos.total_amount>",
"font": "Lucida Console, 8pt",
"interval": -10,
"alignment": 0
}
]
В разделе доступны для использования следующие переменные:
- pos.total_amount - Значение полной суммы чека с учётом скидки
- pos.total.discount - Значение суммы скидки
- pos.total_recieved - Сумма принятых оплат
- payment.total_other - Сумма оплат другими формами оплаты (пока не задействовано)
- pos.total_price - К оплате
- pos.total_vat - Сумма НДС
4. payments - Список позиций оплат.
Содержит информаци о списке оплат, сумме каждой оплаты и её типа.
Пример раздела payments:
"payments":[
{
"text": "<payment.type_name><SF><payment.value>",
"font": "Lucida Console, 8pt",
"interval": -10,
"alignment": 0
},
{
"text": "Bank kartasi turi<SF><payment.card_type>",
"font": "Lucida Console, 8pt",
"interval": -10,
"alignment": 0
}
]
В разделе доступны для использования следующие переменные:
- payment.type_name - Наименование типа оплаты
- payment.value - Значение типа оплаты
- payment.card_type - Тип пластиковой карты (2 - личная, 1 - корпоративная)
- payment.rrn - RRN (Идентификатор транзакции платежа процессингово центра)
5. footer - Нижняя часть шаблона чека.
Содержит дополнительную информацию.
Пример раздела footer:
"footer":[
{
"text": "FB:<doc.fiscal_sign>",
"font": "Lucida Console, 8pt",
"interval": -10,
"alignment": 0
},
{
"text": "FM chek raqami:<doc.id>",
"font": "Lucida Console, 8pt",
"interval": -10,
"alignment": 0
}
]
В разделе доступны для использования те же переменные, что и в блоке header.