Шаблон имеет строго определенную,но расширяемую структуру. Шаблон чека описан в формате JSON и имеет обязательные переменные.
Базовая структура шаблона чека:
{
"margin_left": 0,
"margin_right": 10,
"header":[ ],
"sale_totals":[ ],
"payment_sale":[ ],
"payment_sale_totals":[ ],
"return_totals":[ ],
"payment_return":[ ],
"payment_return_totals":[ ],
"cash_totals":[ ],
"footer":[ ]
}
Структура шаблона имеет следующие разделы:
Содержит информацию о кассе, дате открытия и закрытия смены, сумме средств в кассе на момент открытия и закрытия, имя пользователя открывшего и закрывшего смену.
"header":[
{
"text" : "ОТЧЁТ ЗА СМЕНУ",
"font" : "Lucida Console, 8pt, style=bold",
"interval" : 3,
"alignment": 1
},
{
"text" : "#<session.code>",
"font" : "Lucida Console, 8pt, style=bold",
"interval" : 3,
"alignment": 1
},
{
"text" : "КАССА:<SF>#<session.operating_cash>",
"font" : "Lucida Console, 8pt",
"interval" : -3,
"alignment": 1
},
]
В разделе доступны для использования следующие переменные:
Если текстовый блок в разделе включает в себя следующие теги, то текстовое содержимое блока игнорируется и в блоке отображается указанное изображение:
Пример:
{
"text" : "",
"font" : "",
"interval" : 30,
"alignment": 1,
"img_src":"\\Cheque\\regos.png",
"img_width":180,
"img_height":180
},
Содержит информацию об итогах продаж, количество продаж и единиц номенклатуры.
"sale_totals":[
{
"text" : "КОЛ-ВО ПРОДАЖ:<SF><sale.closed.counter>",
"font" : "Lucida Console, 8pt",
"interval" : 2,
"alignment": 0
},
{
"text" : "КОЛ-ВО ПРОД. ПОЗ.:<SF><sale.position.counter>",
"font" : "Lucida Console, 8pt",
"interval" : 2,
"alignment": 0
},
{
"text" : "КОЛ-ВО ПРОД. ЕД-Ц.:<SF><sale.units.counter>",
"font" : "Lucida Console, 8pt",
"interval" : 2,
"alignment": 0
},
]
В разделе доступны для использования следующие переменные:
Содержит информацию о платежах за смену.
"payment_sale":[
{
"text" : "<payment.name><SF>=<payment.amount>",
"font" : "Lucida Console, 8pt",
"interval" : 2,
"alignment": 0
}
]
В разделе доступны для использования следующие переменные:
Содержит информацию об итогах платежей за смену.
"payment_sale_totals":[
{
"text" : "ИТОГО<SF>=<payment.totals>",
"font" : "Lucida Console, 8pt, style=bold",
"interval" : 3,
"alignment": 1
}
],
В разделе доступны для использования следующие переменные:
Содержит информацию об итогах возвратов за смену.
"return_totals":[
{
"text" : "КОЛ-ВО ВОЗВРАТОВ:<SF><sale.closed.counter>",
"font" : "Lucida Console, 8pt",
"interval" : 2,
"alignment": 0
},
{
"text" : "КОЛ-ВО ВОЗВР. ПОЗ.:<SF><sale.position.counter>",
"font" : "Lucida Console, 8pt",
"interval" : 2,
"alignment": 0
},
{
"text" : "КОЛ-ВО ВОЗВР. ЕД-Ц.:<SF><sale.units.counter>",
"font" : "Lucida Console, 8pt",
"interval" : 2,
"alignment": 0
}
],
В разделе доступны для использования следующие переменные:
Содержит информацию о платежах по возвратам за смену.
"payment_return":[
{
"text" : "<payment.name><SF>=<payment.amount>",
"font" : "Lucida Console, 8pt",
"interval" : 2,
"alignment": 0
}
],
В разделе доступны для использования следующие переменные:
Содержит информацию об итогах платежей по возвратам за смену.
"payment_return_totals":[
{
"text" : "<EF>",
"font" : "Lucida Console, 8pt",
"interval" : 3,
"alignment": 1
},
{
"text" : "ИТОГО<SF>=<payment.totals>",
"font" : "Lucida Console, 8pt, style=bold",
"interval" : 3,
"alignment": 1
},
{
"text" : "<EF>",
"font" : "Lucida Console, 8pt",
"interval" : 3,
"alignment": 1
}
],
В разделе доступны для использования следующие переменные:
Содержит информацию об итогах внесения и изъятия денежных средств за смену.
"cash_totals":[
{
"text" : "НА ОТКРЫТИЕ<SF>=<cash.start_amount>",
"font" : "Lucida Console, 8pt",
"interval" : 2,
"alignment": 0
},
{
"text" : "ВНЕСЕНИЯ<SF>=<cash.income>",
"font" : "Lucida Console, 8pt",
"interval" : 2,
"alignment": 0
},
{
"text" : "ВНЕСЕНИЯ(продажа)<SF>=<cash.income.sale>",
"font" : "Lucida Console, 8pt",
"interval" : 2,
"alignment": 0
},
],
В разделе доступны для использования следующие переменные:
Содержит дополнительную информацию.
"footer":[
{
"text" : " ",
"font" : "Lucida Console, 10pt, style=bold",
"interval" : 3,
"alignment": 1
}
]
В разделе доступны для использования те же переменные, что и в блоке header.