5.4 Шаблон чека закрытия смены

Шаблон имеет строго определенную,но расширяемую структуру. Шаблон чека описан в формате 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":[  ]
}
Переменные, отвечающие за отображение данных:
  • "margin_left" - Отступ в пикселях от края слева.
  • "margin_right" - Отступ в пикселях от края справа.

Структура шаблона имеет следующие разделы:

1. header - Заголовок шаблона чека.

Содержит информацию о кассе, дате открытия и закрытия смены, сумме средств в кассе на момент открытия и закрытия, имя пользователя открывшего и закрывшего смену.

"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
    },
  ]

В разделе доступны для использования следующие переменные:

  • session.code - Код смены
  • session.operating_cash -
  • session.start_datetime - Дата и время начала кассовой смены
  • session.start_user_name - Пользователь, открывший кассовую смену
  • session.close_datetime - Дата и время закрытия кассовой смены
  • session.close_user_name - Пользователь, закрывший кассовую смену

Если текстовый блок в разделе включает в себя следующие теги, то текстовое содержимое блока игнорируется и в блоке отображается указанное изображение:

  • "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
    },
2. sale_totals - Итоги продаж.

Содержит информацию об итогах продаж, количество продаж и единиц номенклатуры.

"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
    },
  ]

В разделе доступны для использования следующие переменные:

  • sale.closed.counter - Количество продаж за смену
  • sale.position.counter - Количество проданных позиций за смену
  • sale.units.counter - Количество проданных единиц номенклатуры за смену
  • sale.canceled.counter - Количество аннулированных продаж за смену
3. payment_sale - Платежи за смену.

Содержит информацию о платежах за смену.

 "payment_sale":[
    {
      "text" : "<payment.name><SF>=<payment.amount>",
      "font" : "Lucida Console, 8pt",
      "interval" : 2,
      "alignment": 0
    }
  ]

В разделе доступны для использования следующие переменные:

  • payment.name - Наименование платежа
  • payment.amount - Значение суммы платежа
4. payment_sale_totals - Итоги платежей.

Содержит информацию об итогах платежей за смену.

 "payment_sale_totals":[
    {
      "text" : "ИТОГО<SF>=<payment.totals>",
      "font" : "Lucida Console, 8pt, style=bold",
      "interval" : 3,
      "alignment": 1
    }
  ],

В разделе доступны для использования следующие переменные:

  • payment.totals - Значение итоговой суммы платежей за смену
5. return_totals - Итоги возвратов.

Содержит информацию об итогах возвратов за смену.

 "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
    }
  ],

В разделе доступны для использования следующие переменные:

  • sale.closed.counter - Количество возвратов за смену
  • sale.position.counter - Количество возвращенных позиций за смену
  • sale.units.counter - Количество возвращенных единиц номенклатуры за смену
  • sale.canceled.counter - Количество аннулированных возвратов за смену
6. payment_return - Платежи по возвратам.

Содержит информацию о платежах по возвратам за смену.

 "payment_return":[
    {
      "text" : "<payment.name><SF>=<payment.amount>",
      "font" : "Lucida Console, 8pt",
      "interval" : 2,
      "alignment": 0
    }
  ],

В разделе доступны для использования следующие переменные:

  • payment.name - Наименование платежа за возврат
  • payment.amount - Значение суммы платежа за возврат
7. payment_return_totals - Итоги платежей по возвратам.

Содержит информацию об итогах платежей по возвратам за смену.

 "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
    }
  ],

В разделе доступны для использования следующие переменные:

  • payment.totals - Значение итоговой суммы платежей за возвраты за смену
8. cash_totals - Итоги внесения и изъятия.

Содержит информацию об итогах внесения и изъятия денежных средств за смену.

"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
    },
  ],

В разделе доступны для использования следующие переменные:

  • cash.start_amount - Значение суммы средств на открытие смены
  • cash.income - Значение суммы внесения средств за смену
  • cash.income.sale - Значение суммы внесения средств за продажи за смену
  • cash.income.change - Значение суммы внесения средств за продажи за смену
  • cash.outcome -
  • cash.outcome.return -
  • cash.outcome.change -
  • cash.close_amount -
9. footer - Нижняя часть шаблона чека.

Содержит дополнительную информацию.

"footer":[
    {
      "text" : " ",
      "font" : "Lucida Console, 10pt, style=bold",
      "interval" : 3,
      "alignment": 1
    }
  ]

В разделе доступны для использования те же переменные, что и в блоке header.

Пример чека закрытия смены.