За всё, связанное с печатью, принтером, фискальным регистратором отвечает объект
CashMaticPrint.
Основные функции объекта
CashMaticPrint:
- проверка наличия бумаги в принтере (метод CheckPaper());
- формирование текста для печати (свойства Receipt, Text);
- выдача текста на печать (метод PrintOut());
- предоставление сведений о возможностях и настройках оборудования и программного обеспечения подсистемы печати (свойства Caps, Options);
- идентификация оборудования (свойство SerialNumber);
- статус фискализации (свойства LastFiscalResult, FiscalSaleTotal, метод CreateFiscalSessionSummary());
- печать отчётов фискального регистратора (методы XReport(), ZReport());
- дополнительное управление отрезкой и перемещением напечатанного чека (методы Cut(), Eject(), Retract()).
Формирование текста для печати возможно в следующих режимах:
Объект
CashMaticPrint существует в контексте работы хост-приложения, а не HTML-документа, скрипт может лишь получить ссылку на этот объект, но не может его создать или уничтожить. Перед каждой печатью требуется явный сброс объекта методом
Reset(). С платёжным сеансом объект
CashMaticPrint в общем не связан, допускается многократная печать в пределах одного сеанса. При отсутствии явного сброса допускается переход чека в следующий платёжный сеанс, хотя это само по себе неправильно и в будущих версиях вероятнее всего будет запрещено.
Опросить возможности подсистемы печати, определяемые установленным оборудованием и настройками печати
NDemia CashMatic, можно через свойства объекта
CashMaticPrint:
- Caps - возвращает объект CashMaticPrintCaps, через который можно получить возможности оборудования.
- Options - возвращает объект CashMaticPrintOptions, через который можно получить основные настройки печати, заданные в системном реестре через Панель управления NDemia CashMatic и/или команду CONFIG.
Свойства объекта
CashMaticPrintCaps (доступен как свойство
Caps объекта
CashMaticPrint)
- Cutter - логическое значение, показывающее наличие отрезчика чеков;
- Fiscal - логическое значение, показывающее, установлен ли драйвер фискального регистратора.
Свойства объекта
CashMaticPrintOptions (доступен как свойство
Options объекта
CashMaticPrint):
- CharFormatting - логическое значение, показывающее, включено ли использование кодов форматирования (см. Форматирование шрифта);
- FileMode - логическое значение, истина, если вывод печати перенаправлен в текстовый файл;
- Fiscal - логическое значение, истина, если используется фискальный регистратор;
- PrinterMode - логическое значение, истина, если текущим устройством печати является принтер.
За формирование чека продажи отвечает объект
CashMaticReceipt, доступен как свойство
Receipt объекта
CashMaticPrint.
Наиболее важными свойствами объекта
CashMaticReceipt являются:
- SaleItems - список оплачиваемых товаров и услуг, реализуется объектом CashMaticSaleItems. Требуется заполнение SaleItems в каждом чеке (даже если принимается только один платёж по одной единой для всех пользователей услуге);
- Cash - сумма внесённых наличных (указывать нужно явно, не вычисляется по суммарной стоимости SaleItems);
- Template - имя шаблона чека (указывать нужно явно, в каждом чеке) - см. Шаблоны печати).
Необязательные для заполнения свойства объекта
CashMaticReceipt:
- Id - идентификатор чека (используется, только если в шаблоне чека есть соответствующая ссылка);
- Code - код чека, код документа (используется, только если в шаблоне чека есть соответствующая ссылка) - рекомендуемое (но не обязательное) свойство для значения штрих-кода чека;
- Title - заголовок чека (используется, только если в шаблоне чека есть соответствующая ссылка);
- Fiscal - выполнять ли фискализацию продажи (по умолчанию используется значение из настроек программы).
Объект
CashMaticReceipt предоставляет ряд информационных свойств, которые могут использоваться скриптом для получения дополнительных сведений по ходу оформления продажи:
- Date - дата печати чека;
- Time - время печати чека;
- Terminal - имя терминала, использованное при печати чека;
- Total - итоговая стоимость чека по списку SaleItems;
- Change - сумма сдачи как разность Cash - Total (только если Cash > Total);
- Debt - сумма долга как разность Total - Cash (только если Cash < Total).
Список продажи содержит сведения о номенклатуре, ценах и количествах товаров/услуг, оплаченных пользователем. Реализуется объектом
CashMaticSaleItems, который доступен как свойство
SaleItems объекта
CashMaticReceipt.
Объект
CashMaticSaleItems имеет методы, типичные как для COM-коллекции:
Add(),
Item(),
Remove(),
Count(), так и для javascript-коллекции:
length. Кроме того, в режиме "
фискальный чек без шаблона" есть возможность вставить текст для печати над и под всем списком товаров/услуг (свойства
TextAbove/
TextBelow). В остальных режимах запись этих свойств игнорируется, а при чтении они содержат текст до (
TextAbove) и после (
TextBelow) списка продажи (
SaleItems), в том виде, как он сформировался по шаблону.
Список
CashMaticSaleItems содержит элементы типа
CashMaticSaleItem.
Важными свойствами, требующими обязательного заполнения, являются:
- Name - наименование товара/услуги;
- Price - цена единицы товара/услуги;
- Quantity - количество оплачиваемых единиц товара/услуги.
Кроме того, есть возможность вставить текст для печати над и под строкой товара/услуги (свойства
TextAbove/
TextBelow)
Объект
CashMaticFiscalSessionSummary (доступен как результат вызова метода
CreateFiscalSessionSummary() объекта
CashMaticPrint) представляет собой сводку текущих итогов продаж по кассовой смене (используется только на фискальном регистраторе).
Объект предоставляет прикладному программисту следующие сведения (свойства, доступные для чтения):
- TimeStamp - дата и время получения сводки по часам фискального регистратора;
- SessionNumber - номер кассовой смены, по которой получена сводка;
- Closed - признак закрытой кассовой смены (по которой уже снят отчёт с гашением);
- SaleReceiptCount - количество напечатанных чеков продажи по кассовой смене;
- SaleTotal - сумма продаж по кассовой смене, в рублях.
Свойства объекта
CashMaticFiscalSessionSummary доступны только для чтения, поскольку он выражает некоторое зафиксированное состояние кассовой смены, которое не подлежит программным изменениям.