О библиотеке
| [Main] [Next] |
· | Linux kernel 2.4.7 или старше;
| |
· | glibc 2.2.4 или старше.
| |
· | Red Hat 7.2
| |
· | Mandrake 8.0
| |
· | отсутствует реализация событий;
| |
· | вывод чека производится с помощью функции PrintCheck;
| |
· | отмена вывода чека производится на ККМ с помощью клавиши "СБ".
| |
Ограничения
| [Previous] [Main] [Next] |
Функции. Общие замечания
| [Previous] [Main] [Next] |
· | функции, обеспечивающие коммуникации;
| |
· | функции управления базой описателей товаров;
| |
· | функции получения статистики по ККМ;
| |
· | функции вывода чека;
| |
· | сервисные (дополнительные) функции.
| |
Функции. Возвращаемые ошибки
| [Previous] [Main] [Next] |
0 - Операция успешно завершена.
| |
1 - Ошибка инициализации порта.
| |
2 - Ошибка интерфейса с ККМ.
| |
3 - Данная версия ПО ККМ не поддерживается.
| |
4 - Недопустимое число строк прогона.
| |
5 - Отсутствует бумага в ТПУ.
| |
6 - ККМ не в исходном состоянии режима "Касса".
| |
7 - Необходимо установить режим работы "С запятой".
| |
8 - Необходимо вывести контрольную ленту.
| |
9 - Контрольная память оплат не содержит покупок.
| |
10 - Покупки с таким номером в КЛ нет.
| |
11 - Покупки с таким номером в базе описателей товаров нет.
| |
12 - Недопустимый номер отдела.
| |
13 - Недопустимое значение оплачиваемых наличных.
| |
14 - Недопустимое значение стоимости покупки.
| |
15 - Недопустимое значение количества товара.
| |
16 - Недопустимое число строк наименования покупки.
| |
17 - База описателей товаров переполнена.
| |
18 - База описателей товаров не пуста. Проведение операции невозможно.
| |
19 - Недопустимое значение скидки/надбавки.
| |
20 - Недостаточно наличных в кассе.
| |
21 - Недостаточно наличных для оплаты покупок.
| |
22 - Получена покупка с нулевой стоимостью.
| |
23 - Заголовок чека не может содержать более 7 (ПО ККМ 2.2.Х) или 3 (ПО ККМ 2.3.Х) строк.
| |
24 - Окончание чека не может содержать более 3 строк.
| |
25 - Строка с таким номером отсутствует в заголовке чека.
| |
26 - Строка с таким номером отсутствует в окончании чека.
| |
27 - Не совпадают дата и время ККМ и ПК.
| |
28 - Нет чека, который можно повторить.
| |
29 - Неверный формат цифровой подписи штрихового кода.
| |
30 - Недопустимая разрядность цифровой подписи штрихового кода.
| |
31 - Возможно, чек был выведен не полностью.
| |
32 - Чек не выведен (возможно неисправно оборудование).
| |
SetSupplierCode
| [Previous] [Main] [Next] |
procedure SetSupplierCode(Code: PChar);
| |
Code - строковое представление кода поставщика.
| |
ConnectKKM
| [Previous] [Main] [Next] |
function ConnectKKM(Port: Integer): Integer;
| |
Port - номер последовательного порта.
| |
1 - в случае успешного завершения;
| |
0 - в случае возникновения ошибки.
| |
DisonnectKKM
| [Previous] [Main] [Next] |
procedure DisconnectKKM;
| |
cbAddTitleLine
| [Previous] [Main] [Next] |
function cbAddTitleLine(Line: PChar): Integer;
| |
Line - указатель на нуль-терминированную строку, содержащую строку заголовка чека.
| |
1 - в случае успешного завершения;
| |
0 - в случае возникновения ошибки.
| |
cbGetTitleLinesCount
| [Previous] [Main] [Next] |
function cbGetTitleLinesCount: Integer;
| |
Число строк заголовка чека, определенных пользователем.
| |
cbGetTitleLine
| [Previous] [Main] [Next] |
function cbGetTitleLine(Index: Integer; var Line: PChar): Integer;
| |
Index - номер строки заголовка, которую необходимо получить;
| |
Line - переменная, через которую возвращается указатель на нуль-терминированную строку, содержащую текст запрошенной строки заголовка.
| |
1 - в случае успешного завершения;
| |
0 - в случае возникновения ошибки.
| |
cbClearTitle
| [Previous] [Main] [Next] |
procedure cbClearTitle;
| |
cbAddBottomLine
| [Previous] [Main] [Next] |
function cbAddBottomLine(Line: PChar): Integer;
| |
Line - указатель на нуль-терминированную строку, содержащую строку окончания чека.
| |
1 - в случае успешного завершения;
| |
0 - в случае возникновения ошибки.
| |
cbGetBottomLinesCount
| [Previous] [Main] [Next] |
function cbGetBottomLinesCount: Integer;
| |
Число строк окончания чека, определенных пользователем.
| |
cbGetBottomLine
| [Previous] [Main] [Next] |
function cbGetBottomLine(Index: Integer; var Line: PChar): Integer;
| |
Index - номер строки окончания, которую необходимо получить;
| |
Line - переменная, через которую возвращается указатель на нуль-терминированную строку, содержащую текст запрошенной строки окончания.
| |
1 - в случае успешного завершения;
| |
0 - в случае возникновения ошибки.
| |
cbClearBottom
| [Previous] [Main] [Next] |
procedure cbClearBottom;
| |
cbAddSale
| [Previous] [Main] [Next] |
function cbAddSale(Name: PChar; Price, Qty: Double; Section: Integer): Integer;
| |
Name - указатель на нуль-терминированную строку, содержащую наименование товара;
| |
Price - стоимость единицы товара;
| |
Qty - количество товара;
| |
Section - отдел по которому будет продаваться товар.
| |
1 - в случае успешного завершения;
| |
0 - в случае возникновения ошибки.
| |
cbGetSalesCount
| [Previous] [Main] [Next] |
function cbGetSalesCount: Integer;
| |
Число описателей товаров во внутренней базе библиотеки.
| |
cbGetSale
| [Previous] [Main] [Next] |
function cbGetSale(Index: Integer; var Name: PChar; var Price, Qty: Double; var Section: Integer): Integer;
| |
Index - номер описателя товара в базе данных библиотеки;
| |
Name - переменная, через которую возвращается указатель на нуль-терминированную строку, содержащую наименование товара;
| |
Price - переменная, через которую возвращается стоимость товара;
| |
Qty - переменная, через которую возвращается количество товара;
| |
Section - переменная, через которую возвращается отдел, по которому должен продаваться товар.
| |
1 - в случае успешного завершения;
| |
0 - в случае возникновения ошибки.
| |
cbDeleteSale
| [Previous] [Main] [Next] |
function cbDeleteSale(Index: Integer): Integer;
| |
Index - порядковый номер описателя товара в базе данных библиотеки.
| |
1 - в случае успешного завершения;
| |
0 - в случае возникновения ошибки.
| |
cbClearSales
| [Previous] [Main] [Next] |
procedure cbClearSales;
| |
cbSetCreditMode
| [Previous] [Main] [Next] |
procedure cbSetCreditMode(Mode: Integer);
| |
0 - чек за наличный расчет;
| |
1 - чек за безналичный расчет.
| |
cbGetCreditMode
| [Previous] [Main] [Next] |
function cbGetCreditMode: Integer;
| |
Вид платежа в выводимом чеке:
| |
0 - чек за наличный расчет;
| |
1 - чек за безналичный расчет.
| |
cbSetDiscountValue
| [Previous] [Main] [Next] |
function cbSetDiscountValue(Value: Integer): Integer;
| |
Value - целочисленное значение процента скидки/надбавки на чек (допустимый диапазон значений от -99 до 99).
| |
1 - в случае успешного завершения;
| |
0 - в случае возникновения ошибки.
| |
cbGetDiscountValue
| [Previous] [Main] [Next] |
function cbGetDiscountValue: Integer;
| |
Процентное выражение значения скидки/надбавки на чек.
| |
cbSetReturnMode
| [Previous] [Main] [Next] |
procedure cbSetReturnMode(Mode: Integer);
| |
0 - чек продажи;
| |
1 - чек возврата.
| |
cbGetReturnMode
| [Previous] [Main] [Next] |
function cbGetReturnMode: Integer;
| |
Тип выводимого чека:
| |
0 - чек продажи;
| |
1 - чек возврата.
| |
cbSetCash
| [Previous] [Main] [Next] |
function cbSetCash(Value: Double): Integer;
| |
Value - сумма наличных, переданных кассиру покупателем, для оплаты покупок.
| |
1 - в случае успешного завершения;
| |
0 - в случае возникновения ошибки.
| |
cbGetCash
| [Previous] [Main] [Next] |
function cbGetCash: Double;
| |
Сумма наличных, переданных кассиру покупателем, для оплаты покупок.
| |
cbSetLinesInSale
| [Previous] [Main] [Next] |
function cbSetLinesInSale(Value: Integer): Integer;
| |
Value - максимальное число строк, отводимое на отображения наименования покупки в чеке (допустимый диапазон значений от 0 до 3).
| |
1 - в случае успешного завершения;
| |
0 - в случае возникновения ошибки.
| |
0 (без наименования) - 40 покупок;
| |
1 строка наименования - 26 покупок;
| |
2 строки наименования - 13 покупок;
| |
3 строки наименования - 7 покупок.
| |
cbGetLinesInSale
| [Previous] [Main] [Next] |
function cbGetLinesInSale: Integer;
| |
Максимальное число строк, отводимое на отображение наименования покупки в чеке.
| |
cbSetClearBufMode
| [Previous] [Main] [Next] |
procedure cbSetClearBufMode(Mode: Integer);
| |
0 - не очищать;
| |
1 - очищать.
| |
cbGetClearBufMode
| [Previous] [Main] [Next] |
function cbGetClearBufMode: Integer;
| |
0 - не очищать;
| |
1 - очищать.
| |
cbGetSum
| [Previous] [Main] [Next] |
function cbGetSum: Double;
| |
Текущее значение суммы по чеку.
| |
GetBroughtSum
| [Previous] [Main] [Next] |
function GetBroughtSum(var Sum: Double): Integer;
| |
Sum - переменная, через которую возвращается значение внесенной в кассу суммы.
| |
1 - в случае успешного завершения;
| |
0 - в случае возникновения ошибки.
| |
GetCashSum
| [Previous] [Main] [Next] |
function GetCashSum(var Sum: Double): Integer;
| |
Sum - переменная, через которую возвращается сумма наличных в кассе.
| |
1 - в случае успешного завершения;
| |
0 - в случае возникновения ошибки.
| |
GetKKMNum
| [Previous] [Main] [Next] |
function GetKKMNum(var KKMNum: Integer): Integer;
| |
KKMNum - переменная, через которую возвращается заводской номер ККМ.
| |
1 - в случае успешного завершения;
| |
0 - в случае возникновения ошибки.
| |
GetKLNum
| [Previous] [Main] [Next] |
function GetKLNum(var KLNum: Integer): Integer;
| |
KLNum - переменная, через которую возвращается номер текущей контрольной ленты.
| |
1 - в случае успешного завершения;
| |
0 - в случае возникновения ошибки.
| |
GetNI
| [Previous] [Main] [Next] |
function GetNI(var NI: Double): Integer;
| |
NI - переменная, через которую возвращается значение необнуляемого итога.
| |
1 - в случае успешного завершения;
| |
0 - в случае возникновения ошибки.
| |
GetRemovedQty
| [Previous] [Main] [Next] |
function GetRemovedQty(var Qty: Integer): Integer;
| |
Qty - переменная, через которую возвращается число снятий выручки.
| |
1 - в случае успешного завершения;
| |
0 - в случае возникновения ошибки.
| |
GetRemovedSum
| [Previous] [Main] [Next] |
function GetRemovedSum(var Sum: Double): Integer;
| |
Sum - переменная, через которую возвращается общая сумма снятой выручки.
| |
1 - в случае успешного завершения;
| |
0 - в случае возникновения ошибки.
| |
GetReturnedSum
| [Previous] [Main] [Next] |
function GetReturnedSum (var Sum: Double): Integer;
| |
Sum - переменная, через которую возвращается сумма возвратов по ККМ.
| |
1 - в случае успешного завершения;
| |
0 - в случае возникновения ошибки.
| |
GetReturnedSumOnSection
| [Previous] [Main] [Next] |
function GetReturnedSumOnSection (Section: Integer; var Sum: Double): Integer;
| |
Section - номер отдела;
| |
Sum - переменная, через которую возвращается сумма возвратов.
| |
1 - в случае успешного завершения;
| |
0 - в случае возникновения ошибки.
| |
GetSaleCountOnSection
| [Previous] [Main] [Next] |
function GetSaleCountOnSection(Section: Integer; var SaleCount: Integer): Integer;
| |
Section - номер отдела;
| |
SaleCount - переменная, через которую возвращается количество продаж.
| |
1 - в случае успешного завершения;
| |
0 - в случае возникновения ошибки.
| |
GetSaleNum
| [Previous] [Main] [Next] |
function GetSaleNum(var SaleNum: Integer): Integer;
| |
SaleNum - переменная, через которую возвращается номер следующей покупки в контрольной памяти оплат.
| |
1 - в случае успешного завершения;
| |
0 - в случае возникновения ошибки.
| |
GetSalesSumOnSection
| [Previous] [Main] [Next] |
function GetSalesSumOnSection (Section: Integer; var Sum: Double): Integer;
| |
Section - номер отдела;
| |
Sum - переменная, через которую возвращается сумма продаж.
| |
1 - в случае успешного завершения;
| |
0 - в случае возникновения ошибки.
| |
GetSalesSumWithNDEC
| [Previous] [Main] [Next] |
function GetSalesSumWithNDEC (var Sum: Double): Integer;
| |
Sum - переменная, через которую возвращается сумма продаж.
| |
1 - в случае успешного завершения;
| |
0 - в случае возникновения ошибки.
| |
GetSalesSumWithoutNDEC
| [Previous] [Main] [Next] |
function GetSalesSumWithoutNDEC (var Sum: Double): Integer;
| |
Sum - переменная, через которую возвращается сумма продаж.
| |
1 - в случае успешного завершения;
| |
0 - в случае возникновения ошибки.
| |
GetKKMVers
| [Previous] [Main] [Next] |
function GetKKMVers: Integer;
| |
Номер версии ПО ККМ.
| |
ReadSaleFromKL
| [Previous] [Main] [Next] |
ReadSaleFromKL(SaleNum: Integer; var Section, Credit, Discount: Integer; var Sum: Double): Integer;
| |
SaleNum - номер покупки, хранящейся в контрольной памяти оплат и по которой необходимо получить информацию;
| |
Section - переменная, через которую возвращается значение отдела по которому был продан товар;
| |
Credit - переменная, через которую возвращается признак безналичнго расчета:
| |
1 - товар был продан за безналичный расчет;
| |
0 - товар был продан за наличные деньги;
| |
Discount - переменная, через которую возвращается процентное выражение скидки/надбавки с которой был продан товар;
| |
Sum - переменная, через которую возвращается сумма, уплаченная за покупку (без учета скидки/надбавки);
| |
1 - в случае успешного завершения;
| |
0 - в случае возникновения ошибки.
| |
GetDiscountMode
| [Previous] [Main] [Next] |
function GetDiscountMode: Integer;
| |
1 - режим работы со скидками/надбавками на ККМ установлен;
| |
0 - режим работы со скидками/надбавками на ККМ не установлен.
| |
PrintCheck
| [Previous] [Main] [Next] |
function PrintCheck: integer;
| |
1 - в случае успешного вывода чека;
| |
0 - в случае возникновения ошибки или отмены вывода чека.
| |
RepeatCheck
| [Previous] [Main] [Next] |
function RepeatCheck: Integer;
| |
1 - в случае успешного завершения;
| |
0 - в случае возникновения ошибки.
| |
ClearIndicator
| [Previous] [Main] [Next] |
function ClearIndicator: Integer;
| |
1 - в случае успешного завершения;
| |
0 - в случае возникновения ошибки.
| |
Feed
| [Previous] [Main] [Next] |
function Feed(LineCount: Integer): Integer;
| |
LineCount - число строк прогона.
| |
1 - в случае успешного завершения;
| |
0 - в случае возникновения ошибки.
| |
Lock
| [Previous] [Main] [Next] |
function Lock: Integer;
| |
1 - в случае успешного завершения;
| |
0 - в случае возникновения ошибки.
| |
PrintBarCode
| [Previous] [Main] [Next] |
function PrintBarCode(Code: PChar; DigitFlag: Integer): Integer;
| |
Code - указатель на нуль-терминированную строку, содержащую значение кода;
| |
DigitFlag - признак печати цифровой подписи штрихового кода:
| |
1 - печатать цифровую подпись;
| |
0 - не печатать цифровую подпись.
| |
1 - в случае успешного завершения;
| |
0 - в случае возникновения ошибки.
| |
UnLock
| [Previous] [Main] [Next] |
function UnLock: Integer;
| |
1 - в случае успешного завершения;
| |
0 - в случае возникновения ошибки.
| |
GetErrorCode
| [Previous] [Main] [Next] |
function GetErrorCode: Integer;
| |
Код ошибки.
| |
GetErrorMsg
| [Previous] [Main] [Next] |
function GetErrorMsg: PChar;
| |
Указатель на нуль-терминированную строку, содержащую сообщение об ошибке.
| |
1 - в случае успешного завершения;
| |
0 - в случае возникновения ошибки.
| |
Общие замечания
| [Previous] [Main] [Next] |
Организация приложения
| [Previous] [Main] [Next] |
· | устанавливаем связь с ККМ;
|
· | при помощи функций управления базой описателей товаров программируем заголовок и окончание чека (это достаточно сделать один раз за сеанс работы с библиотекой);
|
· | при помощи функций управления базой описателей формируется совокупность продаваемых товаров и настраиваются параметры чека (сумма оплачиваемых наличных, значение скидки/надбавки на чек, признак возврата товара, признак безналичного расчета);
|
· | выводится информация, предупреждающая кассира о необходимости нажатия на ККМ клавиш "ФЦ - ВВ" для вывода чека или клавиши "СБ" для отмены вывода чека;
|
· | при помощи процедуры PrintCheck запускается процесс ожидания запроса от ККМ;
|
· | анализируем результат завершения функции;
|
· | если чек был выведен, то производим изменение в базе данных товаров приложения (списываем товар и при необходимости регестрируем продажу).
|
Примеры использования библиотеки
| [Previous] [Main] |