первый
This commit is contained in:
1377
devices/Printers/AYRA01FRKZ/AYRA01FRKZ.cpp
Normal file
1377
devices/Printers/AYRA01FRKZ/AYRA01FRKZ.cpp
Normal file
File diff suppressed because it is too large
Load Diff
238
devices/Printers/AYRA01FRKZ/AYRA01FRKZ.h
Normal file
238
devices/Printers/AYRA01FRKZ/AYRA01FRKZ.h
Normal file
@ -0,0 +1,238 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#ifndef AYRA01FRKZ_H
|
||||
#define AYRA01FRKZ_H
|
||||
//---------------------------------------------------------------------------
|
||||
#include "../Printer.h"
|
||||
#include "../../ComPort.h"
|
||||
//#include <stdTools.h>
|
||||
//#include <string>
|
||||
//---------------------------------------------------------------------------
|
||||
//Добавил когда делал кросплатформеного кассирра
|
||||
typedef unsigned long DWORD;
|
||||
//---------------------------------------------------------------------------
|
||||
#define fc3F 0x3F //63 ? Запрос состояния ККМ 29
|
||||
#define fc41 0x41 //65 A Аннулирование 45
|
||||
#define fc43 0x43 //67 C Скидка / Надбавка 47
|
||||
#define fc45 0x45 //69 E Запрос кода состояния ККМ 37
|
||||
#define fc46 0x46 //70 F Чтение таблицы 55
|
||||
#define fcBeep 0x47 //71 G Гудок 27
|
||||
#define fc48 0x48 //72 H Выход из текущего режима 22
|
||||
#define fc49 0x49 //73 I Внесение денег 43
|
||||
#define fc4A 0x4A //74 J Закрыть чек (со сдачей) 48
|
||||
#define fc4B 0x4B //75 K Программирование времени 39
|
||||
#define fc4C 0x4C //76 L Печать строки 23
|
||||
#define fc4D 0x4D //77 M Запрос наличных денег в ящике ККМ 30
|
||||
#define fc4E 0x4E //78 N Сторно 44
|
||||
#define fc4F 0x4F //79 O Выплата денег 43
|
||||
#define fc50 0x50 //80 P Программирование таблицы 54
|
||||
#define fc52 0x52 //82 R Регистрация 44
|
||||
#define fc56 0x56 //86 V Вход в режим 21
|
||||
#define fc57 0x57 //87 W Возврат 46
|
||||
#define fc58 0x58 //88 X Получение последнего сменного итога 31
|
||||
#define fcCancelFiscalInv 0x59 //89 Y Аннулирование всего чека 43
|
||||
#define fcDailyFinancialReport 0x5A //90 Z Снятие суточного отчета с гашением 51
|
||||
#define fc61 0x61 //97 a Ввод заводского номера 57
|
||||
#define fc62 0x62 //98 b Фискализация / перерегистрация 57
|
||||
#define fc63 0x63 //99 c Запрос диапазонов дат и смен 58
|
||||
#define fc64 0x64 //100 d Программирование даты 39
|
||||
#define fc65 0x65 //101 e Фискальный отчет по диапазону дат 58
|
||||
#define fc66 0x66 //102 f Фискальный отчет по диапазону смен 59
|
||||
#define fc67 0x67 //103 g Начало снятия отчета без гашения 49
|
||||
#define fc6B 0x6B //107 k Технологическое обнуление ККМ 41
|
||||
#define fc6C 0x6C //108 l Команда печати клише чека 27
|
||||
#define fc6D 0x6D //109 m Ввод кода защиты ККМ 41
|
||||
#define fc6E 0x6E //110 n Тестовый прогон 40
|
||||
#define fc71 0x71 //113 q Инициализация таблиц нач. значениями 41
|
||||
#define fc73 0x73 //115 s Команда печати нижней части чека 50
|
||||
#define fc74 0x74 //116 t Запрос активизированности кода защиты ККМ 39
|
||||
#define fc75 0x75 //117 u Отрезать чек 27
|
||||
#define fc77 0x77 //119 w Общее гашение 52
|
||||
#define fc78 0x78 //120 x Отмена последней скидки/надбавки 47
|
||||
#define fcOpenCashDrawer 0x80 //128 А Открыть денежный ящик 27
|
||||
#define fc82 0x82 //130 В Демонстрационный прогон 41
|
||||
#define fc84 0x84 //132 Д Получение очередного блока данных ПО ККМ 55
|
||||
#define fc85 0x85 //133 Е Импульсное открытие денежного ящика 28
|
||||
#define fc86 0x86 //134 Ж Получить очередную строку картинки по номеру 57
|
||||
#define fc87 0x87 //135 З Печать поля 23
|
||||
#define fc88 0x88 //136 И Звуковой сигнал 27
|
||||
#define fc8A 0x8A //138 К Очистить массив картинок 56
|
||||
#define fc8B 0x8B //139 Л Добавить строку картинки 56
|
||||
#define fc8C 0x8C //140 М Статус массива картинок 32
|
||||
#define fc8D 0x8D //141 Н Печать картинки по номеру 26
|
||||
#define fc8E 0x8E //142 О Печать картинки с хоста 25
|
||||
#define fc8F 0x8F //143 П Передать данные в порт 28
|
||||
#define fc90 0x90 //144 Р Параметры картинки в массиве 33
|
||||
#define fc91 0x91 //145 С Считать регистр 33
|
||||
#define fc92 0x92 //146 T Открыть чек 43
|
||||
#define fc99 0x99 //153 Щ Расчет по чеку (с закрытием) 47
|
||||
#define fc9A 0x9A //154 Ъ Открыть смену 42
|
||||
#define fc9B 0x9B //155 Ы Сторно расчета по чеку 48
|
||||
#define fc9C 0x9C //156 Ь Начало считывания дампа 55
|
||||
#define fc9D 0x9D //157 Э Получение версии 29
|
||||
#define fc9E 0x9E //158 Ю Закрыть картинку 56
|
||||
#define fc9F 0x9F //159 Я Начать считывание картинки по номеру 56
|
||||
#define fcA5 0xA5 //165 е Получить тип устройства 31
|
||||
#define fcB6 0xB6 //182 Печать документа по номеру 53
|
||||
#define fcB7 0xB7 //183 Печать контрольной ленты 53
|
||||
|
||||
/*
|
||||
#define fcDisplayClear 0x21 //(33)Очистка дисплея
|
||||
#define fcDispalyLower 0x23 //(35)Вывод текста в нижнюю строку дисплея
|
||||
#define fcOpenServiceInv 0x26 //(38)Открытие нефискального чека
|
||||
#define fcCloseServiceInv 0x27 //(39)Закрытие нефискального чека
|
||||
#define fcSwitchPrg 0x29 //(41)Программирование конфигурационных ключей
|
||||
#define fcPrintFreeTextInServiceInv 0x2A //(42)Печать свободного текста в нефискальном чеке
|
||||
#define fcPrintSetup 0x2B //(43)Установка HEADER и FOOTER и опций печати
|
||||
#define fcFeedPaper 0x2C //(44)Протяжка ленты
|
||||
#define fcCutPaper 0x2D //(45)Обрезка ленты
|
||||
#define fcDispalyUpper 0x2F //(47)Вывод текста в верхнюю строку дисплея
|
||||
#define fcOpenFiscalInv 0x30 //(48)Открытие фискального (клиентского) чека
|
||||
#define fcRegisterSale 0x31 //(49)Регистрация продажи
|
||||
#define fcReportOnTaxRates 0x32 //(50)Отчет по налоговым ставкам и положению десятичной точки за период
|
||||
#define fcSubtotal 0x33 //(51)Подитог
|
||||
#define fcRegisterSaleDisp 0x34 //(52)Регистрация продажи с выводом на дисплей
|
||||
#define fcTotal 0x35 //(53)Оплата (итог)
|
||||
#define fcPrintFreeTextInFiscalInv 0x36 //(54)Печать свободного текста в фискальном чеке
|
||||
#define fcCloseFiscalInv 0x38 //(56)Закрытие фискального чека
|
||||
#define fcRegisterArticleSale 0x3A //(58)Регистрация продажи запрограммированного артикула
|
||||
#define fcCancelFiscalInv 0x3C //(60)Аннуляция (сторно) фискального чека
|
||||
#define fcSetDateTime 0x3D //(61)Установка даты и времени
|
||||
#define fcGetDateTime 0x3E //(62)Чтение даты и времени
|
||||
#define fcDisplayDateTime 0x3F //(63)Вывод даты и времени на дисплей
|
||||
#define fcLatestFiscalRecord 0x40 //(64)Информация о последней фискальной записи
|
||||
#define fcAmountOfSavingsPerDay 0x41 //(65)Информация о сумме накоплений за день
|
||||
#define fcDepartmentReport 0x42 //(66)Отчет по секциям
|
||||
#define fcFreeFieldsByFiscalMemory 0x44 //(68)Количество свободных полей в фискальной памяти
|
||||
#define fcDailyFinancialReport 0x45 //(69)Дневной финансовый отчет
|
||||
#define fcParishOrConsumption 0x46 //(70)Служебный приход или расход
|
||||
#define fcPrintDiagnostic 0x47 //(71)Печать диагностической информации
|
||||
#define fcFiscalization 0x48 //(72)Фискализация и пререгистрация
|
||||
#define fcFullFiscalReportByNumber 0x49 //(73)Полный фискальный отчет за период заданный номерами смен
|
||||
#define fcGetStatusFP 0x4A //(74)Получение статуса
|
||||
#define fcFiscalTransactionsStatus 0x4C //(76)Статус фискальной транзакции
|
||||
#define fcReduceFiscalReportByDate 0x4F //(79)Сокращенный фискальный отчет за период заданный датами
|
||||
#define fcBeep 0x50 //(80)Звуковой сигнал
|
||||
#define fcOpenBackInv 0x52 //(82)Открытие чека возврата
|
||||
#define fcSetTaxRates 0x53 //(83)Установка положения десятичной точки и налоговых ставок
|
||||
#define fcPrintBarCode 0x54 //(84)Печать штрих-кода
|
||||
#define fcSetAddTypesOfPayment 0x55 //(85)Установка наименований дополнительных типов оплаты
|
||||
#define fcDateOfLastEntryByFiscalMemory 0x56 //(86)Дата последней записи в фискальную память
|
||||
#define fcSetDepartmentName 0x57 //(87)Программирование наименования секции
|
||||
#define fcGetDepartmentInfo 0x58 //(88)Получение информации по секции
|
||||
#define fcPrgProductionTestArea 0x59 //(89)Программирование производственной тестовой области
|
||||
#define fcDiagnosticInfo 0x5A //(90)Диагностическая информация
|
||||
#define fcSetManufacturersSerialNumber 0x5B //(91)Программирование заводского номера принтера
|
||||
#define fcFullFiscalReportByDate 0x5E //(94)Полный фискальный отчет за период заданный датами
|
||||
#define fcReduceFiscalReportByNumber 0x5F //(95)Сокращенный фискальный отчет за период заданный номерами смен
|
||||
#define fcGetTaxRates 0x61 //(97)Чтение запрограммированных налоговых ставок
|
||||
#define fcSetRNNAndRNM 0x62 //(98)Установка РНН и РНМ
|
||||
#define fcGetRNNAndRNM 0x63 //(99)Чтение РНН и РНМ
|
||||
#define fcDispalyFree 0x64 //(100)Вывод на дисплей свободного текста
|
||||
#define fcSetOperatorPassword 0x65 //(101)Установка пароля оператора
|
||||
#define fcSetOperatorName 0x66 //(102)Установка наименования оператора
|
||||
#define fcInfoByCurrentInv 0x67 //(103)Информация о текущем чеке
|
||||
#define fcOperatorReport 0x69 //(105)Отчет по операторам
|
||||
#define fcOpenCashDrawer 0x6A //(106)Открытие денежного ящика
|
||||
#define fcPrgAndReadArticle 0x6B //(107)Программирование и чтение данных артикула
|
||||
#define fcPrintDuplicateInv 0x6D //(109)Печать дубликата чека
|
||||
#define fcDailyReportByTypesOfPayment 0x6E //(110)Дневной отчет по типам оплаты
|
||||
#define fcReportByArticle 0x6F //(111)Отчет по артикулам
|
||||
#define fcReportByOperators 0x70 //(112)Отчет по операторам
|
||||
#define fcGetLastPrintedDocNumber 0x71 //(113)Получение номера последнего напечатанного документа
|
||||
#define fcGetInfoOfFiscalRecords 0x72 //(114)Получение информации о фискальной записи или записях за период
|
||||
#define fcPrgGraphicLogo 0x73 //(115)Программирование графического логотипа
|
||||
#define fcReadFiscalMemoryBlock 0x74 //(116)Чтение блока фискальной памяти
|
||||
#define fcEJ 0x78 //(120)Работа с электронной контрольной лентой
|
||||
#define fcReadROMBlock 0x79 //(121)Чтение блока из ПЗУ
|
||||
#define fcServiceClearEJ 0x7E //(126)Сервисная очистка контрольной ленты
|
||||
#define fcServiceClearRAM 0x7F //(127)Сервисное обнуление ОЗУ
|
||||
*/
|
||||
//---------------------------------------------------------------------------
|
||||
//unsigned int MakeCRC(unsigned char* Buf, unsigned int BufStart,unsigned int BufLen);
|
||||
//---------------------------------------------------------------------------
|
||||
typedef char int1;
|
||||
typedef unsigned char uint1;
|
||||
typedef unsigned int uint4;
|
||||
#if !defined( _BORLAND )
|
||||
typedef unsigned short Word; // 0..65535
|
||||
#endif
|
||||
typedef unsigned char BYTE;
|
||||
//---------------------------------------------------------------------------
|
||||
class AYRA01FRKZ : public CPrinter
|
||||
{
|
||||
private:
|
||||
protected:
|
||||
public:
|
||||
ComPort* cPort;
|
||||
std::string m_Password; //Пароль кассира
|
||||
|
||||
AYRA01FRKZ();
|
||||
virtual ~AYRA01FRKZ();
|
||||
|
||||
|
||||
bool WriteReqwest(std::string reqwest); //Послать запрос принтеру
|
||||
bool ReadAnswer(std::string &answer); //Прочитать ответ принтера
|
||||
|
||||
bool CutPaper(bool full = true); ///<Отрезать бумагу
|
||||
bool FeedPaper(int lines); ///<Протянуть бумагу
|
||||
bool OpenCashDrawer(int mSec = 0); ///<Открытие денежного ящика
|
||||
|
||||
//Функции из родительского класса
|
||||
bool isOk(); //Готов ли к работе принтер (должна быстро выполнятся)
|
||||
bool OpenCOMPort(int ComNumber = -1,int BaudRate = -1); ///<Соедениться по COM порту
|
||||
bool PrinterInit(); //Инициализация принтера.
|
||||
bool GetCashSum(double& sum); //<Получить сумму наличности в кассе.
|
||||
bool Beep(int Hz = 0,int mSec = 0); ///<Звуковой сигнал
|
||||
bool PrintZReport(); ///<Печатать дневной отчёт с гашением
|
||||
bool PrintXReport(); ///<Печатать дневной отчёт без гашения
|
||||
bool PrintLine(std::wstring line); ///<Печатает строку текста
|
||||
bool GetStateKKM(std::string& state);
|
||||
|
||||
std::wstring GetErrorDesc(int ResultCode); ///<Описание кода ошибки ко его коду
|
||||
|
||||
|
||||
//Не из родителя функции а те которые в протоколе!!!
|
||||
bool SetDateTime(unsigned char ye,unsigned char mo,unsigned char de,unsigned char ho,unsigned char mi,unsigned char se);
|
||||
bool Abort(bool test, bool nal, double price,double count); //Аннулирование
|
||||
bool Return(bool test, bool nal, double price,double count); //Возврат
|
||||
|
||||
bool GetCashSum(double* sum); ///<Наличных в ден ящике
|
||||
|
||||
|
||||
bool PrintTail(); ///<Печать окончание чека
|
||||
bool PrintEJ(bool full,bool clear); ///<Печать контрольной ленты
|
||||
bool EnterInState(int state,int password); ///<Вход в режим
|
||||
bool ExitFromState(); ///<Выход из режима
|
||||
bool ReturnDiscount(); ///<Отменить последнюю скидку/надбавку
|
||||
|
||||
bool Discount(bool test, bool area, bool abs, double price); ///<Скидка либо надбавка
|
||||
|
||||
bool Settle(bool test,int type,double price); ///<Расчёт по чеку
|
||||
bool ReturnSettle(bool test,int type,double price, double* remainder, double* deal); ///<Сторно расчёт по чеку
|
||||
bool CloseFiscalInv(bool test, int type, double price); ///<Закрыть чек со здачей
|
||||
|
||||
//***Общие комманды***
|
||||
bool GetStateKKM(unsigned char &state1,unsigned char &state2,unsigned char &flags); ///<Запрос состояния ККМ
|
||||
bool GetDeviseType(); //Получить тип устройства
|
||||
|
||||
//***Команды режима регистрации***
|
||||
bool OpenGang(bool test, std::wstring text); ///<Открыть смену
|
||||
bool OpenFiscalInv(unsigned char type); ///<Открытие фискального (клиентского) чека
|
||||
bool Storno(); //Анулирование всего чека (сторнирование)
|
||||
bool CashInOut(bool test, double sum); //<Внесение +, выемка -
|
||||
bool RegisterSale(double price, double count, unsigned char section); ///<Регистрация продажи
|
||||
bool StornoSale(bool test, double price, double count, unsigned char section); ///<Сторнирование продажи
|
||||
|
||||
//***Команды режима отчётов без гашения***
|
||||
bool PrintReport(unsigned char type);
|
||||
|
||||
//***Общие команды***
|
||||
|
||||
//***Команды режима программирования***
|
||||
bool ReadTable(unsigned char table,unsigned short row,unsigned char field, std::string& ans); ///<Чтение поля из таблицы
|
||||
|
||||
|
||||
//Функции из родительского класса которые не совпали с протокоольными...
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
0
devices/Printers/AYRA01FRKZ/stdafx.h
Normal file
0
devices/Printers/AYRA01FRKZ/stdafx.h
Normal file
785
devices/Printers/CitizenPPU700/CitizenPPU700Class.cpp
Normal file
785
devices/Printers/CitizenPPU700/CitizenPPU700Class.cpp
Normal file
@ -0,0 +1,785 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#pragma hdrstop
|
||||
#include "CitizenPPU700Class.h"
|
||||
#include "globals.h"
|
||||
#include "boost/format.hpp"
|
||||
#include "DeviceThread.h"
|
||||
//---------------------------------------------------------------------------
|
||||
#pragma package(smart_init)
|
||||
|
||||
CCitizenPPU700::CCitizenPPU700(int ComPort,int BaudRate,TLogClass* _Log) : CPrinter(ComPort,_Log, "CitizenPPU700")
|
||||
{
|
||||
DataLength = 1;
|
||||
delete Port;
|
||||
COMParameters->Parity = NOPARITY;
|
||||
COMParameters->BaudRate = 19200;
|
||||
if (BaudRate > 0)
|
||||
COMParameters->BaudRate = BaudRate;
|
||||
Port = new TComPort(COMParameters,Log,true);
|
||||
LoggingErrors = false;
|
||||
//Init();
|
||||
//GetState();
|
||||
//SetCodeTable();
|
||||
State = 0x00;
|
||||
OldState = 0x00;
|
||||
SubState = 0x00;
|
||||
OldSubState = 0x00;
|
||||
DeviceName = "CitizenPPU700";
|
||||
MinLinesCount += 3;
|
||||
//SetCharacterSize();
|
||||
}
|
||||
|
||||
CCitizenPPU700::~CCitizenPPU700()
|
||||
{
|
||||
}
|
||||
|
||||
void CCitizenPPU700::SendCommand()
|
||||
{
|
||||
DeviceThread = new TDeviceThread(true,false);
|
||||
Start();
|
||||
delete DeviceThread;
|
||||
DeviceThread = NULL;
|
||||
}
|
||||
|
||||
void CCitizenPPU700::PrintString(AnsiString text)
|
||||
{
|
||||
PrintLine(text);
|
||||
SendCommand();
|
||||
}
|
||||
|
||||
void CCitizenPPU700::PrintCheck(TStringList* Text)
|
||||
{
|
||||
char subtext[100];
|
||||
for(int i=0; i<Text->Count; i++)
|
||||
{
|
||||
memset(subtext,0,100);
|
||||
CharToOem(Text->Strings[i].c_str(), subtext);
|
||||
PrintString(Text->Strings[i]);
|
||||
//PrintString(AnsiString(subtext));
|
||||
//PrintBigString(AnsiString(subtext));
|
||||
}
|
||||
Cut(true);
|
||||
}
|
||||
|
||||
void CCitizenPPU700::SendPacket(BYTE* command, int bytes_count,int datalen, BYTE* data, bool datafirst)
|
||||
{
|
||||
if (!Port->PortInit)
|
||||
return;
|
||||
try
|
||||
{
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
ClearCommand();
|
||||
ClearAnswer();
|
||||
|
||||
if (!datafirst)
|
||||
{
|
||||
for(int i=0; i<bytes_count; i++)
|
||||
Command[i] = command[i];
|
||||
|
||||
if (datalen != 0)
|
||||
{
|
||||
if (data!=NULL)
|
||||
memcpy(&Command[bytes_count],data,datalen);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (datalen != 0)
|
||||
{
|
||||
if (data!=NULL)
|
||||
memcpy(&Command[0],data,datalen);
|
||||
}
|
||||
for(int i=datalen; i<datalen+bytes_count; i++)
|
||||
Command[i] = command[i-datalen];
|
||||
}
|
||||
|
||||
//CommandParameters->SetParameters(Command,bytes_count+datalen,command[0],0);
|
||||
CommandSize = bytes_count+datalen;
|
||||
}
|
||||
__finally
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
std::string CCitizenPPU700::GetStateDescription()
|
||||
{
|
||||
return GetStatusDescription((BYTE)DeviceState->StateCode);
|
||||
}
|
||||
|
||||
void CCitizenPPU700::PrintLine(AnsiString text)
|
||||
{
|
||||
//SelectFont();
|
||||
/*BYTE command[200];
|
||||
memset(command,0,200);
|
||||
int ind = text.Length();
|
||||
memcpy(text.c_str(),command,text.Length());
|
||||
command[ind] = 0x0A;
|
||||
SendType = NotRecieveAnswer;
|
||||
SendPacket(command,text.Length()+1,0,NULL);
|
||||
SendCommand();*/
|
||||
BYTE command[2];
|
||||
command[0] = 0x0A;
|
||||
command[1] = 0x0D;
|
||||
int datalen = text.Length();
|
||||
SendType = NotRecieveAnswer;
|
||||
SendPacket(command,2,datalen,text.c_str(),true);
|
||||
}
|
||||
|
||||
void CCitizenPPU700::PrintBigString(AnsiString text)
|
||||
{
|
||||
ClearCommand();
|
||||
ClearAnswer();
|
||||
Command[0] = 0x1B;
|
||||
Command[1] = 0x21;
|
||||
Command[2] = 0x10;
|
||||
memcpy(&Command[3],text.c_str(),text.Length());
|
||||
CommandSize = 3 + text.Length();
|
||||
Command[CommandSize] = 0x0A;
|
||||
Command[CommandSize+1] = 0x0D;
|
||||
CommandSize += 2;
|
||||
SendType = NotRecieveAnswer;
|
||||
SendCommand();
|
||||
}
|
||||
|
||||
void CCitizenPPU700::SetBarCodeHeight(BYTE n) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 255 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
n = n ? n : 0xFF;
|
||||
|
||||
BYTE command[2];
|
||||
command[0] = 0x1D;
|
||||
command[1] = 0x68;
|
||||
|
||||
int datalen = 1;
|
||||
BYTE data[1];
|
||||
data[0] = n;
|
||||
SendType = NotRecieveAnswer;
|
||||
SendPacket(command,2,datalen,data);
|
||||
SendCommand();
|
||||
}
|
||||
|
||||
void CCitizenPPU700::SetBarCodeWidth(BYTE n) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
n = ((n >= 2) && (n <= 6)) ? n : 2;
|
||||
|
||||
BYTE command[2];
|
||||
command[0] = 0x1D;
|
||||
command[1] = 0x77;
|
||||
|
||||
int datalen = 1;
|
||||
BYTE data[1];
|
||||
data[0] = n; //2..6 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20>.<2E>.
|
||||
SendType = NotRecieveAnswer;
|
||||
SendPacket(command,2,datalen,data);
|
||||
SendCommand();
|
||||
}
|
||||
void CCitizenPPU700::SetBarCodeFont(BYTE n) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, 3 <20><><EFBFBD><EFBFBD>: <20>, B <20><><EFBFBD> C
|
||||
{
|
||||
n = ((n <= 2) || ((n >=48 ) && (n <= 50))) ? n : 2;
|
||||
|
||||
BYTE command[2];
|
||||
command[0] = 0x1D;
|
||||
command[1] = 0x66;
|
||||
|
||||
int datalen = 1;
|
||||
BYTE data[1];
|
||||
data[0] = n; //== 0-2 <20><><EFBFBD> 48-50
|
||||
SendType = NotRecieveAnswer;
|
||||
SendPacket(command,2,datalen,data);
|
||||
SendCommand();
|
||||
}
|
||||
|
||||
void CCitizenPPU700::SetBarCodeHRIposition(BYTE n) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
n = ((n <= 3) || ((n >= 48) && (n <= 51))) ? n : 1;
|
||||
|
||||
BYTE command[2];
|
||||
command[0] = 0x1D;
|
||||
command[1] = 0x48;
|
||||
|
||||
int datalen = 1;
|
||||
BYTE data[1];
|
||||
data[0] = n; //== 0..3 <20><><EFBFBD> 48..51: <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD>/<2F><><EFBFBD>/<2F><><EFBFBD> <20> <20><><EFBFBD>
|
||||
SendType = NotRecieveAnswer;
|
||||
SendPacket(command,2,datalen,data);
|
||||
SendCommand();
|
||||
}
|
||||
|
||||
void CCitizenPPU700::PrintBarCode(std::string text)
|
||||
{
|
||||
try
|
||||
{
|
||||
const int text_size = 25;
|
||||
const int command_size = 3 + 1 + text_size;
|
||||
BYTE command[command_size];
|
||||
memset(command, 0, command_size);
|
||||
|
||||
command[0] = 0x1D;
|
||||
command[1] = 0x6B;
|
||||
command[2] = 73;
|
||||
command[3] = text_size;
|
||||
|
||||
text = "{B" + text;
|
||||
memcpy(&command[4], fill(text, " ", text_size, SIDE::LEFT).c_str(), text_size);
|
||||
SendType = NotRecieveAnswer;
|
||||
SendPacket(command,command_size,0,NULL);
|
||||
SendCommand();
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
ExceptionFilter(__FILE__, BOOST_CURRENT_FUNCTION, __LINE__, Log);
|
||||
}
|
||||
}
|
||||
|
||||
void CCitizenPPU700::Feed(int count)
|
||||
{
|
||||
/*BYTE command[2];
|
||||
command[0] = 0x0D;
|
||||
command[1] = 0x0A;
|
||||
SendType = NotRecieveAnswer;
|
||||
SendPacket(command,1,0,NULL,true);
|
||||
SendCommand();*/
|
||||
for(int i=1; i<=count; i++)
|
||||
{
|
||||
BYTE command[2];
|
||||
command[0] = 0x0A;
|
||||
command[1] = 0x0D;
|
||||
SendType = NotRecieveAnswer;
|
||||
SendPacket(command,2,0,NULL);
|
||||
SendCommand();
|
||||
}
|
||||
}
|
||||
|
||||
// <20><><EFBFBD> 0 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD> 1 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD> 2 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD> 3 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD> 4 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>
|
||||
// <20><><EFBFBD> 5 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>
|
||||
// <20><><EFBFBD> 6 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD> 7 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void CCitizenPPU700::ShriftOptionsEx(BYTE option)//true - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> false - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
BYTE command[2];
|
||||
command[0] = 0x1B;
|
||||
command[1] = 0x21;
|
||||
int datalen = 1;
|
||||
BYTE data[1];
|
||||
data[0] = option;
|
||||
SendType = NotRecieveAnswer;
|
||||
SendPacket(command,2,datalen,data);
|
||||
SendCommand();
|
||||
}
|
||||
|
||||
void CCitizenPPU700::SetUnderline(bool option)
|
||||
{
|
||||
BYTE command[2];
|
||||
command[0] = 0x1B;
|
||||
command[1] = 0x2D;
|
||||
int datalen = 1;
|
||||
BYTE data[1];
|
||||
if (option)
|
||||
data[0] = 1;
|
||||
else
|
||||
data[0] = 0;
|
||||
SendType = NotRecieveAnswer;
|
||||
SendPacket(command,2,datalen,data);
|
||||
SendCommand();
|
||||
}
|
||||
|
||||
void CCitizenPPU700::SetBold(bool option)
|
||||
{
|
||||
BYTE command[2];
|
||||
command[0] = 0x1B;
|
||||
command[1] = 0x45;
|
||||
int datalen = 1;
|
||||
BYTE data[1];
|
||||
if (option)
|
||||
data[0] = 1;
|
||||
else
|
||||
data[0] = 0;
|
||||
SendType = NotRecieveAnswer;
|
||||
SendPacket(command,2,datalen,data);
|
||||
SendCommand();
|
||||
}
|
||||
|
||||
void CCitizenPPU700::SetDoublePrint(bool option)
|
||||
{
|
||||
BYTE command[2];
|
||||
command[0] = 0x1B;
|
||||
command[1] = 0x47;
|
||||
int datalen = 1;
|
||||
BYTE data[1];
|
||||
if (option)
|
||||
data[0] = 1;
|
||||
else
|
||||
data[0] = 0;
|
||||
SendType = NotRecieveAnswer;
|
||||
SendPacket(command,2,datalen,data);
|
||||
SendCommand();
|
||||
}
|
||||
|
||||
void CCitizenPPU700::Init()
|
||||
{
|
||||
BYTE command[2];
|
||||
command[0] = 0x1B;
|
||||
command[1] = 0x40;
|
||||
SendType = NotRecieveAnswer;
|
||||
SendPacket(command,2,0,NULL);
|
||||
SendCommand();
|
||||
}
|
||||
|
||||
void CCitizenPPU700::Cut(bool option)//true - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> false - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
{
|
||||
UNREFERENCED_PARAMETER(option);
|
||||
BYTE command[2];
|
||||
command[0] = 0x1B;
|
||||
//command[1] = 0x69;
|
||||
command[1] = 0x6D;
|
||||
/*if (option)
|
||||
command[1] = 0x69;
|
||||
else
|
||||
command[1] = 0x6D;*/
|
||||
SendType = NotRecieveAnswer;
|
||||
SendPacket(command,2,0,NULL);
|
||||
SendCommand();
|
||||
}
|
||||
|
||||
bool CCitizenPPU700::IsPaperInPresenter()
|
||||
{
|
||||
BYTE command[3];
|
||||
BYTE Code = 0;
|
||||
command[0] = 0x1D;
|
||||
command[1] = 0x72;
|
||||
command[2] = 0x01;
|
||||
SendType = RecieveAnswer;
|
||||
SendPacket(command,3,0,NULL);
|
||||
SendCommand();
|
||||
if (DeviceState == NULL)
|
||||
return false;
|
||||
if (DeviceState->AnswerSize > 0)
|
||||
Code = Answer[0];
|
||||
if (LoggingErrors)
|
||||
Log->Write((boost::format("IsPaperInPresenter() Code=%1%") % Code).str().c_str());
|
||||
Code &= 0x08;
|
||||
if (Code > 0)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void CCitizenPPU700::GetState()
|
||||
{
|
||||
Init();
|
||||
State = 0xFF;
|
||||
SubState = 0x0;
|
||||
StateDescr = "";
|
||||
SubStateDescr = "";
|
||||
Error = 0;
|
||||
BYTE command[2];
|
||||
command[0] = 0x1B;
|
||||
command[1] = 0x76;
|
||||
SendType = RecieveAnswer;
|
||||
SendPacket(command,2,0,NULL);
|
||||
SendCommand();
|
||||
if (DeviceState == NULL)
|
||||
return;
|
||||
if (DeviceState->AnswerSize > 0)
|
||||
State = Answer[0];
|
||||
Log->Write((boost::format("Printer State=%1%") % GetStatusDescription((BYTE)State).c_str()).str().c_str());
|
||||
|
||||
DeviceState->StateCode = State;
|
||||
DeviceState->StateDescription = GetStatusDescription((BYTE)State);
|
||||
DeviceState->SubStateCode = 0x00;
|
||||
DeviceState->SubStateDescription = "";
|
||||
//=====================new 27-04-2007===========================================
|
||||
std::string result = "";
|
||||
switch(DeviceState->DSR_CTS)
|
||||
{
|
||||
case DsrCtsOff:
|
||||
{
|
||||
result = "DSR Off, CTS Off";
|
||||
Log->Write(result.c_str());
|
||||
Error = 1;
|
||||
PrinterEnable = false;
|
||||
DeviceState->OutStateCode = DSE_HARDWARE_ERROR;
|
||||
if (DeviceState->OldOutStateCode != DeviceState->OutStateCode)
|
||||
{
|
||||
//DeviceState->OldOutStateCode = DeviceState->OutStateCode;
|
||||
//DeviceState->OldStateCode = DeviceState->StateCode;
|
||||
DeviceState->StateDescription = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>";
|
||||
DeviceState->StateChange = true;
|
||||
//if (ChangeEvent)
|
||||
//StateChanged(DeviceState);
|
||||
ChangeDeviceState();
|
||||
}
|
||||
return;
|
||||
}
|
||||
// break;
|
||||
case DsrCtsOn:
|
||||
result = "DSR On, CTS On";
|
||||
Log->Write(result.c_str());
|
||||
break;
|
||||
case DsrOn:
|
||||
result = "Only DSR On, CTS Off";
|
||||
Log->Write(result.c_str());
|
||||
break;
|
||||
case CtsOn:
|
||||
{
|
||||
result = "Only CTS On, DSR Off";
|
||||
Log->Write(result.c_str());
|
||||
Error = 1;
|
||||
PrinterEnable = false;
|
||||
DeviceState->OutStateCode = DSE_HARDWARE_ERROR;
|
||||
if (DeviceState->OldOutStateCode != DeviceState->OutStateCode)
|
||||
{
|
||||
//DeviceState->OldOutStateCode = DeviceState->OutStateCode;
|
||||
DeviceState->StateDescription = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>";
|
||||
DeviceState->StateDescription = result;
|
||||
DeviceState->StateChange = true;
|
||||
//if (ChangeEvent)
|
||||
//StateChanged(DeviceState);
|
||||
ChangeDeviceState();
|
||||
}
|
||||
return;
|
||||
}
|
||||
// break;
|
||||
}
|
||||
|
||||
if (Error == 1) return;
|
||||
|
||||
result = "OK";
|
||||
Error = 0;
|
||||
PrinterEnable = true;
|
||||
DeviceState->OutStateCode = DSE_OK;
|
||||
ChangeDeviceState();
|
||||
DeviceState->StateDescription = result;
|
||||
//if (OldState != StatusCode)
|
||||
/*if (DeviceState->OldOutStateCode != DeviceState->OutStateCode)
|
||||
{
|
||||
DeviceState->OldOutStateCode = DeviceState->OutStateCode;
|
||||
OldState = DeviceState->StateCode;
|
||||
DeviceState->StateCode = StatusCode;
|
||||
DeviceState->StateDescription = result;
|
||||
DeviceState->StateChange = true;
|
||||
if (ChangeEvent)
|
||||
StateChanged(DeviceState);
|
||||
return StateDescr = result;
|
||||
}*/
|
||||
//==============================================================================
|
||||
/*if (State == 0x00)
|
||||
{
|
||||
if (Error == 1)
|
||||
{
|
||||
Error = 0;
|
||||
DeviceState->StateChange = true;
|
||||
if (ChangeEvent)
|
||||
StateChanged(DeviceState);
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
std::string CCitizenPPU700::GetStatusDescription(BYTE StatusCode)
|
||||
{
|
||||
std::string result = "";
|
||||
if (StatusCode == 0x00)
|
||||
{
|
||||
result += "OK";
|
||||
PrinterEnable = true;
|
||||
DeviceState->OutStateCode = DSE_OK;
|
||||
DeviceState->StateDescription = result;
|
||||
return StateDescr = result;
|
||||
}
|
||||
if (StatusCode == 0xFF)
|
||||
{
|
||||
result += "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!";
|
||||
Error = 1;
|
||||
PrinterEnable = false;
|
||||
if (OldState != StatusCode)
|
||||
{
|
||||
OldState = DeviceState->StateCode;
|
||||
DeviceState->StateCode = StatusCode;
|
||||
DeviceState->StateDescription = result;
|
||||
DeviceState->OutStateCode = DSE_NOTMOUNT;
|
||||
DeviceState->StateChange = true;
|
||||
//if (ChangeEvent)
|
||||
//StateChanged(DeviceState);
|
||||
ChangeDeviceState();
|
||||
}
|
||||
return StateDescr = result;
|
||||
}
|
||||
|
||||
BYTE code = (BYTE)StatusCode & (BYTE)0x04;
|
||||
if (code > 0)
|
||||
{
|
||||
result += "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ";
|
||||
Error = 1;
|
||||
PrinterEnable = false;
|
||||
if (OldState != StatusCode)
|
||||
{
|
||||
OldState = DeviceState->StateCode;
|
||||
DeviceState->StateCode = StatusCode;
|
||||
DeviceState->OutStateCode = DSE_NOTPAPER;
|
||||
DeviceState->StateDescription = result;
|
||||
DeviceState->StateChange = true;
|
||||
//if (ChangeEvent)
|
||||
//StateChanged(DeviceState);
|
||||
ChangeDeviceState();
|
||||
}
|
||||
return StateDescr = result;
|
||||
}
|
||||
|
||||
code = (BYTE)StatusCode & (BYTE)0x01;
|
||||
if (code > 0)
|
||||
{
|
||||
result += "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ";
|
||||
Error = 1;
|
||||
PrinterEnable = true;
|
||||
if (OldState != StatusCode)
|
||||
{
|
||||
OldState = DeviceState->StateCode;
|
||||
DeviceState->StateCode = StatusCode;
|
||||
DeviceState->OutStateCode = DSE_NEARENDPAPER;
|
||||
DeviceState->StateDescription = result;
|
||||
DeviceState->StateChange = true;
|
||||
//if (ChangeEvent)
|
||||
//StateChanged(DeviceState);
|
||||
ChangeDeviceState();
|
||||
}
|
||||
return StateDescr = result;
|
||||
}
|
||||
|
||||
return StateDescr = result;
|
||||
}
|
||||
|
||||
void CCitizenPPU700::SelectFont()
|
||||
{
|
||||
BYTE command[3];
|
||||
command[0] = 0x1B;
|
||||
command[1] = 0x4D;
|
||||
command[2] = 0;
|
||||
SendType = NotRecieveAnswer;
|
||||
SendPacket(command,3,0,NULL);
|
||||
SendCommand();
|
||||
}
|
||||
|
||||
void CCitizenPPU700::PrintCheck(AnsiString text, std::string barcode)
|
||||
{
|
||||
GetState();
|
||||
Push();
|
||||
SelectFont();
|
||||
if (DeviceState->StateCode == 0xff)
|
||||
return;
|
||||
SetCodeTable();
|
||||
//SetCharacterSize();
|
||||
//Log->Write("Text to printer: "+ text);
|
||||
TStringList* strings = new TStringList();
|
||||
AnsiString delim = "\r\n";
|
||||
LinesCount = 0;
|
||||
while(true)
|
||||
{
|
||||
int pos = text.Pos(delim);
|
||||
if (pos == 0)
|
||||
break;
|
||||
text = text.Delete(pos,2);
|
||||
text = text.Insert("|",pos);
|
||||
}
|
||||
delim = "|";
|
||||
char _subtext[1024];
|
||||
while(true)
|
||||
{
|
||||
int pos = text.Pos(delim);
|
||||
if (pos == 0)
|
||||
{
|
||||
AnsiString subtext = text;
|
||||
memset(_subtext,0,1024);
|
||||
CharToOem(subtext.c_str(), _subtext);
|
||||
PrintString(AnsiString(_subtext));
|
||||
LinesCount++;
|
||||
break;
|
||||
}
|
||||
AnsiString subtext = text.SubString(0,pos-1);
|
||||
text = text.SubString(pos+1,text.Length()-pos);
|
||||
//if (!subtext.IsEmpty())
|
||||
//{
|
||||
memset(_subtext,0,1024);
|
||||
CharToOem(subtext.c_str(), _subtext);
|
||||
//PrintBigString(AnsiString(_subtext));
|
||||
LinesCount++;
|
||||
PrintString(AnsiString(_subtext));
|
||||
//}
|
||||
}
|
||||
if(!barcode.empty())
|
||||
{
|
||||
SetBarCodeHeight(0xA0); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 0 .. 255 - <20> <20>.<2E>.
|
||||
SetBarCodeHRIposition(1); //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 0..3 <20><><EFBFBD> 48..51: <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD>/<2F><><EFBFBD>/<2F><><EFBFBD> <20> <20><><EFBFBD>
|
||||
SetBarCodeFont(1); //<2F><><EFBFBD><EFBFBD>, 0 .. 2 <20><><EFBFBD> 48 .. 50: 3 <20><><EFBFBD><EFBFBD>: <20>, B <20><><EFBFBD> C, <20>->C: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
|
||||
SetBarCodeWidth(2); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 2..6 - <20> <20>.<2E>.
|
||||
PrintBarCode(barcode);
|
||||
Feed(2);
|
||||
}
|
||||
//for(int i=0; i<7; i++)
|
||||
//Feed();
|
||||
//==========new 06-06-2007 ================
|
||||
_MinLinesCount = 3;
|
||||
//=========================================
|
||||
FeedToMinLinesCount();
|
||||
Cut(true);
|
||||
//PrintCheck(strings);
|
||||
switch (PushActionType)
|
||||
{
|
||||
case Nothing:
|
||||
PushEx2();
|
||||
break;
|
||||
case Pull:
|
||||
Push();
|
||||
break;
|
||||
case PullAndPush:
|
||||
PushEx();
|
||||
break;
|
||||
default:
|
||||
//Push();
|
||||
break;
|
||||
}
|
||||
delete strings;
|
||||
}
|
||||
|
||||
void CCitizenPPU700::SetCodeTable()
|
||||
{
|
||||
BYTE command[3];
|
||||
command[0] = 0x1B;
|
||||
command[1] = 0x74;
|
||||
command[2] = 0x07;
|
||||
SendType = NotRecieveAnswer;
|
||||
SendPacket(command,3,0,NULL);
|
||||
SendCommand();
|
||||
}
|
||||
|
||||
void CCitizenPPU700::SetCharacterSize()
|
||||
{
|
||||
BYTE command[3];
|
||||
command[0] = 0x1D;
|
||||
command[1] = 0x21;
|
||||
command[2] = 0x77;
|
||||
SendType = NotRecieveAnswer;
|
||||
SendPacket(command,3,0,NULL);
|
||||
SendCommand();
|
||||
}
|
||||
|
||||
bool CCitizenPPU700::IsPrinterEnable()
|
||||
{
|
||||
GetState();
|
||||
return PrinterEnable;
|
||||
}
|
||||
|
||||
void CCitizenPPU700::Push()
|
||||
{
|
||||
if (IsPaperInPresenter() == false)
|
||||
return;
|
||||
BYTE command[3];
|
||||
command[0] = 0x1D;
|
||||
command[1] = 0x52;
|
||||
command[2] = 0x30;
|
||||
SendType = NotRecieveAnswer;
|
||||
SendPacket(command,3,0,NULL);
|
||||
SendCommand();
|
||||
}
|
||||
|
||||
void CCitizenPPU700::PushEx()
|
||||
{
|
||||
if (IsPaperInPresenter() == false)
|
||||
return;
|
||||
BYTE command[4];
|
||||
command[0] = 0x1D;
|
||||
command[1] = 0x52;
|
||||
command[2] = 0x31;
|
||||
command[3] = 30;
|
||||
SendType = NotRecieveAnswer;
|
||||
SendPacket(command,4,0,NULL);
|
||||
SendCommand();
|
||||
}
|
||||
|
||||
void CCitizenPPU700::PushEx2()
|
||||
{
|
||||
//if (IsPaperInPresenter() == false)
|
||||
//return;
|
||||
BYTE command[4];
|
||||
command[0] = 0x1D;
|
||||
command[1] = 0x52;
|
||||
command[2] = 0x31;
|
||||
command[3] = 0xFF;
|
||||
SendType = NotRecieveAnswer;
|
||||
SendPacket(command,4,0,NULL);
|
||||
SendCommand();
|
||||
}
|
||||
|
||||
bool CCitizenPPU700::IsItYou()
|
||||
{
|
||||
BYTE command[2];
|
||||
command[0] = 0x1B;
|
||||
command[1] = 0x76;
|
||||
SendType = RecieveAnswer;
|
||||
SendPacket(command,2,0,NULL);
|
||||
SendCommand();
|
||||
if (DeviceState == NULL)
|
||||
return false;
|
||||
if (DeviceState->AnswerSize == 0)
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
int CCitizenPPU700::Initialize()
|
||||
{
|
||||
try
|
||||
{
|
||||
Init();
|
||||
GetState();
|
||||
SetCodeTable();
|
||||
SetInitialized();
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
ExceptionFilter(__FILE__, BOOST_CURRENT_FUNCTION, __LINE__, Log);
|
||||
}
|
||||
}
|
||||
|
||||
void CCitizenPPU700::Settings()
|
||||
{
|
||||
/*BYTE command[];
|
||||
command[0] = 0x1D;
|
||||
command[1] = 0x28;
|
||||
command[2] = 0x45;
|
||||
command[3] = 0x;
|
||||
command[4] = 0x;
|
||||
command[5] = 0x03;
|
||||
//bit 1
|
||||
command[] = 0x04;
|
||||
command[] = 48;
|
||||
//bit 2
|
||||
command[] = 0x04;
|
||||
command[] = 48;
|
||||
//bit 3
|
||||
command[] = 0x04;
|
||||
command[] = 48;
|
||||
//bit 4
|
||||
command[] = 0x04;
|
||||
command[] = 49;
|
||||
//bit 5
|
||||
command[] = 0x04;
|
||||
command[] = 48;
|
||||
//bit 6
|
||||
command[] = 0x04;
|
||||
command[] = 48;
|
||||
//bit 7
|
||||
command[] = 0x04;
|
||||
command[] = 48;
|
||||
//bit 8
|
||||
command[] = 0x04;
|
||||
command[] = 48;
|
||||
|
||||
SendType = RecieveAnswer;
|
||||
SendPacket(command,2,0,NULL);
|
||||
SendCommand();*/
|
||||
}
|
||||
|
||||
53
devices/Printers/CitizenPPU700/CitizenPPU700Class.h
Normal file
53
devices/Printers/CitizenPPU700/CitizenPPU700Class.h
Normal file
@ -0,0 +1,53 @@
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
#ifndef CitizenPPU700ClassH
|
||||
#define CitizenPPU700ClassH
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
|
||||
#include "CPrinter.h"
|
||||
|
||||
class CCitizenPPU700 : public CPrinter
|
||||
{
|
||||
private:
|
||||
virtual std::string GetStateDescription();
|
||||
std::string GetStatusDescription(BYTE StatusCode);
|
||||
void SendCommand();
|
||||
|
||||
virtual void PrintString(AnsiString text);
|
||||
void PrintBigString(AnsiString text);
|
||||
virtual void PrintLine(AnsiString text);
|
||||
virtual void ShriftOptionsEx(BYTE option);//true - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> false - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
virtual void SetUnderline(bool option);
|
||||
virtual void SetBold(bool option);
|
||||
virtual void SetDoublePrint(bool option);
|
||||
virtual void Init();
|
||||
virtual void Cut(bool option);//true - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> false - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
virtual void Feed(int count = 1);
|
||||
virtual void SetCodeTable();
|
||||
virtual void SetCharacterSize();
|
||||
virtual void SelectFont();
|
||||
virtual void Push();
|
||||
virtual void PushEx();
|
||||
void PushEx2();
|
||||
virtual bool IsPaperInPresenter();
|
||||
|
||||
virtual void SetBarCodeHeight(BYTE n);
|
||||
virtual void SetBarCodeWidth(BYTE n);
|
||||
virtual void SetBarCodeFont(BYTE n);
|
||||
virtual void SetBarCodeHRIposition(BYTE n);
|
||||
virtual void PrintBarCode(std::string text = "");
|
||||
protected:
|
||||
virtual void SendPacket(BYTE* command, int bytes_count,int datalen, BYTE* data, bool datafirst = false);
|
||||
public:
|
||||
CCitizenPPU700(int ComPort,int BaudRate = 0,TLogClass* _Log = NULL);
|
||||
virtual ~CCitizenPPU700();
|
||||
|
||||
virtual bool IsPrinterEnable();
|
||||
virtual void PrintCheck(TStringList* Text);
|
||||
virtual void PrintCheck(AnsiString text, std::string barcode = "");
|
||||
virtual void GetState();
|
||||
virtual bool IsItYou();
|
||||
int Initialize();
|
||||
virtual void Settings();
|
||||
};
|
||||
20
devices/Printers/CitizenPPU700/CitizenPPU700Thread.cpp
Normal file
20
devices/Printers/CitizenPPU700/CitizenPPU700Thread.cpp
Normal file
@ -0,0 +1,20 @@
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
#pragma hdrstop
|
||||
|
||||
#include "CitizenPPU700Thread.h"
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
#pragma package(smart_init)
|
||||
|
||||
__fastcall CCitizenPPU700Thread::CCitizenPPU700Thread() : TDeviceThread(true, false)
|
||||
{
|
||||
PollingMode = false;
|
||||
DataLength = 1;
|
||||
}
|
||||
|
||||
__fastcall CCitizenPPU700Thread::~CCitizenPPU700Thread()
|
||||
{
|
||||
}
|
||||
|
||||
20
devices/Printers/CitizenPPU700/CitizenPPU700Thread.h
Normal file
20
devices/Printers/CitizenPPU700/CitizenPPU700Thread.h
Normal file
@ -0,0 +1,20 @@
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
#ifndef CCitizenPPU700ThreadH
|
||||
#define CCitizenPPU700ThreadH
|
||||
//---------------------------------------------------------------------------
|
||||
#include "DeviceThread.h"
|
||||
|
||||
typedef enum
|
||||
{
|
||||
UNKNOWN = 0xFF,
|
||||
} CitizenPPU700State;
|
||||
|
||||
class CCitizenPPU700Thread : public TDeviceThread
|
||||
{
|
||||
protected:
|
||||
public:
|
||||
__fastcall CCitizenPPU700Thread();
|
||||
__fastcall ~CCitizenPPU700Thread();
|
||||
};
|
||||
#endif
|
||||
6773
devices/Printers/DP25/DP25.cpp
Normal file
6773
devices/Printers/DP25/DP25.cpp
Normal file
File diff suppressed because it is too large
Load Diff
283
devices/Printers/DP25/DP25.h
Normal file
283
devices/Printers/DP25/DP25.h
Normal file
@ -0,0 +1,283 @@
|
||||
/*
|
||||
* DP25.h
|
||||
*
|
||||
* Created on: 11 сент. 2015 г.
|
||||
* Author: Igor
|
||||
*/
|
||||
|
||||
#ifndef DP25_H_
|
||||
#define DP25_H_
|
||||
|
||||
#include "Printers/Printer.h"
|
||||
#include "ComPort.h"
|
||||
#include "SocketPort.h"
|
||||
|
||||
#define fcDisplayClear 0x21 //(33)Очистка дисплея
|
||||
#define fcDisplayLower 0x23 //(35)Вывод текста в нижнюю строку дисплея
|
||||
#define fcOpenServiceInv 0x26 //(38)Открытие нефискального чека
|
||||
#define fcCloseServiceInv 0x27 //(39)Закрытие нефискального чека
|
||||
#define fcPrintFreeTextInServiceInv 0x2A //(42)Печать свободного текста в нефискальном чеке
|
||||
#define fcFeedPaper 0x2C //44 Протяжка ленты
|
||||
#define fcCheckConnection 0x2D //Проверяет режим соединения с ПК а раньше было: Обрезка ленты
|
||||
#define fcCutPaper 0x2E //(46)Обрезка ленты
|
||||
#define fcDisplayUpper 0x2F //(47)Вывод текста в верхнюю строку дисплея
|
||||
#define fcOpenFiscalInv 0x30 //(48)Открытие фискального (клиентского) чека
|
||||
#define fcRegisterSale 0x31 //(49)Регистрация продажи
|
||||
#define fcReportOnTaxRates 0x32 //(50)Возвращает активные ставки НДС
|
||||
#define fcSubtotal 0x33 //(51)Подитог
|
||||
#define fcTotal 0x35 //(53)Оплата (итог)
|
||||
|
||||
#define fcPrintFreeTextInFiscalInv 0x36 //(54)Печать свободного текста в фискальном чеке
|
||||
|
||||
#define fcCloseFiscalInv 0x38 //(56)Закрытие фискального чека
|
||||
#define fcSetFiscalInvParam 0x39 //(57) Write client GSM/E-mail for current fiscal receipt ИИН INN
|
||||
|
||||
#define fcRegisterArticleSale 0x3A //(58)Регистрация продажи запрограммированного артикула
|
||||
#define fcCancelFiscalInv 0x3C //(60)Аннуляция (сторно) фискального чека
|
||||
#define fcSetDateTime 0x3D //(61)Установка даты и времени
|
||||
#define fcGetDateTime 0x3E //(62)Чтение даты и времени
|
||||
#define fcShowDateTime 0x3F //(63) Show current date and time
|
||||
#define fcLatestFiscalRecord 0x40 //(64)Информация о последней фискальной записи
|
||||
#define fcAmountOfSavingsPerDay 0x41 //(65)Информация о сумме накоплений за день
|
||||
|
||||
#define fcTurnoversOfSavingsPerDay 0x42 //(66)Информация о сумме накоплений за день
|
||||
|
||||
#define fcFreeFieldsByFiscalMemory 0x44 //(68)Количество Z-отчетов оставшихся до заполнения ФП
|
||||
#define fcDailyFinancialReport 0x45 //69 (45h) X и Z отчёты
|
||||
#define fcParishOrConsumption 0x46 //(70)Служебный приход или расход
|
||||
#define fcPrintDiagnostic 0x47 //(71)Печать диагностической информации
|
||||
|
||||
#define fcFiscalization 0x48 //(72)Фискализация и пререгистрация
|
||||
#define fcGetStatusFP 0x4A //(74)Получение статуса
|
||||
#define fcFiscalTransactionsStatus 0x4C //(76)Статус фискальной транзакции
|
||||
#define fcBeep 0x50 //(80)Звуковой сигнал
|
||||
#define fcSetTaxRates 0x53 //Программирование ставок НДС
|
||||
#define fcPrintBarCode 0x54 //(84)Печать штрих-кода
|
||||
#define fcDateOfLastEntryByFiscalMemory 0x56 //Дата последней фискальной записи
|
||||
#define fcGetTradingGroupInfo 0x57 //Получение информации по группам товаров
|
||||
#define fcGetDepInfoInCheck 0x58 //Получение информации по отделу в текущем чеке
|
||||
#define fcTestOfFiscalMemory 0x59 //Test of Fiscal Memory
|
||||
|
||||
#define fcDiagnosticInfo 0x5A //(90)Диагностическая информация
|
||||
#define fcSetManufacturersSerialNumber 0x5B //(91)Программирование заводского номера принтера
|
||||
#define fcPrintDivideLine 0x5C //(92) Печать разделительной линии
|
||||
#define fcFiscalReportByDate 0x5E //(94)Полный фискальный отчет за период заданный датами
|
||||
#define fcFiscalReportByNumber 0x5F //Фискальный отчет по номерам Z-отчетов
|
||||
|
||||
#define fcSetSoftwarePassword 0x60 //Set Software Password
|
||||
#define fcReadingError 0x64 //(100) Reading an error
|
||||
#define fcSetOperatorPassword 0x65 //(101)Установка пароля оператора
|
||||
#define fcInfoByCurrentInv 0x67 //(103)Информация о текущем чеке
|
||||
#define fcOperatorReport 0x69 //(105)Отчет по операторам
|
||||
#define fcOpenCashDrawer 0x6A //(106)Открытие денежного ящика
|
||||
#define fcPrgAndReadArticle 0x6B //(107)Программирование и считывание параметров товаров
|
||||
#define fcGetPLUTurnoversByZReport 0x6C //(108) Get PLU turnovers by Z - report
|
||||
|
||||
#define fcDailyReportByTypesOfPayment 0x6E //(110)Дневной отчет по типам оплаты
|
||||
#define fcReportByArticle 0x6F //(111)Отчет по артикулам
|
||||
#define fcReportByOperators 0x70 //(112)Отчет по операторам
|
||||
#define fcReadFiscalMemoryBlock 0x74 //(116)Чтение блока фискальной памяти
|
||||
|
||||
#define fcReadDeviceInfo 0x7B //(123) Информация об устройстве
|
||||
#define fcGetDocInEJByDate 0x7C //(124) Поиск документа в ЭЖ по дате
|
||||
#define fcGetInfoFromEJ 0x7D //(125) Информация из ЭЖ
|
||||
#define fcPrintStamp 0x7F //(127) Stamp operations
|
||||
|
||||
#define fnCheckUpdate 0xC8 //(200) проверить обновление TODO удалить при обновлении основной версии
|
||||
#define fnUploadImage 0xCA //(202) Загрузить изображение
|
||||
#define fnUploadStamp 0xCB //(203) Загрузить изображение для штампа
|
||||
|
||||
#define fnSetServiceParam 0xFD //(253) Установка сервисных параметров
|
||||
#define fnProgramming 0xFF //(255) Программирование
|
||||
|
||||
//Свои коды ошибок
|
||||
#define ERRIO 100001 //ERR_IO
|
||||
#define ERRActivation 100050 //Ошибка изза не активации программы
|
||||
#define ERRDiscounts 100051 //Ошибка если прентер не поддерживает скидки
|
||||
|
||||
|
||||
class StatusDP25
|
||||
{
|
||||
private:
|
||||
protected:
|
||||
public:
|
||||
bool stat[6][8];
|
||||
StatusDP25();
|
||||
void SetStatus(unsigned char* status);
|
||||
std::string getStatus(); //Статусы в виде строки
|
||||
};
|
||||
|
||||
class DP25: public CPrinter
|
||||
{
|
||||
private:
|
||||
//unsigned char ReadAr[255]; ///<буфер для чтения ответа
|
||||
unsigned char FrameSeqNumber; ///<порядковый номер запроса
|
||||
unsigned char CommandName; ///<Номер последней выполненной команды.
|
||||
unsigned char getNextSeq();
|
||||
bool Sw1,Sw2,Sw3,Sw4,Sw5,Sw6,Sw7,Sw8; //Заполняются при вызове DiagnosticInfo
|
||||
public:
|
||||
int m_activated1; //Устанавливается время от времени (2147443647 если то - активированно)
|
||||
//int m_activated2; //Устанавливается случайным образом по таймеру (2147443647 если то - активированно)
|
||||
|
||||
std::string PrinterName; ///<Название принтера FPG-1000 или DP-25
|
||||
std::string PrinterVersion; ///<Версия программного обеспечения
|
||||
std::string PrinterNumber; ///<Заводской номер (серийник)
|
||||
std::string PrintColumns; //Сколько строк печатает принтер
|
||||
bool m_SaveLog; ///<Сохранять ли в лог файл
|
||||
std::string m_LogFilePath; ///<Куда сохранять лог файл
|
||||
int m_OpCode;
|
||||
std::string m_OpPwd;
|
||||
int m_TillNmb;
|
||||
//std::string ComNumber;
|
||||
//int BaudRate;
|
||||
int TimeOut;
|
||||
int CuttingPluName; //Как обрезать строки
|
||||
|
||||
//ComPort* csPort;
|
||||
Port* csPort; //TCP or Serial
|
||||
StatusDP25* Status;
|
||||
|
||||
DP25();
|
||||
virtual ~DP25();
|
||||
//MyError SendPMessage(unsigned char* msg,int size,std::string &answer);
|
||||
int SendPMessage(unsigned int cmd, unsigned char* msg, int size, std::string &answer);
|
||||
|
||||
|
||||
bool isOk(){ return true; };
|
||||
bool OpenSerial(std::string ComNumber, int BaudRate);
|
||||
//bool OpenCOMPort(std::string ComNumber,int BaudRate);
|
||||
bool CloseCOMPort();
|
||||
|
||||
bool OpenSocket(std::string host, int port); //Отркыть соединение по сокету
|
||||
bool CloseSocket();
|
||||
|
||||
MyError PrinterInit();
|
||||
bool CashInOut(bool test, double sum){ return true; };
|
||||
bool GetCashSum(double& sum){ return true; };
|
||||
|
||||
MyError PrintZReport();
|
||||
MyError PrintXReport();
|
||||
MyError PrintLine(std::wstring line) { MyError err; err.ErrorCode = 0; return err; };
|
||||
int GetLineLength(); //Получить ширину строки чека в символах.
|
||||
|
||||
MyError DisplayClear();
|
||||
|
||||
MyError DisplayLower(std::string Text); ///<Вывод текста в нижнюю строку дисплея
|
||||
MyError OpenServiceInv(int& ShiftNumber, int& DocNumber); ///<Открытие нефискального чека
|
||||
MyError CloseServiceInv(int& ShiftNumber, int& DocNumber); ///<Закрытие нефискального чека
|
||||
MyError SetFiscalInvParam(int Type, std::string Data); ///<Write client GSM/E-mail for current fiscal receipt
|
||||
MyError PrintFreeTextInServiceInv(std::string Text,char Bold,char Italic,char Height,char Underline,char Alignment); ///<Печать свободного текста в нефискальном чеке 48 символов
|
||||
MyError FeedPaper(int count); ///<Протяжка ленты
|
||||
MyError CheckConnection(); ///<Проверяет режим соединения с ПК
|
||||
MyError CutPaper(); ///<Отрезать бумагу
|
||||
MyError DisplayUpper(std::string Text); ///<Вывод текста в верхнюю строку дисплея
|
||||
MyError OpenFiscalInv(int OpCode, std::string OpPwd, int TillNmb, char ReceiptType, int& ShiftNumber, int& SlipNumber, int& DocNumber); ///<Открытие фискального (клиентского) чека
|
||||
MyError RegisterSale(std::string PluName, char TaxCode,double Price,double Quantity,char DiscountType,double DiscountValue,int Department, std::string MarkStamp,double RoundPrice,int UnitCode, std::string ProductID, std::string BarCode, int& SlipNumber, int& DocNumber);
|
||||
MyError ReportOnTaxRates(int& NZreport,double& TaxA,double& TaxB,double& TaxC,std::string& EntryDate); ///<Отчет по налоговым ставкам и положению десятичной точки за период
|
||||
int ReadingError(int Code, int& ECode, std::string& ErrorMessage);
|
||||
MyError Subtotal(char Print,char Display,char DiscountType,double DiscountValue,int& SlipNumber,double& Subtotal,double& TaxA,double& TaxB,double& TaxC); ///<Подитог
|
||||
|
||||
MyError PrintFreeTextInFiscalInv(std::string Text,char Bold,char Italic,char Height,char Underline,char Alignment);
|
||||
|
||||
MyError Total(int PaidMode,double Amount,int& MyErrorStatus,double& NewAmount,int& SlipNumber); ///<Оплата (итог)
|
||||
MyError CloseFiscalInv(int& FiscalSignType, std::string& FiscalSign, int& ShiftNumber, int& SlipNumber, int& DocNumber); ///<Закрытие фискального чека
|
||||
MyError RegisterArticleSale(int PluCode, double Quantity, double Price, char DiscountType, double DiscountValue, std::string MarkStamp, int& SlipNumber, int& DocNumber); ///<Регистрация продажи запрограммированного товара
|
||||
MyError CancelFiscalInv(int& ShiftNumber, int& DocNumber); ///<Аннуляция (сторно) фискального чека
|
||||
MyError SetDateTime(std::string DateTime); ///<Установка даты и времени
|
||||
MyError GetDateTime(std::string &DateTime); ///<Поолучение даты и времени
|
||||
MyError ShowDateTime(std::string &DateTime); ///<Show current date and time
|
||||
MyError LatestFiscalRecord(char Type, int& nRep, double& SumA,double& SumB,double& SumC,std::string& Date); ///<Информация о последней фискальной записи
|
||||
MyError AmountOfSavingsPerDay(char Type, int& NRep, double& SumA,double& SumB,double& SumC); ///<Информация о налогах за текущий день
|
||||
MyError TurnoversOfSavingsPerDay(int& nRep, double& DailySales, double& DailyRetOfSales, double& DailyPurchases, double& DailyRetOfPurchases, double& NonNullSales, double& NonNullRetOfSales, double& NonNullPurchases, double& NonNullRetOfPurchases);
|
||||
MyError FreeFieldsByFiscalMemory(int& ReportsLeft); //<Количество логических мест для фискальных записей
|
||||
MyError PrintReport(char Type, int& nRep, double& TotA, double& TotB, double& TotC, double& TotNegA, double& TotNegB, double& TotNegC, double& TotPuA, double& TotPuB, double& TotPuC, double& TotPuNegA, double& TotPuNegB, double& TotPuNegC); ////Печатать отчёт
|
||||
MyError ParishOrConsumption(char Type,double Amount,double& CashSum,double& CashIn,double& CashOut); ///<Служебный приход или расход
|
||||
MyError PrintDiagnostic(char InfoType); ///<Печать диагностической информации
|
||||
MyError PrintDiagnostic(); ///<Печать диагностической информации
|
||||
MyError EnablePrinting(bool val); ///< 0 - disable printout
|
||||
|
||||
MyError Fiscalization(std::string SerialNumber,std::string TAXnumber1,std::string TAXnumber2,std::string InspPssword); ///Фискализация и пререгистрация
|
||||
MyError GetStatusFP(std::string& StatusBytes);
|
||||
MyError FiscalTransactionsStatus(char& IsOpen,int& Items,double& Amount,double& Payed,int& SlipNumber,int &SlipNumberFiscal); ///<Статус фискального чека
|
||||
MyError Beep(int Hz = 0, int mSec = 0); ///<Звуковой сигнал
|
||||
MyError SetTaxRates(double TaxA,double TaxB,double TaxC,int& RemainingChanges); ///<Программирование ставок НДС
|
||||
|
||||
MyError PrintBarCode(char Type,std::string Data,int QRcodeSize); ///<Печать штрих-кода
|
||||
|
||||
MyError DateOfLastEntryByFiscalMemory(std::string& DateTime); ///<Дата последней фискальной записи
|
||||
MyError GetTradingGroupInfo(int ItemGroup,int& TotSales,double& TotSum,std::string& Name); ///<Получение информации по группам товаров
|
||||
MyError GetDepInfoInCheck(int Department,char& TaxGr,double& Price,int& RecSales,double& RecQuanSales,double& RecSumSales,int& RecReturns, double& RecQuanReturns,double& RecSumReturns,int& TotSales,double& TotQuanSales,double& TotSumSales,int& TotReturns,double& TotQuanReturns,double& TotSumReturns,std::string& Name); ///<Получение информации по отделу в текущем чеке
|
||||
MyError TestOfFiscalMemory(bool Mode, int& Records);
|
||||
MyError DiagnosticInfo(std::string& Name,std::string& FwRev,std::string& FwDate,std::string& FwTime,std::string& Checksum,std::string& Sw,std::string& DevNumber); ///<Диагностическая информация
|
||||
|
||||
MyError SetManufacturersSerialNumber(std::string Serial,std::string& Country);
|
||||
MyError PrintDivideLine(char Type); //Печать разделительной линии
|
||||
|
||||
MyError FiscalReportByDate(char Type,std::string Start,std::string End,std::string InspPssword); ///<Полный фискальный отчет за период заданный датами
|
||||
MyError FiscalReportByNumber(char Type,int Start,int End,std::string InspPssword); //Фискальный отчет по номерам Z-отчетов
|
||||
MyError SetSoftwarePassword(std::string Pwd);
|
||||
|
||||
MyError SetOperatorPassword(std::string OpCode,std::string OldPwd,std::string NewPwd); ///<Установка пароля оператора
|
||||
MyError InfoByCurrentInv(int& Type,double& SumVATA,double& SumVATB,double& SumVATC); ///<Информация о текущем чеке
|
||||
MyError OperatorReport(int FirstOper,int LastOper,char Clear); ///<Отчет по операторам
|
||||
MyError OpenCashDrawer(int MSec = 0); ///<Открытие денежного ящика
|
||||
|
||||
MyError PrgAndReadArticleI(int& Total,int& Prog,int& NameLen); ///<Информация о товаре
|
||||
MyError PrgAndReadArticleP(int PLU,char TaxGr,int Dep,int Group,char PriceType,double Price,char AddQty,double Quantity,std::string Bar1,std::string Bar2,std::string Bar3,std::string Bar4,std::string Name,int UnitCode, int MarkType); ///<Программирование товара
|
||||
MyError PrgAndReadArticleA(int PLU,double Quantity); ///<Изменение доступного количества товара
|
||||
MyError PrgAndReadArticleD(int FirstPLU,int LastPLU); ///<Удаление товара
|
||||
MyError PrgAndReadArticleR(int PLU,char& TaxGr,int& Dep,int& Group,char& PriceType,double& Price,double& Turnover,double& SoldQty,double& StockQty,std::string& Bar1,std::string& Bar2,std::string& Bar3,std::string& Bar4,std::string& Name, int& UnitCode, int& MarkType); ///<Считывание данных товара
|
||||
MyError PrgAndReadArticleF(int& PLU,char& TaxGr,int& Dep,int& Group,char& PriceType,double& Price,double& Turnover,double& SoldQty,double& StockQty,std::string& Bar1,std::string& Bar2,std::string& Bar3,std::string& Bar4,std::string& Name, int& UnitCode, int& MarkType); ///<Возврат данных первого найденного запрограммированного товара
|
||||
MyError PrgAndReadArticleL(int PLU,char& TaxGr,int& Dep,int& Group,char& PriceType,double& Price,double& Turnover,double& SoldQty,double& StockQty,std::string& Bar1,std::string& Bar2,std::string& Bar3,std::string& Bar4,std::string& Name, int& UnitCode, int& MarkType); ///<Возврат данных последнего найденного запрограммированного товара
|
||||
MyError PrgAndReadArticleN(int& PLU,char& TaxGr,int& Dep,int& Group,char& PriceType,double& Price,double& Turnover,double& SoldQty,double& StockQty,std::string& Bar1,std::string& Bar2,std::string& Bar3,std::string& Bar4,std::string& Name, int& UnitCode, int& MarkType); ///<Возврат данных следующего найденного запрограммированного товара
|
||||
MyError PrgAndReadArticleFF(int PLU,char& TaxGr,int& Dep,int& Group,char& PriceType,double& Price,double& Turnover,double& SoldQty,double& StockQty,std::string& Bar1,std::string& Bar2,std::string& Bar3,std::string& Bar4,std::string& Name, int& UnitCode, int& MarkType); ///<Возврат данных первого найденного товара имеющего обороты продаж
|
||||
MyError PrgAndReadArticleLL(int PLU,char& TaxGr,int& Dep,int& Group,char& PriceType,double& Price,double& Turnover,double& SoldQty,double& StockQty,std::string& Bar1,std::string& Bar2,std::string& Bar3,std::string& Bar4,std::string& Name, int& UnitCode, int& MarkType); ///<Возврат данных последнего найденного товара имеющего обороты продаж
|
||||
MyError PrgAndReadArticleNN(int& PLU,char& TaxGr,int& Dep,int& Group,char& PriceType,double& Price,double& Turnover,double& SoldQty,double& StockQty,std::string& Bar1,std::string& Bar2,std::string& Bar3,std::string& Bar4,std::string& Name, int& UnitCode, int& MarkType); ///<Возврат данных следующего найденного товара имеющего обороты продаж
|
||||
MyError PrgAndReadArticleX(int PLU,int& FirstPLU); ///<Поиск первого незапрограммированного товара
|
||||
MyError PrgAndReadArticleXX(int PLU,int& LastPLU); ///<Поиск последнего незапрограммированного товара
|
||||
MyError GetPLUTurnoversByZReport(char Option,int Parameters,int& PLU,std::string& Name,double& SoldQty,double& Turnover); //Get PLU turnovers by Z-report
|
||||
|
||||
MyError DailyReportByTypesOfPayment(char Type,double& Pay0,double& Pay1,double& Pay2,double& Pay3); ///<(110)Дневной отчет по типам оплаты
|
||||
MyError ReportByArticle(char Type,int FirstPLU,int LastPLU); //(111)Отчет по артикулам
|
||||
MyError ReportByOperators(int Operator,int& Receipts,double& Total,int& nDiscount,double& Discount,int& nSurcharge,double& Surcharge,int& nVoid,double& Void,int& nAllVoided,double& AllVoided,int& nCancelled,double& Cancelled,int& RetReceipts,double& RetTotal,int& RetnDiscount,double& RetDiscount,int& RetnSurcharge,double& RetSurcharge,int& RetnVoid,double& RetVoid,int& RetnAllVoided,double& RetAllVoided,int& RetnCancelled,double& RetCancelled,int& nCashIn,double& CashIn,int& nCashOut,double& CashOut); ///<Отчет по операторам
|
||||
MyError ReportByOperators0(long Operator,double& Pay0,double& Pay1,double& Pay2,double& Pay3); ///<Payments in sales receipts
|
||||
MyError ReportByOperators1(long Operator,double& Pay0,double& Pay1,double& Pay2,double& Pay3); ///<Payments in refund receipts
|
||||
MyError ReportByOperators2(long Operator,long& Num,double& Sum); ///<Number and sum of sells
|
||||
MyError ReportByOperators3(long Operator,long& Num,double& Sum); ///<Number and sum of refund
|
||||
MyError ReportByOperators4(long Operator,long& qSur,double& sSur,long& qDis,double& sDis); ///<Number and sum of discounts and surcharges from sales
|
||||
MyError ReportByOperators5(long Operator,long& qSur,double& sSur,long& qDis,double& sDis); ///<Number and sum of discounts and surcharges from refund
|
||||
MyError ReportByOperators6(long Operator,long& qVoid,double& sVoid,long& qAnul,double& sAnul,long& qCancel,double& sCancel); ///<Number and sum of corrections and annulled receipts from sales
|
||||
MyError ReportByOperators7(long Operator,long& qVoid,double& sVoid,long& qAnul,double& sAnul,long& qCancel,double& sCancel); ///<Number and sum of corrections and annulled receipts from refund
|
||||
MyError ReportByOperators8(long Operator,long& qCashIn,double& sCashIn,long& qCashOut,double& sCashOut); ///<Number and sum of cash in and cash out operations
|
||||
|
||||
MyError GetSales(int Znumber);
|
||||
MyError GetSalesPLU(int PLU, char& TaxCode,int& Dep,int& Group, char& PriceType,double& Price,double& Turnover,double& SoldQty,double& StockQty, std::string& Bar1, std::string& Bar2, std::string& Bar3, std::string& Bar4, std::string& Name,int& UnitCode,int& MarkType);
|
||||
MyError GetSalesNextPLU(int& PLU, char& TaxCode, int& Dep, int& Group, char& PriceType, double& Price, double& Turnover, double& SoldQty, double& StockQty, std::string& Bar1, std::string& Bar2, std::string& Bar3, std::string& Bar4, std::string& Name, int& UnitCode, int& MarkType);
|
||||
|
||||
MyError ReadFiscalMemoryBlock(int Address,int nBytes,std::string& Data); ///<Считывание ФП
|
||||
|
||||
MyError ReadDeviceInfo1(std::string& SerialNumber, std::string& REGnumber, std::string& TAXnumber, std::string& HeaderLine1, std::string& HeaderLine2, std::string& HeaderLine3, std::string& HeaderLine4); ///< Информация об устройстве
|
||||
MyError ReadDeviceInfo2(std::string& APN,std::string& APNUserName,std::string& APNPassword,std::string& ServerAddress,std::string& ServerPort, std::string& ServerVersion); ///< Информация об устройстве
|
||||
MyError ReadDeviceInfo3(int& RecSales,std::string& DateSales,int& RecReturns,std::string& DateReturns,int& Znumber,std::string& Zdate); ///< Информация об устройстве
|
||||
|
||||
MyError GetDocInEJByDate(std::string StartDate,std::string EndDate,char DocType,std::string& DateFirst,std::string& DateLast,int& NumFirst,int& NumLast);///< Поиск документа в ЭЖ по дате
|
||||
|
||||
MyError GetInfoFromEJ0(int DocNum,char DocType,int& GlobalNum,int& DocNumber,int& RecNumber,std::string& Date,char& DocTypeRez,int& Znumber); ///< Информация из ЭЖ. Установка документа для чтения
|
||||
MyError GetInfoFromEJ1(std::string& TextData); ///< Информация из ЭЖ. Чтение одной строки текста. Для считывания всего документа необходимо выполнить команду несколько раз
|
||||
MyError GetInfoFromEJ2(std::string& Data); ///< Информация из ЭЖ. Чтение данных. Для считывания всего документа необходимо выполнить команду несколько раз
|
||||
MyError GetInfoFromEJ3(int DocNum,char DocType); ///< Информация из ЭЖ. Печать документа
|
||||
|
||||
MyError SetServiceParam(std::string Type, std::string Value, std::string& IsUnblocked); ///< Установка сервисных параметров
|
||||
MyError Programming(std::string Name,std::string Index,std::string& Value); ///< Программирование
|
||||
|
||||
MyError UploadImage(std::string Data,std::string& crc); //Загрузка фотографии в принтер
|
||||
MyError PowerOff();
|
||||
MyError Restart();
|
||||
MyError UploadStamp(std::string Data,std::string& crc); //Загрузить изображение для штампа
|
||||
|
||||
MyError CheckUpdate();
|
||||
MyError PrintStamp(char Type,std::string Name);
|
||||
|
||||
};
|
||||
|
||||
#endif /* DP25_H_ */
|
||||
192
devices/Printers/ESC_POS/ESC_POS_Printer.cpp
Normal file
192
devices/Printers/ESC_POS/ESC_POS_Printer.cpp
Normal file
@ -0,0 +1,192 @@
|
||||
//Reference: https://reference.epson-biz.com/modules/ref_escpos/index.php?content_id=72
|
||||
|
||||
#include "ESC_POS_Printer.h"
|
||||
|
||||
#if defined(_WIN32) || defined(_WINDOWS) || defined(_BORLAND) || defined(__BORLANDC__)
|
||||
#else
|
||||
#include <iostream>
|
||||
#endif
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
ESC_POS_Printer::ESC_POS_Printer()
|
||||
{
|
||||
m_hPrinter = NULL;
|
||||
m_usb = false;
|
||||
m_Serial = NULL;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
ESC_POS_Printer::~ESC_POS_Printer()
|
||||
{
|
||||
if (m_Serial != NULL)
|
||||
{
|
||||
close();
|
||||
delete m_Serial;
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool ESC_POS_Printer::openSerial(std::string ComNumber)
|
||||
{
|
||||
m_Serial->Open(ComNumber);
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool ESC_POS_Printer::openUSB(std::wstring printerName)
|
||||
{
|
||||
#if defined(_WIN32) || defined(_WINDOWS) || defined(_BORLAND) || defined(__BORLANDC__)
|
||||
bool result=true;
|
||||
if (!OpenPrinter((LPWSTR)printerName.c_str(), &m_hPrinter, NULL))
|
||||
result = false;
|
||||
m_usb = true;
|
||||
return result;
|
||||
#else
|
||||
std::string str( printerName.begin(), printerName.end() );
|
||||
return openUSB(str);
|
||||
#endif
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool ESC_POS_Printer::openUSB(std::string printerName)
|
||||
{
|
||||
#if defined(_WIN32) || defined(_WINDOWS) || defined(_BORLAND) || defined(__BORLANDC__)
|
||||
bool result=true;
|
||||
if (!OpenPrinter((LPWSTR)printerName.c_str(), &m_hPrinter, NULL))
|
||||
result = false;
|
||||
m_usb = true;
|
||||
return result;
|
||||
#else
|
||||
m_hPrinter = fopen(printerName.c_str(), "w");
|
||||
if(m_hPrinter)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool ESC_POS_Printer::Start()
|
||||
{
|
||||
#if defined(_WIN32) || defined(_WINDOWS) || defined(_BORLAND) || defined(__BORLANDC__)
|
||||
DWORD Level = 1;
|
||||
std::wstring docName = L"Print ticket";
|
||||
|
||||
DOC_INFO_1 pDocInfo;
|
||||
pDocInfo.pDocName = (LPWSTR)docName.c_str();
|
||||
pDocInfo.pOutputFile = NULL;
|
||||
pDocInfo.pDatatype = NULL;
|
||||
|
||||
bool result = true;
|
||||
StartDocPrinter(m_hPrinter, Level, (BYTE*)&pDocInfo);
|
||||
if (!StartPagePrinter(m_hPrinter))
|
||||
result = false;
|
||||
return result;
|
||||
#else
|
||||
return true;
|
||||
#endif
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool ESC_POS_Printer::End()
|
||||
{
|
||||
#if defined(_WIN32) || defined(_WINDOWS) || defined(_BORLAND) || defined(__BORLANDC__)
|
||||
bool result = true;
|
||||
if (!EndPagePrinter(m_hPrinter))
|
||||
result = false;
|
||||
if (!EndDocPrinter(m_hPrinter))
|
||||
result = false;
|
||||
return result;
|
||||
#else
|
||||
return true;
|
||||
#endif
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool ESC_POS_Printer::close()
|
||||
{
|
||||
if (m_Serial != NULL)
|
||||
{
|
||||
m_Serial->Close();
|
||||
}
|
||||
if (m_hPrinter != NULL)
|
||||
{
|
||||
#if defined(_WIN32) || defined(_WINDOWS) || defined(_BORLAND) || defined(__BORLANDC__)
|
||||
if (!EndPagePrinter(m_hPrinter))
|
||||
return false;
|
||||
if (!EndDocPrinter(m_hPrinter))
|
||||
return false;
|
||||
ClosePrinter(m_hPrinter);
|
||||
#else
|
||||
if(fclose(m_hPrinter)==0)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//width - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 8)
|
||||
//height - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//bitArray - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ESC_POS_Printer::printImage(int width, int height, unsigned char* bitArray)
|
||||
{
|
||||
#if defined(_WIN32) || defined(_WINDOWS) || defined(_BORLAND) || defined(__BORLANDC__)
|
||||
DWORD Written = 0;
|
||||
int arLen = (width * height) / 8;
|
||||
|
||||
char bCmdPrint[] = { 0x1d, 0x76, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00 };
|
||||
int w = width;
|
||||
int h = height;
|
||||
bCmdPrint[4] = (((w / 8) >> 0) & 0xFF); //xL <20> xL and xH specify the horizontal direction data count for one bit image (xL + xH x 256) in bytes
|
||||
bCmdPrint[5] = (((w / 8) >> 8) & 0xFF); //xH
|
||||
bCmdPrint[6] = ((h >> 0) & 0xFF); //yL <20> yL and yH specify the vertical direction data count for one bit image (yL + yH x 256) in dots.
|
||||
bCmdPrint[7] = ((h >> 8) & 0xFF); //yH
|
||||
WritePrinter(m_hPrinter, bCmdPrint, sizeof(bCmdPrint), &Written);
|
||||
WritePrinter(m_hPrinter, bitArray, arLen, &Written);
|
||||
|
||||
return arLen == Written;
|
||||
#else
|
||||
int Written = 0;
|
||||
int arLen = (width * height) / 8;
|
||||
|
||||
char bCmdPrint[] = { 0x1d, 0x76, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00 };
|
||||
int w = width;
|
||||
int h = height;
|
||||
bCmdPrint[4] = (((w / 8) >> 0) & 0xFF); //xL <20> xL and xH specify the horizontal direction data count for one bit image (xL + xH x 256) in bytes
|
||||
bCmdPrint[5] = (((w / 8) >> 8) & 0xFF); //xH
|
||||
bCmdPrint[6] = ((h >> 0) & 0xFF); //yL <20> yL and yH specify the vertical direction data count for one bit image (yL + yH x 256) in dots.
|
||||
bCmdPrint[7] = ((h >> 8) & 0xFF); //yH
|
||||
|
||||
Written = fwrite(bCmdPrint, sizeof(char), sizeof(bCmdPrint), m_hPrinter);
|
||||
Written = fwrite(bitArray, sizeof(char), arLen, m_hPrinter);
|
||||
|
||||
return arLen == Written;
|
||||
#endif
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool ESC_POS_Printer::Feed()
|
||||
{
|
||||
char bCmdFeed[] = { 27, 100, 5 };
|
||||
|
||||
#if defined(_WIN32) || defined(_WINDOWS) || defined(_BORLAND) || defined(__BORLANDC__)
|
||||
DWORD Written = 0;
|
||||
WritePrinter(m_hPrinter, bCmdFeed, sizeof(bCmdFeed), &Written);
|
||||
return Written == 3;
|
||||
#else
|
||||
int Written = 0;
|
||||
Written = fwrite(bCmdFeed, sizeof(char), sizeof(bCmdFeed), m_hPrinter);
|
||||
fflush(m_hPrinter);
|
||||
return Written == 3;
|
||||
#endif
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool ESC_POS_Printer::Cut()
|
||||
{
|
||||
char bCmdCut[] = { 0x1B,0x6D };
|
||||
#if defined(_WIN32) || defined(_WINDOWS) || defined(_BORLAND) || defined(__BORLANDC__)
|
||||
DWORD Written = 0;
|
||||
WritePrinter(m_hPrinter, bCmdCut, sizeof(bCmdCut), &Written);
|
||||
return Written == 2;
|
||||
#else
|
||||
int Written = 0;
|
||||
fwrite(bCmdCut, sizeof(char),sizeof(bCmdCut), m_hPrinter);
|
||||
fflush(m_hPrinter);
|
||||
return Written == 2;
|
||||
#endif
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
41
devices/Printers/ESC_POS/ESC_POS_Printer.h
Normal file
41
devices/Printers/ESC_POS/ESC_POS_Printer.h
Normal file
@ -0,0 +1,41 @@
|
||||
|
||||
#ifndef ESC_POS_PRINTER_H
|
||||
#define ESC_POS_PRINTER_H
|
||||
|
||||
#include <string>
|
||||
#if defined(_WIN32) || defined(_WINDOWS) || defined(_BORLAND) || defined(__BORLANDC__)
|
||||
#include <windows.h>
|
||||
#else
|
||||
|
||||
#endif
|
||||
|
||||
#include "ComPort.h"
|
||||
|
||||
class ESC_POS_Printer {
|
||||
public:
|
||||
|
||||
#if defined(_WIN32) || defined(_WINDOWS) || defined(_BORLAND) || defined(__BORLANDC__)
|
||||
HANDLE m_hPrinter;
|
||||
#else
|
||||
FILE* m_hPrinter;
|
||||
#endif
|
||||
ComPort* m_Serial;
|
||||
|
||||
ESC_POS_Printer();
|
||||
~ESC_POS_Printer();
|
||||
|
||||
bool openSerial(std::string ComNumber);
|
||||
bool openUSB(std::wstring printerName);
|
||||
bool openUSB(std::string printerName);
|
||||
bool close();
|
||||
|
||||
bool Start();
|
||||
bool printImage(int width, int height, unsigned char* bitArray);
|
||||
bool Feed(); //Прокрутить бумагу
|
||||
bool Cut(); //Отрезать бумагу
|
||||
bool End();
|
||||
private:
|
||||
bool m_usb;
|
||||
};
|
||||
|
||||
#endif
|
||||
536
devices/Printers/ESC_POS/Документация/ESC_POS_Printer.cpp
Normal file
536
devices/Printers/ESC_POS/Документация/ESC_POS_Printer.cpp
Normal file
@ -0,0 +1,536 @@
|
||||
/*------------------------------------------------------------------------
|
||||
An Arduino library for the USB Thermal Printer using Epson ESC POS commands
|
||||
|
||||
These printers use USB to communicate.
|
||||
|
||||
This library is based on the Adafruit Thermal Printer Library.
|
||||
|
||||
Adafruit invests time and resources providing this open source code.
|
||||
Please support USB and open-source hardware by purchasing products
|
||||
from Adafruit!
|
||||
|
||||
Written by Limor Fried/Ladyada for Adafruit Industries, with
|
||||
contributions from the open source community. Originally based on
|
||||
Thermal library from bildr.org
|
||||
MIT license, all text above must be included in any redistribution.
|
||||
|
||||
Reference: https://reference.epson-biz.com/modules/ref_escpos/index.php?content_id=72
|
||||
------------------------------------------------------------------------*/
|
||||
|
||||
#include "ESC_POS_Printer.h"
|
||||
|
||||
// ASCII codes used by some of the printer config commands:
|
||||
#define ASCII_TAB '\t' // Horizontal tab
|
||||
#define ASCII_LF '\n' // Line feed
|
||||
#define ASCII_FF '\f' // Form feed
|
||||
#define ASCII_CR '\r' // Carriage return
|
||||
#define ASCII_EOT 4 // End of Transmission
|
||||
#define ASCII_DLE 16 // Data Link Escape
|
||||
#define ASCII_DC2 18 // Device control 2
|
||||
#define ASCII_ESC 27 // Escape
|
||||
#define ASCII_FS 28 // Field separator
|
||||
#define ASCII_GS 29 // Group separator
|
||||
|
||||
// Constructor
|
||||
ESC_POS_Printer::ESC_POS_Printer(Stream *s) :
|
||||
stream(s) {
|
||||
}
|
||||
|
||||
// The next four helper methods are used when issuing configuration
|
||||
// commands, printing bitmaps or barcodes, etc. Not when printing text.
|
||||
|
||||
void ESC_POS_Printer::writeBytes(uint8_t a) {
|
||||
stream->write(a);
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::writeBytes(uint8_t a, uint8_t b) {
|
||||
uint8_t cmd[2] = {a, b};
|
||||
stream->write(cmd, sizeof(cmd));
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::writeBytes(uint8_t a, uint8_t b, uint8_t c) {
|
||||
uint8_t cmd[3] = {a, b, c};
|
||||
stream->write(cmd, sizeof(cmd));
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::writeBytes(uint8_t a, uint8_t b, uint8_t c, uint8_t d) {
|
||||
uint8_t cmd[4] = {a, b, c, d};
|
||||
stream->write(cmd, sizeof(cmd));
|
||||
}
|
||||
|
||||
// The underlying method for all high-level printing (e.g. println()).
|
||||
// The inherited Print class handles the rest!
|
||||
size_t ESC_POS_Printer::write(uint8_t c) {
|
||||
|
||||
if(c != 0x13) { // Strip carriage returns
|
||||
stream->write(c);
|
||||
if((c == '\n') || (column == maxColumn)) { // If newline or wrap
|
||||
column = 0;
|
||||
c = '\n'; // Treat wrap as newline on next pass
|
||||
} else {
|
||||
column++;
|
||||
}
|
||||
prevByte = c;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::begin() {
|
||||
|
||||
// The printer can't start receiving data immediately upon power up --
|
||||
// it needs a moment to cold boot and initialize. Allow at least 1/2
|
||||
// sec of uptime before printer can receive data.
|
||||
|
||||
wake();
|
||||
reset();
|
||||
}
|
||||
|
||||
// Reset printer to default state.
|
||||
void ESC_POS_Printer::reset() {
|
||||
writeBytes(ASCII_ESC, '@'); // Init command
|
||||
prevByte = '\n'; // Treat as if prior line is blank
|
||||
column = 0;
|
||||
maxColumn = 32;
|
||||
charHeight = 24;
|
||||
lineSpacing = 6;
|
||||
barcodeHeight = 50;
|
||||
}
|
||||
|
||||
// Reset text formatting parameters.
|
||||
void ESC_POS_Printer::setDefault(){
|
||||
online();
|
||||
justify('L');
|
||||
inverseOff();
|
||||
doubleHeightOff();
|
||||
setLineHeight(30);
|
||||
boldOff();
|
||||
underlineOff();
|
||||
setBarcodeHeight(50);
|
||||
setSize('s');
|
||||
setCharset();
|
||||
setCodePage();
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::test(){
|
||||
println(F("Hello World!"));
|
||||
feed(2);
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::testPage() {
|
||||
char commandTest[] = {ASCII_GS, '(', 'A', 2, 0, 0, 3};
|
||||
stream->write(commandTest, sizeof(commandTest));
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::setBarcodeHeight(uint8_t val) { // Default is 50
|
||||
if(val < 1) val = 1;
|
||||
barcodeHeight = val;
|
||||
// This does not work on my printer. It prints a '2' = 0x32 = 50
|
||||
//writeBytes(ASCII_GS, 'h', val);
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::printBarcode(const char *text, uint8_t type) {
|
||||
feed(1); // Recent firmware can't print barcode w/o feed first???
|
||||
writeBytes(ASCII_GS, 'H', 2); // Print label below barcode
|
||||
writeBytes(ASCII_GS, 'w', 3); // Barcode width 3 (0.375/1.0mm thin/thick)
|
||||
writeBytes(ASCII_GS, 'k', type); // Barcode type (listed in .h file)
|
||||
// Write text including the terminating '\0'
|
||||
stream->write(text, strlen(text)+1);
|
||||
prevByte = '\n';
|
||||
}
|
||||
|
||||
// === Character commands ===
|
||||
|
||||
#define INVERSE_MASK (1 << 1) // Not in 2.6.8 firmware (see inverseOn())
|
||||
//#define UPDOWN_MASK (1 << 2)
|
||||
//#define BOLD_MASK (1 << 3)
|
||||
#define DOUBLE_HEIGHT_MASK (1 << 4)
|
||||
#define DOUBLE_WIDTH_MASK (1 << 5)
|
||||
//#define STRIKE_MASK (1 << 6)
|
||||
#define UNDERLINE_MASK (1 << 7)
|
||||
|
||||
void ESC_POS_Printer::setPrintMode(uint8_t mask) {
|
||||
printMode |= mask;
|
||||
writePrintMode();
|
||||
charHeight = (printMode & DOUBLE_HEIGHT_MASK) ? 48 : 24;
|
||||
maxColumn = (printMode & DOUBLE_WIDTH_MASK ) ? 16 : 32;
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::unsetPrintMode(uint8_t mask) {
|
||||
printMode &= ~mask;
|
||||
writePrintMode();
|
||||
charHeight = (printMode & DOUBLE_HEIGHT_MASK) ? 48 : 24;
|
||||
maxColumn = (printMode & DOUBLE_WIDTH_MASK ) ? 16 : 32;
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::writePrintMode() {
|
||||
writeBytes(ASCII_ESC, '!', printMode);
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::normal() {
|
||||
printMode = 0;
|
||||
writePrintMode();
|
||||
upsideDownOff();
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::inverseOn(){
|
||||
writeBytes(ASCII_GS, 'B', 1);
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::inverseOff(){
|
||||
writeBytes(ASCII_GS, 'B', 0);
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::upsideDownOn(){
|
||||
writeBytes(ASCII_ESC, '{', 1);
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::upsideDownOff(){
|
||||
writeBytes(ASCII_ESC, '{', 0);
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::doubleHeightOn(){
|
||||
setPrintMode(DOUBLE_HEIGHT_MASK);
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::doubleHeightOff(){
|
||||
unsetPrintMode(DOUBLE_HEIGHT_MASK);
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::doubleWidthOn(){
|
||||
setPrintMode(DOUBLE_WIDTH_MASK);
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::doubleWidthOff(){
|
||||
unsetPrintMode(DOUBLE_WIDTH_MASK);
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::strikeOn(){
|
||||
writeBytes(ASCII_ESC, 'G', 1);
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::strikeOff(){
|
||||
writeBytes(ASCII_ESC, 'G', 0);
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::boldOn(){
|
||||
writeBytes(ASCII_ESC, 'E', 1);
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::boldOff(){
|
||||
writeBytes(ASCII_ESC, 'E', 0);
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::justify(char value){
|
||||
uint8_t pos = 0;
|
||||
|
||||
switch(toupper(value)) {
|
||||
case 'L': pos = 0; break;
|
||||
case 'C': pos = 1; break;
|
||||
case 'R': pos = 2; break;
|
||||
}
|
||||
|
||||
writeBytes(ASCII_ESC, 'a', pos);
|
||||
}
|
||||
|
||||
// Feeds by the specified number of lines
|
||||
void ESC_POS_Printer::feed(uint8_t x) {
|
||||
writeBytes(ASCII_ESC, 'd', x);
|
||||
prevByte = '\n';
|
||||
column = 0;
|
||||
}
|
||||
|
||||
// Feeds by the specified number of individual pixel rows
|
||||
void ESC_POS_Printer::feedRows(uint8_t rows) {
|
||||
writeBytes(ASCII_ESC, 'J', rows);
|
||||
prevByte = '\n';
|
||||
column = 0;
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::flush() {
|
||||
writeBytes(ASCII_FF);
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::setSize(char value){
|
||||
uint8_t size;
|
||||
|
||||
switch(toupper(value)) {
|
||||
default: // Small: standard width and height
|
||||
size = 0x00;
|
||||
charHeight = 24;
|
||||
maxColumn = 32;
|
||||
break;
|
||||
case 'M': // Medium: double height
|
||||
size = 0x01;
|
||||
charHeight = 48;
|
||||
maxColumn = 32;
|
||||
break;
|
||||
case 'L': // Large: double width and height
|
||||
size = 0x11;
|
||||
charHeight = 48;
|
||||
maxColumn = 64;
|
||||
break;
|
||||
}
|
||||
|
||||
writeBytes(ASCII_GS, '!', size);
|
||||
prevByte = '\n'; // Setting the size adds a linefeed
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::setSize(uint8_t height, uint8_t width) {
|
||||
uint8_t size = ((width & 0x7) << 3) | (height & 0x7);
|
||||
|
||||
writeBytes(ASCII_GS, '!', size);
|
||||
prevByte = '\n'; // Setting the size adds a linefeed
|
||||
}
|
||||
|
||||
// Underlines of different weights can be produced:
|
||||
// 0 - no underline
|
||||
// 1 - normal underline
|
||||
// 2 - thick underline
|
||||
void ESC_POS_Printer::underlineOn(uint8_t weight) {
|
||||
if(weight > 2) weight = 2;
|
||||
writeBytes(ASCII_ESC, '-', weight);
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::underlineOff() {
|
||||
writeBytes(ASCII_ESC, '-', 0);
|
||||
}
|
||||
|
||||
// ASCII ESC * m nL nH d1...dk
|
||||
// Hex 1B 2A m nL nH d1...dk
|
||||
// Dec 27 42 m nL nH d1...dk
|
||||
// m = 0 single density vert, single horizontal
|
||||
// m = 1 single density vert, double horiz
|
||||
// m = 32 double density vert, single horizontal
|
||||
// m = 33 double density vert, double horiz
|
||||
void ESC_POS_Printer::printBitmap(
|
||||
int w, int h, const uint8_t *bitmap, int density) {
|
||||
uint8_t band_height;
|
||||
uint8_t bitmap_command[] = { 0x1b, '*', 0, 0, 0 };
|
||||
size_t w_bytes = w;
|
||||
|
||||
switch (density) {
|
||||
default:
|
||||
density = 1;
|
||||
/* fall through */
|
||||
case 1:
|
||||
bitmap_command[2] = 0; // m = single density
|
||||
band_height = 8;
|
||||
break;
|
||||
case 2:
|
||||
bitmap_command[2] = 33; // m = double density
|
||||
band_height = 24;
|
||||
w_bytes *= 3;
|
||||
break;
|
||||
}
|
||||
bitmap_command[3] = w & 0xFF; // nL = width LS byte
|
||||
bitmap_command[4] = (w >> 8) & 0xFF;// nH = width MS byte
|
||||
|
||||
// Line spacing = 16 dots
|
||||
stream->write("\x1b\x33\x10\x1bU\x01"); // Unidirectional print mode on
|
||||
for (int row = 0; row < h; row += band_height) {
|
||||
stream->write(bitmap_command, sizeof(bitmap_command));
|
||||
stream->write(bitmap, w_bytes);
|
||||
stream->write('\n');
|
||||
bitmap += w_bytes;
|
||||
}
|
||||
stream->write("\x1b\x32\x1bU"); // Default line spacing
|
||||
stream->write((uint8_t)0); // Unidirectional print mode off
|
||||
prevByte = '\n';
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::printBitmap_P(
|
||||
int w, int h, const uint8_t *bitmap, int density) {
|
||||
uint8_t band_height;
|
||||
uint8_t bitmap_command[] = { 0x1b, '*', 0, 0, 0 };
|
||||
size_t w_bytes = w;
|
||||
uint8_t buf[64];
|
||||
PGM_P p = reinterpret_cast<PGM_P>(bitmap);
|
||||
|
||||
switch (density) {
|
||||
default:
|
||||
density = 1;
|
||||
/* fall through */
|
||||
case 1:
|
||||
bitmap_command[2] = 0; // m = single density
|
||||
band_height = 8;
|
||||
break;
|
||||
case 2:
|
||||
bitmap_command[2] = 33; // m = double density
|
||||
band_height = 24;
|
||||
w_bytes *= 3;
|
||||
break;
|
||||
}
|
||||
bitmap_command[3] = w & 0xFF; // nL = width LS byte
|
||||
bitmap_command[4] = (w >> 8) & 0xFF;// nH = width MS byte
|
||||
|
||||
// Line spacing = 16 dots
|
||||
stream->write("\x1b\x33\x10\x1bU\x01"); // Unidirectional print mode on
|
||||
for (int row = 0; row < h; row += band_height) {
|
||||
memcpy(buf, bitmap_command, sizeof(bitmap_command));
|
||||
size_t len = sizeof(bitmap_command);
|
||||
size_t outlen;
|
||||
for (size_t col = 0; col < w_bytes; col += outlen) {
|
||||
outlen = min(sizeof(buf)-len, w_bytes - col);
|
||||
memcpy_P(buf+len, p, outlen);
|
||||
len += outlen;
|
||||
p += outlen;
|
||||
stream->write(buf, len);
|
||||
len = 0;
|
||||
}
|
||||
stream->write('\n');
|
||||
}
|
||||
// The count correctly includes the trailing '\0'!
|
||||
stream->write("\x1b\x32\x1bU", 5); // Default line spacing,
|
||||
// Unidirectional print mode off
|
||||
prevByte = '\n';
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::printBitmap(
|
||||
int w, int h, const uint8_t *bitmap, bool fromProgMem) {
|
||||
int rowBytes, rowBytesClipped, rowStart, chunkHeight, chunkHeightLimit,
|
||||
x, y, i;
|
||||
|
||||
rowBytes = (w + 7) / 8; // Round up to next byte boundary
|
||||
rowBytesClipped = (rowBytes >= 48) ? 48 : rowBytes; // 384 pixels max width
|
||||
|
||||
chunkHeightLimit = 255; // Buffer doesn't matter, handshake!
|
||||
|
||||
for(i=rowStart=0; rowStart < h; rowStart += chunkHeightLimit) {
|
||||
// Issue up to chunkHeightLimit rows at a time:
|
||||
chunkHeight = h - rowStart;
|
||||
if(chunkHeight > chunkHeightLimit) chunkHeight = chunkHeightLimit;
|
||||
|
||||
writeBytes(ASCII_DC2, '*', chunkHeight, rowBytesClipped);
|
||||
|
||||
for(y=0; y < chunkHeight; y++) {
|
||||
for(x=0; x < rowBytesClipped; x++, i++) {
|
||||
stream->write(fromProgMem ? pgm_read_byte(bitmap + i) : *(bitmap+i));
|
||||
}
|
||||
i += rowBytes - rowBytesClipped;
|
||||
}
|
||||
}
|
||||
prevByte = '\n';
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::printBitmap(int w, int h, Stream *fromStream) {
|
||||
int rowBytes, rowBytesClipped, rowStart, chunkHeight, chunkHeightLimit,
|
||||
x, y, i, c;
|
||||
|
||||
rowBytes = (w + 7) / 8; // Round up to next byte boundary
|
||||
rowBytesClipped = (rowBytes >= 48) ? 48 : rowBytes; // 384 pixels max width
|
||||
|
||||
// Est. max rows to write at once, assuming 256 byte printer buffer.
|
||||
chunkHeightLimit = 255; // Buffer doesn't matter, handshake!
|
||||
|
||||
for(rowStart=0; rowStart < h; rowStart += chunkHeightLimit) {
|
||||
// Issue up to chunkHeightLimit rows at a time:
|
||||
chunkHeight = h - rowStart;
|
||||
if(chunkHeight > chunkHeightLimit) chunkHeight = chunkHeightLimit;
|
||||
|
||||
writeBytes(ASCII_DC2, '*', chunkHeight, rowBytesClipped);
|
||||
|
||||
for(y=0; y < chunkHeight; y++) {
|
||||
for(x=0; x < rowBytesClipped; x++) {
|
||||
while((c = fromStream->read()) < 0);
|
||||
stream->write((uint8_t)c);
|
||||
}
|
||||
for(i = rowBytes - rowBytesClipped; i>0; i--) {
|
||||
while((c = fromStream->read()) < 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
prevByte = '\n';
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::printBitmap(Stream *fromStream) {
|
||||
uint8_t tmp;
|
||||
uint16_t width, height;
|
||||
|
||||
tmp = fromStream->read();
|
||||
width = (fromStream->read() << 8) + tmp;
|
||||
|
||||
tmp = fromStream->read();
|
||||
height = (fromStream->read() << 8) + tmp;
|
||||
|
||||
printBitmap(width, height, fromStream);
|
||||
}
|
||||
|
||||
// Take the printer offline. Print commands sent after this will be
|
||||
// ignored until 'online' is called.
|
||||
void ESC_POS_Printer::offline(){
|
||||
writeBytes(ASCII_ESC, '=', 0);
|
||||
}
|
||||
|
||||
// Take the printer back online. Subsequent print commands will be obeyed.
|
||||
void ESC_POS_Printer::online(){
|
||||
writeBytes(ASCII_ESC, '=', 1);
|
||||
}
|
||||
|
||||
// Put the printer into a low-energy state immediately.
|
||||
void ESC_POS_Printer::sleep() {
|
||||
sleepAfter(1); // Can't be 0, that means 'don't sleep'
|
||||
}
|
||||
|
||||
// Put the printer into a low-energy state after the given number
|
||||
// of seconds.
|
||||
void ESC_POS_Printer::sleepAfter(uint16_t seconds) {
|
||||
writeBytes(ASCII_ESC, '8', seconds, seconds >> 8);
|
||||
}
|
||||
|
||||
// Wake the printer from a low-energy state.
|
||||
void ESC_POS_Printer::wake() {
|
||||
}
|
||||
|
||||
// Check the status of the paper using the printer's self reporting
|
||||
// ability. Returns true for paper, false for no paper.
|
||||
// Might not work on all printers!
|
||||
bool ESC_POS_Printer::hasPaper() {
|
||||
// writeBytes(ASCII_DLE, ASCII_EOT, 4);
|
||||
writeBytes(ASCII_GS, 'r', 1);
|
||||
// writeBytes(ASCII_ESC, 'v');
|
||||
|
||||
int status = 0;
|
||||
for(uint8_t i=0; i<10; i++) {
|
||||
if(stream->available()) {
|
||||
status = stream->read();
|
||||
break;
|
||||
}
|
||||
delay(100);
|
||||
}
|
||||
|
||||
return !(status & 0b00001100);
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::setLineHeight(int val) {
|
||||
if(val < 24) val = 24;
|
||||
lineSpacing = val - 24;
|
||||
|
||||
// The printer doesn't take into account the current text height
|
||||
// when setting line height, making this more akin to inter-line
|
||||
// spacing. Default line spacing is 30 (char height of 24, line
|
||||
// spacing of 6).
|
||||
writeBytes(ASCII_ESC, '3', val);
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::setMaxChunkHeight(int val) {
|
||||
}
|
||||
|
||||
// Alters some chars in ASCII 0x23-0x7E range; see datasheet
|
||||
void ESC_POS_Printer::setCharset(uint8_t val) {
|
||||
writeBytes(ASCII_ESC, 'R', val);
|
||||
}
|
||||
|
||||
// Selects alt symbols for 'upper' ASCII values 0x80-0xFF
|
||||
void ESC_POS_Printer::setCodePage(uint8_t val) {
|
||||
writeBytes(ASCII_ESC, 't', val);
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::tab() {
|
||||
writeBytes(ASCII_TAB);
|
||||
column = (column + 4) & 0b11111100;
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::setCharSpacing(int spacing) {
|
||||
writeBytes(ASCII_ESC, ' ', spacing);
|
||||
}
|
||||
198
devices/Printers/ESC_POS/Документация/ESC_POS_Printer.h
Normal file
198
devices/Printers/ESC_POS/Документация/ESC_POS_Printer.h
Normal file
@ -0,0 +1,198 @@
|
||||
/*------------------------------------------------------------------------
|
||||
An Arduino library for the USB Thermal Printer using Epson ESC POS commands
|
||||
|
||||
These printers use USB to communicate.
|
||||
|
||||
This library is based on the Adafruit Thermal Printer Library.
|
||||
|
||||
Adafruit invests time and resources providing this open source code.
|
||||
Please support USB and open-source hardware by purchasing products
|
||||
from Adafruit!
|
||||
|
||||
Written by Limor Fried/Ladyada for Adafruit Industries, with
|
||||
contributions from the open source community. Originally based on
|
||||
Thermal library from bildr.org
|
||||
MIT license, all text above must be included in any redistribution.
|
||||
------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef ESC_POS_PRINTER_H
|
||||
#define ESC_POS_PRINTER_H
|
||||
|
||||
#include "Arduino.h"
|
||||
|
||||
// Barcode types and charsets
|
||||
#define UPC_A 65
|
||||
#define UPC_E 66
|
||||
#define EAN13 67
|
||||
#define EAN8 68
|
||||
#define CODE39 69
|
||||
#define ITF 70
|
||||
#define CODABAR 71
|
||||
#define CODE93 72
|
||||
#define CODE128 73
|
||||
#define GS1_128 74
|
||||
#define GS1_DATABAR_OMNI 75
|
||||
#define GS1_DATABAR_TRUNC 76
|
||||
#define GS1_DATABAR_LIMTD 77
|
||||
#define GS1_DATABAR_EXPAN 78
|
||||
|
||||
#define CHARSET_USA 0
|
||||
#define CHARSET_FRANCE 1
|
||||
#define CHARSET_GERMANY 2
|
||||
#define CHARSET_UK 3
|
||||
#define CHARSET_DENMARK1 4
|
||||
#define CHARSET_SWEDEN 5
|
||||
#define CHARSET_ITALY 6
|
||||
#define CHARSET_SPAIN1 7
|
||||
#define CHARSET_JAPAN 8
|
||||
#define CHARSET_NORWAY 9
|
||||
#define CHARSET_DENMARK2 10
|
||||
#define CHARSET_SPAIN2 11
|
||||
#define CHARSET_LATINAMERICA 12
|
||||
#define CHARSET_KOREA 13
|
||||
#define CHARSET_SLOVENIA 14
|
||||
#define CHARSET_CROATIA 14
|
||||
#define CHARSET_CHINA 15
|
||||
#define CHARSET_VIETNAM 16
|
||||
#define CHARSET_ARABIA 17
|
||||
#define CHARSET_INDIA_DEVANAGARI 66
|
||||
#define CHARSET_INDIA_BENGALI 67
|
||||
#define CHARSET_INDIA_TAMIL 68
|
||||
#define CHARSET_INDIA_TELUGU 69
|
||||
#define CHARSET_INDIA_ASSAMESE 70
|
||||
#define CHARSET_INDIA_ORIYA 71
|
||||
#define CHARSET_INDIA_KANNANDA 72
|
||||
#define CHARSET_INDIA_MALAYALAM 73
|
||||
#define CHARSET_INDIA_GUJARATI 74
|
||||
#define CHARSET_INDIA_PUNJABI 75
|
||||
#define CHARSET_INDIA_MARATHI 82
|
||||
|
||||
#define CODEPAGE_CP437 0 // USA, Standard Europe
|
||||
#define CODEPAGE_KATAKANA 1
|
||||
#define CODEPAGE_CP850 2 // Multilingual
|
||||
#define CODEPAGE_CP860 3 // Portuguese
|
||||
#define CODEPAGE_CP863 4 // Canadian-French
|
||||
#define CODEPAGE_CP865 5 // Nordic
|
||||
#define CODEPAGE_WCP1251 6 // Cyrillic
|
||||
#define CODEPAGE_CP866 7 // Cyrillic #2
|
||||
#define CODEPAGE_MIK 8 // Cyrillic/Bulgarian
|
||||
#define CODEPAGE_CP755 9 // East Europe, Latvian 2
|
||||
#define CODEPAGE_IRAN 10
|
||||
#define CODEPAGE_CP862 15 // Hebrew
|
||||
#define CODEPAGE_WCP1252 16 // Latin 1
|
||||
#define CODEPAGE_WCP1253 17 // Greek
|
||||
#define CODEPAGE_CP852 18 // Latin 2
|
||||
#define CODEPAGE_CP858 19 // Multilingual Latin 1 + Euro
|
||||
#define CODEPAGE_IRAN2 20
|
||||
#define CODEPAGE_LATVIAN 21
|
||||
#define CODEPAGE_CP864 22 // Arabic
|
||||
#define CODEPAGE_ISO_8859_1 23 // West Europe
|
||||
#define CODEPAGE_CP737 24 // Greek
|
||||
#define CODEPAGE_WCP1257 25 // Baltic
|
||||
#define CODEPAGE_THAI 26
|
||||
#define CODEPAGE_CP720 27 // Arabic
|
||||
#define CODEPAGE_CP855 28
|
||||
#define CODEPAGE_CP857 29 // Turkish
|
||||
#define CODEPAGE_WCP1250 30 // Central Europe
|
||||
#define CODEPAGE_CP775 31
|
||||
#define CODEPAGE_WCP1254 32 // Turkish
|
||||
#define CODEPAGE_WCP1255 33 // Hebrew
|
||||
#define CODEPAGE_WCP1256 34 // Arabic
|
||||
#define CODEPAGE_WCP1258 35 // Vietnam
|
||||
#define CODEPAGE_ISO_8859_2 36 // Latin 2
|
||||
#define CODEPAGE_ISO_8859_3 37 // Latin 3
|
||||
#define CODEPAGE_ISO_8859_4 38 // Baltic
|
||||
#define CODEPAGE_ISO_8859_5 39 // Cyrillic
|
||||
#define CODEPAGE_ISO_8859_6 40 // Arabic
|
||||
#define CODEPAGE_ISO_8859_7 41 // Greek
|
||||
#define CODEPAGE_ISO_8859_8 42 // Hebrew
|
||||
#define CODEPAGE_ISO_8859_9 43 // Turkish
|
||||
#define CODEPAGE_ISO_8859_15 44 // Latin 3
|
||||
#define CODEPAGE_THAI2 45
|
||||
#define CODEPAGE_CP856 46
|
||||
#define CODEPAGE_CP874 47
|
||||
|
||||
class ESC_POS_Printer : public Print {
|
||||
|
||||
public:
|
||||
|
||||
// IMPORTANT: constructor syntax has changed from prior versions
|
||||
// of this library. Please see notes in the example code!
|
||||
ESC_POS_Printer(Stream *s=&Serial);
|
||||
|
||||
size_t
|
||||
write(uint8_t c);
|
||||
void
|
||||
begin(),
|
||||
boldOff(),
|
||||
boldOn(),
|
||||
doubleHeightOff(),
|
||||
doubleHeightOn(),
|
||||
doubleWidthOff(),
|
||||
doubleWidthOn(),
|
||||
feed(uint8_t x=1),
|
||||
feedRows(uint8_t),
|
||||
flush(),
|
||||
inverseOff(),
|
||||
inverseOn(),
|
||||
justify(char value),
|
||||
offline(),
|
||||
online(),
|
||||
printBarcode(const char *text, uint8_t type),
|
||||
printBitmap(int w, int h, const uint8_t *bitmap, int density=1),
|
||||
printBitmap_P(int w, int h, const uint8_t *bitmap, int density=1),
|
||||
printBitmap(int w, int h, const uint8_t *bitmap, bool fromProgMem=true),
|
||||
printBitmap(int w, int h, Stream *fromStream),
|
||||
printBitmap(Stream *fromStream),
|
||||
normal(),
|
||||
reset(),
|
||||
setBarcodeHeight(uint8_t val=50),
|
||||
setCharSpacing(int spacing=0),
|
||||
setCharset(uint8_t val=0),
|
||||
setCodePage(uint8_t val=0),
|
||||
setDefault(),
|
||||
setLineHeight(int val=30),
|
||||
setMaxChunkHeight(int val=256),
|
||||
setSize(char value),
|
||||
setSize(uint8_t height, uint8_t width),
|
||||
setTimes(unsigned long, unsigned long),
|
||||
sleep(),
|
||||
sleepAfter(uint16_t seconds),
|
||||
strikeOff(),
|
||||
strikeOn(),
|
||||
tab(),
|
||||
test(),
|
||||
testPage(),
|
||||
underlineOff(),
|
||||
underlineOn(uint8_t weight=1),
|
||||
upsideDownOff(),
|
||||
upsideDownOn(),
|
||||
wake();
|
||||
bool
|
||||
hasPaper();
|
||||
|
||||
private:
|
||||
|
||||
Stream
|
||||
*stream;
|
||||
uint8_t
|
||||
printMode,
|
||||
prevByte, // Last character issued to printer
|
||||
column, // Last horizontal column printed
|
||||
maxColumn, // Page width (output 'wraps' at this point)
|
||||
charHeight, // Height of characters, in 'dots'
|
||||
lineSpacing, // Inter-line spacing (not line height), in dots
|
||||
barcodeHeight, // Barcode height in dots, not including text
|
||||
maxChunkHeight;
|
||||
void
|
||||
writeBytes(uint8_t a),
|
||||
writeBytes(uint8_t a, uint8_t b),
|
||||
writeBytes(uint8_t a, uint8_t b, uint8_t c),
|
||||
writeBytes(uint8_t a, uint8_t b, uint8_t c, uint8_t d),
|
||||
setPrintMode(uint8_t mask),
|
||||
unsetPrintMode(uint8_t mask),
|
||||
writePrintMode();
|
||||
|
||||
};
|
||||
|
||||
#endif // ESC_POS_PRINTER_H
|
||||
16
devices/Printers/ESC_POS/Документация/constants.h
Normal file
16
devices/Printers/ESC_POS/Документация/constants.h
Normal file
@ -0,0 +1,16 @@
|
||||
#ifndef ESCPOSPRINTER_CONSTANTS_H
|
||||
#define ESCPOSPRINTER_CONSTANTS_H
|
||||
|
||||
static const char *ESCPOS_CMD_INIT = "\x1b\x40";
|
||||
static const char *ESCPOS_CMD_PRINT_RASTER_BIT_IMAGE = "\x1d\x76\x30\x00";
|
||||
static const char *ESCPOS_CMD_CUT = "\x1d\x56\x42";
|
||||
static const char *ESCPOS_CMD_FEED = "\x1b\x64";
|
||||
|
||||
// The maximum width of image the printer can accept
|
||||
static const int ESCPOS_MAX_DOT_WIDTH = 576;
|
||||
|
||||
// When printing, if the image is too long, the printer
|
||||
// will cut the images into chunks of (w x ESCPOS_CHUNK_DOT_HEIGHT)
|
||||
static const int ESCPOS_CHUNK_DOT_HEIGHT = 512;
|
||||
|
||||
#endif
|
||||
63
devices/Printers/ESC_POS/Документация/epsonPrinter.h
Normal file
63
devices/Printers/ESC_POS/Документация/epsonPrinter.h
Normal file
@ -0,0 +1,63 @@
|
||||
/*
|
||||
* epsonPrinter.h
|
||||
* epson_print
|
||||
*
|
||||
* Created by base on 08/06/11.
|
||||
* Copyright 2011 __MyCompanyName__. All rights reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
namespace epsonConstants {
|
||||
|
||||
const char CTL_LF = '\x0a'; // Print and line feed
|
||||
const char CTL_FF = '\x0c'; // Form feed
|
||||
const char CTL_CR = '\x0d'; // Carriage return
|
||||
const char CTL_HT = '\x09'; // Horizontal tab
|
||||
const char CTL_VT = '\x0b'; // Vertical tab
|
||||
// Printer hardware
|
||||
const char HW_INIT[2] = {'\x1b', '\x40'}; // Clear data in buffer and reset modes
|
||||
//const char HW_SELECT = '\x1b\x3d\x01'; // Printer select
|
||||
//const char HW_RESET = '\x1b\x3f\x0a\x00'; // Reset printer hardware
|
||||
// Cash Drawer
|
||||
const char CD_KICK_2[3] = {'\x1b', '\x70', '\x00'}; // Sends a pulse to pin 2 []
|
||||
const char CD_KICK_5[3] = {'\x1b', '\x70', '\x01'}; // Sends a pulse to pin 5 []
|
||||
// Paper
|
||||
const char PAPER_FULL_CUT[3] = {'\x1d', '\x56', '\x00'}; // Full cut paper
|
||||
const char PAPER_PART_CUT[3] = {'\x1d', '\x56', '\x01'}; // Partial cut paper
|
||||
// Text format
|
||||
const char TXT_NORMAL[3] = {'\x1b', '\x21', '\x00'}; // Normal text
|
||||
const char TXT_2HEIGHT[3] = {'\x1b', '\x21', '\x10'}; // Double height text
|
||||
const char TXT_2WIDTH[3] = {'\x1b', '\x21', '\x20'}; // Double width text
|
||||
const char TXT_UNDERL_OFF[3] = {'\x1b', '\x2d', '\x00'}; // Underline font OFF
|
||||
const char TXT_UNDERL_ON[3] = {'\x1b', '\x2d', '\x01'}; // Underline font 1-dot ON
|
||||
const char TXT_UNDERL2_ON[3] = {'\x1b', '\x2d', '\x02'}; // Underline font 2-dot ON
|
||||
const char TXT_BOLD_OFF[3] = {'\x1b', '\x45', '\x00'}; // Bold font OFF
|
||||
const char TXT_BOLD_ON[3] = { '\x1b', '\x45', '\x01'}; // Bold font ON
|
||||
const char TXT_FONT_A[3] = { '\x1b', '\x4d', '\x00'}; // Font type A
|
||||
const char TXT_FONT_B[3] = { '\x1b', '\x4d', '\x01'}; // Font type B
|
||||
const char TXT_ALIGN_LT[3] = { '\x1b', '\x61', '\x00'}; // Left justification
|
||||
const char TXT_ALIGN_CT[3] = { '\x1b', '\x61', '\x01'}; // Centering
|
||||
const char TXT_ALIGN_RT[3] = { '\x1b', '\x61', '\x02'}; // Right justification
|
||||
// Barcode format
|
||||
const char BARCODE_TXT_OFF[3] = { '\x1d', '\x48', '\x00'}; // HRI barcode chars OFF
|
||||
const char BARCODE_TXT_ABV[3] = { '\x1d', '\x48', '\x01'}; // HRI barcode chars above
|
||||
const char BARCODE_TXT_BLW[3] = { '\x1d', '\x48', '\x02'}; // HRI barcode chars below
|
||||
const char BARCODE_TXT_BTH[3] = { '\x1d', '\x48', '\x03'}; // HRI barcode chars both above and below
|
||||
const char BARCODE_FONT_A[3] = { '\x1d', '\x66', '\x00'}; // Font type A for HRI barcode chars
|
||||
const char BARCODE_FONT_B[3] = { '\x1d', '\x66', '\x01'}; // Font type B for HRI barcode chars
|
||||
const char BARCODE_HEIGHT[3] = { '\x1d', '\x68', '\x64'}; // Barcode Height [1-255]
|
||||
const char BARCODE_WIDTH[3] = { '\x1d', '\x77', '\x03'}; // Barcode Width [2-6]
|
||||
const char BARCODE_UPC_A[3] = { '\x1d', '\x6b', '\x00'}; // Barcode type UPC-A
|
||||
const char BARCODE_UPC_E[3] = { '\x1d', '\x6b', '\x01'}; // Barcode type UPC-E
|
||||
const char BARCODE_EAN13[3] = { '\x1d', '\x6b', '\x02'}; // Barcode type EAN13
|
||||
const char BARCODE_EAN8[3] = { '\x1d', '\x6b', '\x03'}; // Barcode type EAN8
|
||||
const char BARCODE_CODE39[3] = { '\x1d', '\x6b', '\x04'}; // Barcode type CODE39
|
||||
const char BARCODE_ITF[3] = { '\x1d', '\x6b', '\x05'}; // Barcode type ITF
|
||||
const char BARCODE_NW7[3] = { '\x1d', '\x6b', '\x06'}; // Barcode type NW7
|
||||
// Image format
|
||||
const char S_RASTER_N[4] = { '\x1d', '\x76', '\x30', '\x00'}; // Set raster image normal size
|
||||
const char S_RASTER_2W[4] = { '\x1d', '\x76', '\x30', '\x01'}; // Set raster image double width
|
||||
const char S_RASTER_2H[4] = { '\x1d', '\x76', '\x30', '\x02'}; // Set raster image double height
|
||||
const char S_RASTER_Q[4] = { '\x1d', '\x76', '\x30', '\x03'}; // Set raster image quadruple
|
||||
|
||||
};
|
||||
BIN
devices/Printers/ESC_POS/Документация/escpos_cm_en.pdf
Normal file
BIN
devices/Printers/ESC_POS/Документация/escpos_cm_en.pdf
Normal file
Binary file not shown.
BIN
devices/Printers/ESC_POS/Документация/escpospp-master.zip
Normal file
BIN
devices/Printers/ESC_POS/Документация/escpospp-master.zip
Normal file
Binary file not shown.
295
devices/Printers/ESC_POS/Документация/printer.c
Normal file
295
devices/Printers/ESC_POS/Документация/printer.c
Normal file
@ -0,0 +1,295 @@
|
||||
#include <assert.h>
|
||||
#include <stdlib.h>
|
||||
#include <arpa/inet.h>
|
||||
#include <sys/socket.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "serial.h"
|
||||
#include "printer.h"
|
||||
#include "error_private.h"
|
||||
#include "constants.h"
|
||||
|
||||
escpos_printer *escpos_printer_network(const char * const addr, const short port)
|
||||
{
|
||||
assert(addr != NULL);
|
||||
|
||||
int sockfd;
|
||||
escpos_printer *printer = NULL;
|
||||
|
||||
sockfd = socket(AF_INET, SOCK_STREAM, 0);
|
||||
if (sockfd < 0) {
|
||||
last_error = ESCPOS_ERROR_SOCK;
|
||||
} else {
|
||||
struct sockaddr_in dest;
|
||||
dest.sin_family = AF_INET;
|
||||
dest.sin_port = htons(port);
|
||||
|
||||
if (inet_pton(AF_INET, addr, &dest.sin_addr.s_addr) == 0) {
|
||||
last_error = ESCPOS_ERROR_INVALID_ADDR;
|
||||
} else if (connect(sockfd, (struct sockaddr*)&dest, sizeof(dest)) != 0) {
|
||||
last_error = ESCPOS_ERROR_CONNECTION_FAILED;
|
||||
} else {
|
||||
printer = (escpos_printer *)malloc(sizeof(escpos_printer));
|
||||
printer->sockfd = sockfd;
|
||||
printer->config.max_width = ESCPOS_MAX_DOT_WIDTH;
|
||||
printer->config.chunk_height = ESCPOS_CHUNK_DOT_HEIGHT;
|
||||
printer->config.is_network_printer = 1;
|
||||
}
|
||||
}
|
||||
|
||||
return printer;
|
||||
}
|
||||
|
||||
escpos_printer *escpos_printer_serial(const char * const portname, const int baudrate)
|
||||
{
|
||||
assert(portname != NULL);
|
||||
|
||||
int serialfd;
|
||||
escpos_printer *printer = NULL;
|
||||
|
||||
serialfd = open(portname, O_WRONLY | O_NOCTTY | O_SYNC);
|
||||
|
||||
if (serialfd < 0) {
|
||||
last_error = ESCPOS_ERROR_SOCK;
|
||||
} else {
|
||||
set_interface_attribs(serialfd, baudrate);
|
||||
|
||||
printer = (escpos_printer *)malloc(sizeof(escpos_printer));
|
||||
printer->sockfd = serialfd;
|
||||
printer->config.max_width = ESCPOS_MAX_DOT_WIDTH;
|
||||
printer->config.chunk_height = ESCPOS_CHUNK_DOT_HEIGHT;
|
||||
printer->config.is_network_printer = 0;
|
||||
}
|
||||
|
||||
return printer;
|
||||
}
|
||||
|
||||
int escpos_printer_config(escpos_printer *printer, const escpos_config * const config)
|
||||
{
|
||||
assert(printer != NULL);
|
||||
assert(config != NULL);
|
||||
|
||||
printer->config = *config;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void escpos_printer_destroy(escpos_printer *printer)
|
||||
{
|
||||
assert(printer != NULL);
|
||||
|
||||
close(printer->sockfd);
|
||||
free(printer);
|
||||
}
|
||||
|
||||
int escpos_printer_raw(escpos_printer *printer, const char * const message, const int len)
|
||||
{
|
||||
assert(printer != NULL);
|
||||
|
||||
int total = len;
|
||||
int sent = 0;
|
||||
int bytes = 0;
|
||||
|
||||
if (printer->config.is_network_printer) {
|
||||
// Network printer logic.
|
||||
// Make sure send() sends all data
|
||||
while (sent < total) {
|
||||
bytes = send(printer->sockfd, message, total, 0);
|
||||
if (bytes == -1) {
|
||||
last_error = ESCPOS_ERROR_SEND_FAILED;
|
||||
break;
|
||||
} else {
|
||||
sent += bytes;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// Serial printer logic.
|
||||
sent = write(printer->sockfd, message, len);
|
||||
if (sent != len) {
|
||||
last_error = ESCPOS_ERROR_SEND_FAILED;
|
||||
}
|
||||
tcdrain(printer->sockfd);
|
||||
}
|
||||
|
||||
return !(sent == total);
|
||||
}
|
||||
|
||||
int escpos_printer_cut(escpos_printer *printer, const int lines)
|
||||
{
|
||||
char buffer[4];
|
||||
strncpy(buffer, ESCPOS_CMD_CUT, 3);
|
||||
buffer[3] = lines;
|
||||
return escpos_printer_raw(printer, buffer, sizeof(buffer));
|
||||
}
|
||||
|
||||
int escpos_printer_feed(escpos_printer *printer, const int lines)
|
||||
{
|
||||
assert(lines > 0 && lines < 256);
|
||||
|
||||
char buffer[3];
|
||||
strncpy(buffer, ESCPOS_CMD_FEED, 2);
|
||||
buffer[2] = lines;
|
||||
return escpos_printer_raw(printer, buffer, sizeof(buffer));
|
||||
}
|
||||
|
||||
void set_bit(unsigned char *byte, const int i, const int bit)
|
||||
{
|
||||
assert(byte != NULL);
|
||||
assert(i >= 0 && i < 8);
|
||||
|
||||
if (bit > 0) {
|
||||
*byte |= 1 << i;
|
||||
} else {
|
||||
*byte &= ~(1 << i);
|
||||
}
|
||||
}
|
||||
|
||||
// Calculates the padding required so that the size fits in 32 bits
|
||||
void calculate_padding(const int size, int *padding_l, int *padding_r)
|
||||
{
|
||||
assert(padding_l != NULL);
|
||||
assert(padding_r != NULL);
|
||||
|
||||
if (size % 32 == 0) {
|
||||
*padding_l = 0;
|
||||
*padding_r = 0;
|
||||
} else {
|
||||
int padding = 32 - (size % 32);
|
||||
*padding_l = padding / 2;
|
||||
*padding_r = padding / 2 + (padding % 2 == 0 ? 0 : 1);
|
||||
}
|
||||
}
|
||||
|
||||
void convert_image_to_bits(unsigned char *pixel_bits,
|
||||
const unsigned char *image_data,
|
||||
const int w,
|
||||
const int h,
|
||||
int *bitmap_w,
|
||||
int *bitmap_h)
|
||||
{
|
||||
assert(pixel_bits != NULL);
|
||||
assert(image_data != NULL);
|
||||
assert(bitmap_w != NULL);
|
||||
assert(bitmap_h != NULL);
|
||||
|
||||
int padding_l, padding_r, padding_t, padding_b;
|
||||
calculate_padding(w, &padding_l, &padding_r);
|
||||
calculate_padding(h, &padding_t, &padding_b);
|
||||
|
||||
int padded_w = w + padding_l + padding_r;
|
||||
|
||||
// We only need to add the padding to the bottom for height.
|
||||
// This is because when printing long images, only the last
|
||||
// chunk will have the irregular height.
|
||||
padding_b += padding_t;
|
||||
|
||||
for (int y = 0; y < h; y++) {
|
||||
for (int x = 0; x < padded_w; x++) {
|
||||
int pi = (y * padded_w) + x;
|
||||
int curr_byte = pi / 8;
|
||||
unsigned char pixel = image_data[(y * w) + x];
|
||||
int bit = y < h ? pixel < 128 : 0;
|
||||
set_bit(&pixel_bits[curr_byte], 7 - (pi % 8), bit);
|
||||
}
|
||||
}
|
||||
|
||||
for (int y = 0; y < padding_b; y++) {
|
||||
for (int x = 0; x < padded_w; x++) {
|
||||
int pi = (h * padded_w) + (y * padded_w) + x;
|
||||
int curr_byte = pi / 8;
|
||||
set_bit(&pixel_bits[curr_byte], 7 - (pi % 8), 0);
|
||||
}
|
||||
}
|
||||
|
||||
// Outputs the bitmap width and height after padding
|
||||
*bitmap_w = w + padding_l + padding_r;
|
||||
*bitmap_h = h + padding_b;
|
||||
}
|
||||
|
||||
int escpos_printer_print(escpos_printer *printer,
|
||||
const unsigned char *pixel_bits,
|
||||
const int w,
|
||||
const int h)
|
||||
{
|
||||
assert(printer != NULL);
|
||||
assert(pixel_bits != NULL);
|
||||
assert(w > 0 && w <= printer->config.max_width);
|
||||
assert(h > 0 && h <= printer->config.chunk_height);
|
||||
assert(w % 32 == 0);
|
||||
assert(h % 32 == 0);
|
||||
|
||||
int result = escpos_printer_raw(printer, ESCPOS_CMD_PRINT_RASTER_BIT_IMAGE, 4);
|
||||
|
||||
char buffer[4];
|
||||
buffer[0] = (((w / 8) >> 0) & 0xFF);
|
||||
buffer[1] = (((w / 8) >> 8) & 0xFF);
|
||||
buffer[2] = ((h >> 0) & 0xFF);
|
||||
buffer[3] = ((h >> 8) & 0xFF);
|
||||
result = escpos_printer_raw(printer, buffer, 4);
|
||||
result = escpos_printer_raw(printer, (char *)pixel_bits, (w / 8) * h);
|
||||
|
||||
if (result != 0) {
|
||||
last_error = ESCPOS_ERROR_IMAGE_PRINT_FAILED;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
int escpos_printer_image(escpos_printer *printer,
|
||||
const unsigned char * const image_data,
|
||||
const int width,
|
||||
const int height)
|
||||
{
|
||||
assert(printer != NULL);
|
||||
assert(image_data != NULL);
|
||||
assert(width > 0 && width <= printer->config.max_width);
|
||||
assert(height > 0);
|
||||
|
||||
int result = 0;
|
||||
|
||||
if (image_data != NULL) {
|
||||
int byte_width = printer->config.max_width / 8;
|
||||
|
||||
int padding_t, padding_b;
|
||||
calculate_padding(height, &padding_t, &padding_b);
|
||||
int print_height = height + padding_t + padding_b;
|
||||
|
||||
unsigned char pixel_bits[byte_width * print_height];
|
||||
|
||||
int c = 0;
|
||||
int chunks = 0;
|
||||
if (height <= printer->config.chunk_height) {
|
||||
chunks = 1;
|
||||
} else {
|
||||
chunks = (height / printer->config.chunk_height) + (height % printer->config.chunk_height ? 1 : 0);
|
||||
}
|
||||
|
||||
while (c < chunks) {
|
||||
// Because the printer's image buffer has a limited memory,
|
||||
// if the image's height exceeds config.chunk_height pixels,
|
||||
// it is printed in chunks of x * config.chunk_height pixels.
|
||||
int chunk_height = (c + 1) * printer->config.chunk_height <= height ?
|
||||
printer->config.chunk_height :
|
||||
height - (c * printer->config.chunk_height);
|
||||
|
||||
int bitmap_w, bitmap_h;
|
||||
convert_image_to_bits(
|
||||
pixel_bits,
|
||||
image_data + (c * printer->config.chunk_height * width),
|
||||
width,
|
||||
chunk_height,
|
||||
&bitmap_w,
|
||||
&bitmap_h);
|
||||
|
||||
result = escpos_printer_print(printer, pixel_bits, bitmap_w, bitmap_h);
|
||||
if (result != 0) {
|
||||
break;
|
||||
}
|
||||
|
||||
c += 1;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
106
devices/Printers/ESC_POS/Документация/printer.h
Normal file
106
devices/Printers/ESC_POS/Документация/printer.h
Normal file
@ -0,0 +1,106 @@
|
||||
#ifndef ESCPOSPRINTER_PRINTER_H
|
||||
#define ESCPOSPRINTER_PRINTER_H
|
||||
|
||||
typedef struct escpos_config {
|
||||
// See ESCPOS_MAX_DOT_WIDTH in constants.h
|
||||
// Default value: ESCPOS_MAX_DOT_WIDTH
|
||||
int max_width;
|
||||
|
||||
// See ESCPOS_CHUNK_DOT_HEIGHT in constants.h
|
||||
// Default value: ESCPOS_CHUNK_DOT_HEIGHT
|
||||
int chunk_height;
|
||||
|
||||
unsigned int is_network_printer : 1;
|
||||
} escpos_config;
|
||||
|
||||
typedef struct escpos_printer {
|
||||
int sockfd;
|
||||
escpos_config config;
|
||||
} escpos_printer;
|
||||
|
||||
// Connects to an ESC/POS printer via network
|
||||
//
|
||||
// Params:
|
||||
// - addr: the printer's address
|
||||
// - port: the printer's port
|
||||
//
|
||||
// Return value: the printer object if successful, NULL otherwise.
|
||||
// If it fails, use escpos_last_error() to get the error code.
|
||||
extern escpos_printer *escpos_printer_network(const char * const addr, const short port);
|
||||
|
||||
// Connects to an ESC/POS printer via serial
|
||||
//
|
||||
// Params:
|
||||
// - portname: the path to the serial file to be used
|
||||
// - baudrate: the baudrate for serial communication
|
||||
//
|
||||
// Return value: the printer object if successful, NULL otherwise.
|
||||
// If it fails, use escpos_last_error() to get the error code.
|
||||
extern escpos_printer *escpos_printer_serial(const char * const portname, const int baudrate);
|
||||
|
||||
// Modifies the printer's configuration
|
||||
//
|
||||
// Params:
|
||||
// - printer: the printer
|
||||
// - config: the config
|
||||
//
|
||||
// Return value: 0 is successful, non-zero otherwise.
|
||||
// If it fails, use escpos_last_error() to get the error code.
|
||||
extern int escpos_printer_config(escpos_printer *printer, const escpos_config * const config);
|
||||
|
||||
// Destroys the printer and deallocates its memory
|
||||
//
|
||||
// Params:
|
||||
// - printer: the printer
|
||||
extern void escpos_printer_destroy(escpos_printer *printer);
|
||||
|
||||
// Sends raw data to the printer
|
||||
//
|
||||
// Params:
|
||||
// - printer: the printer
|
||||
// - message: the data
|
||||
// - len: the length of the data in bytes
|
||||
//
|
||||
// Return value: 0 is successful, non-zero otherwise.
|
||||
// If it fails, use escpos_last_error() to get the error code.
|
||||
extern int escpos_printer_raw(escpos_printer *printer, const char * const message, const int len);
|
||||
|
||||
// Cuts the paper
|
||||
//
|
||||
// Params:
|
||||
// - printer: the printer
|
||||
// - lines: no. of lines to feed before cutting
|
||||
//
|
||||
// Return value: 0 is successful, non-zero otherwise.
|
||||
// If it fails, use escpos_last_error() to get the error code.
|
||||
extern int escpos_printer_cut(escpos_printer *printer, const int lines);
|
||||
|
||||
// Feeds n lines
|
||||
//
|
||||
// Params:
|
||||
// - printer: the printer
|
||||
// - lines: no. of lines
|
||||
//
|
||||
// Return value: 0 is successful, non-zero otherwise.
|
||||
// If it fails, use escpos_last_error() to get the error code.
|
||||
extern int escpos_printer_feed(escpos_printer *printer, const int lines);
|
||||
|
||||
// Prints an image
|
||||
//
|
||||
// NOTE: This function will send the image data to the printer's buffer
|
||||
// before sending the print command, instead of printing the image directly.
|
||||
//
|
||||
// Params:
|
||||
// - printer: the printer
|
||||
// - image_data: an array of width * height bytes containing the pixels in grayscale
|
||||
// - width: the image width (must be at most 512)
|
||||
// - height: the image height
|
||||
//
|
||||
// Return value: 0 is successful, non-zero otherwise.
|
||||
// If it fails, use escpos_last_error() to get the error code.
|
||||
extern int escpos_printer_image(escpos_printer *printer,
|
||||
const unsigned char * const image_data,
|
||||
const int width,
|
||||
const int height);
|
||||
|
||||
#endif
|
||||
2968
devices/Printers/FP300KZ/FP300KZ.cpp
Normal file
2968
devices/Printers/FP300KZ/FP300KZ.cpp
Normal file
File diff suppressed because it is too large
Load Diff
293
devices/Printers/FP300KZ/FP300KZ.h
Normal file
293
devices/Printers/FP300KZ/FP300KZ.h
Normal file
@ -0,0 +1,293 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#ifndef PrinterH
|
||||
#define PrinterH
|
||||
//---------------------------------------------------------------------------
|
||||
#include "../Printer.h"
|
||||
#include "../../ComPort.h"
|
||||
#include <stdTools.h>
|
||||
#include <string>
|
||||
//---------------------------------------------------------------------------
|
||||
#define fcDisplayClear 0x21 //(33)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDispalyLower 0x23 //(35)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenServiceInv 0x26 //(38)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcCloseServiceInv 0x27 //(39)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcSwitchPrg 0x29 //(41)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintFreeTextInServiceInv 0x2A //(42)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcPrintSetup 0x2B //(43)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFeedPaper 0x2C //(44)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcCutPaper 0x2D //(45)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDispalyUpper 0x2F //(47)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenFiscalInv 0x30 //(48)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD>
|
||||
#define fcRegisterSale 0x31 //(49)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportOnTaxRates 0x32 //(50)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSubtotal 0x33 //(51)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcRegisterSaleDisp 0x34 //(52)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcTotal 0x35 //(53)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>)
|
||||
#define fcPrintFreeTextInFiscalInv 0x36 //(54)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcCloseFiscalInv 0x38 //(56)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcRegisterArticleSale 0x3A //(58)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcCancelFiscalInv 0x3C //(60)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcSetDateTime 0x3D //(61)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetDateTime 0x3E //(62)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDisplayDateTime 0x3F //(63)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcLatestFiscalRecord 0x40 //(64)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcAmountOfSavingsPerDay 0x41 //(65)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
#define fcDepartmentReport 0x42 //(66)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFreeFieldsByFiscalMemory 0x44 //(68)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDailyFinancialReport 0x45 //(69)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcParishOrConsumption 0x46 //(70)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintDiagnostic 0x47 //(71)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFiscalization 0x48 //(72)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFullFiscalReportByNumber 0x49 //(73)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcGetStatusFP 0x4A //(74)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFiscalTransactionsStatus 0x4C //(76)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReduceFiscalReportByDate 0x4F //(79)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcBeep 0x50 //(80)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenBackInv 0x52 //(82)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetTaxRates 0x53 //(83)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintBarCode 0x54 //(84)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>
|
||||
#define fcSetAddTypesOfPayment 0x55 //(85)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDateOfLastEntryByFiscalMemory 0x56 //(86)<29><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetDepartmentName 0x57 //(87)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetDepartmentInfo 0x58 //(88)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgProductionTestArea 0x59 //(89)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDiagnosticInfo 0x5A //(90)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetTimeZReport 0x5D //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
#define fcSetManufacturersSerialNumber 0x5B //(91)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFullFiscalReportByDate 0x5E //(94)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReduceFiscalReportByNumber 0x5F //(95)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcGetTaxRates 0x61 //(97)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetRNNAndRNM 0x62 //(98)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
#define fcGetRNNAndRNM 0x63 //(99)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
#define fcDispalyFree 0x64 //(100)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetOperatorPassword 0x65 //(101)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetOperatorName 0x66 //(102)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcInfoByCurrentInv 0x67 //(103)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcOperatorReport 0x69 //(105)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenCashDrawer 0x6A //(106)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgAndReadArticle 0x6B //(107)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintDuplicateInv 0x6D //(109)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcDailyReportByTypesOfPayment 0x6E //(110)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportByArticle 0x6F //(111)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportByOperators 0x70 //(112)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetLastPrintedDocNumber 0x71 //(113)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetInfoOfFiscalRecords 0x72 //(114)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgGraphicLogo 0x73 //(115)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReadFiscalMemoryBlock 0x74 //(116)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintEJ 0x78 //(119) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcEJ 0x78 //(120)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//#define fcPrintEJ 0x78 //(119) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReadROMBlock 0x79 //(121)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>
|
||||
#define fcServiceClearEJ 0x7E //(126)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcServiceClearRAM 0x7F //(127)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define ERRIO 100001 //ERR_IO
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
unsigned int MakeCRC(unsigned char* Buf, unsigned int BufStart,unsigned int BufLen);
|
||||
//---------------------------------------------------------------------------
|
||||
typedef char int1;
|
||||
typedef unsigned char uint1;
|
||||
typedef unsigned int uint4;
|
||||
#if !defined( _BORLAND )
|
||||
// typedef unsigned short Word; // 0..65535
|
||||
#endif
|
||||
typedef unsigned char BYTE;
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 6 <20><><EFBFBD><EFBFBD>
|
||||
class StatusFP300KZ
|
||||
{
|
||||
private:
|
||||
protected:
|
||||
public:
|
||||
bool s[6][8];
|
||||
StatusFP300KZ();
|
||||
void SetStatus(uint1* status);
|
||||
std::string getStatus(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
class FP300KZ : public CPrinter
|
||||
{
|
||||
private:
|
||||
unsigned char FrameSeqNumber; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned char CommandName; ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
uint1 getNextSeq();
|
||||
bool Sw1,Sw2,Sw3,Sw4,Sw5,Sw6,Sw7,Sw8; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DiagnosticInfo
|
||||
bool m_SaveLog; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
ComPort* cPort;
|
||||
|
||||
void SleepMs(int ms); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
protected:
|
||||
std::string m_ErrCode; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
public:
|
||||
std::string PrinterName; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string PrinterVersion; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string PrinterNumber; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
// int PrinterDecimal; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GetTaxRates) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> m_Dots
|
||||
//int iResultCode; ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
int CheckCount; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string Password; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
StatusFP300KZ* Status;
|
||||
FP300KZ();
|
||||
virtual ~FP300KZ();
|
||||
|
||||
MyError PrinterInit(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
std::string getErrorDesc(int rc);
|
||||
std::string getLastErrorDest();
|
||||
int ResultCode(); //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool SendPMessage(uint8_t* msg, uint32_t msize, std::string& answer);
|
||||
bool CloseCOMPort();
|
||||
//bool OpenCOMPort(std::string ComNumber,int BaudRate); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> COM <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool OpenSerial(std::string ComNumber, int BaudRate); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> COM <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool Print(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void LoadSetup(); ///<Load COM port and speed
|
||||
void SaveSetup(); ///<Save COM port and speed
|
||||
//void Init(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int getComSpeed(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setComSpeed(int Speed); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
MyError CutPaper(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError GetStatusFP(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 4A
|
||||
void NewLine(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//void Push(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ???
|
||||
MyError FeedPaper(int cnt); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError OpenCashDrawer(int mSec = 0); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError SetDepartmentName(int dept,std::wstring line1,std::wstring line2); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
MyError GetDepartmentInfo(int dept,int &RecSales,float &RecSum,int &TotSales,float &TotSum,std::wstring &Line1,std::wstring &Line2); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
MyError DiagnosticInfo(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError GetTimeZReport(int & time); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
MyError SetManufacturersSerialNumber(std::string Serial);
|
||||
MyError GetLastPrintedDocNumber(int& num); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD>
|
||||
MyError CancelFiscalInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
MyError PrintDuplicateInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
MyError OpenServiceInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
MyError CloseServiceInv(int& count); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
MyError OpenFiscalInv(int OpCode,std::string OpPwd,int TillNmb); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD>
|
||||
MyError CloseFiscalInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
MyError OpenBackInv(int OpCode,std::string OpPwd,int TillNmb); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
MyError RegisterSale(std::wstring L1,std::wstring L2,int dep,std::string TaxCd,double Price,double Qwan, bool Abs, double Perc); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
MyError RegisterSaleDisp(std::string L1,int dep,std::string TaxCd,std::string Price); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError FiscalTransactionsStatus(bool& Open,int& Items,double& Amount,double& Tender); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
MyError PrintBarCode(int Type,std::string Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// std::string PrintSetup(std::string Item, std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError PrintSetup(std::string Item, std::string Text, std::string& Answer); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError getPrintLogo(bool& Enable,int& Height); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError setPrintLogo(bool Enable,int Height); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
MyError PrintFreeTextInServiceInv(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 48 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError PrintFreeTextInFiscalInv(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
MyError Subtotal(std::string Print, std::string Display, bool Abs, double Perc,double& Sum); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError Total(std::string Line1,std::string Line2,std::string PaidMode,double Amount,double& Change); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>)
|
||||
MyError ParishOrConsumption(std::string Oper,std::string Password,double Amount,std::wstring strH,std::wstring strF,std::string& ExitCode,double& CashSum,double& ServIn,double& ServOut); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError SetAddTypesOfPayment(char Option, std::wstring& Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError DepartmentReport();
|
||||
MyError AmountOfSavingsPerDay(double& TaxA,double& TaxB,double& TaxC,double& TaxD,double& TaxE); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
MyError FullFiscalReportByDate(std::string Password,std::string Receipts,std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError ReduceFiscalReportByDate(std::string Password,std::string Receipts,std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError FullFiscalReportByNumber(std::string Password,std::string Receipts,int Start,int End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
MyError ReduceFiscalReportByNumber(std::string Password,std::string Receipts,int Start,int End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
MyError DailyFinancialReport(uint1 Option); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError OperatorReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError PrintDiagnostic(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError DailyReportByTypesOfPayment(std::string& Cash,std::string& Credit,std::string& Debit,std::string& Cheque,std::string& Pay1,std::string& Pay2,std::string& Pay3,std::string& Pay4,std::string& Closure,std::string& Receipt); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError ReportByArticle(std::string Option); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError ReportOnTaxRates(std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
MyError GetRNNAndRNM(std::string &RNN,std::string &RNM); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
MyError SetRNNAndRNM(std::string RNN,std::string RNM); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
MyError SetOperatorPassword(std::string OpCode,std::string OldPwd,std::string NewPwd); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError SetOperatorName(std::string OpCode,std::string Pwd,std::string OpName); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError SetDateTime(std::string date,std::string time); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError GetDateTime(unsigned short& De,unsigned short& Me,unsigned short& Ye,unsigned short& Ho,unsigned short& Mi,unsigned short& Se); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
MyError SwitchPrg(bool update); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getSmallEJ(bool& val); ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
|
||||
MyError setSmallEJ(bool val); ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool getDisplayTransparent(bool& val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError setDisplayTransparent(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getDisplayWin1251(bool& val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Windows 1251
|
||||
MyError setDisplayWin1251(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Windows 1251
|
||||
|
||||
/* bool getAutoCut(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setAutoCut(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
*/
|
||||
MyError Beep(int Hz = 0, int mSec = 0); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError DisplayClear(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError DispalyLower(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError DispalyUpper(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError DispalyFree(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError EJ(std::string Cmd); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError PrintEJ();
|
||||
|
||||
MyError ServiceClearEJ(); ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError ServiceClearRAM(); ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
|
||||
MyError GetTaxRates(std::string &Decimals,std::string &Rounding,bool& bA,bool& bB,bool& bC,bool& bD, std::string &TaxA, std::string &TaxB, std::string &TaxC, std::string &TaxD); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError SetTaxRates(int Decimal, std::string Rounding, std::string TaxA, std::string TaxB, std::string TaxC, std::string TaxD); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//int GetState();
|
||||
std::string GetStatusDescription(BYTE StatusCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError PrgGraphicLogo(int RowNum, std::string Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError getGraphicLogo(int RowNum, std::string &Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
MyError Fiscalization(std::string Password,std::string Serial,std::string& ErrCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError reFiscalization(std::string OldPwd,std::string Password,std::string RNN,std::string RNM,std::string& ErrCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
MyError LatestFiscalRecord(std::string& Clos,int& Rec, float& Total,float& VAT,std::string& Date); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError FreeFieldsByFiscalMemory(long& Logical); //<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//**************************************************************
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> CPrinter <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool isOk(){
|
||||
bool result = cPort->isOpen();
|
||||
return result; };
|
||||
bool CashInOut(bool test, double sum) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> + <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -
|
||||
{
|
||||
float Amount=(float)sum; //10 <20><><EFBFBD><EFBFBD>
|
||||
std::string ExitCode;
|
||||
double CashSum;
|
||||
double ServIn;
|
||||
double ServOut;
|
||||
return ParishOrConsumption("1",Password,Amount,L"",L"",ExitCode,CashSum,ServIn,ServOut).ErrorCode==0;
|
||||
};
|
||||
virtual bool GetCashSum(double& sum) //<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
{
|
||||
std::string ExitCode;
|
||||
double CashSum=0,ServIn=0,ServOut=0;
|
||||
bool b=ParishOrConsumption("1",Password,0.0,L"",L"",ExitCode,CashSum,ServIn,ServOut).ErrorCode==0;
|
||||
|
||||
sum=CashSum;
|
||||
return b;
|
||||
};
|
||||
MyError PrintZReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError PrintXReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError PrintLine(std::wstring line); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
int GetLineLength() {
|
||||
return 46;
|
||||
}; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
BIN
devices/Printers/FP300KZ/FP300KZ.obj
Normal file
BIN
devices/Printers/FP300KZ/FP300KZ.obj
Normal file
Binary file not shown.
2204
devices/Printers/FP300KZ/FP300KZ.~cpp
Normal file
2204
devices/Printers/FP300KZ/FP300KZ.~cpp
Normal file
File diff suppressed because it is too large
Load Diff
279
devices/Printers/FP300KZ/FP300KZ.~h
Normal file
279
devices/Printers/FP300KZ/FP300KZ.~h
Normal file
@ -0,0 +1,279 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#ifndef PrinterH
|
||||
#define PrinterH
|
||||
//---------------------------------------------------------------------------
|
||||
#include "../Printer.h"
|
||||
#include "../../ComPort.h"
|
||||
#include <stdTools.h>
|
||||
#include <string>
|
||||
//---------------------------------------------------------------------------
|
||||
#define fcDisplayClear 0x21 //(33)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDispalyLower 0x23 //(35)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenServiceInv 0x26 //(38)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcCloseServiceInv 0x27 //(39)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcSwitchPrg 0x29 //(41)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintFreeTextInServiceInv 0x2A //(42)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcPrintSetup 0x2B //(43)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFeedPaper 0x2C //(44)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcCutPaper 0x2D //(45)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDispalyUpper 0x2F //(47)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenFiscalInv 0x30 //(48)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD>
|
||||
#define fcRegisterSale 0x31 //(49)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportOnTaxRates 0x32 //(50)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSubtotal 0x33 //(51)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcRegisterSaleDisp 0x34 //(52)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcTotal 0x35 //(53)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>)
|
||||
#define fcPrintFreeTextInFiscalInv 0x36 //(54)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcCloseFiscalInv 0x38 //(56)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcRegisterArticleSale 0x3A //(58)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcCancelFiscalInv 0x3C //(60)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcSetDateTime 0x3D //(61)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetDateTime 0x3E //(62)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDisplayDateTime 0x3F //(63)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcLatestFiscalRecord 0x40 //(64)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcAmountOfSavingsPerDay 0x41 //(65)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
#define fcDepartmentReport 0x42 //(66)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFreeFieldsByFiscalMemory 0x44 //(68)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDailyFinancialReport 0x45 //(69)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcParishOrConsumption 0x46 //(70)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintDiagnostic 0x47 //(71)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFiscalization 0x48 //(72)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFullFiscalReportByNumber 0x49 //(73)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcGetStatusFP 0x4A //(74)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFiscalTransactionsStatus 0x4C //(76)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReduceFiscalReportByDate 0x4F //(79)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcBeep 0x50 //(80)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenBackInv 0x52 //(82)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetTaxRates 0x53 //(83)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintBarCode 0x54 //(84)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>
|
||||
#define fcSetAddTypesOfPayment 0x55 //(85)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDateOfLastEntryByFiscalMemory 0x56 //(86)<29><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetDepartmentName 0x57 //(87)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetDepartmentInfo 0x58 //(88)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgProductionTestArea 0x59 //(89)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDiagnosticInfo 0x5A //(90)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetManufacturersSerialNumber 0x5B //(91)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFullFiscalReportByDate 0x5E //(94)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReduceFiscalReportByNumber 0x5F //(95)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcGetTaxRates 0x61 //(97)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetRNNAndRNM 0x62 //(98)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
#define fcGetRNNAndRNM 0x63 //(99)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
#define fcDispalyFree 0x64 //(100)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetOperatorPassword 0x65 //(101)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetOperatorName 0x66 //(102)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcInfoByCurrentInv 0x67 //(103)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcOperatorReport 0x69 //(105)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenCashDrawer 0x6A //(106)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgAndReadArticle 0x6B //(107)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintDuplicateInv 0x6D //(109)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcDailyReportByTypesOfPayment 0x6E //(110)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportByArticle 0x6F //(111)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportByOperators 0x70 //(112)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetLastPrintedDocNumber 0x71 //(113)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetInfoOfFiscalRecords 0x72 //(114)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgGraphicLogo 0x73 //(115)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReadFiscalMemoryBlock 0x74 //(116)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
#define fcPrintEJ 0x78 //(119) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
#define fcEJ 0x78 //(120)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReadROMBlock 0x79 //(121)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>
|
||||
#define fcServiceClearEJ 0x7E //(126)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcServiceClearRAM 0x7F //(127)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
//---------------------------------------------------------------------------
|
||||
unsigned int MakeCRC(unsigned char* Buf, unsigned int BufStart,unsigned int BufLen);
|
||||
//---------------------------------------------------------------------------
|
||||
typedef char int1;
|
||||
typedef unsigned char uint1;
|
||||
typedef unsigned int uint4;
|
||||
#if !defined( _BORLAND )
|
||||
// typedef unsigned short Word; // 0..65535
|
||||
#endif
|
||||
typedef unsigned char BYTE;
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 6 <20><><EFBFBD><EFBFBD>
|
||||
class MyStatus
|
||||
{
|
||||
private:
|
||||
protected:
|
||||
public:
|
||||
bool s[6][8];
|
||||
MyStatus();
|
||||
void SetStatus(uint1* status);
|
||||
std::string getStatus(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
class FP300KZ : public CPrinter
|
||||
{
|
||||
private:
|
||||
unsigned char ReadAr[255]; ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned char FrameSeqNumber; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned char CommandName; ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
uint1 getNextSeq();
|
||||
bool Sw1,Sw2,Sw3,Sw4,Sw5,Sw6,Sw7,Sw8; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DiagnosticInfo
|
||||
bool m_SaveLog; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
protected:
|
||||
std::string m_ErrCode; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
public:
|
||||
std::string PrinterName; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string PrinterVersion; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string PrinterNumber; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
// int PrinterDecimal; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GetTaxRates) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> m_Dots
|
||||
//int iResultCode; ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
int CheckCount; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string Password; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
ComPort* cPort;
|
||||
MyStatus* Status;
|
||||
FP300KZ();
|
||||
virtual ~FP300KZ();
|
||||
|
||||
bool PrinterInit(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
std::string getErrorDesc(int rc);
|
||||
std::string getLastErrorDest();
|
||||
int ResultCode(); //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool SendPMessage(uint1* msg,uint1 size,std::string& answer);
|
||||
bool OpenCOMPort(int ComNumber = -1,int BaudRate = -1); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> COM <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool Print(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void LoadSetup(); ///<Load COM port and speed
|
||||
void SaveSetup(); ///<Save COM port and speed
|
||||
void Init(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int getComSpeed(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setComSpeed(int Speed); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool CutPaper(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool GetStatusFP(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 4A
|
||||
void NewLine(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void Push(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ???
|
||||
bool FeedPaper(int cnt); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool OpenCashDrawer(int mSec = 0); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetDepartmentName(int dept,std::wstring line1,std::wstring line2); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
bool GetDepartmentInfo(int dept,int &RecSales,float &RecSum,int &TotSales,float &TotSum,std::wstring &Line1,std::wstring &Line2); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool DiagnosticInfo(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetManufacturersSerialNumber(std::string Serial);
|
||||
bool GetLastPrintedDocNumber(int& num); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD>
|
||||
bool CancelFiscalInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool PrintDuplicateInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool OpenServiceInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool CloseServiceInv(int& count); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool OpenFiscalInv(int OpCode,std::string OpPwd,int TillNmb); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD>
|
||||
bool CloseFiscalInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool OpenBackInv(int OpCode,std::string OpPwd,int TillNmb); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool RegisterSale(std::wstring L1,std::wstring L2,int dep,std::string TaxCd,double Price,double Qwan, bool Abs, double Perc); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool RegisterSaleDisp(std::string L1,int dep,std::string TaxCd,std::string Price); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FiscalTransactionsStatus(bool& Open,int& Items,double& Amount,double& Tender); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SessionSec(int& sec); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool PrintBarCode(int Type,std::string Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// std::string PrintSetup(std::string Item, std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintSetup(std::string Item, std::string Text, std::string& Answer); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getPrintLogo(bool& Enable,int& Height); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setPrintLogo(bool Enable,int Height); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool PrintFreeTextInServiceInv(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 48 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintFreeTextInFiscalInv(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool Subtotal(std::string Print, std::string Display, bool Abs, double Perc,double& Sum); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool Total(std::string Line1,std::string Line2,std::string PaidMode,double Amount,double& Change); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>)
|
||||
bool ParishOrConsumption(std::string Oper,std::string Password,double Amount,std::wstring strH,std::wstring strF,std::string& ExitCode,double& CashSum,double& ServIn,double& ServOut); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetAddTypesOfPayment(char Option, std::wstring& Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DepartmentReport();
|
||||
bool AmountOfSavingsPerDay(double& TaxA,double& TaxB,double& TaxC,double& TaxD,double& TaxE); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
bool FullFiscalReportByDate(std::string Password,std::string Receipts,std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReduceFiscalReportByDate(std::string Password,std::string Receipts,std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FullFiscalReportByNumber(std::string Password,std::string Receipts,int Start,int End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool ReduceFiscalReportByNumber(std::string Password,std::string Receipts,int Start,int End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool DailyFinancialReport(uint1 Option); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool OperatorReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintDiagnostic(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DailyReportByTypesOfPayment(std::string& Cash,std::string& Credit,std::string& Debit,std::string& Cheque,std::string& Pay1,std::string& Pay2,std::string& Pay3,std::string& Pay4,std::string& Closure,std::string& Receipt); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReportByArticle(std::string Option); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReportOnTaxRates(std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool GetRNNAndRNM(std::string &RNN,std::string &RNM); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool SetRNNAndRNM(std::string RNN,std::string RNM); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool SetOperatorPassword(std::string OpCode,std::string OldPwd,std::string NewPwd); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetOperatorName(std::string OpCode,std::string Pwd,std::string OpName); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetDateTime(std::string date,std::string time); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool GetDateTime(unsigned short& De,unsigned short& Me,unsigned short& Ye,unsigned short& Ho,unsigned short& Mi,unsigned short& Se); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool SwitchPrg(bool update); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getSmallEJ(bool& val); ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool setSmallEJ(bool val); ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool getDisplayTransparent(bool& val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setDisplayTransparent(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getDisplayWin1251(bool& val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Windows 1251
|
||||
bool setDisplayWin1251(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Windows 1251
|
||||
|
||||
/* bool getAutoCut(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setAutoCut(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
*/
|
||||
bool Beep(int Hz = 0, int mSec = 0); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DisplayClear(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DispalyLower(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DispalyUpper(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DispalyFree(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool EJ(std::string Cmd); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintEJ();
|
||||
bool ServiceClearEJ(); ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ServiceClearRAM(); ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
|
||||
bool GetTaxRates(std::string &Decimals,std::string &Rounding,bool& bA,bool& bB,bool& bC,bool& bD, std::string &TaxA, std::string &TaxB, std::string &TaxC, std::string &TaxD); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetTaxRates(int Decimal, std::string Rounding, std::string TaxA, std::string TaxB, std::string TaxC, std::string TaxD); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int GetState();
|
||||
std::string GetStatusDescription(BYTE StatusCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrgGraphicLogo(int RowNum, std::string Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getGraphicLogo(int RowNum, std::string &Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool Fiscalization(std::string Password,std::string Serial,std::string& ErrCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool reFiscalization(std::string OldPwd,std::string Password,std::string RNN,std::string RNM,std::string& ErrCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool LatestFiscalRecord(std::string& Clos,int& Rec, float& Total,float& VAT,std::string& Date); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FreeFieldsByFiscalMemory(long& Logical); //<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//**************************************************************
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> CPrinter <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool isOk(){ return cPort->bOpen; };
|
||||
bool CashInOut(bool test, double sum) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> + <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -
|
||||
{
|
||||
float Amount=(float)sum; //10 <20><><EFBFBD><EFBFBD>
|
||||
std::string ExitCode;
|
||||
double CashSum;
|
||||
double ServIn;
|
||||
double ServOut;
|
||||
return ParishOrConsumption("1",Password,Amount,L"",L"",ExitCode,CashSum,ServIn,ServOut);
|
||||
};
|
||||
virtual bool GetCashSum(double& sum) //<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
{
|
||||
std::string ExitCode;
|
||||
double CashSum=0,ServIn=0,ServOut=0;
|
||||
bool b=ParishOrConsumption("1",Password,0.0,L"",L"",ExitCode,CashSum,ServIn,ServOut);
|
||||
|
||||
sum=CashSum;
|
||||
return b;
|
||||
};
|
||||
bool PrintZReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintXReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintLine(std::wstring line); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
262
devices/Printers/FP300KZ/FP300KZ1C.cpp
Normal file
262
devices/Printers/FP300KZ/FP300KZ1C.cpp
Normal file
@ -0,0 +1,262 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#pragma hdrstop
|
||||
#include "stdafx.h"
|
||||
//---------------------------------------------------------------------------
|
||||
#include "FP300KZ1C.h"
|
||||
#include <WTools.h>
|
||||
//---------------------------------------------------------------------------
|
||||
FP300KZ1C::FP300KZ1C()
|
||||
{
|
||||
//DiscountInvertor=1;
|
||||
DocumentNumber=0;
|
||||
OperatorNumber=1;
|
||||
PayMode="P"; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
ActiveLD=-1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
UseReceiptRibbon=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
UseJournalRibbon=true;
|
||||
Absolute=false; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Discount=0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Tax1=0; Tax2=0; Tax3=0; Tax4=0;
|
||||
Department=0;
|
||||
StringQuantity=5; //<2F><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
Open = false; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
Items = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
|
||||
Amount = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
Tender = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
ListLDDevice=new TSimpleList<LDDevice*>(10,true); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> LD <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
FP300KZ1C::~FP300KZ1C()
|
||||
{
|
||||
delete ListLDDevice;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
bool FP300KZ1C::getECRStatus()
|
||||
{
|
||||
GetStatusFP();
|
||||
bool b=true;
|
||||
unsigned short De,Me,Ye,Ho,Mi,Se;
|
||||
b=b && GetDateTime(De,Me,Ye,Ho,Mi,Se); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Date=add0(IntToStdStr(De))+"-"+add0(IntToStdStr(Me))+"-"+add0(IntToStdStr(Ye)); //DD-MM-YYYY
|
||||
Time=add0(IntToStdStr(Ho))+":"+add0(IntToStdStr(Mi))+":"+add0(IntToStdStr(Se)); //HH:MM:SS
|
||||
return b;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FP300KZ1C::SaveSetup()
|
||||
{
|
||||
bool b=true;
|
||||
/* std::wstring path=getCommonAppPathW()+L"\\NewTon\\Setup.ini";
|
||||
std::string str;
|
||||
str=toStdStr(cPort->ComNumber);
|
||||
b=b && IniWrite(path, "Main", "ComNumber", str.c_str());
|
||||
str=toStdStr(cPort->BaudRate);
|
||||
b=b && IniWrite(path, "Main", "BaudRate", str.c_str());
|
||||
//str=toStdStr(cPort->TimeOut)
|
||||
b=b && IniWrite(path, "Main", "TimeOut", "500");
|
||||
*/
|
||||
return b;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FP300KZ1C::LoadSetup()
|
||||
{
|
||||
/* std::wstring path=getCommonAppPathW()+"\\NewTon\\Setup.ini";
|
||||
std::string str;
|
||||
str=IniRead(path, "Main", "ComNumber");
|
||||
cPort->ComNumber=fromString<int>(str);
|
||||
str=IniRead(path, "Main", "BaudRate");
|
||||
cPort->BaudRate=fromString<int>(str);
|
||||
//Timeout
|
||||
*/
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> ini <20><><EFBFBD><EFBFBD>
|
||||
///\param Name <20><><EFBFBD> <20><>
|
||||
///\param ComNumber <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
///\param BaudRate <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>, <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1200 <20><><EFBFBD>)
|
||||
///\param ComputerName <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
///\param TimeOut <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>
|
||||
///\param FrType <20><><EFBFBD> <20><>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
bool FP300KZ1C::AddLD(std::string Name,int ComNumber,int BaudRate,std::string ComputerName,int TimeOut,std::string FrType)
|
||||
{
|
||||
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int Number=0;
|
||||
for(unsigned int i=0;i<ListLDDevice->count();i++)
|
||||
if(Number<ListLDDevice->get(i)->Number) Number=ListLDDevice->get(i)->Number;
|
||||
|
||||
LDDevice *dv= new LDDevice;
|
||||
dv->Name=Name;
|
||||
dv->Number=Number+1;
|
||||
dv->ComNumber=ComNumber;
|
||||
dv->BaudRate=BaudRate;
|
||||
dv->ComputerName=ComputerName;
|
||||
dv->TimeOut=TimeOut;
|
||||
dv->FrType=FrType;
|
||||
ListLDDevice->add(dv);
|
||||
SaveLD(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> ini <20><><EFBFBD><EFBFBD>
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FP300KZ1C::DelLD(int LDNumber)
|
||||
{
|
||||
for(unsigned int i=0;i<ListLDDevice->count();i++)
|
||||
{
|
||||
if(ListLDDevice->get(i)->Number==LDNumber)
|
||||
{
|
||||
ListLDDevice->del(i);
|
||||
i--;
|
||||
}
|
||||
}
|
||||
SaveLD(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> ini <20><><EFBFBD><EFBFBD>
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FP300KZ1C::LoadLD()
|
||||
{
|
||||
//TIniFileSTD* ini=new TIniFileSTD(getCommonAppPathW()+L"\\Newton\\Setup.ini");
|
||||
//delete ini;
|
||||
|
||||
std::wstring str;
|
||||
std::wstring path=getCommonAppPathW()+L"\\Newton\\Setup.ini";
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
str=IniReadW(path, L"Main", L"ActiveLD");
|
||||
if(str==L"") str=L"-1";
|
||||
ActiveLD=fromWString<int>(str);
|
||||
|
||||
ListLDDevice->clear();
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
str=IniReadW(path, L"Main", L"LDCount");
|
||||
if(str==L"") str=L"0";
|
||||
int cnt=fromWString<int>(str);
|
||||
for(int i=0; i<cnt; i++)
|
||||
{
|
||||
str=L"LDDevice"+toStdWStr(i);
|
||||
LDDevice *dv= new LDDevice;
|
||||
|
||||
dv->Number=fromWString<int>(IniReadW(path, str, L"Number"));
|
||||
dv->Name = WStringToString( IniReadW(path, str, L"Name"), std::locale(""));
|
||||
dv->ComNumber=fromWString<int>(IniReadW(path, str, L"ComNumber"));
|
||||
dv->BaudRate=fromWString<int>(IniReadW(path, str, L"BaudRate"));
|
||||
dv->ComputerName=WStringToString( IniReadW(path, str, L"ComputerName"), std::locale(""));
|
||||
dv->TimeOut=fromWString<int>(IniReadW(path, str, L"TimeOut"));
|
||||
dv->FrType=WStringToString( IniReadW(path, str, L"FrType"), std::locale(""));
|
||||
|
||||
ListLDDevice->add(dv);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FP300KZ1C::SaveLD()
|
||||
{
|
||||
std::wstring path=getCommonAppPathW()+L"\\NewTon\\Setup.ini";
|
||||
|
||||
LDDevice *dv;
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> ini <20><><EFBFBD><EFBFBD>
|
||||
std::string str=IntToStdStr(ListLDDevice->count());
|
||||
//std::string str=toStdStr(ListLDDevice->count());
|
||||
//std::string str=toStdStr(ListLDDevice->count());
|
||||
IniWriteW(path, L"Main", L"LDCount", StringToWString(str,std::locale("")));
|
||||
|
||||
str=IntToStdStr(ActiveLD);
|
||||
//str=toStdStr(ActiveLD);
|
||||
IniWriteW(path, L"Main", L"ActiveLD", StringToWString(str,std::locale("")));
|
||||
|
||||
|
||||
for(uint4 i=0;i<ListLDDevice->count();i++)
|
||||
{
|
||||
|
||||
str="LDDevice"+IntToStdStr(i);
|
||||
//str="LDDevice"+toStdStr(i);
|
||||
dv=ListLDDevice->get(i);
|
||||
|
||||
IniWriteW(path, StringToWString(str,std::locale("")), L"Number", StringToWString(IntToStdStr(dv->Number),std::locale("")));
|
||||
IniWriteW(path, StringToWString(str,std::locale("")), L"Name", StringToWString(dv->Name,std::locale("")));
|
||||
IniWriteW(path, StringToWString(str,std::locale("")), L"ComNumber", StringToWString(IntToStdStr(dv->ComNumber),std::locale("")));
|
||||
IniWriteW(path, StringToWString(str,std::locale("")), L"BaudRate", StringToWString(IntToStdStr(dv->BaudRate),std::locale("")));
|
||||
IniWriteW(path, StringToWString(str,std::locale("")), L"ComputerName", StringToWString(dv->ComputerName,std::locale("")));
|
||||
IniWriteW(path, StringToWString(str,std::locale("")), L"TimeOut", StringToWString(IntToStdStr(dv->TimeOut),std::locale("")));
|
||||
IniWriteW(path, StringToWString(str,std::locale("")), L"FrType", StringToWString(dv->FrType,std::locale("")));
|
||||
/*
|
||||
IniWriteW(path, StringToWString(str,std::locale("")), L"Number", StringToWString(toStdStr(dv->Number),std::locale("")));
|
||||
IniWriteW(path, StringToWString(str,std::locale("")), L"Name", StringToWString(dv->Name,std::locale("")));
|
||||
IniWriteW(path, StringToWString(str,std::locale("")), L"ComNumber", StringToWString(toStdStr(dv->ComNumber),std::locale("")));
|
||||
IniWriteW(path, StringToWString(str,std::locale("")), L"BaudRate", StringToWString(toStdStr(dv->BaudRate),std::locale("")));
|
||||
IniWriteW(path, StringToWString(str,std::locale("")), L"ComputerName", StringToWString(dv->ComputerName,std::locale("")));
|
||||
IniWriteW(path, StringToWString(str,std::locale("")), L"TimeOut", StringToWString(toStdStr(dv->TimeOut),std::locale("")));
|
||||
IniWriteW(path, StringToWString(str,std::locale("")), L"FrType", StringToWString(dv->FrType,std::locale("")));
|
||||
*/
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int FP300KZ1C::getLDCount()
|
||||
{
|
||||
return ListLDDevice->count();
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string FP300KZ1C::ECRFlags()
|
||||
{
|
||||
return Status->getStatus();
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void FP300KZ1C::setStringForPrinting(std::string str)
|
||||
{
|
||||
replaseChars(str,10,' ');
|
||||
StringForPrinting=str;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
int FP300KZ1C::GetLastPrintedDocNumber2()
|
||||
{
|
||||
int num;
|
||||
GetLastPrintedDocNumber(num);
|
||||
return num;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
double FP300KZ1C::getCashSum()
|
||||
{
|
||||
std::string ExitCode;
|
||||
double CashSum,ServIn,ServOut;
|
||||
ParishOrConsumption("","",0.0,L"",L"",ExitCode,CashSum,ServIn,ServOut);
|
||||
|
||||
return CashSum;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
double FP300KZ1C::getCashIn()
|
||||
{
|
||||
std::string ExitCode;
|
||||
double CashSum,ServIn,ServOut;
|
||||
ParishOrConsumption("","",0.0,L"",L"",ExitCode,CashSum,ServIn,ServOut);
|
||||
|
||||
return ServIn;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
double FP300KZ1C::getCashOut()
|
||||
{
|
||||
std::string ExitCode;
|
||||
double CashSum,ServIn,ServOut;
|
||||
ParishOrConsumption("","",0.0,L"",L"",ExitCode,CashSum,ServIn,ServOut);
|
||||
|
||||
return ServOut;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
int FP300KZ1C::getSessionSec()
|
||||
{
|
||||
int sec=0;
|
||||
SessionSec(sec); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
return sec;
|
||||
}
|
||||
120
devices/Printers/FP300KZ/FP300KZ1C.h
Normal file
120
devices/Printers/FP300KZ/FP300KZ1C.h
Normal file
@ -0,0 +1,120 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#ifndef FP300KZ1CH
|
||||
#define FP300KZ1CH
|
||||
//---------------------------------------------------------------------------
|
||||
#include "FP300KZ.h"
|
||||
//#include "../Printer.h"
|
||||
//#include "../../ComPort.h"
|
||||
#include <stdTools.h>
|
||||
#include <structs.h>
|
||||
#include <string>
|
||||
//---------------------------------------------------------------------------
|
||||
struct LDDevice //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
int Number; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> id <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string Name; //<2F><><EFBFBD> <20><>
|
||||
int ComNumber; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
int BaudRate; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>, <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1200 <20><><EFBFBD>)
|
||||
std::string ComputerName; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int TimeOut; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>
|
||||
std::string FrType; //<2F><><EFBFBD> <20><>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> 1<> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
class FP300KZ1C : public FP300KZ
|
||||
{
|
||||
//private:
|
||||
public:
|
||||
TSimpleList<LDDevice*> *ListLDDevice; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//SProp* PropMas;
|
||||
|
||||
int StringQuantity; //<2F><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int StringNumber; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReportType; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string BarCode; //("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>") <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string Date;//("<22><><EFBFBD><EFBFBD>") "DD-MM-YYYY" <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GETECRSTATUS
|
||||
std::string Time; //<2F><><EFBFBD><EFBFBD><EFBFBD> "HH:MM:SS" TIMESTR
|
||||
//std::string TimeStr; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> Time
|
||||
int Department; //<2F><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool Absolute;
|
||||
double Discount;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
double Change; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
// float DiscountInvertor; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
int DocumentNumber; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int OperatorNumber; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
double Price; //<2F><><EFBFBD><EFBFBD>
|
||||
double Summ1,Summ2,Summ3,Summ4,Summ5,Summ6,Summ7,Summ8;
|
||||
double Quantity; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//int ResultCode; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string RNN,RNM; //<2F><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>()
|
||||
|
||||
std::string ROUGHVALVE;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//std::string SerialNumber; //SERIALNUMBER <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: PrinterNumber)
|
||||
std::string StringHead;
|
||||
std::string StringTail;
|
||||
std::string StringForPrinting; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void setStringForPrinting(std::string str);
|
||||
|
||||
double Tax1, Tax2, Tax3, Tax4, Tax5; // (<28><><EFBFBD><EFBFBD><EFBFBD>1, <20><><EFBFBD><EFBFBD><EFBFBD>2, <20><><EFBFBD><EFBFBD><EFBFBD>3, <20><><EFBFBD><EFBFBD><EFBFBD>4, <20><><EFBFBD><EFBFBD><EFBFBD>5)
|
||||
|
||||
bool Open; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
int Items; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
|
||||
double Amount; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
double Tender; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
double getCashIn(); //float CashIn; //<2F><><EFBFBD><EFBFBD><EFBFBD> Float, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CASHINCOME (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>), CASHOUTCOME (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
double getCashOut(); //float CashOut; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Float, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CASHINCOME (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>), CASHOUTCOME (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
double getCashSum(); //float CashSum; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Float, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CASHINCOME (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>), CASHOUTCOME (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int getSessionSec();
|
||||
std::string getStatuses();
|
||||
|
||||
//int TimeOut; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
std::string FIRSTSESSIONDATE; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> FISCALREPORTFORDATESRANGE (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ר<EFBFBD><D7A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
std::string LASTSESSIONDATE; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> FISCALREPORTFORDATESRANGE (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ר<EFBFBD><D7A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
int FirstSessionNumber; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> FISCALREPORTFORSESSIONRANGE (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ר<EFBFBD><D7A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
int LastSessionNumber; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> FISCALREPORTFORSESSIONRANGE (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ר<EFBFBD><D7A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
|
||||
|
||||
int LDIndex; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Integer, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int LDNumber; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Integer, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string LDName; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>N<EFBFBD>, <20><><EFBFBD> N <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> 1)
|
||||
|
||||
//std::string ECRFlafs; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 6*8 <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> '0' <20><><EFBFBD> '1', <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GETECRSTATUS (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
int LineNumber; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> LOADLINEDATA (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
std::string LineData; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> C<><43><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> LOADLINEDATA (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
// float TaxA, TaxB, TaxC, TaxD, TaxE; //(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) Float, <20><><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> (<28><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> A, B, C, D. <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (GETSUMS (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>))
|
||||
std::string PayMode; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>: <20>P<EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>; <20>N<EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>; <20>C<EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>; <20>D<EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>I<EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 <20>J<EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2 <20>K<EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 3 <20>L<EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int ActiveLD; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string LDComputerName; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
int LDTimeOut; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Integer, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
int LDBaudRate; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ENUMLD (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>), GETPARAMLD (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>), SETACTIVELD (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>), SETPARAMLD (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>),
|
||||
int LDComNumber; //COM<4F><4D><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Integer, <20><><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ENUMLD (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>), GETPARAMLD (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>), SETACTIVELD (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>), SETPARAMLD (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>),
|
||||
|
||||
std::string LDFrType;
|
||||
std::string FrType; //
|
||||
|
||||
//bool PORTLOCKED; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Boolean, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> True (1), <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20> False (0), <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool UseReceiptRibbon; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: PrintString, PrintWideString, FeedDocument.
|
||||
bool UseJournalRibbon; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
FP300KZ1C();
|
||||
~FP300KZ1C();
|
||||
bool getECRStatus();
|
||||
|
||||
bool SaveSetup();
|
||||
bool LoadSetup();
|
||||
bool AddLD(std::string Name,int ComNumber,int BaudRate,std::string ComputerName,int TimeOut,std::string FrType); //<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DelLD(int LDNumber);
|
||||
bool LoadLD(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SaveLD();
|
||||
int getLDCount(); //LDCount <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Integer, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GETCOUNTLD (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>), <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
int GetLastPrintedDocNumber2();
|
||||
std::string ECRFlags(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
2202
devices/Printers/FP300KZ/__history/FP300KZ.cpp.~19~
Normal file
2202
devices/Printers/FP300KZ/__history/FP300KZ.cpp.~19~
Normal file
File diff suppressed because it is too large
Load Diff
2180
devices/Printers/FP300KZ/__history/FP300KZ.cpp.~20~
Normal file
2180
devices/Printers/FP300KZ/__history/FP300KZ.cpp.~20~
Normal file
File diff suppressed because it is too large
Load Diff
2180
devices/Printers/FP300KZ/__history/FP300KZ.cpp.~21~
Normal file
2180
devices/Printers/FP300KZ/__history/FP300KZ.cpp.~21~
Normal file
File diff suppressed because it is too large
Load Diff
2181
devices/Printers/FP300KZ/__history/FP300KZ.cpp.~22~
Normal file
2181
devices/Printers/FP300KZ/__history/FP300KZ.cpp.~22~
Normal file
File diff suppressed because it is too large
Load Diff
2181
devices/Printers/FP300KZ/__history/FP300KZ.cpp.~23~
Normal file
2181
devices/Printers/FP300KZ/__history/FP300KZ.cpp.~23~
Normal file
File diff suppressed because it is too large
Load Diff
2182
devices/Printers/FP300KZ/__history/FP300KZ.cpp.~24~
Normal file
2182
devices/Printers/FP300KZ/__history/FP300KZ.cpp.~24~
Normal file
File diff suppressed because it is too large
Load Diff
2182
devices/Printers/FP300KZ/__history/FP300KZ.cpp.~25~
Normal file
2182
devices/Printers/FP300KZ/__history/FP300KZ.cpp.~25~
Normal file
File diff suppressed because it is too large
Load Diff
2182
devices/Printers/FP300KZ/__history/FP300KZ.cpp.~26~
Normal file
2182
devices/Printers/FP300KZ/__history/FP300KZ.cpp.~26~
Normal file
File diff suppressed because it is too large
Load Diff
2185
devices/Printers/FP300KZ/__history/FP300KZ.cpp.~27~
Normal file
2185
devices/Printers/FP300KZ/__history/FP300KZ.cpp.~27~
Normal file
File diff suppressed because it is too large
Load Diff
2185
devices/Printers/FP300KZ/__history/FP300KZ.cpp.~28~
Normal file
2185
devices/Printers/FP300KZ/__history/FP300KZ.cpp.~28~
Normal file
File diff suppressed because it is too large
Load Diff
274
devices/Printers/FP300KZ/__history/FP300KZ.h.~1~
Normal file
274
devices/Printers/FP300KZ/__history/FP300KZ.h.~1~
Normal file
@ -0,0 +1,274 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#ifndef PrinterH
|
||||
#define PrinterH
|
||||
//---------------------------------------------------------------------------
|
||||
#include "../Printer.h"
|
||||
#include "../../ComPort.h"
|
||||
#include <stdTools.h>
|
||||
#include <string>
|
||||
//---------------------------------------------------------------------------
|
||||
#define fcDisplayClear 0x21 //(33)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDispalyLower 0x23 //(35)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenServiceInv 0x26 //(38)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcCloseServiceInv 0x27 //(39)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcSwitchPrg 0x29 //(41)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintFreeTextInServiceInv 0x2A //(42)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcPrintSetup 0x2B //(43)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFeedPaper 0x2C //(44)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcCutPaper 0x2D //(45)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDispalyUpper 0x2F //(47)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenFiscalInv 0x30 //(48)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD>
|
||||
#define fcRegisterSale 0x31 //(49)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportOnTaxRates 0x32 //(50)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSubtotal 0x33 //(51)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcRegisterSaleDisp 0x34 //(52)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcTotal 0x35 //(53)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>)
|
||||
#define fcPrintFreeTextInFiscalInv 0x36 //(54)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcCloseFiscalInv 0x38 //(56)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcRegisterArticleSale 0x3A //(58)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcCancelFiscalInv 0x3C //(60)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcSetDateTime 0x3D //(61)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetDateTime 0x3E //(62)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDisplayDateTime 0x3F //(63)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcLatestFiscalRecord 0x40 //(64)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcAmountOfSavingsPerDay 0x41 //(65)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
#define fcDepartmentReport 0x42 //(66)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFreeFieldsByFiscalMemory 0x44 //(68)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDailyFinancialReport 0x45 //(69)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcParishOrConsumption 0x46 //(70)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintDiagnostic 0x47 //(71)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFiscalization 0x48 //(72)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFullFiscalReportByNumber 0x49 //(73)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcGetStatusFP 0x4A //(74)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFiscalTransactionsStatus 0x4C //(76)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReduceFiscalReportByDate 0x4F //(79)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcBeep 0x50 //(80)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenBackInv 0x52 //(82)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetTaxRates 0x53 //(83)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintBarCode 0x54 //(84)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>
|
||||
#define fcSetAddTypesOfPayment 0x55 //(85)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDateOfLastEntryByFiscalMemory 0x56 //(86)<29><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetDepartmentName 0x57 //(87)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetDepartmentInfo 0x58 //(88)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgProductionTestArea 0x59 //(89)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDiagnosticInfo 0x5A //(90)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetManufacturersSerialNumber 0x5B //(91)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFullFiscalReportByDate 0x5E //(94)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReduceFiscalReportByNumber 0x5F //(95)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcGetTaxRates 0x61 //(97)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetRNNAndRNM 0x62 //(98)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
#define fcGetRNNAndRNM 0x63 //(99)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
#define fcDispalyFree 0x64 //(100)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetOperatorPassword 0x65 //(101)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetOperatorName 0x66 //(102)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcInfoByCurrentInv 0x67 //(103)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcOperatorReport 0x69 //(105)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenCashDrawer 0x6A //(106)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgAndReadArticle 0x6B //(107)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintDuplicateInv 0x6D //(109)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcDailyReportByTypesOfPayment 0x6E //(110)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportByArticle 0x6F //(111)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportByOperators 0x70 //(112)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetLastPrintedDocNumber 0x71 //(113)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetInfoOfFiscalRecords 0x72 //(114)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgGraphicLogo 0x73 //(115)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReadFiscalMemoryBlock 0x74 //(116)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcEJ 0x78 //(120)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReadROMBlock 0x79 //(121)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>
|
||||
#define fcServiceClearEJ 0x7E //(126)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcServiceClearRAM 0x7F //(127)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
//---------------------------------------------------------------------------
|
||||
unsigned int MakeCRC(unsigned char* Buf, unsigned int BufStart,unsigned int BufLen);
|
||||
//---------------------------------------------------------------------------
|
||||
typedef char int1;
|
||||
typedef unsigned char uint1;
|
||||
typedef unsigned int uint4;
|
||||
#if !defined( _BORLAND )
|
||||
// typedef unsigned short Word; // 0..65535
|
||||
#endif
|
||||
typedef unsigned char BYTE;
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 6 <20><><EFBFBD><EFBFBD>
|
||||
class MyStatus
|
||||
{
|
||||
private:
|
||||
protected:
|
||||
public:
|
||||
bool s[6][8];
|
||||
MyStatus();
|
||||
void SetStatus(uint1* status);
|
||||
std::string getStatus(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
class FP300KZ : public CPrinter
|
||||
{
|
||||
private:
|
||||
unsigned char ReadAr[255]; ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned char FrameSeqNumber; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned char CommandName; ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
uint1 getNextSeq();
|
||||
bool Sw1,Sw2,Sw3,Sw4,Sw5,Sw6,Sw7,Sw8; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DiagnosticInfo
|
||||
bool m_SaveLog; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
protected:
|
||||
std::string m_ErrCode; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
public:
|
||||
std::string PrinterName; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string PrinterVersion; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string PrinterNumber; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
// int PrinterDecimal; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GetTaxRates) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> m_Dots
|
||||
//int iResultCode; ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
int CheckCount; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string Password; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
ComPort* cPort;
|
||||
MyStatus* Status;
|
||||
FP300KZ();
|
||||
virtual ~FP300KZ();
|
||||
|
||||
bool PrinterInit(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
std::string getErrorDesc(int rc);
|
||||
std::string getLastErrorDest();
|
||||
int ResultCode(); //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool SendPMessage(uint1* msg,uint1 size,std::string& answer);
|
||||
bool OpenCOMPort(int ComNumber = -1,int BaudRate = -1); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> COM <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool Print(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void LoadSetup(); ///<Load COM port and speed
|
||||
void SaveSetup(); ///<Save COM port and speed
|
||||
void Init(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int getComSpeed(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setComSpeed(int Speed); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool CutPaper(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool GetStatusFP(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 4A
|
||||
void NewLine(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void Push(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ???
|
||||
bool FeedPaper(int cnt); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool OpenCashDrawer(int mSec = 0); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetDepartmentName(int dept,std::wstring line1,std::wstring line2); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
bool GetDepartmentInfo(int dept,int &RecSales,float &RecSum,int &TotSales,float &TotSum,std::wstring &Line1,std::wstring &Line2); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool DiagnosticInfo(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetManufacturersSerialNumber(std::string Serial);
|
||||
bool GetLastPrintedDocNumber(int& num); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD>
|
||||
bool CancelFiscalInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool PrintDuplicateInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool OpenServiceInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool CloseServiceInv(int& count); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool OpenFiscalInv(int OpCode,std::string OpPwd,int TillNmb); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD>
|
||||
bool CloseFiscalInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool OpenBackInv(int OpCode,std::string OpPwd,int TillNmb); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool RegisterSale(std::wstring L1,std::wstring L2,int dep,std::string TaxCd,double Price,double Qwan, bool Abs, double Perc); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool RegisterSaleDisp(std::string L1,int dep,std::string TaxCd,std::string Price); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FiscalTransactionsStatus(bool& Open,int& Items,double& Amount,double& Tender); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SessionSec(int& sec); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool PrintBarCode(int Type,std::string Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// std::string PrintSetup(std::string Item, std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintSetup(std::string Item, std::string Text, std::string& Answer); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getPrintLogo(bool& Enable,int& Height); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setPrintLogo(bool Enable,int Height); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool PrintFreeTextInServiceInv(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 48 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintFreeTextInFiscalInv(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool Subtotal(std::string Print, std::string Display, bool Abs, double Perc,double& Sum); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool Total(std::string Line1,std::string Line2,std::string PaidMode,double Amount,double& Change); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>)
|
||||
bool ParishOrConsumption(std::string Oper,std::string Password,double Amount,std::wstring strH,std::wstring strF,std::string& ExitCode,double& CashSum,double& ServIn,double& ServOut); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetAddTypesOfPayment(char Option, std::wstring& Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DepartmentReport();
|
||||
bool AmountOfSavingsPerDay(double& TaxA,double& TaxB,double& TaxC,double& TaxD,double& TaxE); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
bool FullFiscalReportByDate(std::string Password,std::string Receipts,std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReduceFiscalReportByDate(std::string Password,std::string Receipts,std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FullFiscalReportByNumber(std::string Password,std::string Receipts,int Start,int End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool ReduceFiscalReportByNumber(std::string Password,std::string Receipts,int Start,int End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool DailyFinancialReport(uint1 Option); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool OperatorReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintDiagnostic(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DailyReportByTypesOfPayment(std::string& Cash,std::string& Credit,std::string& Debit,std::string& Cheque,std::string& Pay1,std::string& Pay2,std::string& Pay3,std::string& Pay4,std::string& Closure,std::string& Receipt); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReportByArticle(std::string Option); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReportOnTaxRates(std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool GetRNNAndRNM(std::string &RNN,std::string &RNM); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool SetRNNAndRNM(std::string RNN,std::string RNM); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool SetOperatorPassword(std::string OpCode,std::string OldPwd,std::string NewPwd); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetOperatorName(std::string OpCode,std::string Pwd,std::string OpName); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetDateTime(std::string date,std::string time); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool GetDateTime(unsigned short& De,unsigned short& Me,unsigned short& Ye,unsigned short& Ho,unsigned short& Mi,unsigned short& Se); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool SwitchPrg(bool update); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getSmallEJ(bool& val); ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool setSmallEJ(bool val); ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool getDisplayTransparent(bool& val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setDisplayTransparent(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getDisplayWin1251(bool& val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Windows 1251
|
||||
bool setDisplayWin1251(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Windows 1251
|
||||
|
||||
/* bool getAutoCut(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setAutoCut(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
*/
|
||||
bool Beep(int Hz = 0, int mSec = 0); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DisplayClear(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DispalyLower(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DispalyUpper(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DispalyFree(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool EJ(std::string Cmd); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintEJ();
|
||||
|
||||
bool GetTaxRates(std::string &Decimals,std::string &Rounding,bool& bA,bool& bB,bool& bC,bool& bD, std::string &TaxA, std::string &TaxB, std::string &TaxC, std::string &TaxD); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetTaxRates(int Decimal, std::string Rounding, std::string TaxA, std::string TaxB, std::string TaxC, std::string TaxD); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int GetState();
|
||||
std::string GetStatusDescription(BYTE StatusCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrgGraphicLogo(int RowNum, std::string Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getGraphicLogo(int RowNum, std::string &Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool Fiscalization(std::string Password,std::string Serial,std::string& ErrCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool reFiscalization(std::string OldPwd,std::string Password,std::string RNN,std::string RNM,std::string& ErrCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool LatestFiscalRecord(std::string& Clos,int& Rec, float& Total,float& VAT,std::string& Date); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FreeFieldsByFiscalMemory(long& Logical); //<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//**************************************************************
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> CPrinter <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool isOk(){ return cPort->bOpen; };
|
||||
bool CashInOut(bool test, double sum) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> + <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -
|
||||
{
|
||||
float Amount=(float)sum; //10 <20><><EFBFBD><EFBFBD>
|
||||
std::string ExitCode;
|
||||
double CashSum;
|
||||
double ServIn;
|
||||
double ServOut;
|
||||
return ParishOrConsumption("1",Password,Amount,L"",L"",ExitCode,CashSum,ServIn,ServOut);
|
||||
};
|
||||
virtual bool GetCashSum(double& sum) //<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
{
|
||||
std::string ExitCode;
|
||||
double CashSum=0,ServIn=0,ServOut=0;
|
||||
bool b=ParishOrConsumption("1",Password,0.0,L"",L"",ExitCode,CashSum,ServIn,ServOut);
|
||||
|
||||
sum=CashSum;
|
||||
return b;
|
||||
};
|
||||
bool PrintZReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintXReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintLine(std::wstring line); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
274
devices/Printers/FP300KZ/__history/FP300KZ.h.~2~
Normal file
274
devices/Printers/FP300KZ/__history/FP300KZ.h.~2~
Normal file
@ -0,0 +1,274 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#ifndef PrinterH
|
||||
#define PrinterH
|
||||
//---------------------------------------------------------------------------
|
||||
#include "../Printer.h"
|
||||
#include "../../ComPort.h"
|
||||
#include <stdTools.h>
|
||||
#include <string>
|
||||
//---------------------------------------------------------------------------
|
||||
#define fcDisplayClear 0x21 //(33)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDispalyLower 0x23 //(35)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenServiceInv 0x26 //(38)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcCloseServiceInv 0x27 //(39)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcSwitchPrg 0x29 //(41)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintFreeTextInServiceInv 0x2A //(42)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcPrintSetup 0x2B //(43)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFeedPaper 0x2C //(44)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcCutPaper 0x2D //(45)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDispalyUpper 0x2F //(47)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenFiscalInv 0x30 //(48)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD>
|
||||
#define fcRegisterSale 0x31 //(49)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportOnTaxRates 0x32 //(50)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSubtotal 0x33 //(51)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcRegisterSaleDisp 0x34 //(52)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcTotal 0x35 //(53)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>)
|
||||
#define fcPrintFreeTextInFiscalInv 0x36 //(54)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcCloseFiscalInv 0x38 //(56)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcRegisterArticleSale 0x3A //(58)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcCancelFiscalInv 0x3C //(60)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcSetDateTime 0x3D //(61)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetDateTime 0x3E //(62)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDisplayDateTime 0x3F //(63)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcLatestFiscalRecord 0x40 //(64)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcAmountOfSavingsPerDay 0x41 //(65)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
#define fcDepartmentReport 0x42 //(66)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFreeFieldsByFiscalMemory 0x44 //(68)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDailyFinancialReport 0x45 //(69)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcParishOrConsumption 0x46 //(70)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintDiagnostic 0x47 //(71)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFiscalization 0x48 //(72)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFullFiscalReportByNumber 0x49 //(73)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcGetStatusFP 0x4A //(74)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFiscalTransactionsStatus 0x4C //(76)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReduceFiscalReportByDate 0x4F //(79)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcBeep 0x50 //(80)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenBackInv 0x52 //(82)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetTaxRates 0x53 //(83)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintBarCode 0x54 //(84)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>
|
||||
#define fcSetAddTypesOfPayment 0x55 //(85)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDateOfLastEntryByFiscalMemory 0x56 //(86)<29><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetDepartmentName 0x57 //(87)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetDepartmentInfo 0x58 //(88)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgProductionTestArea 0x59 //(89)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDiagnosticInfo 0x5A //(90)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetManufacturersSerialNumber 0x5B //(91)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFullFiscalReportByDate 0x5E //(94)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReduceFiscalReportByNumber 0x5F //(95)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcGetTaxRates 0x61 //(97)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetRNNAndRNM 0x62 //(98)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
#define fcGetRNNAndRNM 0x63 //(99)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
#define fcDispalyFree 0x64 //(100)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetOperatorPassword 0x65 //(101)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetOperatorName 0x66 //(102)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcInfoByCurrentInv 0x67 //(103)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcOperatorReport 0x69 //(105)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenCashDrawer 0x6A //(106)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgAndReadArticle 0x6B //(107)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintDuplicateInv 0x6D //(109)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcDailyReportByTypesOfPayment 0x6E //(110)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportByArticle 0x6F //(111)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportByOperators 0x70 //(112)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetLastPrintedDocNumber 0x71 //(113)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetInfoOfFiscalRecords 0x72 //(114)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgGraphicLogo 0x73 //(115)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReadFiscalMemoryBlock 0x74 //(116)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcEJ 0x78 //(120)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReadROMBlock 0x79 //(121)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>
|
||||
#define fcServiceClearEJ 0x7E //(126)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcServiceClearRAM 0x7F //(127)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
//---------------------------------------------------------------------------
|
||||
unsigned int MakeCRC(unsigned char* Buf, unsigned int BufStart,unsigned int BufLen);
|
||||
//---------------------------------------------------------------------------
|
||||
typedef char int1;
|
||||
typedef unsigned char uint1;
|
||||
typedef unsigned int uint4;
|
||||
#if !defined( _BORLAND )
|
||||
// typedef unsigned short Word; // 0..65535
|
||||
#endif
|
||||
typedef unsigned char BYTE;
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 6 <20><><EFBFBD><EFBFBD>
|
||||
class MyStatus
|
||||
{
|
||||
private:
|
||||
protected:
|
||||
public:
|
||||
bool s[6][8];
|
||||
MyStatus();
|
||||
void SetStatus(uint1* status);
|
||||
std::string getStatus(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
class FP300KZ : public CPrinter
|
||||
{
|
||||
private:
|
||||
unsigned char ReadAr[255]; ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned char FrameSeqNumber; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned char CommandName; ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
uint1 getNextSeq();
|
||||
bool Sw1,Sw2,Sw3,Sw4,Sw5,Sw6,Sw7,Sw8; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DiagnosticInfo
|
||||
bool m_SaveLog; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
protected:
|
||||
std::string m_ErrCode; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
public:
|
||||
std::string PrinterName; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string PrinterVersion; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string PrinterNumber; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
// int PrinterDecimal; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GetTaxRates) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> m_Dots
|
||||
//int iResultCode; ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
int CheckCount; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string Password; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
ComPort* cPort;
|
||||
MyStatus* Status;
|
||||
FP300KZ();
|
||||
virtual ~FP300KZ();
|
||||
|
||||
bool PrinterInit(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
std::string getErrorDesc(int rc);
|
||||
std::string getLastErrorDest();
|
||||
int ResultCode(); //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool SendPMessage(uint1* msg,uint1 size,std::string& answer);
|
||||
bool OpenCOMPort(int ComNumber = -1,int BaudRate = -1); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> COM <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool Print(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void LoadSetup(); ///<Load COM port and speed
|
||||
void SaveSetup(); ///<Save COM port and speed
|
||||
void Init(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int getComSpeed(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setComSpeed(int Speed); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool CutPaper(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool GetStatusFP(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 4A
|
||||
void NewLine(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void Push(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ???
|
||||
bool FeedPaper(int cnt); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool OpenCashDrawer(int mSec = 0); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetDepartmentName(int dept,std::wstring line1,std::wstring line2); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
bool GetDepartmentInfo(int dept,int &RecSales,float &RecSum,int &TotSales,float &TotSum,std::wstring &Line1,std::wstring &Line2); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool DiagnosticInfo(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetManufacturersSerialNumber(std::string Serial);
|
||||
bool GetLastPrintedDocNumber(int& num); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD>
|
||||
bool CancelFiscalInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool PrintDuplicateInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool OpenServiceInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool CloseServiceInv(int& count); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool OpenFiscalInv(int OpCode,std::string OpPwd,int TillNmb); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD>
|
||||
bool CloseFiscalInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool OpenBackInv(int OpCode,std::string OpPwd,int TillNmb); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool RegisterSale(std::wstring L1,std::wstring L2,int dep,std::string TaxCd,double Price,double Qwan, bool Abs, double Perc); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool RegisterSaleDisp(std::string L1,int dep,std::string TaxCd,std::string Price); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FiscalTransactionsStatus(bool& Open,int& Items,double& Amount,double& Tender); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SessionSec(int& sec); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool PrintBarCode(int Type,std::string Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// std::string PrintSetup(std::string Item, std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintSetup(std::string Item, std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getPrintLogo(bool& Enable,int& Height); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setPrintLogo(bool Enable,int Height); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool PrintFreeTextInServiceInv(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 48 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintFreeTextInFiscalInv(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool Subtotal(std::string Print, std::string Display, bool Abs, double Perc,double& Sum); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool Total(std::string Line1,std::string Line2,std::string PaidMode,double Amount,double& Change); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>)
|
||||
bool ParishOrConsumption(std::string Oper,std::string Password,double Amount,std::wstring strH,std::wstring strF,std::string& ExitCode,double& CashSum,double& ServIn,double& ServOut); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetAddTypesOfPayment(char Option, std::wstring& Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DepartmentReport();
|
||||
bool AmountOfSavingsPerDay(double& TaxA,double& TaxB,double& TaxC,double& TaxD,double& TaxE); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
bool FullFiscalReportByDate(std::string Password,std::string Receipts,std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReduceFiscalReportByDate(std::string Password,std::string Receipts,std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FullFiscalReportByNumber(std::string Password,std::string Receipts,int Start,int End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool ReduceFiscalReportByNumber(std::string Password,std::string Receipts,int Start,int End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool DailyFinancialReport(uint1 Option); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool OperatorReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintDiagnostic(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DailyReportByTypesOfPayment(std::string& Cash,std::string& Credit,std::string& Debit,std::string& Cheque,std::string& Pay1,std::string& Pay2,std::string& Pay3,std::string& Pay4,std::string& Closure,std::string& Receipt); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReportByArticle(std::string Option); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReportOnTaxRates(std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool GetRNNAndRNM(std::string &RNN,std::string &RNM); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool SetRNNAndRNM(std::string RNN,std::string RNM); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool SetOperatorPassword(std::string OpCode,std::string OldPwd,std::string NewPwd); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetOperatorName(std::string OpCode,std::string Pwd,std::string OpName); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetDateTime(std::string date,std::string time); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool GetDateTime(unsigned short& De,unsigned short& Me,unsigned short& Ye,unsigned short& Ho,unsigned short& Mi,unsigned short& Se); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool SwitchPrg(bool update); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getSmallEJ(bool& val); ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool setSmallEJ(bool val); ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool getDisplayTransparent(bool& val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setDisplayTransparent(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getDisplayWin1251(bool& val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Windows 1251
|
||||
bool setDisplayWin1251(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Windows 1251
|
||||
|
||||
/* bool getAutoCut(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setAutoCut(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
*/
|
||||
bool Beep(int Hz = 0, int mSec = 0); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DisplayClear(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DispalyLower(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DispalyUpper(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DispalyFree(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool EJ(std::string Cmd); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintEJ();
|
||||
|
||||
bool GetTaxRates(std::string &Decimals,std::string &Rounding,bool& bA,bool& bB,bool& bC,bool& bD, std::string &TaxA, std::string &TaxB, std::string &TaxC, std::string &TaxD); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetTaxRates(int Decimal, std::string Rounding, std::string TaxA, std::string TaxB, std::string TaxC, std::string TaxD); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int GetState();
|
||||
std::string GetStatusDescription(BYTE StatusCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrgGraphicLogo(int RowNum, std::string Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getGraphicLogo(int RowNum, std::string &Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool Fiscalization(std::string Password,std::string Serial,std::string& ErrCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool reFiscalization(std::string OldPwd,std::string Password,std::string RNN,std::string RNM,std::string& ErrCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool LatestFiscalRecord(std::string& Clos,int& Rec, float& Total,float& VAT,std::string& Date); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FreeFieldsByFiscalMemory(long& Logical); //<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//**************************************************************
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> CPrinter <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool isOk(){ return cPort->bOpen; };
|
||||
bool CashInOut(bool test, double sum) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> + <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -
|
||||
{
|
||||
float Amount=(float)sum; //10 <20><><EFBFBD><EFBFBD>
|
||||
std::string ExitCode;
|
||||
double CashSum;
|
||||
double ServIn;
|
||||
double ServOut;
|
||||
return ParishOrConsumption("1",Password,Amount,L"",L"",ExitCode,CashSum,ServIn,ServOut);
|
||||
};
|
||||
virtual bool GetCashSum(double& sum) //<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
{
|
||||
std::string ExitCode;
|
||||
double CashSum=0,ServIn=0,ServOut=0;
|
||||
bool b=ParishOrConsumption("1",Password,0.0,L"",L"",ExitCode,CashSum,ServIn,ServOut);
|
||||
|
||||
sum=CashSum;
|
||||
return b;
|
||||
};
|
||||
bool PrintZReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintXReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintLine(std::wstring line); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
278
devices/Printers/FP300KZ/__history/FP300KZ.h.~3~
Normal file
278
devices/Printers/FP300KZ/__history/FP300KZ.h.~3~
Normal file
@ -0,0 +1,278 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#ifndef PrinterH
|
||||
#define PrinterH
|
||||
//---------------------------------------------------------------------------
|
||||
#include "../Printer.h"
|
||||
#include "../../ComPort.h"
|
||||
#include <stdTools.h>
|
||||
#include <string>
|
||||
//---------------------------------------------------------------------------
|
||||
#define fcDisplayClear 0x21 //(33)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDispalyLower 0x23 //(35)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenServiceInv 0x26 //(38)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcCloseServiceInv 0x27 //(39)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcSwitchPrg 0x29 //(41)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintFreeTextInServiceInv 0x2A //(42)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcPrintSetup 0x2B //(43)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFeedPaper 0x2C //(44)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcCutPaper 0x2D //(45)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDispalyUpper 0x2F //(47)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenFiscalInv 0x30 //(48)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD>
|
||||
#define fcRegisterSale 0x31 //(49)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportOnTaxRates 0x32 //(50)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSubtotal 0x33 //(51)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcRegisterSaleDisp 0x34 //(52)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcTotal 0x35 //(53)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>)
|
||||
#define fcPrintFreeTextInFiscalInv 0x36 //(54)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcCloseFiscalInv 0x38 //(56)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcRegisterArticleSale 0x3A //(58)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcCancelFiscalInv 0x3C //(60)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcSetDateTime 0x3D //(61)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetDateTime 0x3E //(62)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDisplayDateTime 0x3F //(63)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcLatestFiscalRecord 0x40 //(64)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcAmountOfSavingsPerDay 0x41 //(65)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
#define fcDepartmentReport 0x42 //(66)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFreeFieldsByFiscalMemory 0x44 //(68)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDailyFinancialReport 0x45 //(69)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcParishOrConsumption 0x46 //(70)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintDiagnostic 0x47 //(71)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFiscalization 0x48 //(72)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFullFiscalReportByNumber 0x49 //(73)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcGetStatusFP 0x4A //(74)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFiscalTransactionsStatus 0x4C //(76)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReduceFiscalReportByDate 0x4F //(79)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcBeep 0x50 //(80)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenBackInv 0x52 //(82)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetTaxRates 0x53 //(83)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintBarCode 0x54 //(84)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>
|
||||
#define fcSetAddTypesOfPayment 0x55 //(85)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDateOfLastEntryByFiscalMemory 0x56 //(86)<29><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetDepartmentName 0x57 //(87)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetDepartmentInfo 0x58 //(88)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgProductionTestArea 0x59 //(89)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDiagnosticInfo 0x5A //(90)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetManufacturersSerialNumber 0x5B //(91)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFullFiscalReportByDate 0x5E //(94)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReduceFiscalReportByNumber 0x5F //(95)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcGetTaxRates 0x61 //(97)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetRNNAndRNM 0x62 //(98)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
#define fcGetRNNAndRNM 0x63 //(99)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
#define fcDispalyFree 0x64 //(100)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetOperatorPassword 0x65 //(101)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetOperatorName 0x66 //(102)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcInfoByCurrentInv 0x67 //(103)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcOperatorReport 0x69 //(105)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenCashDrawer 0x6A //(106)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgAndReadArticle 0x6B //(107)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintDuplicateInv 0x6D //(109)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcDailyReportByTypesOfPayment 0x6E //(110)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportByArticle 0x6F //(111)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportByOperators 0x70 //(112)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetLastPrintedDocNumber 0x71 //(113)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetInfoOfFiscalRecords 0x72 //(114)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgGraphicLogo 0x73 //(115)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReadFiscalMemoryBlock 0x74 //(116)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintEJ 0x78 //(119) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcEJ 0x78 //(120)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReadROMBlock 0x79 //(121)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>
|
||||
#define fcServiceClearEJ 0x7E //(126)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcServiceClearRAM 0x7F //(127)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
//---------------------------------------------------------------------------
|
||||
unsigned int MakeCRC(unsigned char* Buf, unsigned int BufStart,unsigned int BufLen);
|
||||
//---------------------------------------------------------------------------
|
||||
typedef char int1;
|
||||
typedef unsigned char uint1;
|
||||
typedef unsigned int uint4;
|
||||
#if !defined( _BORLAND )
|
||||
// typedef unsigned short Word; // 0..65535
|
||||
#endif
|
||||
typedef unsigned char BYTE;
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 6 <20><><EFBFBD><EFBFBD>
|
||||
class MyStatus
|
||||
{
|
||||
private:
|
||||
protected:
|
||||
public:
|
||||
bool s[6][8];
|
||||
MyStatus();
|
||||
void SetStatus(uint1* status);
|
||||
std::string getStatus(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
class FP300KZ : public CPrinter
|
||||
{
|
||||
private:
|
||||
unsigned char ReadAr[255]; ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned char FrameSeqNumber; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned char CommandName; ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
uint1 getNextSeq();
|
||||
bool Sw1,Sw2,Sw3,Sw4,Sw5,Sw6,Sw7,Sw8; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DiagnosticInfo
|
||||
bool m_SaveLog; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
protected:
|
||||
std::string m_ErrCode; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
public:
|
||||
std::string PrinterName; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string PrinterVersion; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string PrinterNumber; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
// int PrinterDecimal; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GetTaxRates) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> m_Dots
|
||||
//int iResultCode; ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
int CheckCount; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string Password; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
ComPort* cPort;
|
||||
MyStatus* Status;
|
||||
FP300KZ();
|
||||
virtual ~FP300KZ();
|
||||
|
||||
bool PrinterInit(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
std::string getErrorDesc(int rc);
|
||||
std::string getLastErrorDest();
|
||||
int ResultCode(); //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool SendPMessage(uint1* msg,uint1 size,std::string& answer);
|
||||
bool OpenCOMPort(int ComNumber = -1,int BaudRate = -1); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> COM <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool Print(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void LoadSetup(); ///<Load COM port and speed
|
||||
void SaveSetup(); ///<Save COM port and speed
|
||||
void Init(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int getComSpeed(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setComSpeed(int Speed); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool CutPaper(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool GetStatusFP(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 4A
|
||||
void NewLine(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void Push(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ???
|
||||
bool FeedPaper(int cnt); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool OpenCashDrawer(int mSec = 0); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetDepartmentName(int dept,std::wstring line1,std::wstring line2); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
bool GetDepartmentInfo(int dept,int &RecSales,float &RecSum,int &TotSales,float &TotSum,std::wstring &Line1,std::wstring &Line2); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool DiagnosticInfo(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetManufacturersSerialNumber(std::string Serial);
|
||||
bool GetLastPrintedDocNumber(int& num); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD>
|
||||
bool CancelFiscalInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool PrintDuplicateInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool OpenServiceInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool CloseServiceInv(int& count); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool OpenFiscalInv(int OpCode,std::string OpPwd,int TillNmb); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD>
|
||||
bool CloseFiscalInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool OpenBackInv(int OpCode,std::string OpPwd,int TillNmb); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool RegisterSale(std::wstring L1,std::wstring L2,int dep,std::string TaxCd,double Price,double Qwan, bool Abs, double Perc); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool RegisterSaleDisp(std::string L1,int dep,std::string TaxCd,std::string Price); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FiscalTransactionsStatus(bool& Open,int& Items,double& Amount,double& Tender); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SessionSec(int& sec); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool PrintBarCode(int Type,std::string Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// std::string PrintSetup(std::string Item, std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintSetup(std::string Item, std::string Text, std::string& Answer); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getPrintLogo(bool& Enable,int& Height); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setPrintLogo(bool Enable,int Height); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool PrintFreeTextInServiceInv(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 48 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintFreeTextInFiscalInv(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool Subtotal(std::string Print, std::string Display, bool Abs, double Perc,double& Sum); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool Total(std::string Line1,std::string Line2,std::string PaidMode,double Amount,double& Change); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>)
|
||||
bool ParishOrConsumption(std::string Oper,std::string Password,double Amount,std::wstring strH,std::wstring strF,std::string& ExitCode,double& CashSum,double& ServIn,double& ServOut); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetAddTypesOfPayment(char Option, std::wstring& Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DepartmentReport();
|
||||
bool AmountOfSavingsPerDay(double& TaxA,double& TaxB,double& TaxC,double& TaxD,double& TaxE); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
bool FullFiscalReportByDate(std::string Password,std::string Receipts,std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReduceFiscalReportByDate(std::string Password,std::string Receipts,std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FullFiscalReportByNumber(std::string Password,std::string Receipts,int Start,int End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool ReduceFiscalReportByNumber(std::string Password,std::string Receipts,int Start,int End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool DailyFinancialReport(uint1 Option); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool OperatorReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintDiagnostic(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DailyReportByTypesOfPayment(std::string& Cash,std::string& Credit,std::string& Debit,std::string& Cheque,std::string& Pay1,std::string& Pay2,std::string& Pay3,std::string& Pay4,std::string& Closure,std::string& Receipt); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReportByArticle(std::string Option); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReportOnTaxRates(std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool GetRNNAndRNM(std::string &RNN,std::string &RNM); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool SetRNNAndRNM(std::string RNN,std::string RNM); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool SetOperatorPassword(std::string OpCode,std::string OldPwd,std::string NewPwd); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetOperatorName(std::string OpCode,std::string Pwd,std::string OpName); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetDateTime(std::string date,std::string time); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool GetDateTime(unsigned short& De,unsigned short& Me,unsigned short& Ye,unsigned short& Ho,unsigned short& Mi,unsigned short& Se); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool SwitchPrg(bool update); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getSmallEJ(bool& val); ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool setSmallEJ(bool val); ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool getDisplayTransparent(bool& val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setDisplayTransparent(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getDisplayWin1251(bool& val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Windows 1251
|
||||
bool setDisplayWin1251(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Windows 1251
|
||||
|
||||
/* bool getAutoCut(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setAutoCut(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
*/
|
||||
bool Beep(int Hz = 0, int mSec = 0); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DisplayClear(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DispalyLower(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DispalyUpper(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DispalyFree(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool EJ(std::string Cmd); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintEJ();
|
||||
#define fcPrintEJ 0x78 //(119) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ServiceClearEJ(); ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ServiceClearRAM(); ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
|
||||
bool GetTaxRates(std::string &Decimals,std::string &Rounding,bool& bA,bool& bB,bool& bC,bool& bD, std::string &TaxA, std::string &TaxB, std::string &TaxC, std::string &TaxD); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetTaxRates(int Decimal, std::string Rounding, std::string TaxA, std::string TaxB, std::string TaxC, std::string TaxD); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int GetState();
|
||||
std::string GetStatusDescription(BYTE StatusCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrgGraphicLogo(int RowNum, std::string Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getGraphicLogo(int RowNum, std::string &Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool Fiscalization(std::string Password,std::string Serial,std::string& ErrCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool reFiscalization(std::string OldPwd,std::string Password,std::string RNN,std::string RNM,std::string& ErrCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool LatestFiscalRecord(std::string& Clos,int& Rec, float& Total,float& VAT,std::string& Date); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FreeFieldsByFiscalMemory(long& Logical); //<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//**************************************************************
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> CPrinter <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool isOk(){ return cPort->bOpen; };
|
||||
bool CashInOut(bool test, double sum) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> + <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -
|
||||
{
|
||||
float Amount=(float)sum; //10 <20><><EFBFBD><EFBFBD>
|
||||
std::string ExitCode;
|
||||
double CashSum;
|
||||
double ServIn;
|
||||
double ServOut;
|
||||
return ParishOrConsumption("1",Password,Amount,L"",L"",ExitCode,CashSum,ServIn,ServOut);
|
||||
};
|
||||
virtual bool GetCashSum(double& sum) //<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
{
|
||||
std::string ExitCode;
|
||||
double CashSum=0,ServIn=0,ServOut=0;
|
||||
bool b=ParishOrConsumption("1",Password,0.0,L"",L"",ExitCode,CashSum,ServIn,ServOut);
|
||||
|
||||
sum=CashSum;
|
||||
return b;
|
||||
};
|
||||
bool PrintZReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintXReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintLine(std::wstring line); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
278
devices/Printers/FP300KZ/__history/FP300KZ.h.~4~
Normal file
278
devices/Printers/FP300KZ/__history/FP300KZ.h.~4~
Normal file
@ -0,0 +1,278 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#ifndef PrinterH
|
||||
#define PrinterH
|
||||
//---------------------------------------------------------------------------
|
||||
#include "../Printer.h"
|
||||
#include "../../ComPort.h"
|
||||
#include <stdTools.h>
|
||||
#include <string>
|
||||
//---------------------------------------------------------------------------
|
||||
#define fcDisplayClear 0x21 //(33)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDispalyLower 0x23 //(35)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenServiceInv 0x26 //(38)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcCloseServiceInv 0x27 //(39)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcSwitchPrg 0x29 //(41)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintFreeTextInServiceInv 0x2A //(42)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcPrintSetup 0x2B //(43)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFeedPaper 0x2C //(44)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcCutPaper 0x2D //(45)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDispalyUpper 0x2F //(47)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenFiscalInv 0x30 //(48)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD>
|
||||
#define fcRegisterSale 0x31 //(49)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportOnTaxRates 0x32 //(50)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSubtotal 0x33 //(51)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcRegisterSaleDisp 0x34 //(52)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcTotal 0x35 //(53)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>)
|
||||
#define fcPrintFreeTextInFiscalInv 0x36 //(54)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcCloseFiscalInv 0x38 //(56)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcRegisterArticleSale 0x3A //(58)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcCancelFiscalInv 0x3C //(60)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcSetDateTime 0x3D //(61)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetDateTime 0x3E //(62)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDisplayDateTime 0x3F //(63)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcLatestFiscalRecord 0x40 //(64)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcAmountOfSavingsPerDay 0x41 //(65)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
#define fcDepartmentReport 0x42 //(66)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFreeFieldsByFiscalMemory 0x44 //(68)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDailyFinancialReport 0x45 //(69)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcParishOrConsumption 0x46 //(70)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintDiagnostic 0x47 //(71)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFiscalization 0x48 //(72)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFullFiscalReportByNumber 0x49 //(73)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcGetStatusFP 0x4A //(74)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFiscalTransactionsStatus 0x4C //(76)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReduceFiscalReportByDate 0x4F //(79)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcBeep 0x50 //(80)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenBackInv 0x52 //(82)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetTaxRates 0x53 //(83)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintBarCode 0x54 //(84)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>
|
||||
#define fcSetAddTypesOfPayment 0x55 //(85)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDateOfLastEntryByFiscalMemory 0x56 //(86)<29><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetDepartmentName 0x57 //(87)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetDepartmentInfo 0x58 //(88)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgProductionTestArea 0x59 //(89)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDiagnosticInfo 0x5A //(90)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetManufacturersSerialNumber 0x5B //(91)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFullFiscalReportByDate 0x5E //(94)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReduceFiscalReportByNumber 0x5F //(95)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcGetTaxRates 0x61 //(97)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetRNNAndRNM 0x62 //(98)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
#define fcGetRNNAndRNM 0x63 //(99)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
#define fcDispalyFree 0x64 //(100)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetOperatorPassword 0x65 //(101)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetOperatorName 0x66 //(102)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcInfoByCurrentInv 0x67 //(103)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcOperatorReport 0x69 //(105)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenCashDrawer 0x6A //(106)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgAndReadArticle 0x6B //(107)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintDuplicateInv 0x6D //(109)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcDailyReportByTypesOfPayment 0x6E //(110)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportByArticle 0x6F //(111)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportByOperators 0x70 //(112)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetLastPrintedDocNumber 0x71 //(113)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetInfoOfFiscalRecords 0x72 //(114)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgGraphicLogo 0x73 //(115)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReadFiscalMemoryBlock 0x74 //(116)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintEJ 0x78 //(119) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcEJ 0x78 //(120)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReadROMBlock 0x79 //(121)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>
|
||||
#define fcServiceClearEJ 0x7E //(126)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcServiceClearRAM 0x7F //(127)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
//---------------------------------------------------------------------------
|
||||
unsigned int MakeCRC(unsigned char* Buf, unsigned int BufStart,unsigned int BufLen);
|
||||
//---------------------------------------------------------------------------
|
||||
typedef char int1;
|
||||
typedef unsigned char uint1;
|
||||
typedef unsigned int uint4;
|
||||
#if !defined( _BORLAND )
|
||||
// typedef unsigned short Word; // 0..65535
|
||||
#endif
|
||||
typedef unsigned char BYTE;
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 6 <20><><EFBFBD><EFBFBD>
|
||||
class MyStatus
|
||||
{
|
||||
private:
|
||||
protected:
|
||||
public:
|
||||
bool s[6][8];
|
||||
MyStatus();
|
||||
void SetStatus(uint1* status);
|
||||
std::string getStatus(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
class FP300KZ : public CPrinter
|
||||
{
|
||||
private:
|
||||
unsigned char ReadAr[255]; ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned char FrameSeqNumber; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned char CommandName; ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
uint1 getNextSeq();
|
||||
bool Sw1,Sw2,Sw3,Sw4,Sw5,Sw6,Sw7,Sw8; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DiagnosticInfo
|
||||
bool m_SaveLog; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
protected:
|
||||
std::string m_ErrCode; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
public:
|
||||
std::string PrinterName; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string PrinterVersion; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string PrinterNumber; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
// int PrinterDecimal; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GetTaxRates) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> m_Dots
|
||||
//int iResultCode; ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
int CheckCount; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string Password; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
ComPort* cPort;
|
||||
MyStatus* Status;
|
||||
FP300KZ();
|
||||
virtual ~FP300KZ();
|
||||
|
||||
bool PrinterInit(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
std::string getErrorDesc(int rc);
|
||||
std::string getLastErrorDest();
|
||||
int ResultCode(); //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool SendPMessage(uint1* msg,uint1 size,std::string& answer);
|
||||
bool OpenCOMPort(int ComNumber = -1,int BaudRate = -1); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> COM <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool Print(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void LoadSetup(); ///<Load COM port and speed
|
||||
void SaveSetup(); ///<Save COM port and speed
|
||||
void Init(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int getComSpeed(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setComSpeed(int Speed); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool CutPaper(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool GetStatusFP(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 4A
|
||||
void NewLine(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void Push(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ???
|
||||
bool FeedPaper(int cnt); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool OpenCashDrawer(int mSec = 0); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetDepartmentName(int dept,std::wstring line1,std::wstring line2); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
bool GetDepartmentInfo(int dept,int &RecSales,float &RecSum,int &TotSales,float &TotSum,std::wstring &Line1,std::wstring &Line2); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool DiagnosticInfo(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetManufacturersSerialNumber(std::string Serial);
|
||||
bool GetLastPrintedDocNumber(int& num); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD>
|
||||
bool CancelFiscalInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool PrintDuplicateInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool OpenServiceInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool CloseServiceInv(int& count); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool OpenFiscalInv(int OpCode,std::string OpPwd,int TillNmb); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD>
|
||||
bool CloseFiscalInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool OpenBackInv(int OpCode,std::string OpPwd,int TillNmb); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool RegisterSale(std::wstring L1,std::wstring L2,int dep,std::string TaxCd,double Price,double Qwan, bool Abs, double Perc); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool RegisterSaleDisp(std::string L1,int dep,std::string TaxCd,std::string Price); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FiscalTransactionsStatus(bool& Open,int& Items,double& Amount,double& Tender); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SessionSec(int& sec); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool PrintBarCode(int Type,std::string Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// std::string PrintSetup(std::string Item, std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintSetup(std::string Item, std::string Text, std::string& Answer); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getPrintLogo(bool& Enable,int& Height); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setPrintLogo(bool Enable,int Height); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool PrintFreeTextInServiceInv(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 48 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintFreeTextInFiscalInv(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool Subtotal(std::string Print, std::string Display, bool Abs, double Perc,double& Sum); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool Total(std::string Line1,std::string Line2,std::string PaidMode,double Amount,double& Change); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>)
|
||||
bool ParishOrConsumption(std::string Oper,std::string Password,double Amount,std::wstring strH,std::wstring strF,std::string& ExitCode,double& CashSum,double& ServIn,double& ServOut); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetAddTypesOfPayment(char Option, std::wstring& Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DepartmentReport();
|
||||
bool AmountOfSavingsPerDay(double& TaxA,double& TaxB,double& TaxC,double& TaxD,double& TaxE); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
bool FullFiscalReportByDate(std::string Password,std::string Receipts,std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReduceFiscalReportByDate(std::string Password,std::string Receipts,std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FullFiscalReportByNumber(std::string Password,std::string Receipts,int Start,int End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool ReduceFiscalReportByNumber(std::string Password,std::string Receipts,int Start,int End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool DailyFinancialReport(uint1 Option); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool OperatorReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintDiagnostic(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DailyReportByTypesOfPayment(std::string& Cash,std::string& Credit,std::string& Debit,std::string& Cheque,std::string& Pay1,std::string& Pay2,std::string& Pay3,std::string& Pay4,std::string& Closure,std::string& Receipt); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReportByArticle(std::string Option); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReportOnTaxRates(std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool GetRNNAndRNM(std::string &RNN,std::string &RNM); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool SetRNNAndRNM(std::string RNN,std::string RNM); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool SetOperatorPassword(std::string OpCode,std::string OldPwd,std::string NewPwd); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetOperatorName(std::string OpCode,std::string Pwd,std::string OpName); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetDateTime(std::string date,std::string time); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool GetDateTime(unsigned short& De,unsigned short& Me,unsigned short& Ye,unsigned short& Ho,unsigned short& Mi,unsigned short& Se); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool SwitchPrg(bool update); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getSmallEJ(bool& val); ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool setSmallEJ(bool val); ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool getDisplayTransparent(bool& val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setDisplayTransparent(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getDisplayWin1251(bool& val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Windows 1251
|
||||
bool setDisplayWin1251(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Windows 1251
|
||||
|
||||
/* bool getAutoCut(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setAutoCut(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
*/
|
||||
bool Beep(int Hz = 0, int mSec = 0); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DisplayClear(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DispalyLower(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DispalyUpper(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DispalyFree(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool EJ(std::string Cmd); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintEJ();
|
||||
#define fcPrintEJ 0x78 //(119) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ServiceClearEJ(); ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ServiceClearRAM(); ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
|
||||
bool GetTaxRates(std::string &Decimals,std::string &Rounding,bool& bA,bool& bB,bool& bC,bool& bD, std::string &TaxA, std::string &TaxB, std::string &TaxC, std::string &TaxD); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetTaxRates(int Decimal, std::string Rounding, std::string TaxA, std::string TaxB, std::string TaxC, std::string TaxD); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int GetState();
|
||||
std::string GetStatusDescription(BYTE StatusCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrgGraphicLogo(int RowNum, std::string Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getGraphicLogo(int RowNum, std::string &Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool Fiscalization(std::string Password,std::string Serial,std::string& ErrCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool reFiscalization(std::string OldPwd,std::string Password,std::string RNN,std::string RNM,std::string& ErrCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool LatestFiscalRecord(std::string& Clos,int& Rec, float& Total,float& VAT,std::string& Date); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FreeFieldsByFiscalMemory(long& Logical); //<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//**************************************************************
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> CPrinter <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool isOk(){ return cPort->bOpen; };
|
||||
bool CashInOut(bool test, double sum) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> + <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -
|
||||
{
|
||||
float Amount=(float)sum; //10 <20><><EFBFBD><EFBFBD>
|
||||
std::string ExitCode;
|
||||
double CashSum;
|
||||
double ServIn;
|
||||
double ServOut;
|
||||
return ParishOrConsumption("1",Password,Amount,L"",L"",ExitCode,CashSum,ServIn,ServOut);
|
||||
};
|
||||
virtual bool GetCashSum(double& sum) //<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
{
|
||||
std::string ExitCode;
|
||||
double CashSum=0,ServIn=0,ServOut=0;
|
||||
bool b=ParishOrConsumption("1",Password,0.0,L"",L"",ExitCode,CashSum,ServIn,ServOut);
|
||||
|
||||
sum=CashSum;
|
||||
return b;
|
||||
};
|
||||
bool PrintZReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintXReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintLine(std::wstring line); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
279
devices/Printers/FP300KZ/__history/FP300KZ.h.~5~
Normal file
279
devices/Printers/FP300KZ/__history/FP300KZ.h.~5~
Normal file
@ -0,0 +1,279 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#ifndef PrinterH
|
||||
#define PrinterH
|
||||
//---------------------------------------------------------------------------
|
||||
#include "../Printer.h"
|
||||
#include "../../ComPort.h"
|
||||
#include <stdTools.h>
|
||||
#include <string>
|
||||
//---------------------------------------------------------------------------
|
||||
#define fcDisplayClear 0x21 //(33)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDispalyLower 0x23 //(35)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenServiceInv 0x26 //(38)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcCloseServiceInv 0x27 //(39)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcSwitchPrg 0x29 //(41)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintFreeTextInServiceInv 0x2A //(42)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcPrintSetup 0x2B //(43)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFeedPaper 0x2C //(44)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcCutPaper 0x2D //(45)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDispalyUpper 0x2F //(47)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenFiscalInv 0x30 //(48)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD>
|
||||
#define fcRegisterSale 0x31 //(49)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportOnTaxRates 0x32 //(50)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSubtotal 0x33 //(51)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcRegisterSaleDisp 0x34 //(52)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcTotal 0x35 //(53)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>)
|
||||
#define fcPrintFreeTextInFiscalInv 0x36 //(54)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcCloseFiscalInv 0x38 //(56)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcRegisterArticleSale 0x3A //(58)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcCancelFiscalInv 0x3C //(60)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcSetDateTime 0x3D //(61)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetDateTime 0x3E //(62)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDisplayDateTime 0x3F //(63)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcLatestFiscalRecord 0x40 //(64)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcAmountOfSavingsPerDay 0x41 //(65)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
#define fcDepartmentReport 0x42 //(66)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFreeFieldsByFiscalMemory 0x44 //(68)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDailyFinancialReport 0x45 //(69)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcParishOrConsumption 0x46 //(70)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintDiagnostic 0x47 //(71)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFiscalization 0x48 //(72)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFullFiscalReportByNumber 0x49 //(73)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcGetStatusFP 0x4A //(74)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFiscalTransactionsStatus 0x4C //(76)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReduceFiscalReportByDate 0x4F //(79)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcBeep 0x50 //(80)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenBackInv 0x52 //(82)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetTaxRates 0x53 //(83)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintBarCode 0x54 //(84)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>
|
||||
#define fcSetAddTypesOfPayment 0x55 //(85)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDateOfLastEntryByFiscalMemory 0x56 //(86)<29><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetDepartmentName 0x57 //(87)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetDepartmentInfo 0x58 //(88)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgProductionTestArea 0x59 //(89)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDiagnosticInfo 0x5A //(90)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetManufacturersSerialNumber 0x5B //(91)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFullFiscalReportByDate 0x5E //(94)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReduceFiscalReportByNumber 0x5F //(95)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcGetTaxRates 0x61 //(97)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetRNNAndRNM 0x62 //(98)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
#define fcGetRNNAndRNM 0x63 //(99)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
#define fcDispalyFree 0x64 //(100)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetOperatorPassword 0x65 //(101)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetOperatorName 0x66 //(102)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcInfoByCurrentInv 0x67 //(103)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcOperatorReport 0x69 //(105)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenCashDrawer 0x6A //(106)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgAndReadArticle 0x6B //(107)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintDuplicateInv 0x6D //(109)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcDailyReportByTypesOfPayment 0x6E //(110)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportByArticle 0x6F //(111)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportByOperators 0x70 //(112)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetLastPrintedDocNumber 0x71 //(113)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetInfoOfFiscalRecords 0x72 //(114)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgGraphicLogo 0x73 //(115)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReadFiscalMemoryBlock 0x74 //(116)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintEJ 0x78 //(119) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcEJ 0x78 //(120)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//#define fcPrintEJ 0x78 //(119) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReadROMBlock 0x79 //(121)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>
|
||||
#define fcServiceClearEJ 0x7E //(126)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcServiceClearRAM 0x7F //(127)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
//---------------------------------------------------------------------------
|
||||
unsigned int MakeCRC(unsigned char* Buf, unsigned int BufStart,unsigned int BufLen);
|
||||
//---------------------------------------------------------------------------
|
||||
typedef char int1;
|
||||
typedef unsigned char uint1;
|
||||
typedef unsigned int uint4;
|
||||
#if !defined( _BORLAND )
|
||||
// typedef unsigned short Word; // 0..65535
|
||||
#endif
|
||||
typedef unsigned char BYTE;
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 6 <20><><EFBFBD><EFBFBD>
|
||||
class MyStatus
|
||||
{
|
||||
private:
|
||||
protected:
|
||||
public:
|
||||
bool s[6][8];
|
||||
MyStatus();
|
||||
void SetStatus(uint1* status);
|
||||
std::string getStatus(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
class FP300KZ : public CPrinter
|
||||
{
|
||||
private:
|
||||
unsigned char ReadAr[255]; ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned char FrameSeqNumber; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned char CommandName; ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
uint1 getNextSeq();
|
||||
bool Sw1,Sw2,Sw3,Sw4,Sw5,Sw6,Sw7,Sw8; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DiagnosticInfo
|
||||
bool m_SaveLog; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
protected:
|
||||
std::string m_ErrCode; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
public:
|
||||
std::string PrinterName; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string PrinterVersion; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string PrinterNumber; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
// int PrinterDecimal; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GetTaxRates) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> m_Dots
|
||||
//int iResultCode; ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
int CheckCount; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string Password; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
ComPort* cPort;
|
||||
MyStatus* Status;
|
||||
FP300KZ();
|
||||
virtual ~FP300KZ();
|
||||
|
||||
bool PrinterInit(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
std::string getErrorDesc(int rc);
|
||||
std::string getLastErrorDest();
|
||||
int ResultCode(); //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool SendPMessage(uint1* msg,uint1 size,std::string& answer);
|
||||
bool OpenCOMPort(int ComNumber = -1,int BaudRate = -1); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> COM <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool Print(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void LoadSetup(); ///<Load COM port and speed
|
||||
void SaveSetup(); ///<Save COM port and speed
|
||||
void Init(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int getComSpeed(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setComSpeed(int Speed); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool CutPaper(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool GetStatusFP(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 4A
|
||||
void NewLine(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void Push(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ???
|
||||
bool FeedPaper(int cnt); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool OpenCashDrawer(int mSec = 0); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetDepartmentName(int dept,std::wstring line1,std::wstring line2); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
bool GetDepartmentInfo(int dept,int &RecSales,float &RecSum,int &TotSales,float &TotSum,std::wstring &Line1,std::wstring &Line2); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool DiagnosticInfo(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetManufacturersSerialNumber(std::string Serial);
|
||||
bool GetLastPrintedDocNumber(int& num); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD>
|
||||
bool CancelFiscalInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool PrintDuplicateInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool OpenServiceInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool CloseServiceInv(int& count); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool OpenFiscalInv(int OpCode,std::string OpPwd,int TillNmb); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD>
|
||||
bool CloseFiscalInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool OpenBackInv(int OpCode,std::string OpPwd,int TillNmb); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool RegisterSale(std::wstring L1,std::wstring L2,int dep,std::string TaxCd,double Price,double Qwan, bool Abs, double Perc); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool RegisterSaleDisp(std::string L1,int dep,std::string TaxCd,std::string Price); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FiscalTransactionsStatus(bool& Open,int& Items,double& Amount,double& Tender); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SessionSec(int& sec); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool PrintBarCode(int Type,std::string Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// std::string PrintSetup(std::string Item, std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintSetup(std::string Item, std::string Text, std::string& Answer); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getPrintLogo(bool& Enable,int& Height); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setPrintLogo(bool Enable,int Height); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool PrintFreeTextInServiceInv(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 48 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintFreeTextInFiscalInv(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool Subtotal(std::string Print, std::string Display, bool Abs, double Perc,double& Sum); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool Total(std::string Line1,std::string Line2,std::string PaidMode,double Amount,double& Change); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>)
|
||||
bool ParishOrConsumption(std::string Oper,std::string Password,double Amount,std::wstring strH,std::wstring strF,std::string& ExitCode,double& CashSum,double& ServIn,double& ServOut); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetAddTypesOfPayment(char Option, std::wstring& Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DepartmentReport();
|
||||
bool AmountOfSavingsPerDay(double& TaxA,double& TaxB,double& TaxC,double& TaxD,double& TaxE); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
bool FullFiscalReportByDate(std::string Password,std::string Receipts,std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReduceFiscalReportByDate(std::string Password,std::string Receipts,std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FullFiscalReportByNumber(std::string Password,std::string Receipts,int Start,int End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool ReduceFiscalReportByNumber(std::string Password,std::string Receipts,int Start,int End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool DailyFinancialReport(uint1 Option); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool OperatorReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintDiagnostic(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DailyReportByTypesOfPayment(std::string& Cash,std::string& Credit,std::string& Debit,std::string& Cheque,std::string& Pay1,std::string& Pay2,std::string& Pay3,std::string& Pay4,std::string& Closure,std::string& Receipt); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReportByArticle(std::string Option); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReportOnTaxRates(std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool GetRNNAndRNM(std::string &RNN,std::string &RNM); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool SetRNNAndRNM(std::string RNN,std::string RNM); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool SetOperatorPassword(std::string OpCode,std::string OldPwd,std::string NewPwd); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetOperatorName(std::string OpCode,std::string Pwd,std::string OpName); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetDateTime(std::string date,std::string time); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool GetDateTime(unsigned short& De,unsigned short& Me,unsigned short& Ye,unsigned short& Ho,unsigned short& Mi,unsigned short& Se); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool SwitchPrg(bool update); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getSmallEJ(bool& val); ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool setSmallEJ(bool val); ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool getDisplayTransparent(bool& val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setDisplayTransparent(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getDisplayWin1251(bool& val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Windows 1251
|
||||
bool setDisplayWin1251(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Windows 1251
|
||||
|
||||
/* bool getAutoCut(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setAutoCut(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
*/
|
||||
bool Beep(int Hz = 0, int mSec = 0); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DisplayClear(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DispalyLower(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DispalyUpper(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DispalyFree(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool EJ(std::string Cmd); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintEJ();
|
||||
|
||||
bool ServiceClearEJ(); ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ServiceClearRAM(); ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
|
||||
bool GetTaxRates(std::string &Decimals,std::string &Rounding,bool& bA,bool& bB,bool& bC,bool& bD, std::string &TaxA, std::string &TaxB, std::string &TaxC, std::string &TaxD); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetTaxRates(int Decimal, std::string Rounding, std::string TaxA, std::string TaxB, std::string TaxC, std::string TaxD); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int GetState();
|
||||
std::string GetStatusDescription(BYTE StatusCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrgGraphicLogo(int RowNum, std::string Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getGraphicLogo(int RowNum, std::string &Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool Fiscalization(std::string Password,std::string Serial,std::string& ErrCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool reFiscalization(std::string OldPwd,std::string Password,std::string RNN,std::string RNM,std::string& ErrCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool LatestFiscalRecord(std::string& Clos,int& Rec, float& Total,float& VAT,std::string& Date); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FreeFieldsByFiscalMemory(long& Logical); //<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//**************************************************************
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> CPrinter <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool isOk(){ return cPort->bOpen; };
|
||||
bool CashInOut(bool test, double sum) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> + <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -
|
||||
{
|
||||
float Amount=(float)sum; //10 <20><><EFBFBD><EFBFBD>
|
||||
std::string ExitCode;
|
||||
double CashSum;
|
||||
double ServIn;
|
||||
double ServOut;
|
||||
return ParishOrConsumption("1",Password,Amount,L"",L"",ExitCode,CashSum,ServIn,ServOut);
|
||||
};
|
||||
virtual bool GetCashSum(double& sum) //<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
{
|
||||
std::string ExitCode;
|
||||
double CashSum=0,ServIn=0,ServOut=0;
|
||||
bool b=ParishOrConsumption("1",Password,0.0,L"",L"",ExitCode,CashSum,ServIn,ServOut);
|
||||
|
||||
sum=CashSum;
|
||||
return b;
|
||||
};
|
||||
bool PrintZReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintXReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintLine(std::wstring line); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
279
devices/Printers/FP300KZ/__history/FP300KZ.h.~6~
Normal file
279
devices/Printers/FP300KZ/__history/FP300KZ.h.~6~
Normal file
@ -0,0 +1,279 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#ifndef PrinterH
|
||||
#define PrinterH
|
||||
//---------------------------------------------------------------------------
|
||||
#include "../Printer.h"
|
||||
#include "../../ComPort.h"
|
||||
#include <stdTools.h>
|
||||
#include <string>
|
||||
//---------------------------------------------------------------------------
|
||||
#define fcDisplayClear 0x21 //(33)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDispalyLower 0x23 //(35)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenServiceInv 0x26 //(38)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcCloseServiceInv 0x27 //(39)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcSwitchPrg 0x29 //(41)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintFreeTextInServiceInv 0x2A //(42)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcPrintSetup 0x2B //(43)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFeedPaper 0x2C //(44)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcCutPaper 0x2D //(45)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDispalyUpper 0x2F //(47)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenFiscalInv 0x30 //(48)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD>
|
||||
#define fcRegisterSale 0x31 //(49)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportOnTaxRates 0x32 //(50)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSubtotal 0x33 //(51)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcRegisterSaleDisp 0x34 //(52)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcTotal 0x35 //(53)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>)
|
||||
#define fcPrintFreeTextInFiscalInv 0x36 //(54)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcCloseFiscalInv 0x38 //(56)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcRegisterArticleSale 0x3A //(58)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcCancelFiscalInv 0x3C //(60)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcSetDateTime 0x3D //(61)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetDateTime 0x3E //(62)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDisplayDateTime 0x3F //(63)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcLatestFiscalRecord 0x40 //(64)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcAmountOfSavingsPerDay 0x41 //(65)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
#define fcDepartmentReport 0x42 //(66)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFreeFieldsByFiscalMemory 0x44 //(68)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDailyFinancialReport 0x45 //(69)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcParishOrConsumption 0x46 //(70)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintDiagnostic 0x47 //(71)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFiscalization 0x48 //(72)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFullFiscalReportByNumber 0x49 //(73)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcGetStatusFP 0x4A //(74)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFiscalTransactionsStatus 0x4C //(76)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReduceFiscalReportByDate 0x4F //(79)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcBeep 0x50 //(80)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenBackInv 0x52 //(82)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetTaxRates 0x53 //(83)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintBarCode 0x54 //(84)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>
|
||||
#define fcSetAddTypesOfPayment 0x55 //(85)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDateOfLastEntryByFiscalMemory 0x56 //(86)<29><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetDepartmentName 0x57 //(87)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetDepartmentInfo 0x58 //(88)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgProductionTestArea 0x59 //(89)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDiagnosticInfo 0x5A //(90)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetManufacturersSerialNumber 0x5B //(91)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFullFiscalReportByDate 0x5E //(94)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReduceFiscalReportByNumber 0x5F //(95)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcGetTaxRates 0x61 //(97)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetRNNAndRNM 0x62 //(98)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
#define fcGetRNNAndRNM 0x63 //(99)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
#define fcDispalyFree 0x64 //(100)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetOperatorPassword 0x65 //(101)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetOperatorName 0x66 //(102)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcInfoByCurrentInv 0x67 //(103)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcOperatorReport 0x69 //(105)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenCashDrawer 0x6A //(106)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgAndReadArticle 0x6B //(107)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintDuplicateInv 0x6D //(109)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcDailyReportByTypesOfPayment 0x6E //(110)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportByArticle 0x6F //(111)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportByOperators 0x70 //(112)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetLastPrintedDocNumber 0x71 //(113)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetInfoOfFiscalRecords 0x72 //(114)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgGraphicLogo 0x73 //(115)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReadFiscalMemoryBlock 0x74 //(116)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintEJ 0x78 //(119) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcEJ 0x78 //(120)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//#define fcPrintEJ 0x78 //(119) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReadROMBlock 0x79 //(121)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>
|
||||
#define fcServiceClearEJ 0x7E //(126)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcServiceClearRAM 0x7F //(127)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
//---------------------------------------------------------------------------
|
||||
unsigned int MakeCRC(unsigned char* Buf, unsigned int BufStart,unsigned int BufLen);
|
||||
//---------------------------------------------------------------------------
|
||||
typedef char int1;
|
||||
typedef unsigned char uint1;
|
||||
typedef unsigned int uint4;
|
||||
#if !defined( _BORLAND )
|
||||
// typedef unsigned short Word; // 0..65535
|
||||
#endif
|
||||
typedef unsigned char BYTE;
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 6 <20><><EFBFBD><EFBFBD>
|
||||
class MyStatus
|
||||
{
|
||||
private:
|
||||
protected:
|
||||
public:
|
||||
bool s[6][8];
|
||||
MyStatus();
|
||||
void SetStatus(uint1* status);
|
||||
std::string getStatus(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
class FP300KZ : public CPrinter
|
||||
{
|
||||
private:
|
||||
unsigned char ReadAr[255]; ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned char FrameSeqNumber; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned char CommandName; ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
uint1 getNextSeq();
|
||||
bool Sw1,Sw2,Sw3,Sw4,Sw5,Sw6,Sw7,Sw8; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DiagnosticInfo
|
||||
bool m_SaveLog; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
protected:
|
||||
std::string m_ErrCode; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
public:
|
||||
std::string PrinterName; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string PrinterVersion; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string PrinterNumber; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
// int PrinterDecimal; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GetTaxRates) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> m_Dots
|
||||
//int iResultCode; ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
int CheckCount; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string Password; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
ComPort* cPort;
|
||||
MyStatus* Status;
|
||||
FP300KZ();
|
||||
virtual ~FP300KZ();
|
||||
|
||||
MyError PrinterInit(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
std::string getErrorDesc(int rc);
|
||||
std::string getLastErrorDest();
|
||||
int ResultCode(); //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool SendPMessage(uint1* msg,uint1 size,std::string& answer);
|
||||
bool OpenCOMPort(int ComNumber = -1,int BaudRate = -1); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> COM <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool Print(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void LoadSetup(); ///<Load COM port and speed
|
||||
void SaveSetup(); ///<Save COM port and speed
|
||||
void Init(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int getComSpeed(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setComSpeed(int Speed); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool CutPaper(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool GetStatusFP(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 4A
|
||||
void NewLine(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void Push(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ???
|
||||
bool FeedPaper(int cnt); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool OpenCashDrawer(int mSec = 0); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetDepartmentName(int dept,std::wstring line1,std::wstring line2); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
bool GetDepartmentInfo(int dept,int &RecSales,float &RecSum,int &TotSales,float &TotSum,std::wstring &Line1,std::wstring &Line2); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool DiagnosticInfo(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetManufacturersSerialNumber(std::string Serial);
|
||||
bool GetLastPrintedDocNumber(int& num); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD>
|
||||
bool CancelFiscalInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool PrintDuplicateInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool OpenServiceInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool CloseServiceInv(int& count); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool OpenFiscalInv(int OpCode,std::string OpPwd,int TillNmb); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD>
|
||||
bool CloseFiscalInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool OpenBackInv(int OpCode,std::string OpPwd,int TillNmb); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool RegisterSale(std::wstring L1,std::wstring L2,int dep,std::string TaxCd,double Price,double Qwan, bool Abs, double Perc); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool RegisterSaleDisp(std::string L1,int dep,std::string TaxCd,std::string Price); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FiscalTransactionsStatus(bool& Open,int& Items,double& Amount,double& Tender); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SessionSec(int& sec); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool PrintBarCode(int Type,std::string Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// std::string PrintSetup(std::string Item, std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintSetup(std::string Item, std::string Text, std::string& Answer); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getPrintLogo(bool& Enable,int& Height); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setPrintLogo(bool Enable,int Height); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool PrintFreeTextInServiceInv(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 48 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintFreeTextInFiscalInv(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool Subtotal(std::string Print, std::string Display, bool Abs, double Perc,double& Sum); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool Total(std::string Line1,std::string Line2,std::string PaidMode,double Amount,double& Change); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>)
|
||||
bool ParishOrConsumption(std::string Oper,std::string Password,double Amount,std::wstring strH,std::wstring strF,std::string& ExitCode,double& CashSum,double& ServIn,double& ServOut); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetAddTypesOfPayment(char Option, std::wstring& Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DepartmentReport();
|
||||
bool AmountOfSavingsPerDay(double& TaxA,double& TaxB,double& TaxC,double& TaxD,double& TaxE); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
bool FullFiscalReportByDate(std::string Password,std::string Receipts,std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReduceFiscalReportByDate(std::string Password,std::string Receipts,std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FullFiscalReportByNumber(std::string Password,std::string Receipts,int Start,int End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool ReduceFiscalReportByNumber(std::string Password,std::string Receipts,int Start,int End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool DailyFinancialReport(uint1 Option); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool OperatorReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintDiagnostic(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DailyReportByTypesOfPayment(std::string& Cash,std::string& Credit,std::string& Debit,std::string& Cheque,std::string& Pay1,std::string& Pay2,std::string& Pay3,std::string& Pay4,std::string& Closure,std::string& Receipt); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReportByArticle(std::string Option); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReportOnTaxRates(std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool GetRNNAndRNM(std::string &RNN,std::string &RNM); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool SetRNNAndRNM(std::string RNN,std::string RNM); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool SetOperatorPassword(std::string OpCode,std::string OldPwd,std::string NewPwd); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetOperatorName(std::string OpCode,std::string Pwd,std::string OpName); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetDateTime(std::string date,std::string time); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool GetDateTime(unsigned short& De,unsigned short& Me,unsigned short& Ye,unsigned short& Ho,unsigned short& Mi,unsigned short& Se); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool SwitchPrg(bool update); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getSmallEJ(bool& val); ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool setSmallEJ(bool val); ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool getDisplayTransparent(bool& val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setDisplayTransparent(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getDisplayWin1251(bool& val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Windows 1251
|
||||
bool setDisplayWin1251(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Windows 1251
|
||||
|
||||
/* bool getAutoCut(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setAutoCut(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
*/
|
||||
bool Beep(int Hz = 0, int mSec = 0); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DisplayClear(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DispalyLower(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DispalyUpper(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DispalyFree(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool EJ(std::string Cmd); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintEJ();
|
||||
|
||||
bool ServiceClearEJ(); ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ServiceClearRAM(); ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
|
||||
bool GetTaxRates(std::string &Decimals,std::string &Rounding,bool& bA,bool& bB,bool& bC,bool& bD, std::string &TaxA, std::string &TaxB, std::string &TaxC, std::string &TaxD); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetTaxRates(int Decimal, std::string Rounding, std::string TaxA, std::string TaxB, std::string TaxC, std::string TaxD); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int GetState();
|
||||
std::string GetStatusDescription(BYTE StatusCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrgGraphicLogo(int RowNum, std::string Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getGraphicLogo(int RowNum, std::string &Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool Fiscalization(std::string Password,std::string Serial,std::string& ErrCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool reFiscalization(std::string OldPwd,std::string Password,std::string RNN,std::string RNM,std::string& ErrCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool LatestFiscalRecord(std::string& Clos,int& Rec, float& Total,float& VAT,std::string& Date); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FreeFieldsByFiscalMemory(long& Logical); //<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//**************************************************************
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> CPrinter <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool isOk(){ return cPort->bOpen; };
|
||||
bool CashInOut(bool test, double sum) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> + <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -
|
||||
{
|
||||
float Amount=(float)sum; //10 <20><><EFBFBD><EFBFBD>
|
||||
std::string ExitCode;
|
||||
double CashSum;
|
||||
double ServIn;
|
||||
double ServOut;
|
||||
return ParishOrConsumption("1",Password,Amount,L"",L"",ExitCode,CashSum,ServIn,ServOut);
|
||||
};
|
||||
virtual bool GetCashSum(double& sum) //<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
{
|
||||
std::string ExitCode;
|
||||
double CashSum=0,ServIn=0,ServOut=0;
|
||||
bool b=ParishOrConsumption("1",Password,0.0,L"",L"",ExitCode,CashSum,ServIn,ServOut);
|
||||
|
||||
sum=CashSum;
|
||||
return b;
|
||||
};
|
||||
bool PrintZReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintXReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintLine(std::wstring line); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
279
devices/Printers/FP300KZ/__history/FP300KZ.h.~7~
Normal file
279
devices/Printers/FP300KZ/__history/FP300KZ.h.~7~
Normal file
@ -0,0 +1,279 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#ifndef PrinterH
|
||||
#define PrinterH
|
||||
//---------------------------------------------------------------------------
|
||||
#include "../Printer.h"
|
||||
#include "../../ComPort.h"
|
||||
#include <stdTools.h>
|
||||
#include <string>
|
||||
//---------------------------------------------------------------------------
|
||||
#define fcDisplayClear 0x21 //(33)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDispalyLower 0x23 //(35)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenServiceInv 0x26 //(38)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcCloseServiceInv 0x27 //(39)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcSwitchPrg 0x29 //(41)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintFreeTextInServiceInv 0x2A //(42)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcPrintSetup 0x2B //(43)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFeedPaper 0x2C //(44)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcCutPaper 0x2D //(45)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDispalyUpper 0x2F //(47)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenFiscalInv 0x30 //(48)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD>
|
||||
#define fcRegisterSale 0x31 //(49)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportOnTaxRates 0x32 //(50)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSubtotal 0x33 //(51)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcRegisterSaleDisp 0x34 //(52)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcTotal 0x35 //(53)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>)
|
||||
#define fcPrintFreeTextInFiscalInv 0x36 //(54)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcCloseFiscalInv 0x38 //(56)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcRegisterArticleSale 0x3A //(58)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcCancelFiscalInv 0x3C //(60)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcSetDateTime 0x3D //(61)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetDateTime 0x3E //(62)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDisplayDateTime 0x3F //(63)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcLatestFiscalRecord 0x40 //(64)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcAmountOfSavingsPerDay 0x41 //(65)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
#define fcDepartmentReport 0x42 //(66)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFreeFieldsByFiscalMemory 0x44 //(68)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDailyFinancialReport 0x45 //(69)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcParishOrConsumption 0x46 //(70)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintDiagnostic 0x47 //(71)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFiscalization 0x48 //(72)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFullFiscalReportByNumber 0x49 //(73)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcGetStatusFP 0x4A //(74)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFiscalTransactionsStatus 0x4C //(76)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReduceFiscalReportByDate 0x4F //(79)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcBeep 0x50 //(80)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenBackInv 0x52 //(82)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetTaxRates 0x53 //(83)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintBarCode 0x54 //(84)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>
|
||||
#define fcSetAddTypesOfPayment 0x55 //(85)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDateOfLastEntryByFiscalMemory 0x56 //(86)<29><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetDepartmentName 0x57 //(87)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetDepartmentInfo 0x58 //(88)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgProductionTestArea 0x59 //(89)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDiagnosticInfo 0x5A //(90)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetManufacturersSerialNumber 0x5B //(91)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFullFiscalReportByDate 0x5E //(94)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReduceFiscalReportByNumber 0x5F //(95)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcGetTaxRates 0x61 //(97)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetRNNAndRNM 0x62 //(98)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
#define fcGetRNNAndRNM 0x63 //(99)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
#define fcDispalyFree 0x64 //(100)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetOperatorPassword 0x65 //(101)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetOperatorName 0x66 //(102)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcInfoByCurrentInv 0x67 //(103)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcOperatorReport 0x69 //(105)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenCashDrawer 0x6A //(106)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgAndReadArticle 0x6B //(107)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintDuplicateInv 0x6D //(109)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcDailyReportByTypesOfPayment 0x6E //(110)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportByArticle 0x6F //(111)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportByOperators 0x70 //(112)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetLastPrintedDocNumber 0x71 //(113)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetInfoOfFiscalRecords 0x72 //(114)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgGraphicLogo 0x73 //(115)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReadFiscalMemoryBlock 0x74 //(116)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintEJ 0x78 //(119) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcEJ 0x78 //(120)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//#define fcPrintEJ 0x78 //(119) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReadROMBlock 0x79 //(121)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>
|
||||
#define fcServiceClearEJ 0x7E //(126)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcServiceClearRAM 0x7F //(127)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
//---------------------------------------------------------------------------
|
||||
unsigned int MakeCRC(unsigned char* Buf, unsigned int BufStart,unsigned int BufLen);
|
||||
//---------------------------------------------------------------------------
|
||||
typedef char int1;
|
||||
typedef unsigned char uint1;
|
||||
typedef unsigned int uint4;
|
||||
#if !defined( _BORLAND )
|
||||
// typedef unsigned short Word; // 0..65535
|
||||
#endif
|
||||
typedef unsigned char BYTE;
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 6 <20><><EFBFBD><EFBFBD>
|
||||
class MyStatus
|
||||
{
|
||||
private:
|
||||
protected:
|
||||
public:
|
||||
bool s[6][8];
|
||||
MyStatus();
|
||||
void SetStatus(uint1* status);
|
||||
std::string getStatus(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
class FP300KZ : public CPrinter
|
||||
{
|
||||
private:
|
||||
unsigned char ReadAr[255]; ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned char FrameSeqNumber; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned char CommandName; ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
uint1 getNextSeq();
|
||||
bool Sw1,Sw2,Sw3,Sw4,Sw5,Sw6,Sw7,Sw8; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DiagnosticInfo
|
||||
bool m_SaveLog; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
protected:
|
||||
std::string m_ErrCode; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
public:
|
||||
std::string PrinterName; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string PrinterVersion; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string PrinterNumber; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
// int PrinterDecimal; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GetTaxRates) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> m_Dots
|
||||
//int iResultCode; ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
int CheckCount; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string Password; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
ComPort* cPort;
|
||||
MyStatus* Status;
|
||||
FP300KZ();
|
||||
virtual ~FP300KZ();
|
||||
|
||||
int PrinterInit(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
std::string getErrorDesc(int rc);
|
||||
std::string getLastErrorDest();
|
||||
int ResultCode(); //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool SendPMessage(uint1* msg,uint1 size,std::string& answer);
|
||||
bool OpenCOMPort(int ComNumber = -1,int BaudRate = -1); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> COM <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool Print(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void LoadSetup(); ///<Load COM port and speed
|
||||
void SaveSetup(); ///<Save COM port and speed
|
||||
void Init(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int getComSpeed(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setComSpeed(int Speed); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool CutPaper(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool GetStatusFP(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 4A
|
||||
void NewLine(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void Push(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ???
|
||||
bool FeedPaper(int cnt); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool OpenCashDrawer(int mSec = 0); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetDepartmentName(int dept,std::wstring line1,std::wstring line2); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
bool GetDepartmentInfo(int dept,int &RecSales,float &RecSum,int &TotSales,float &TotSum,std::wstring &Line1,std::wstring &Line2); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool DiagnosticInfo(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetManufacturersSerialNumber(std::string Serial);
|
||||
bool GetLastPrintedDocNumber(int& num); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD>
|
||||
bool CancelFiscalInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool PrintDuplicateInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool OpenServiceInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool CloseServiceInv(int& count); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool OpenFiscalInv(int OpCode,std::string OpPwd,int TillNmb); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD>
|
||||
bool CloseFiscalInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool OpenBackInv(int OpCode,std::string OpPwd,int TillNmb); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool RegisterSale(std::wstring L1,std::wstring L2,int dep,std::string TaxCd,double Price,double Qwan, bool Abs, double Perc); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool RegisterSaleDisp(std::string L1,int dep,std::string TaxCd,std::string Price); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FiscalTransactionsStatus(bool& Open,int& Items,double& Amount,double& Tender); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SessionSec(int& sec); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool PrintBarCode(int Type,std::string Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// std::string PrintSetup(std::string Item, std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintSetup(std::string Item, std::string Text, std::string& Answer); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getPrintLogo(bool& Enable,int& Height); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setPrintLogo(bool Enable,int Height); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool PrintFreeTextInServiceInv(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 48 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintFreeTextInFiscalInv(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool Subtotal(std::string Print, std::string Display, bool Abs, double Perc,double& Sum); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool Total(std::string Line1,std::string Line2,std::string PaidMode,double Amount,double& Change); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>)
|
||||
bool ParishOrConsumption(std::string Oper,std::string Password,double Amount,std::wstring strH,std::wstring strF,std::string& ExitCode,double& CashSum,double& ServIn,double& ServOut); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetAddTypesOfPayment(char Option, std::wstring& Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DepartmentReport();
|
||||
bool AmountOfSavingsPerDay(double& TaxA,double& TaxB,double& TaxC,double& TaxD,double& TaxE); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
bool FullFiscalReportByDate(std::string Password,std::string Receipts,std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReduceFiscalReportByDate(std::string Password,std::string Receipts,std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FullFiscalReportByNumber(std::string Password,std::string Receipts,int Start,int End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool ReduceFiscalReportByNumber(std::string Password,std::string Receipts,int Start,int End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool DailyFinancialReport(uint1 Option); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool OperatorReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintDiagnostic(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DailyReportByTypesOfPayment(std::string& Cash,std::string& Credit,std::string& Debit,std::string& Cheque,std::string& Pay1,std::string& Pay2,std::string& Pay3,std::string& Pay4,std::string& Closure,std::string& Receipt); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReportByArticle(std::string Option); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReportOnTaxRates(std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool GetRNNAndRNM(std::string &RNN,std::string &RNM); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool SetRNNAndRNM(std::string RNN,std::string RNM); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool SetOperatorPassword(std::string OpCode,std::string OldPwd,std::string NewPwd); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetOperatorName(std::string OpCode,std::string Pwd,std::string OpName); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetDateTime(std::string date,std::string time); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool GetDateTime(unsigned short& De,unsigned short& Me,unsigned short& Ye,unsigned short& Ho,unsigned short& Mi,unsigned short& Se); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool SwitchPrg(bool update); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getSmallEJ(bool& val); ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool setSmallEJ(bool val); ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool getDisplayTransparent(bool& val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setDisplayTransparent(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getDisplayWin1251(bool& val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Windows 1251
|
||||
bool setDisplayWin1251(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Windows 1251
|
||||
|
||||
/* bool getAutoCut(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setAutoCut(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
*/
|
||||
bool Beep(int Hz = 0, int mSec = 0); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DisplayClear(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DispalyLower(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DispalyUpper(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DispalyFree(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool EJ(std::string Cmd); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintEJ();
|
||||
|
||||
bool ServiceClearEJ(); ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ServiceClearRAM(); ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
|
||||
bool GetTaxRates(std::string &Decimals,std::string &Rounding,bool& bA,bool& bB,bool& bC,bool& bD, std::string &TaxA, std::string &TaxB, std::string &TaxC, std::string &TaxD); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetTaxRates(int Decimal, std::string Rounding, std::string TaxA, std::string TaxB, std::string TaxC, std::string TaxD); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int GetState();
|
||||
std::string GetStatusDescription(BYTE StatusCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrgGraphicLogo(int RowNum, std::string Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getGraphicLogo(int RowNum, std::string &Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool Fiscalization(std::string Password,std::string Serial,std::string& ErrCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool reFiscalization(std::string OldPwd,std::string Password,std::string RNN,std::string RNM,std::string& ErrCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool LatestFiscalRecord(std::string& Clos,int& Rec, float& Total,float& VAT,std::string& Date); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FreeFieldsByFiscalMemory(long& Logical); //<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//**************************************************************
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> CPrinter <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool isOk(){ return cPort->bOpen; };
|
||||
bool CashInOut(bool test, double sum) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> + <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -
|
||||
{
|
||||
float Amount=(float)sum; //10 <20><><EFBFBD><EFBFBD>
|
||||
std::string ExitCode;
|
||||
double CashSum;
|
||||
double ServIn;
|
||||
double ServOut;
|
||||
return ParishOrConsumption("1",Password,Amount,L"",L"",ExitCode,CashSum,ServIn,ServOut);
|
||||
};
|
||||
virtual bool GetCashSum(double& sum) //<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
{
|
||||
std::string ExitCode;
|
||||
double CashSum=0,ServIn=0,ServOut=0;
|
||||
bool b=ParishOrConsumption("1",Password,0.0,L"",L"",ExitCode,CashSum,ServIn,ServOut);
|
||||
|
||||
sum=CashSum;
|
||||
return b;
|
||||
};
|
||||
bool PrintZReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintXReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintLine(std::wstring line); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
279
devices/Printers/FP300KZ/__history/FP300KZ.h.~8~
Normal file
279
devices/Printers/FP300KZ/__history/FP300KZ.h.~8~
Normal file
@ -0,0 +1,279 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#ifndef PrinterH
|
||||
#define PrinterH
|
||||
//---------------------------------------------------------------------------
|
||||
#include "../Printer.h"
|
||||
#include "../../ComPort.h"
|
||||
#include <stdTools.h>
|
||||
#include <string>
|
||||
//---------------------------------------------------------------------------
|
||||
#define fcDisplayClear 0x21 //(33)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDispalyLower 0x23 //(35)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenServiceInv 0x26 //(38)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcCloseServiceInv 0x27 //(39)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcSwitchPrg 0x29 //(41)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintFreeTextInServiceInv 0x2A //(42)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcPrintSetup 0x2B //(43)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFeedPaper 0x2C //(44)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcCutPaper 0x2D //(45)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDispalyUpper 0x2F //(47)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenFiscalInv 0x30 //(48)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD>
|
||||
#define fcRegisterSale 0x31 //(49)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportOnTaxRates 0x32 //(50)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSubtotal 0x33 //(51)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcRegisterSaleDisp 0x34 //(52)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcTotal 0x35 //(53)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>)
|
||||
#define fcPrintFreeTextInFiscalInv 0x36 //(54)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcCloseFiscalInv 0x38 //(56)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcRegisterArticleSale 0x3A //(58)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcCancelFiscalInv 0x3C //(60)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcSetDateTime 0x3D //(61)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetDateTime 0x3E //(62)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDisplayDateTime 0x3F //(63)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcLatestFiscalRecord 0x40 //(64)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcAmountOfSavingsPerDay 0x41 //(65)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
#define fcDepartmentReport 0x42 //(66)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFreeFieldsByFiscalMemory 0x44 //(68)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDailyFinancialReport 0x45 //(69)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcParishOrConsumption 0x46 //(70)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintDiagnostic 0x47 //(71)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFiscalization 0x48 //(72)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFullFiscalReportByNumber 0x49 //(73)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcGetStatusFP 0x4A //(74)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFiscalTransactionsStatus 0x4C //(76)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReduceFiscalReportByDate 0x4F //(79)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcBeep 0x50 //(80)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenBackInv 0x52 //(82)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetTaxRates 0x53 //(83)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintBarCode 0x54 //(84)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>
|
||||
#define fcSetAddTypesOfPayment 0x55 //(85)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDateOfLastEntryByFiscalMemory 0x56 //(86)<29><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetDepartmentName 0x57 //(87)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetDepartmentInfo 0x58 //(88)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgProductionTestArea 0x59 //(89)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDiagnosticInfo 0x5A //(90)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetManufacturersSerialNumber 0x5B //(91)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFullFiscalReportByDate 0x5E //(94)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReduceFiscalReportByNumber 0x5F //(95)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcGetTaxRates 0x61 //(97)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetRNNAndRNM 0x62 //(98)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
#define fcGetRNNAndRNM 0x63 //(99)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
#define fcDispalyFree 0x64 //(100)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetOperatorPassword 0x65 //(101)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetOperatorName 0x66 //(102)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcInfoByCurrentInv 0x67 //(103)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcOperatorReport 0x69 //(105)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenCashDrawer 0x6A //(106)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgAndReadArticle 0x6B //(107)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintDuplicateInv 0x6D //(109)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcDailyReportByTypesOfPayment 0x6E //(110)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportByArticle 0x6F //(111)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportByOperators 0x70 //(112)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetLastPrintedDocNumber 0x71 //(113)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetInfoOfFiscalRecords 0x72 //(114)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgGraphicLogo 0x73 //(115)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReadFiscalMemoryBlock 0x74 //(116)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintEJ 0x78 //(119) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcEJ 0x78 //(120)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//#define fcPrintEJ 0x78 //(119) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReadROMBlock 0x79 //(121)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>
|
||||
#define fcServiceClearEJ 0x7E //(126)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcServiceClearRAM 0x7F //(127)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
//---------------------------------------------------------------------------
|
||||
unsigned int MakeCRC(unsigned char* Buf, unsigned int BufStart,unsigned int BufLen);
|
||||
//---------------------------------------------------------------------------
|
||||
typedef char int1;
|
||||
typedef unsigned char uint1;
|
||||
typedef unsigned int uint4;
|
||||
#if !defined( _BORLAND )
|
||||
// typedef unsigned short Word; // 0..65535
|
||||
#endif
|
||||
typedef unsigned char BYTE;
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 6 <20><><EFBFBD><EFBFBD>
|
||||
class MyStatus
|
||||
{
|
||||
private:
|
||||
protected:
|
||||
public:
|
||||
bool s[6][8];
|
||||
MyStatus();
|
||||
void SetStatus(uint1* status);
|
||||
std::string getStatus(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
class FP300KZ : public CPrinter
|
||||
{
|
||||
private:
|
||||
unsigned char ReadAr[255]; ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned char FrameSeqNumber; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned char CommandName; ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
uint1 getNextSeq();
|
||||
bool Sw1,Sw2,Sw3,Sw4,Sw5,Sw6,Sw7,Sw8; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DiagnosticInfo
|
||||
bool m_SaveLog; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
protected:
|
||||
std::string m_ErrCode; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
public:
|
||||
std::string PrinterName; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string PrinterVersion; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string PrinterNumber; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
// int PrinterDecimal; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GetTaxRates) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> m_Dots
|
||||
//int iResultCode; ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
int CheckCount; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string Password; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
ComPort* cPort;
|
||||
MyStatus* Status;
|
||||
FP300KZ();
|
||||
virtual ~FP300KZ();
|
||||
|
||||
int PrinterInit(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
std::string getErrorDesc(int rc);
|
||||
std::string getLastErrorDest();
|
||||
int ResultCode(); //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool SendPMessage(uint1* msg,uint1 size,std::string& answer);
|
||||
bool OpenCOMPort(int ComNumber = -1,int BaudRate = -1); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> COM <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool Print(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void LoadSetup(); ///<Load COM port and speed
|
||||
void SaveSetup(); ///<Save COM port and speed
|
||||
void Init(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int getComSpeed(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setComSpeed(int Speed); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool CutPaper(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool GetStatusFP(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 4A
|
||||
void NewLine(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void Push(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ???
|
||||
bool FeedPaper(int cnt); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool OpenCashDrawer(int mSec = 0); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetDepartmentName(int dept,std::wstring line1,std::wstring line2); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
bool GetDepartmentInfo(int dept,int &RecSales,float &RecSum,int &TotSales,float &TotSum,std::wstring &Line1,std::wstring &Line2); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool DiagnosticInfo(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetManufacturersSerialNumber(std::string Serial);
|
||||
bool GetLastPrintedDocNumber(int& num); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD>
|
||||
bool CancelFiscalInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool PrintDuplicateInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool OpenServiceInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool CloseServiceInv(int& count); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool OpenFiscalInv(int OpCode,std::string OpPwd,int TillNmb); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD>
|
||||
bool CloseFiscalInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool OpenBackInv(int OpCode,std::string OpPwd,int TillNmb); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool RegisterSale(std::wstring L1,std::wstring L2,int dep,std::string TaxCd,double Price,double Qwan, bool Abs, double Perc); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool RegisterSaleDisp(std::string L1,int dep,std::string TaxCd,std::string Price); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FiscalTransactionsStatus(bool& Open,int& Items,double& Amount,double& Tender); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SessionSec(int& sec); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool PrintBarCode(int Type,std::string Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// std::string PrintSetup(std::string Item, std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintSetup(std::string Item, std::string Text, std::string& Answer); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getPrintLogo(bool& Enable,int& Height); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setPrintLogo(bool Enable,int Height); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool PrintFreeTextInServiceInv(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 48 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintFreeTextInFiscalInv(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool Subtotal(std::string Print, std::string Display, bool Abs, double Perc,double& Sum); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool Total(std::string Line1,std::string Line2,std::string PaidMode,double Amount,double& Change); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>)
|
||||
bool ParishOrConsumption(std::string Oper,std::string Password,double Amount,std::wstring strH,std::wstring strF,std::string& ExitCode,double& CashSum,double& ServIn,double& ServOut); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetAddTypesOfPayment(char Option, std::wstring& Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DepartmentReport();
|
||||
bool AmountOfSavingsPerDay(double& TaxA,double& TaxB,double& TaxC,double& TaxD,double& TaxE); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
bool FullFiscalReportByDate(std::string Password,std::string Receipts,std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReduceFiscalReportByDate(std::string Password,std::string Receipts,std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FullFiscalReportByNumber(std::string Password,std::string Receipts,int Start,int End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool ReduceFiscalReportByNumber(std::string Password,std::string Receipts,int Start,int End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool DailyFinancialReport(uint1 Option); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool OperatorReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintDiagnostic(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DailyReportByTypesOfPayment(std::string& Cash,std::string& Credit,std::string& Debit,std::string& Cheque,std::string& Pay1,std::string& Pay2,std::string& Pay3,std::string& Pay4,std::string& Closure,std::string& Receipt); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReportByArticle(std::string Option); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReportOnTaxRates(std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool GetRNNAndRNM(std::string &RNN,std::string &RNM); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool SetRNNAndRNM(std::string RNN,std::string RNM); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool SetOperatorPassword(std::string OpCode,std::string OldPwd,std::string NewPwd); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetOperatorName(std::string OpCode,std::string Pwd,std::string OpName); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetDateTime(std::string date,std::string time); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool GetDateTime(unsigned short& De,unsigned short& Me,unsigned short& Ye,unsigned short& Ho,unsigned short& Mi,unsigned short& Se); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool SwitchPrg(bool update); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getSmallEJ(bool& val); ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool setSmallEJ(bool val); ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool getDisplayTransparent(bool& val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setDisplayTransparent(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getDisplayWin1251(bool& val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Windows 1251
|
||||
bool setDisplayWin1251(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Windows 1251
|
||||
|
||||
/* bool getAutoCut(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setAutoCut(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
*/
|
||||
MyErrorMyError Beep(int Hz = 0, int mSec = 0); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DisplayClear(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DispalyLower(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DispalyUpper(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DispalyFree(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool EJ(std::string Cmd); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintEJ();
|
||||
|
||||
bool ServiceClearEJ(); ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ServiceClearRAM(); ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
|
||||
bool GetTaxRates(std::string &Decimals,std::string &Rounding,bool& bA,bool& bB,bool& bC,bool& bD, std::string &TaxA, std::string &TaxB, std::string &TaxC, std::string &TaxD); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetTaxRates(int Decimal, std::string Rounding, std::string TaxA, std::string TaxB, std::string TaxC, std::string TaxD); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int GetState();
|
||||
std::string GetStatusDescription(BYTE StatusCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrgGraphicLogo(int RowNum, std::string Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getGraphicLogo(int RowNum, std::string &Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool Fiscalization(std::string Password,std::string Serial,std::string& ErrCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool reFiscalization(std::string OldPwd,std::string Password,std::string RNN,std::string RNM,std::string& ErrCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool LatestFiscalRecord(std::string& Clos,int& Rec, float& Total,float& VAT,std::string& Date); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FreeFieldsByFiscalMemory(long& Logical); //<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//**************************************************************
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> CPrinter <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool isOk(){ return cPort->bOpen; };
|
||||
bool CashInOut(bool test, double sum) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> + <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -
|
||||
{
|
||||
float Amount=(float)sum; //10 <20><><EFBFBD><EFBFBD>
|
||||
std::string ExitCode;
|
||||
double CashSum;
|
||||
double ServIn;
|
||||
double ServOut;
|
||||
return ParishOrConsumption("1",Password,Amount,L"",L"",ExitCode,CashSum,ServIn,ServOut);
|
||||
};
|
||||
virtual bool GetCashSum(double& sum) //<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
{
|
||||
std::string ExitCode;
|
||||
double CashSum=0,ServIn=0,ServOut=0;
|
||||
bool b=ParishOrConsumption("1",Password,0.0,L"",L"",ExitCode,CashSum,ServIn,ServOut);
|
||||
|
||||
sum=CashSum;
|
||||
return b;
|
||||
};
|
||||
bool PrintZReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintXReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintLine(std::wstring line); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
0
devices/Printers/FP300KZ/stdafx.h
Normal file
0
devices/Printers/FP300KZ/stdafx.h
Normal file
1096
devices/Printers/Mebius/PrinterOPOS.cpp
Normal file
1096
devices/Printers/Mebius/PrinterOPOS.cpp
Normal file
File diff suppressed because it is too large
Load Diff
253
devices/Printers/Mebius/PrinterOPOS.h
Normal file
253
devices/Printers/Mebius/PrinterOPOS.h
Normal file
@ -0,0 +1,253 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#ifndef PrinterOPOSH
|
||||
#define PrinterOPOSH
|
||||
//---------------------------------------------------------------------------
|
||||
//#include <vcl.h>
|
||||
//#include "OposFiscalPrinter_1_7_Lib_OCX.h"
|
||||
#import "file:O:\MyDocuments\projects\Workspace_C++Builder\PayTerminal_XE\dist\OPOSFiscalPrinter.ocx"
|
||||
#include "../FP300KZ/FP300KZ.h"
|
||||
#include "structs.h"
|
||||
#include <list>
|
||||
//---------------------------------------------------------------------------
|
||||
const LONG FPTR_RT_CASH_IN = 1;
|
||||
const LONG FPTR_RT_CASH_OUT = 2;
|
||||
const LONG FPTR_RT_GENERIC = 3;
|
||||
const LONG FPTR_RT_SALES = 4;
|
||||
const LONG FPTR_RT_SERVICE = 5;
|
||||
const LONG FPTR_RT_SIMPLE_INVOICE = 6;
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
class Goods
|
||||
{
|
||||
private:
|
||||
public:
|
||||
std::wstring name1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::wstring name2; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
double price; //<2F><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
long count; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
long VatInfo; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Goods(std::wstring name1, std::wstring name2, double price, long count,long VatInfo)
|
||||
{ //if(name1==NULL)
|
||||
// this->name1=L"";
|
||||
//else
|
||||
this->name1=name1;
|
||||
//if(name2==NULL)
|
||||
// this->name2=L"";
|
||||
//else
|
||||
this->name2=name2;
|
||||
this->price=price;
|
||||
this->count=count;
|
||||
this->VatInfo=VatInfo;
|
||||
};
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
class FiscalPrinter
|
||||
{
|
||||
protected:
|
||||
bool Crashed;
|
||||
long FState;
|
||||
TSimpleList<Goods*>* FListGoods;
|
||||
long CheckId; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
public:
|
||||
std::wstring HeadLine; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
std::wstring GoodsName; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::wstring CasireName; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool TestMode;
|
||||
bool AutoOpenShift; //<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string m_LogFilePath;
|
||||
|
||||
FiscalPrinter(){ FListGoods= new TSimpleList<Goods*>(); CheckId=0; LoadSetup(); };
|
||||
virtual std::string getPrinterName()=0;
|
||||
virtual bool Start()=0;
|
||||
virtual bool isOk()=0;
|
||||
virtual long getCheckId(){ return CheckId; }; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void ClearGoods()
|
||||
{
|
||||
try
|
||||
{
|
||||
while(FListGoods->count()>0)
|
||||
{
|
||||
Goods* g=FListGoods->get(0);
|
||||
delete g;
|
||||
FListGoods->del((unsigned int)0);
|
||||
}
|
||||
FListGoods->clear();
|
||||
}catch(...)
|
||||
{
|
||||
Crashed=true;
|
||||
}
|
||||
};
|
||||
int getGoodsPrice();
|
||||
virtual bool PrintLine(std::wstring line)=0;
|
||||
void addGoods(Goods* goods)
|
||||
{
|
||||
FListGoods->add(goods);
|
||||
};
|
||||
virtual bool getNextCheckId(int &id);
|
||||
|
||||
bool SaveCheck(int CheckId);
|
||||
virtual bool PrintCheck(bool sales, int check, std::wstring headLine ) { return false; };
|
||||
bool deleteCheck(int CheckId);
|
||||
virtual std::wstring getLastError(){ return L""; };
|
||||
virtual bool DayOpened(){ return false; };
|
||||
virtual void setHeader(TSimpleList2<std::wstring>* Text){};
|
||||
virtual void getHeader(TSimpleList2<std::wstring>* Text){};
|
||||
virtual void setTrailer(TSimpleList2<std::wstring>* Text){};
|
||||
virtual void getTrailer(TSimpleList2<std::wstring>* Text){};
|
||||
virtual bool OpenShift(){ return true; }; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int getCOMPort();
|
||||
int getBaudRate();
|
||||
virtual bool setBaudRate(std::wstring data) = 0;
|
||||
virtual bool setCOMPort(std::wstring data) = 0;
|
||||
virtual bool PrintZReport()=0;
|
||||
virtual void PrintXReport()=0;
|
||||
|
||||
void LoadSetup();
|
||||
void SaveSetup();
|
||||
virtual bool setTrainingMode(bool val){ return false; };
|
||||
virtual bool Cut(){ return false; }; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
virtual bool setNalog(long n,float stavka){ return false; }; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
virtual int getAllSum(){ return 0; };
|
||||
virtual int PrintDiagnostic() = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
virtual int FeedPaper(int cnt) = 0;
|
||||
virtual int Beep() = 0;
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> OPOS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
class PrinterOPOS : public FiscalPrinter
|
||||
{
|
||||
private:
|
||||
//TOPOSFiscalPrinter *fp;
|
||||
OposFiscalPrinter_1_7_Lib::IOPOSFiscalPrinterPtr fp;
|
||||
public:
|
||||
std::string m_LogFilePath; ///<<3C><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
std::wstring m_LogFileWPath; ///<<3C><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool setTrainingMode(bool val);
|
||||
bool getTrainingMode();
|
||||
|
||||
PrinterOPOS();
|
||||
virtual ~PrinterOPOS();
|
||||
std::string getPrinterName(){ return "Moebius";};
|
||||
bool Start(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> COM <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintCheck(bool sales, int check, std::wstring headLine ); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool SaveCheck(int CheckId); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool deleteCheck(int CheckId); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool Cut(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//int GetState(); //0 - <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool isOk(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::wstring GetStatusDescription(long StatusCode); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::wstring getLastError(long* err); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::wstring getLastError(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::wstring getDateOpenShift(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
void setHeader(TSimpleList2<std::wstring>* Text);
|
||||
void getHeader(TSimpleList2<std::wstring>* Text);
|
||||
void setTrailer(TSimpleList2<std::wstring>* Text);
|
||||
void getTrailer(TSimpleList2<std::wstring>* Text);
|
||||
int getCOMPort();
|
||||
bool setCOMPort(std::wstring data);
|
||||
int getDaySum(); //<2F><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int getAllSum(); //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
bool PrintLine(std::wstring line);
|
||||
bool PrintZReport(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
void PrintXReport(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool OpenShift(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DayOpened(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool setNalog(long n,float stavka); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
void Push(){}; //<2F> OPOS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int PrintDiagnostic() { return 0; };
|
||||
int FeedPaper(int cnt)
|
||||
{
|
||||
return 0;
|
||||
};
|
||||
int Beep()
|
||||
{
|
||||
return 0;
|
||||
};
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
class FiscalPrinterPort : public FiscalPrinter
|
||||
{
|
||||
private:
|
||||
FP300KZ* fp;
|
||||
public:
|
||||
FiscalPrinterPort():FiscalPrinter()
|
||||
{ fp = new FP300KZ();
|
||||
};
|
||||
virtual ~FiscalPrinterPort(){ delete fp; };
|
||||
std::string getPrinterName(){ return "Port";};
|
||||
bool getNextCheckId(int &res)
|
||||
{
|
||||
int num;
|
||||
bool b=fp->GetLastPrintedDocNumber(num).ErrorCode==0;
|
||||
res=num+1;
|
||||
if (!b)
|
||||
{
|
||||
std::wstring estr = getLastError();
|
||||
throw std::runtime_error(Utility::WStringToString(estr, std::locale("")));
|
||||
}
|
||||
return b;
|
||||
};
|
||||
|
||||
bool Start()
|
||||
{
|
||||
//fp->OpenCOMPort(getCOMPort(),getBaudRate());
|
||||
//fp->OpenCOMPort(); //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
return fp->PrinterInit().ErrorCode==0;
|
||||
};
|
||||
long getCheckId(){ int num; fp->GetLastPrintedDocNumber(num); return num; }; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool PrintCheck(bool sales, int check, std::wstring headLine ); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool isOk();
|
||||
bool PrintLine(std::wstring line)
|
||||
{
|
||||
//if(line!=NULL)
|
||||
return fp->PrintLine(line).ErrorCode==0;
|
||||
//else
|
||||
// return fp->PrintLine(L"");
|
||||
};
|
||||
std::wstring getLastError()
|
||||
{
|
||||
std::string str = fp->getLastErrorDest();
|
||||
std::wstring result = Utility::StringToWString(str, std::locale(""));
|
||||
return result;
|
||||
};
|
||||
bool DayOpened(){ return true; };
|
||||
bool PrintZReport();
|
||||
void PrintXReport() { fp->PrintXReport(); };
|
||||
bool Cut(){ return fp->CutPaper().ErrorCode==0; };
|
||||
int PrintDiagnostic() { return fp->PrintDiagnostic().ErrorCode==0; };
|
||||
bool setBaudRate(std::wstring data)
|
||||
{
|
||||
//fp->cPort->BaudRate = StdWStrToInt(data);
|
||||
return false;
|
||||
};
|
||||
bool setCOMPort(std::wstring data)
|
||||
{
|
||||
//fp->cPort->ComNumber = StdWStrToInt(data);
|
||||
return false;
|
||||
};
|
||||
int FeedPaper(int cnt)
|
||||
{
|
||||
return fp->FeedPaper(cnt).ErrorCode==0;
|
||||
};
|
||||
int Beep()
|
||||
{
|
||||
MyError err = fp->Beep();
|
||||
return err.ErrorCode;
|
||||
};
|
||||
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
//extern FiscalPrinter* g_printer;
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
927
devices/Printers/Mebius/PrinterOPOS.~cpp
Normal file
927
devices/Printers/Mebius/PrinterOPOS.~cpp
Normal file
@ -0,0 +1,927 @@
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
#pragma hdrstop
|
||||
|
||||
#include "PrinterOPOS.h"
|
||||
#include "OposFiscalPrinter_1_7_Lib_OCX.h"
|
||||
#include "ud_Module.h"
|
||||
#include <Registry.hpp>
|
||||
#include <Math.h>
|
||||
#include <DateUtils.hpp>
|
||||
#include <Dialogs.hpp>
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
#pragma package(smart_init)
|
||||
//---------------------------------------------------------------------------
|
||||
FiscalPrinter* g_printer;
|
||||
//---------------------------------------------------------------------------
|
||||
char * kkm_err_msg_ru[] = {
|
||||
"OK", //0
|
||||
"<22><> ID <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //1 FM ID Error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> ", //2 FM Rec Error
|
||||
"Flash Chip <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //3 Flash Chip cant clear
|
||||
"<22><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>", //4 FM not empty
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //5 FM Data destroyed
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>", //6 Cmd ignor prn mode
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //7 Oper code is absent
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //8 Doc type is absent
|
||||
"<22><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>", //9 Ser num CR
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //10 Password error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD>", //11 Data/Time error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD>", //12 Factory registration has already pass
|
||||
"<22><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //13 Ser num CR destroyed
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>", //14 Fiscalize has already pass
|
||||
"<22><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>", //15 Not fisc mode CR
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //16 Fiscalize Data destroyed
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //17 Rewrite is conclude
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //18 Rewrite is destroyed
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //19 Shift already open
|
||||
"<22><> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //20 Shift not opened
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>", //21 Many goods in receipt
|
||||
"<22><> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //22 EOD data in FM destroyed
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //23 Document format error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //24 Text rewrite
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><><EFBFBD> <20><><EFBFBD>", //25 Many parameters in document
|
||||
"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><>", //26 Document parameters error
|
||||
"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><>", //27 Parameters value error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //28 Object non-existent
|
||||
"<22><><EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //29 Document is not finished
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>", //30 goods/operation description not enough
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //31 Check sum packet
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>", //32 Prn not ready
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //33 Nested interrupts
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //34 Check Sum Error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><>", //35 Overflow if FM
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //36 Unknown command
|
||||
"CRC <20><><EFBFBD>", //37 CRC RAM
|
||||
"CRC <20><>", //38 CRC FM
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //39 Data port defective
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>", //40 Receipts parameters sequence
|
||||
"0xy <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>", //41 0xy for required properties
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //42 Length request
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>", //43 number capacity
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //44 Overflow
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>", //45 Number is absent
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //46 Not response
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //47 Transmission error
|
||||
"<22><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //48 Math overflow
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...", //49 Paper out...
|
||||
"<22><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!!", //50 CR not ready!!!
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!", //51 Memory error!!
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //52 Printer off
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //53 Insufficient memory
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //54 Lenght number less
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //55 Zero lenght number
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //56 Password lenght less permissible
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //57 Zero lenght password
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //58 Impossible value
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>-<2D><><EFBFBD>", //59 Time-out overdraw
|
||||
"",
|
||||
"<22><>.<2E><><EFBFBD><EFBFBD>",
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>",
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
|
||||
"","","","","","",//69
|
||||
"","","","","","","","","","",//79
|
||||
"","","","","","","","","","",//89
|
||||
"","","","","","","","","","",//99
|
||||
"","","","","","","","","","",//109
|
||||
"","","","","","","","","","",//119
|
||||
"","","","","","","","","","",//129
|
||||
"","","","","","","","","","",//139
|
||||
"","","","","","","","","","",//149
|
||||
"","","","","","","","","","",//159
|
||||
|
||||
"","","","","","","","","","",//169
|
||||
"","","","","","","","","","",//179
|
||||
"","","","","","","","","","",//189
|
||||
"","","","","","","","","","",//199
|
||||
"","","","","","","","","","",//209
|
||||
"","","","","","","","","","",//219
|
||||
"","","","","","","","","","",//229
|
||||
"","","","","","","","","","",//239
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>",//240 Cmd not init
|
||||
"<22><>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//241 Cmd write err
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(DSR=0)",//242 Prn not ready (DSR=0)
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//243 Cmd ok
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//244 Cmd resp timeout
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//245 Prn error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//246 Cmd resp large
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//247 Cmd resp small
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//248
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//249
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//250 Cmd break
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//251
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//252
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//253
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//254
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)!"//255 Previous cmd run
|
||||
};
|
||||
//------------------------------------------------------------------------------
|
||||
bool FiscalPrinter::getNextCheckId(int &id)
|
||||
{
|
||||
CheckId++; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
SaveSetup(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
id=CheckId;
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinter::SaveCheck(int CheckId) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD>)
|
||||
{
|
||||
if(dModule->UserType) //true - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>; false - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
dModule->SaveCheck(CheckId,dModule->UserId,0,getGoodsPrice());
|
||||
else
|
||||
dModule->SaveCheck(CheckId,0,dModule->UserId,getGoodsPrice());
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinter::deleteCheck(int CheckId) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
{
|
||||
dModule->UpdateChek(CheckId);
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
int FiscalPrinter::getCOMPort()
|
||||
{
|
||||
int n=-1;
|
||||
|
||||
TRegistry* reg=new TRegistry;
|
||||
reg->RootKey = HKEY_LOCAL_MACHINE;
|
||||
if(reg->OpenKeyReadOnly("\\SOFTWARE\\OLEforRetail\\ServiceOPOS\\FiscalPrinter\\MbsFiscalPrinter"))
|
||||
{
|
||||
n = reg->ReadInteger("COM Num");
|
||||
}
|
||||
delete reg;
|
||||
return n;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void FiscalPrinter::setBaudRate(int val)
|
||||
{
|
||||
TRegistry* reg=new TRegistry;
|
||||
reg->RootKey = HKEY_LOCAL_MACHINE;
|
||||
if(reg->OpenKey("\\SOFTWARE\\OLEforRetail\\ServiceOPOS\\FiscalPrinter\\MbsFiscalPrinter",true))
|
||||
{
|
||||
reg->WriteInteger("COM Speed",val);
|
||||
}
|
||||
delete reg;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
int FiscalPrinter::getBaudRate()
|
||||
{
|
||||
int n=-1;
|
||||
|
||||
TRegistry* reg=new TRegistry;
|
||||
reg->RootKey = HKEY_LOCAL_MACHINE;
|
||||
if(reg->OpenKeyReadOnly("\\SOFTWARE\\OLEforRetail\\ServiceOPOS\\FiscalPrinter\\MbsFiscalPrinter"))
|
||||
{
|
||||
n = reg->ReadInteger("COM Speed");
|
||||
}
|
||||
delete reg;
|
||||
return n;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void FiscalPrinter::setCOMPort(int n)
|
||||
{
|
||||
TRegistry* reg=new TRegistry;
|
||||
reg->RootKey = HKEY_LOCAL_MACHINE;
|
||||
if(reg->OpenKey("\\SOFTWARE\\OLEforRetail\\ServiceOPOS\\FiscalPrinter\\MbsFiscalPrinter",true))
|
||||
{
|
||||
reg->WriteInteger("COM Num",n);
|
||||
}
|
||||
delete reg;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void FiscalPrinter::LoadSetup()
|
||||
{
|
||||
TIniFile* ini=new TIniFile(ExtractFilePath(ParamStr(0))+"\\Setup.ini");
|
||||
// cPort->port=ini->ReadString("Printer","Port","");
|
||||
// cPort->BaudRate=ini->ReadInteger("Printer","BaudRate",0);
|
||||
CheckId=ini->ReadInteger("Printer","CheckCount",0);
|
||||
TestMode=ini->ReadBool("Printer","TestMode",true);
|
||||
HeadLine=ini->ReadString("Printer","HeadLine","");
|
||||
GoodsName=ini->ReadString("Printer","GoodsName","");
|
||||
CasireName=ini->ReadString("Printer","CasireName","");
|
||||
AutoOpenShift=ini->ReadBool("Printer","AutoOpenShift",false);
|
||||
delete ini;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void FiscalPrinter::SaveSetup()
|
||||
{
|
||||
TIniFile* ini=new TIniFile(ExtractFilePath(ParamStr(0))+"\\Setup.ini");
|
||||
// ini->WriteString("Printer","Port",cPort->port);
|
||||
// ini->WriteInteger("Printer","BaudRate",cPort->BaudRate);
|
||||
ini->WriteInteger("Printer","CheckCount",CheckId);
|
||||
ini->WriteBool("Printer","TestMode",TestMode);
|
||||
ini->WriteString("Printer","GoodsName",GoodsName);
|
||||
ini->WriteString("Printer","CasireName",CasireName);
|
||||
ini->WriteBool("Printer","AutoOpenShift",AutoOpenShift);
|
||||
delete ini;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
int FiscalPrinter::getGoodsPrice()
|
||||
{
|
||||
int sum=0;
|
||||
for(int i=0;i<FListGoods->Count;i++)
|
||||
sum+=((Goods*)FListGoods->Items[i])->price;
|
||||
return sum;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//---------------------------------------------------------------------------
|
||||
//---------------------------------------------------------------------------
|
||||
PrinterOPOS::PrinterOPOS(TComponent* AOwner):FiscalPrinter()
|
||||
{
|
||||
Crashed=false;
|
||||
AutoOpenShift=false;
|
||||
fp=new TOPOSFiscalPrinter(AOwner);
|
||||
fp->DeviceEnabled = False;
|
||||
LoadSetup();
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
PrinterOPOS::~PrinterOPOS()
|
||||
{
|
||||
delete FListGoods;
|
||||
delete fp;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> COM <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::Start()
|
||||
{
|
||||
if(fp->DeviceEnabled) return true;
|
||||
|
||||
FState = fp->Open(L"MbsFiscalPrinter");
|
||||
if(FState!=0)
|
||||
{
|
||||
saveLog(1,IntToStr(FState)+"(PrinterOPOS::Start)"+GetStatusDescription(FState));
|
||||
return false;
|
||||
}
|
||||
FState = fp->ClaimDevice(1000);
|
||||
if(FState!=0)
|
||||
{
|
||||
saveLog(1,IntToStr(FState)+"(PrinterOPOS::Start)"+GetStatusDescription(FState));
|
||||
return false;
|
||||
}
|
||||
fp->DeviceEnabled = True;
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::setHeader(TStrings* Text)
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
for(int i=0;i<Text->Count;i++)
|
||||
{
|
||||
WideString str=Text->Strings[i];
|
||||
err=fp->SetHeaderLine(i+1,str,false);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}
|
||||
err=fp->ResetPrinter();
|
||||
if(err)throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::setHeader)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::setHeader)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::setHeader) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::setHeader) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::getHeader(TStrings* Text)
|
||||
{
|
||||
TIniFile* ini=new TIniFile(ExtractFilePath(ParamStr(0))+"\\Setup.ini");
|
||||
Text->Add(ini->ReadString("Printer","HeadLine1",""));
|
||||
Text->Add(ini->ReadString("Printer","HeadLine2",""));
|
||||
Text->Add(ini->ReadString("Printer","HeadLine3",""));
|
||||
Text->Add(ini->ReadString("Printer","HeadLine4",""));
|
||||
Text->Add(ini->ReadString("Printer","HeadLine5",""));
|
||||
delete ini;
|
||||
|
||||
for(int i=Text->Count-1;i>=0;i--)
|
||||
if(Text->Strings[i]=="")Text->Delete(i); else break;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::setTrailer(TStrings* Text)
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
for(int i=0;i<Text->Count;i++)
|
||||
{
|
||||
WideString str=Text->Strings[i];
|
||||
err=fp->SetTrailerLine(i+1,str.c_bstr(),false);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}
|
||||
err=fp->ResetPrinter();
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::setTrailer)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::setTrailer)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::setTrailer) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::setTrailer) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::getTrailer(TStrings* Text)
|
||||
{
|
||||
TIniFile* ini=new TIniFile(ExtractFilePath(ParamStr(0))+"\\Setup.ini");
|
||||
Text->Add(ini->ReadString("Printer","TailLine1",""));
|
||||
Text->Add(ini->ReadString("Printer","TailLine2",""));
|
||||
Text->Add(ini->ReadString("Printer","TailLine3",""));
|
||||
Text->Add(ini->ReadString("Printer","TailLine4",""));
|
||||
Text->Add(ini->ReadString("Printer","TailLine5",""));
|
||||
delete ini;
|
||||
|
||||
for(int i=Text->Count-1;i>=0;i--)
|
||||
if(Text->Strings[i]=="")Text->Delete(i); else break;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::PrintLine(WideString line)
|
||||
{
|
||||
//<2F><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
long err=0;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
err=fp->PrintNormal(2, WideString(WCHAR(0x1B)) + WideString(WCHAR(0x7C)) + line + L"\n");
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::PrintLine)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::PrintLine)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::PrintLine) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::PrintLine) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//sales - true <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, false - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//check - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> =0 <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//TODO <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
bool PrinterOPOS::PrintCheck(bool sales, int check, WideString headLine) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
long err=0;
|
||||
Currency cur=0;
|
||||
Currency cAllPrice=0;
|
||||
bool bOk=true;
|
||||
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
cAllPrice=getGoodsPrice();
|
||||
|
||||
if(check==0) //<2F><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
CheckId++; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
check=CheckId;
|
||||
SaveSetup(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
}
|
||||
|
||||
if(fp->RecEmpty) throw Exception("<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
if(!DayOpened()) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
|
||||
Currency UnitPrice,AllPriceDrb,AllPrice;
|
||||
long Qnt,vat;
|
||||
BSTR* bstr;
|
||||
WideString sStr;
|
||||
BSTR sTmp=new OLECHAR[255];
|
||||
sTmp=L"";
|
||||
long MbsResponceCode;
|
||||
CURRENCY Amount1,Amount2;
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//vat=11; sTmp=L"<22><><EFBFBD><EFBFBD><EFBFBD>";
|
||||
//err = fp->DirectIO(4, &vat, &sTmp);
|
||||
//if (err) goto ErrHandler;
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> TODO!!!
|
||||
if(headLine!=NULL && headLine.Length()>0)
|
||||
PrintLine(headLine);
|
||||
|
||||
|
||||
if(sales) fp->FiscalReceiptType = FPTR_RT_SALES; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
else fp->FiscalReceiptType=FPTR_RT_SERVICE; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//setTrainingMode(true);
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>)
|
||||
err = fp->BeginFiscalReceipt(true);
|
||||
if (err) throw Exception(getLastError(&err)); //251
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (TODO <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
for(int i=0;i<FListGoods->Count;i++)
|
||||
{
|
||||
Goods* goods=(Goods*)FListGoods->Items[i];
|
||||
VarCyFromR8(goods->price*100,&Amount1);
|
||||
Amount2.int64=0;
|
||||
WideString tmp=goods->name1+L"-/--/-0";
|
||||
err=fp->PrintRecItem(tmp.c_bstr(), Amount1, goods->count, goods->VatInfo, Amount2, L"<22><>");
|
||||
if (err) throw Exception(getLastError(&err));
|
||||
}
|
||||
ClearGoods();
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD> PrintRecTotal)
|
||||
err = fp->DirectIO(3, &CheckId, &sTmp);
|
||||
if (err) throw Exception(getLastError(&err));
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//setNalog(1,12);
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>
|
||||
Amount2.int64=0;
|
||||
VarCyFromR8(cAllPrice*100,&Amount1);
|
||||
err=fp->PrintRecTotal(Amount1, Amount1, L"na");
|
||||
if (err) throw Exception(getLastError(&err));
|
||||
|
||||
|
||||
err = fp->EndFiscalReceipt(True); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (AdditionalTrailer) <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
ClearGoods();
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(1,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+CurrToStr(cAllPrice)+" <20><><EFBFBD>: "+IntToStr(CheckId)+". "+exception.Message);
|
||||
dModule->SendError(err,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+IntToStr(cAllPrice)+" <20><><EFBFBD>: "+IntToStr(CheckId)+". "+exception.Message);
|
||||
bOk=false;
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
ClearGoods();
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+IntToStr(cAllPrice)+" <20><><EFBFBD>: "+IntToStr(CheckId));
|
||||
dModule->SendError(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+IntToStr(cAllPrice)+" <20><><EFBFBD>: "+IntToStr(CheckId));
|
||||
bOk=false;
|
||||
}
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
if(!bOk)
|
||||
{
|
||||
fp->PrintRecVoid(L"");
|
||||
}
|
||||
|
||||
return bOk;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::Cut() //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
err=fp->PrintNormal(2, WideString(WCHAR(0x1B)) + WideString(WCHAR(0x7C)) + "75P");
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::Cut)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::Cut)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::Cut) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::Cut) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
/*int PrinterOPOS::GetState()
|
||||
{
|
||||
if(!fp->DeviceEnabled)FState=245;
|
||||
//if(FState!=0) return FState;
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
// fp->ResultCodeExtended
|
||||
return 0;
|
||||
} */
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::isOk()
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
if(fp->RecEmpty) throw "<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!";
|
||||
err=fp->ResetPrinter();
|
||||
if(err) throw Exception(getLastError(&err)); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
AnsiString str;
|
||||
|
||||
if(!dModule->getDayShift())throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool dOpen=DayOpened();
|
||||
if(!dOpen && AutoOpenShift && OpenShift()) dOpen=true;
|
||||
if(!dOpen) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
if(DayOpened())
|
||||
{
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
TDateTime dt=getDateOpenShift();
|
||||
str=getLastError(&err);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
|
||||
dModule->getDate();
|
||||
if(HoursBetween(dt,dModule->date)>24) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> 24 <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
throw Exception("[1]<5D><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
} else throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
BSTR bstr=new OLECHAR[50];
|
||||
err=fp->GetDate(&bstr);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(1,"(PrinterOPOS::isOk)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::isOk)"+exception.Message);
|
||||
return false;
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(1,"(PrinterOPOS::isOk)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::isOk)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
TDateTime PrinterOPOS::getDateOpenShift()
|
||||
{
|
||||
long err=0;
|
||||
TDateTime date=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
long iTmp;
|
||||
BSTR sTmp=new OLECHAR[50];
|
||||
err=fp->DirectIO(13, &iTmp, &sTmp);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
date=StrToDateTime(sTmp);
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::getDateOpenShift)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::getDateOpenShift)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::getDateOpenShift) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::getDateOpenShift) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return date;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString PrinterOPOS::GetStatusDescription(long err)
|
||||
{
|
||||
AnsiString str;
|
||||
try
|
||||
{
|
||||
if(err<256)
|
||||
str=kkm_err_msg_ru[err];
|
||||
if(str=="") str="<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::GetStatusDescription) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return "<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
|
||||
}
|
||||
return str;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString PrinterOPOS::getLastError(long* err)
|
||||
{
|
||||
BSTR str=new OLECHAR[255];
|
||||
str=L"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!";
|
||||
try
|
||||
{
|
||||
fp->DirectIO(1, err, &str);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::getLastError) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
if(str==L"") return GetStatusDescription(*err);
|
||||
return str;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
AnsiString PrinterOPOS::getLastError()
|
||||
{
|
||||
long err;
|
||||
return getLastError(&err);
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::PrintZReport()
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
int sum=getDaySum();
|
||||
err=fp->PrintZReport();
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
dModule->addZReport(sum);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
dModule->addPaper(-142*2);//<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::PrintZReport)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::PrintZReport)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::PrintZReport) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::PrintZReport) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
void PrinterOPOS::PrintXReport()
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
err=fp->PrintXReport();
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::PrintXReport)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::PrintXReport)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::PrintXReport) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::PrintXReport) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::OpenShift()
|
||||
{
|
||||
long err;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
long n=1;
|
||||
if(CasireName==NULL) CasireName=L" ";
|
||||
BSTR str=CasireName;
|
||||
err=fp->DirectIO (6,&n,&str);
|
||||
if(err) throw Exception(getLastError(&err)); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
err=fp->SetVatValue(1,L"120");
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::OpenShift)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::OpenShift)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::OpenShift) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::OpenShift) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::DayOpened()
|
||||
{
|
||||
return fp->DayOpened;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::setTrainingMode(bool val)
|
||||
{
|
||||
long err;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
if(getTrainingMode()==val) return true;
|
||||
if(val) err=fp->BeginTraining(); else err=fp->EndTraining();
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::setTrainingMode)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::setTrainingMode)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::setTrainingMode) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::setTrainingMode) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::getTrainingMode()
|
||||
{
|
||||
return fp->TrainingModeActive;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::setNalog(long n,float stavka)
|
||||
{
|
||||
long err;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
long s=stavka*10;
|
||||
WideString str=IntToStr(s);
|
||||
err = fp->DirectIO(2, &n, &str);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::setNalog)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::setNalog)"+exception.Message);
|
||||
return true;
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::setNalog) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::setNalog) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return true;
|
||||
}
|
||||
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
int PrinterOPOS::getDaySum()
|
||||
{
|
||||
long err;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
long n=1;
|
||||
BSTR str=new OLECHAR[20];
|
||||
err=fp->DirectIO (300,&n,&str);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
return StrToInt(str)/100.0;
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::getDaySum)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::getDaySum)"+exception.Message);
|
||||
return 0;
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::getDaySum) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::getDaySum) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
int PrinterOPOS::getAllSum()
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
long n=2;
|
||||
BSTR str=new OLECHAR[20];
|
||||
err=fp->DirectIO (300,&n,&str);
|
||||
if(err)throw Exception(getLastError(&err));
|
||||
return StrToInt(str)/100.0;
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::getAllSum)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::getAllSum)"+exception.Message);
|
||||
return 0;
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::getAllSum) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::getAllSum) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//sales - true <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, false - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//check - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> =0 <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
bool FiscalPrinterPort::PrintCheck(bool sales, int check, WideString headLine )
|
||||
{
|
||||
//bool err=0;
|
||||
double cur=0;
|
||||
double cAllPrice=0;
|
||||
bool bOk=true;
|
||||
|
||||
try
|
||||
{
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
cAllPrice=getGoodsPrice();
|
||||
|
||||
Currency UnitPrice,AllPriceDrb,AllPrice;
|
||||
long Qnt,vat;
|
||||
BSTR* bstr;
|
||||
WideString sStr;
|
||||
BSTR sTmp=new OLECHAR[255];
|
||||
sTmp=L"";
|
||||
long MbsResponceCode;
|
||||
CURRENCY Amount1,Amount2;
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(sales) bOk = fp->OpenFiscalInv(1,"0000",1);
|
||||
else bOk = fp->OpenBackInv(1,"0000",1);
|
||||
if (!bOk) throw Exception(getLastError());
|
||||
|
||||
if(headLine!=NULL && headLine.Length()>0)
|
||||
PrintLine(headLine);
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
for(int i=0;i<FListGoods->Count;i++)
|
||||
{
|
||||
Goods* goods=(Goods*)FListGoods->Items[i];
|
||||
bOk=fp->RegisterSale(goods->name1.c_bstr(),goods->name2.c_bstr(),0,"<22>",goods->price,goods->count,0,0); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
if (!bOk) throw Exception(getLastError());
|
||||
}
|
||||
ClearGoods();
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
float Change;
|
||||
bOk=fp->Total("","","P",cAllPrice,Change);
|
||||
if (!bOk) throw Exception(getLastError());
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
bOk = fp->CloseFiscalInv();
|
||||
if(!bOk) throw Exception(getLastError());
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
ClearGoods();
|
||||
saveLog(1,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+CurrToStr(cAllPrice)+" <20><><EFBFBD>: "+IntToStr(CheckId)+". "+exception.Message);
|
||||
dModule->SendError(bOk,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+FloatToStr(cAllPrice)+" <20><><EFBFBD>: "+IntToStr(CheckId)+". "+exception.Message);
|
||||
bOk=false;
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
ClearGoods();
|
||||
saveLog(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+FloatToStr(cAllPrice)+" <20><><EFBFBD>: "+IntToStr(CheckId));
|
||||
dModule->SendError(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+FloatToStr(cAllPrice)+" <20><><EFBFBD>: "+IntToStr(CheckId));
|
||||
bOk=false;
|
||||
}
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
if(!bOk)
|
||||
{
|
||||
fp->CancelFiscalInv();
|
||||
}
|
||||
return bOk;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinterPort::PrintZReport()
|
||||
{
|
||||
bool bOk;
|
||||
try
|
||||
{
|
||||
float Amount=0,CashSum=0,ServIn=0,ServOut=0;
|
||||
std::string ExitCode="";
|
||||
bOk=fp->ParishOrConsumption(Amount,ExitCode,CashSum,ServIn,ServOut);
|
||||
if(!bOk) throw Exception(getLastError());
|
||||
bOk=fp->PrintZReport();
|
||||
if(!bOk) throw Exception(getLastError());
|
||||
dModule->addZReport(CashSum);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
ClearGoods();
|
||||
saveLog(1,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "+exception.Message);
|
||||
dModule->SendError(bOk,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "+exception.Message);
|
||||
bOk=false;
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
ClearGoods();
|
||||
saveLog(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.");
|
||||
dModule->SendError(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.");
|
||||
bOk=false;
|
||||
}
|
||||
|
||||
return bOk;
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinterPort::isOk()
|
||||
{
|
||||
try
|
||||
{
|
||||
if (!fp->DiagnosticInfo()) throw Exception(getLastError());
|
||||
if(!dModule->getDayShift())throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::isOk)"+exception.Message);
|
||||
dModule->SendError(1,"(PrinterOPOS::isOk)"+exception.Message);
|
||||
return false;
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::isOk)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::isOk)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
188
devices/Printers/Mebius/PrinterOPOS.~h
Normal file
188
devices/Printers/Mebius/PrinterOPOS.~h
Normal file
@ -0,0 +1,188 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#ifndef PrinterOPOSH
|
||||
#define PrinterOPOSH
|
||||
//---------------------------------------------------------------------------
|
||||
#include "OposFiscalPrinter_1_7_Lib_OCX.h"
|
||||
#include "FP300KZ.h"
|
||||
//---------------------------------------------------------------------------
|
||||
const LONG FPTR_RT_CASH_IN = 1;
|
||||
const LONG FPTR_RT_CASH_OUT = 2;
|
||||
const LONG FPTR_RT_GENERIC = 3;
|
||||
const LONG FPTR_RT_SALES = 4;
|
||||
const LONG FPTR_RT_SERVICE = 5;
|
||||
const LONG FPTR_RT_SIMPLE_INVOICE = 6;
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
class Goods
|
||||
{
|
||||
private:
|
||||
public:
|
||||
WideString name1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
WideString name2; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
double price; //<2F><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
long count; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
long VatInfo; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Goods(WideString name1, WideString name2, double price, long count,long VatInfo){if(name1==NULL) this->name1=L""; else this->name1=name1; if(name2==NULL) this->name2=L""; else this->name2=name2; this->price=price; this->count=count; this->VatInfo=VatInfo; };
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
class FiscalPrinter
|
||||
{
|
||||
protected:
|
||||
bool Crashed;
|
||||
long FState;
|
||||
TList* FListGoods;
|
||||
long CheckId; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
public:
|
||||
AnsiString HeadLine; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
WideString GoodsName; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
WideString CasireName; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool TestMode;
|
||||
bool AutoOpenShift; //<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
FiscalPrinter(){ FListGoods= new TList(); CheckId=0; LoadSetup(); };
|
||||
virtual AnsiString getPrinterName()=0;
|
||||
virtual bool Start()=0;
|
||||
virtual bool isOk()=0;
|
||||
virtual long getCheckId(){ return CheckId; }; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void ClearGoods()
|
||||
{
|
||||
try
|
||||
{
|
||||
while(FListGoods->Count>0)
|
||||
{
|
||||
Goods* g=(Goods*)FListGoods->Items[0];
|
||||
delete g;
|
||||
FListGoods->Delete(0);
|
||||
}
|
||||
FListGoods->Clear();
|
||||
}catch(...)
|
||||
{
|
||||
Crashed=true;
|
||||
}
|
||||
};
|
||||
int getGoodsPrice();
|
||||
virtual bool PrintLine(WideString line)=0;
|
||||
void addGoods(Goods* goods)
|
||||
{
|
||||
FListGoods->Add(goods);
|
||||
};
|
||||
virtual bool getNextCheckId(int &id);
|
||||
|
||||
bool SaveCheck(int CheckId);
|
||||
virtual bool PrintCheck(bool sales, int check, WideString headLine ) { return false; };
|
||||
bool deleteCheck(int CheckId);
|
||||
virtual AnsiString getLastError(){ return ""; };
|
||||
virtual bool DayOpened(){ return false; };
|
||||
virtual void setHeader(TStrings* Text){};
|
||||
virtual void getHeader(TStrings* Text){};
|
||||
virtual void setTrailer(TStrings* Text){};
|
||||
virtual void getTrailer(TStrings* Text){};
|
||||
virtual bool OpenShift(){ return true; }; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int getCOMPort();
|
||||
int getBaudRate();
|
||||
void setBaudRate(int val);
|
||||
void setCOMPort(int n);
|
||||
virtual bool PrintZReport()=0;
|
||||
virtual void PrintXReport()=0;
|
||||
|
||||
void LoadSetup();
|
||||
void SaveSetup();
|
||||
virtual bool setTrainingMode(bool val){ return false; };
|
||||
virtual bool Cut(){ return false; }; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
virtual bool setNalog(long n,float stavka){ return false; }; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
virtual int getAllSum(){ return 0; };
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> OPOS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
class PrinterOPOS : public FiscalPrinter
|
||||
{
|
||||
private:
|
||||
TOPOSFiscalPrinter *fp;
|
||||
public:
|
||||
|
||||
|
||||
bool setTrainingMode(bool val);
|
||||
bool getTrainingMode();
|
||||
|
||||
PrinterOPOS(TComponent* AOwner);
|
||||
virtual ~PrinterOPOS();
|
||||
AnsiString getPrinterName(){ return "Moebius";};
|
||||
bool Start(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> COM <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintCheck(bool sales, int check, WideString headLine ); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool SaveCheck(int CheckId); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool deleteCheck(int CheckId); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool Cut(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//int GetState(); //0 - <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool isOk(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString GetStatusDescription(long StatusCode); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString getLastError(long* err); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString getLastError(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
TDateTime getDateOpenShift(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
void setHeader(TStrings* Text);
|
||||
void getHeader(TStrings* Text);
|
||||
void setTrailer(TStrings* Text);
|
||||
void getTrailer(TStrings* Text);
|
||||
int getCOMPort();
|
||||
void setCOMPort(int n);
|
||||
int getDaySum(); //<2F><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int getAllSum(); //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
bool PrintLine(WideString line);
|
||||
bool PrintZReport(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
void PrintXReport(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool OpenShift(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DayOpened(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool setNalog(long n,float stavka); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
void Push(){}; //<2F> OPOS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
class FiscalPrinterPort : public FiscalPrinter
|
||||
{
|
||||
private:
|
||||
FP300KZ* fp;
|
||||
public:
|
||||
FiscalPrinterPort():FiscalPrinter()
|
||||
{ fp = new FP300KZ();
|
||||
};
|
||||
virtual ~FiscalPrinterPort(){ delete fp; };
|
||||
AnsiString getPrinterName(){ return "Port";};
|
||||
bool getNextCheckId(int &res)
|
||||
{
|
||||
int num;
|
||||
bool b=fp->GetLastPrintedDocNumber(num);
|
||||
res=num+1;
|
||||
if(!b)throw Exception(getLastError());
|
||||
return b;
|
||||
};
|
||||
|
||||
bool Start()
|
||||
{
|
||||
fp->OpenCOMPort(getCOMPort(),getBaudRate());
|
||||
return fp->PrinterInit();
|
||||
};
|
||||
long getCheckId(){ int num; fp->GetLastPrintedDocNumber(num); return num; }; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool PrintCheck(bool sales, int check, WideString headLine ); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool isOk();
|
||||
bool PrintLine(WideString line){ if(line!=NULL) return fp->PrintLine(line.c_bstr()); else return fp->PrintLine(L""); };
|
||||
AnsiString getLastError()
|
||||
{
|
||||
return fp->getLastErrorDest().c_str();
|
||||
};
|
||||
bool DayOpened(){ return true; };
|
||||
bool PrintZReport();
|
||||
void PrintXReport() { fp->PrintXReport(); };
|
||||
bool Cut(){ return fp->CutPaper(); };
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
extern FiscalPrinter* g_printer;
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
645
devices/Printers/Mebius/_PrinterOPOS.cpp
Normal file
645
devices/Printers/Mebius/_PrinterOPOS.cpp
Normal file
@ -0,0 +1,645 @@
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
#pragma hdrstop
|
||||
|
||||
#include "PrinterOPOS.h"
|
||||
#include "OposFiscalPrinter_1_7_Lib_OCX.h"
|
||||
#include "ud_Module.h"
|
||||
#include <Registry.hpp>
|
||||
#include <Math.h>
|
||||
#include <DateUtils.hpp>
|
||||
#include <Dialogs.hpp>
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
#pragma package(smart_init)
|
||||
//---------------------------------------------------------------------------
|
||||
PrinterOPOS* printerOPOS;
|
||||
//---------------------------------------------------------------------------
|
||||
char * kkm_err_msg_ru[] = {
|
||||
"OK", //0
|
||||
"<EFBFBD><EFBFBD> ID <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //1 FM ID Error
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> ", //2 FM Rec Error
|
||||
"Flash Chip <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //3 Flash Chip cant clear
|
||||
"<EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>", //4 FM not empty
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //5 FM Data destroyed
|
||||
"<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>", //6 Cmd ignor prn mode
|
||||
"<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //7 Oper code is absent
|
||||
"<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //8 Doc type is absent
|
||||
"<EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>", //9 Ser num CR
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //10 Password error
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD>", //11 Data/Time error
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD>", //12 Factory registration has already pass
|
||||
"<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //13 Ser num CR destroyed
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>", //14 Fiscalize has already pass
|
||||
"<EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>", //15 Not fisc mode CR
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //16 Fiscalize Data destroyed
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //17 Rewrite is conclude
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //18 Rewrite is destroyed
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //19 Shift already open
|
||||
"<EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //20 Shift not opened
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>", //21 Many goods in receipt
|
||||
"<EFBFBD><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //22 EOD data in FM destroyed
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //23 Document format error
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //24 Text rewrite
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><><EFBFBD> <20><><EFBFBD>", //25 Many parameters in document
|
||||
"<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><>", //26 Document parameters error
|
||||
"<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><>", //27 Parameters value error
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //28 Object non-existent
|
||||
"<EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //29 Document is not finished
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>", //30 goods/operation description not enough
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //31 Check sum packet
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>", //32 Prn not ready
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //33 Nested interrupts
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //34 Check Sum Error
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><>", //35 Overflow if FM
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //36 Unknown command
|
||||
"CRC <20><><EFBFBD>", //37 CRC RAM
|
||||
"CRC <20><>", //38 CRC FM
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //39 Data port defective
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>", //40 Receipts parameters sequence
|
||||
"0xy <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>", //41 0xy for required properties
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //42 Length request
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>", //43 number capacity
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //44 Overflow
|
||||
"<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>", //45 Number is absent
|
||||
"<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //46 Not response
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //47 Transmission error
|
||||
"<EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //48 Math overflow
|
||||
"<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...", //49 Paper out...
|
||||
"<EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!!", //50 CR not ready!!!
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!", //51 Memory error!!
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //52 Printer off
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //53 Insufficient memory
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //54 Lenght number less
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //55 Zero lenght number
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //56 Password lenght less permissible
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //57 Zero lenght password
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //58 Impossible value
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>-<2D><><EFBFBD>", //59 Time-out overdraw
|
||||
"",
|
||||
"<EFBFBD><EFBFBD>.<2E><><EFBFBD><EFBFBD>",
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>",
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
|
||||
"","","","","","",//69
|
||||
"","","","","","","","","","",//79
|
||||
"","","","","","","","","","",//89
|
||||
"","","","","","","","","","",//99
|
||||
"","","","","","","","","","",//109
|
||||
"","","","","","","","","","",//119
|
||||
"","","","","","","","","","",//129
|
||||
"","","","","","","","","","",//139
|
||||
"","","","","","","","","","",//149
|
||||
"","","","","","","","","","",//159
|
||||
|
||||
"","","","","","","","","","",//169
|
||||
"","","","","","","","","","",//179
|
||||
"","","","","","","","","","",//189
|
||||
"","","","","","","","","","",//199
|
||||
"","","","","","","","","","",//209
|
||||
"","","","","","","","","","",//219
|
||||
"","","","","","","","","","",//229
|
||||
"","","","","","","","","","",//239
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>",//240 Cmd not init
|
||||
"<EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//241 Cmd write err
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(DSR=0)",//242 Prn not ready (DSR=0)
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//243 Cmd ok
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//244 Cmd resp timeout
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//245 Prn error
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//246 Cmd resp large
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//247 Cmd resp small
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//248
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//249
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//250 Cmd break
|
||||
"<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//251
|
||||
"<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//252
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//253
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//254
|
||||
"<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)!"//255 Previous cmd run
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
PrinterOPOS::PrinterOPOS(TComponent* AOwner)
|
||||
{
|
||||
Crashed=false;
|
||||
fp=new TOPOSFiscalPrinter(AOwner);
|
||||
fp->DeviceEnabled = False;
|
||||
FListGoods= new TList();
|
||||
LoadSetup();
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
PrinterOPOS::~PrinterOPOS()
|
||||
{
|
||||
delete FListGoods;
|
||||
delete fp;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::LoadSetup()
|
||||
{
|
||||
TIniFile* ini=new TIniFile(ExtractFilePath(ParamStr(0))+"\\Setup.ini");
|
||||
// cPort->port=ini->ReadString("Printer","Port","");
|
||||
// cPort->BaudRate=ini->ReadInteger("Printer","BaudRate",0);
|
||||
CheckId=ini->ReadInteger("Printer","CheckCount",0);
|
||||
TestMode=ini->ReadBool("Printer","TestMode",true);
|
||||
HeadLine=ini->ReadString("Printer","HeadLine","");
|
||||
delete ini;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::SaveSetup()
|
||||
{
|
||||
TIniFile* ini=new TIniFile(ExtractFilePath(ParamStr(0))+"\\Setup.ini");
|
||||
// ini->WriteString("Printer","Port",cPort->port);
|
||||
// ini->WriteInteger("Printer","BaudRate",cPort->BaudRate);
|
||||
ini->WriteInteger("Printer","CheckCount",CheckId);
|
||||
ini->WriteBool("Printer","TestMode",CheckId);
|
||||
ini->WriteString("Printer","HeadLine",HeadLine);
|
||||
delete ini;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::Start() //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> COM <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
if(fp->DeviceEnabled) return true;
|
||||
|
||||
FState = fp->Open(L"MbsFiscalPrinter");
|
||||
if(FState!=0)
|
||||
{
|
||||
saveLog(IntToStr(FState)+"(PrinterOPOS::Start)"+GetStatusDescription(FState));
|
||||
return false;
|
||||
}
|
||||
FState = fp->ClaimDevice(1000);
|
||||
if(FState!=0)
|
||||
{
|
||||
saveLog(IntToStr(FState)+"(PrinterOPOS::Start)"+GetStatusDescription(FState));
|
||||
return false;
|
||||
}
|
||||
fp->DeviceEnabled = True;
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::setHeader(TStrings* Text)
|
||||
{
|
||||
//if(fp->DayOpened){FState=19; return;}
|
||||
|
||||
long err;
|
||||
for(int i=0;i<Text->Count;i++)
|
||||
{
|
||||
WideString str=Text->Strings[i];
|
||||
err=fp->SetHeaderLine(i+1,str,false);
|
||||
if(err!=0)
|
||||
{
|
||||
saveLog(IntToStr(err)+"(PrinterOPOS::setHeader)"+GetStatusDescription(err));
|
||||
break;
|
||||
}
|
||||
}
|
||||
err=fp->ResetPrinter();
|
||||
if(err!=0) saveLog(IntToStr(err)+"(PrinterOPOS::setHeader)"+GetStatusDescription(err));
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::getHeader(TStrings* Text)
|
||||
{
|
||||
TIniFile* ini=new TIniFile(ExtractFilePath(ParamStr(0))+"\\Setup.ini");
|
||||
Text->Add(ini->ReadString("Printer","HeadLine1",""));
|
||||
Text->Add(ini->ReadString("Printer","HeadLine2",""));
|
||||
Text->Add(ini->ReadString("Printer","HeadLine3",""));
|
||||
Text->Add(ini->ReadString("Printer","HeadLine4",""));
|
||||
Text->Add(ini->ReadString("Printer","HeadLine5",""));
|
||||
delete ini;
|
||||
|
||||
for(int i=Text->Count-1;i>=0;i--)
|
||||
if(Text->Strings[i]=="")Text->Delete(i); else break;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::setTrailer(TStrings* Text)
|
||||
{
|
||||
//if(fp->DayOpened){FState=19; return;}
|
||||
long err;
|
||||
for(int i=0;i<Text->Count;i++)
|
||||
{
|
||||
WideString str=Text->Strings[i];
|
||||
err=fp->SetTrailerLine(i+1,str,false);
|
||||
if(err!=0)
|
||||
{ saveLog(IntToStr(err)+"(PrinterOPOS::setTrailer)"+GetStatusDescription(err));
|
||||
break;
|
||||
}
|
||||
}
|
||||
err=fp->ResetPrinter();
|
||||
if(err!=0) saveLog(IntToStr(err)+"(PrinterOPOS::setTrailer)"+GetStatusDescription(err));
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::getTrailer(TStrings* Text)
|
||||
{
|
||||
TIniFile* ini=new TIniFile(ExtractFilePath(ParamStr(0))+"\\Setup.ini");
|
||||
Text->Add(ini->ReadString("Printer","TailLine1",""));
|
||||
Text->Add(ini->ReadString("Printer","TailLine2",""));
|
||||
Text->Add(ini->ReadString("Printer","TailLine3",""));
|
||||
Text->Add(ini->ReadString("Printer","TailLine4",""));
|
||||
Text->Add(ini->ReadString("Printer","TailLine5",""));
|
||||
delete ini;
|
||||
|
||||
for(int i=Text->Count-1;i>=0;i--)
|
||||
if(Text->Strings[i]=="")Text->Delete(i); else break;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::addGoods(Goods* goods)
|
||||
{
|
||||
FListGoods->Add(goods);
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::ClearGoods()
|
||||
{
|
||||
try
|
||||
{
|
||||
while(FListGoods->Count>0)
|
||||
{
|
||||
Goods* g=(Goods*)FListGoods->Items[0];
|
||||
delete g;
|
||||
FListGoods->Delete(0);
|
||||
}
|
||||
FListGoods->Clear();
|
||||
}catch(...)
|
||||
{
|
||||
Crashed=true;
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
int PrinterOPOS::getGoodsPrice()
|
||||
{
|
||||
int sum=0;
|
||||
for(int i=0;i<FListGoods->Count;i++)
|
||||
sum+=((Goods*)FListGoods->Items[i])->price;
|
||||
return sum;
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
int PrinterOPOS::getNextCheckId()
|
||||
{
|
||||
CheckId++; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
SaveSetup(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
return CheckId;
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
bool PrinterOPOS::SaveCheck(int CheckId) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD>)
|
||||
{
|
||||
if(dModule->UserType) //true - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>; false - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
dModule->SaveCheck(CheckId,dModule->UserId,0,getGoodsPrice());
|
||||
else
|
||||
dModule->SaveCheck(CheckId,0,dModule->UserId,getGoodsPrice());
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::deleteCheck(int CheckId) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
{
|
||||
dModule->UpdateChek(CheckId);
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::PrintLine(WideString line)
|
||||
{
|
||||
//<2F><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
long err = fp->PrintNormal(2, WideString(WCHAR(0x1B)) + WideString(WCHAR(0x7C)) + line + L"\n");
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//sales - true <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, false - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//check - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> =0 <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//TODO <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
bool PrinterOPOS::PrintCheck(bool sales, int check) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
long err=0;
|
||||
Currency cur=0;
|
||||
Currency cAllPrice=0;
|
||||
bool bOk=true;
|
||||
|
||||
try
|
||||
{
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
cAllPrice=getGoodsPrice();
|
||||
|
||||
if(check==0) //<2F><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
CheckId++; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
check=CheckId;
|
||||
SaveSetup(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
}
|
||||
|
||||
if(fp->RecEmpty) throw Exception("<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
if(!DayOpened())
|
||||
if(!OpenShift()) throw Exception("<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>");
|
||||
|
||||
Currency UnitPrice,AllPriceDrb,AllPrice;
|
||||
long Qnt,vat;
|
||||
BSTR* bstr;
|
||||
WideString sStr;
|
||||
BSTR sTmp=new OLECHAR[255];
|
||||
sTmp=L"";
|
||||
long MbsResponceCode;
|
||||
CURRENCY Amount1,Amount2;
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//vat=11; sTmp=L"<22><><EFBFBD><EFBFBD><EFBFBD>";
|
||||
//err = fp->DirectIO(4, &vat, &sTmp);
|
||||
//if (err) goto ErrHandler;
|
||||
|
||||
if(sales) fp->FiscalReceiptType = FPTR_RT_SALES; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
else fp->FiscalReceiptType=FPTR_RT_SERVICE; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>)
|
||||
err = fp->BeginFiscalReceipt(true);
|
||||
if (err) throw Exception(getLastError(&err)); //251
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
for(int i=0;i<FListGoods->Count;i++)
|
||||
{
|
||||
Goods* goods=(Goods*)FListGoods->Items[i];
|
||||
VarCyFromR8(goods->price*100,&Amount1);
|
||||
Amount2.int64=0;
|
||||
err=fp->PrintRecItem(goods->name+L"-/--/-0", Amount1, goods->count, goods->VatInfo, Amount2, L"<EFBFBD><EFBFBD>");
|
||||
if (err) throw Exception(getLastError(&err));
|
||||
}
|
||||
ClearGoods();
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD> PrintRecTotal)
|
||||
err = fp->DirectIO(3, &CheckId, &sTmp);
|
||||
if (err) throw Exception(getLastError(&err));
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//setNalog(1,12);
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>
|
||||
Amount2.int64=0;
|
||||
VarCyFromR8(cAllPrice*100,&Amount1);
|
||||
err=fp->PrintRecTotal(Amount1, Amount1, L"na");
|
||||
if (err) throw Exception(getLastError(&err));
|
||||
|
||||
|
||||
err = fp->EndFiscalReceipt(True); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (AdditionalTrailer) <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
printerOPOS->ClearGoods();
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+CurrToStr(cAllPrice)+" <20><><EFBFBD>: "+IntToStr(CheckId)+". "+exception.Message);
|
||||
dModule->SendError(err,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+IntToStr(cAllPrice)+" <20><><EFBFBD>: "+IntToStr(CheckId)+". "+exception.Message);
|
||||
bOk=false;
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
printerOPOS->ClearGoods();
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog("<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+IntToStr(cAllPrice)+" <20><><EFBFBD>: "+IntToStr(CheckId));
|
||||
dModule->SendError(1,"<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+IntToStr(cAllPrice)+" <20><><EFBFBD>: "+IntToStr(CheckId));
|
||||
bOk=false;
|
||||
}
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
if(!bOk)
|
||||
{
|
||||
fp->PrintRecVoid(L"");
|
||||
}
|
||||
|
||||
return bOk;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::Cut() //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
FState = fp->PrintNormal(2, WideString(WCHAR(0x1B)) + WideString(WCHAR(0x7C)) + "75P"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(FState!=0) saveLog(IntToStr(FState)+"(PrinterOPOS::Cut)"+GetStatusDescription(FState));
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
int PrinterOPOS::GetState()
|
||||
{
|
||||
if(!fp->DeviceEnabled)FState=245;
|
||||
//if(FState!=0) return FState;
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
// fp->ResultCodeExtended
|
||||
return 0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::isOk()
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
if(fp->RecEmpty) throw "<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!";
|
||||
|
||||
AnsiString str;
|
||||
if(!DayOpened())
|
||||
OpenShift();
|
||||
if(DayOpened())
|
||||
{
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
TDateTime dt=getDateOpenShift();
|
||||
str=getLastError(&err);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
|
||||
dModule->getDate();
|
||||
if(HoursBetween(dt,dModule->date)>24) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> 24 <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
throw Exception("[1]<5D><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
} else throw Exception("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
BSTR bstr=new OLECHAR[50];
|
||||
err=fp->GetDate(&bstr);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog("(PrinterOPOS::isOk)"+exception.Message);
|
||||
dModule->SendError(1,"(PrinterOPOS::isOk)"+exception.Message);
|
||||
return false;
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog("(PrinterOPOS::isOk)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::isOk)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
TDateTime PrinterOPOS::getDateOpenShift()
|
||||
{
|
||||
long iTmp,err;
|
||||
BSTR sTmp=new OLECHAR[50];
|
||||
err = fp->DirectIO(13, &iTmp, &sTmp);
|
||||
if(err!=0) return 0;
|
||||
return StrToDateTime(sTmp);
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString PrinterOPOS::GetStatusDescription(long err)
|
||||
{
|
||||
AnsiString str;
|
||||
try
|
||||
{
|
||||
if(err<256)
|
||||
str=kkm_err_msg_ru[err];
|
||||
if(str=="") str="<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
|
||||
}catch(...)
|
||||
{
|
||||
saveLog("(PrinterOPOS::GetStatusDescription) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return "<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
|
||||
}
|
||||
return str;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString PrinterOPOS::getLastError(long* err)
|
||||
{
|
||||
BSTR str=new OLECHAR[255];
|
||||
str=L"<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!";
|
||||
try
|
||||
{
|
||||
fp->DirectIO(1, err, &str);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog("(PrinterOPOS::getLastError) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
if(str==L"") return GetStatusDescription(*err);
|
||||
return str;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
AnsiString PrinterOPOS::getLastError()
|
||||
{
|
||||
long err;
|
||||
return getLastError(&err);
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
int PrinterOPOS::getCOMPort()
|
||||
{
|
||||
int n=-1;
|
||||
|
||||
TRegistry* reg=new TRegistry;
|
||||
reg->RootKey = HKEY_LOCAL_MACHINE;
|
||||
if(reg->OpenKeyReadOnly("\\SOFTWARE\\OLEforRetail\\ServiceOPOS\\FiscalPrinter\\MbsFiscalPrinter"))
|
||||
{
|
||||
n = reg->ReadInteger("COM Num");
|
||||
}
|
||||
delete reg;
|
||||
return n;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::setCOMPort(int n)
|
||||
{
|
||||
TRegistry* reg=new TRegistry;
|
||||
reg->RootKey = HKEY_LOCAL_MACHINE;
|
||||
if(reg->OpenKey("\\SOFTWARE\\OLEforRetail\\ServiceOPOS\\FiscalPrinter\\MbsFiscalPrinter",true))
|
||||
{
|
||||
reg->WriteInteger("COM Num",n);
|
||||
}
|
||||
delete reg;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
int PrinterOPOS::getBaudRate()
|
||||
{
|
||||
int n=-1;
|
||||
|
||||
TRegistry* reg=new TRegistry;
|
||||
reg->RootKey = HKEY_LOCAL_MACHINE;
|
||||
if(reg->OpenKeyReadOnly("\\SOFTWARE\\OLEforRetail\\ServiceOPOS\\FiscalPrinter\\MbsFiscalPrinter"))
|
||||
{
|
||||
n = reg->ReadInteger("COM Speed");
|
||||
}
|
||||
delete reg;
|
||||
return n;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::setBaudRate(int val)
|
||||
{
|
||||
TRegistry* reg=new TRegistry;
|
||||
reg->RootKey = HKEY_LOCAL_MACHINE;
|
||||
if(reg->OpenKey("\\SOFTWARE\\OLEforRetail\\ServiceOPOS\\FiscalPrinter\\MbsFiscalPrinter",true))
|
||||
{
|
||||
reg->WriteInteger("COM Speed",val);
|
||||
}
|
||||
delete reg;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::PrintZReport()
|
||||
{
|
||||
int sum=getDaySum();
|
||||
long err=fp->PrintZReport();
|
||||
if(err==0)
|
||||
{
|
||||
dModule->addZReport(sum);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
dModule->addPaper(-142*2);//<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}else
|
||||
{
|
||||
saveLog("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
void PrinterOPOS::PrintXReport()
|
||||
{
|
||||
fp->PrintXReport();
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::OpenShift()
|
||||
{
|
||||
long n=1;
|
||||
BSTR str=L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1";
|
||||
long err=fp->DirectIO (6,&n,&str); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(err!=0) saveLog(IntToStr(err)+"(PrinterOPOS::OpenShift)"+GetStatusDescription(err));
|
||||
|
||||
err=fp->SetVatValue(1,L"120");
|
||||
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::DayOpened()
|
||||
{
|
||||
return fp->DayOpened;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::setTrainingMode(bool val)
|
||||
{
|
||||
if(getTrainingMode()==val) return true;
|
||||
long err;
|
||||
if(val) err=fp->BeginTraining(); else err=fp->EndTraining();
|
||||
|
||||
AnsiString str=getLastError(&err);
|
||||
if(err!=0) saveLog(IntToStr(err)+"(PrinterOPOS::setTrainingMode)"+str);
|
||||
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::getTrainingMode()
|
||||
{
|
||||
return fp->TrainingModeActive;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::setNalog(long n,float stavka)
|
||||
{
|
||||
// long s=stavka*100;
|
||||
// WideString str=IntToStr(s);
|
||||
BSTR s1=L"120";
|
||||
long err = fp->DirectIO(2, &n, &s1);
|
||||
if(err!=0) saveLog(IntToStr(err)+"(PrinterOPOS::OpenShift)"+GetStatusDescription(err));
|
||||
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
int PrinterOPOS::getDaySum()
|
||||
{
|
||||
try
|
||||
{
|
||||
long n=1;
|
||||
BSTR str=new OLECHAR[20];
|
||||
long err=fp->DirectIO (300,&n,&str);
|
||||
if(err!=0)throw Exception("["+IntToStr(err)+"]"+GetStatusDescription(err));
|
||||
return StrToInt(str)/100.0;
|
||||
}catch(...)
|
||||
{
|
||||
saveLog("(PrinterOPOS::getDaySum) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::getDaySum) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
89
devices/Printers/Mebius/_PrinterOPOS.h
Normal file
89
devices/Printers/Mebius/_PrinterOPOS.h
Normal file
@ -0,0 +1,89 @@
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
#ifndef PrinterOPOSH
|
||||
#define PrinterOPOSH
|
||||
//---------------------------------------------------------------------------
|
||||
#include "OposFiscalPrinter_1_7_Lib_OCX.h"
|
||||
//---------------------------------------------------------------------------
|
||||
const LONG FPTR_RT_CASH_IN = 1;
|
||||
const LONG FPTR_RT_CASH_OUT = 2;
|
||||
const LONG FPTR_RT_GENERIC = 3;
|
||||
const LONG FPTR_RT_SALES = 4;
|
||||
const LONG FPTR_RT_SERVICE = 5;
|
||||
const LONG FPTR_RT_SIMPLE_INVOICE = 6;
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
class Goods
|
||||
{
|
||||
private:
|
||||
public:
|
||||
WideString name; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
double price; //<2F><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
long count; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
long VatInfo; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Goods(WideString name,double price, long count,long VatInfo){this->name=name; this->price=price; this->count=count; this->VatInfo=VatInfo; };
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> OPOS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
class PrinterOPOS
|
||||
{
|
||||
private:
|
||||
bool Crashed;
|
||||
TOPOSFiscalPrinter *fp;
|
||||
long FState;
|
||||
TList* FListGoods;
|
||||
public:
|
||||
AnsiString HeadLine; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
long CheckId; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool TestMode;
|
||||
|
||||
bool setTrainingMode(bool val);
|
||||
bool getTrainingMode();
|
||||
|
||||
PrinterOPOS(TComponent* AOwner);
|
||||
virtual ~PrinterOPOS();
|
||||
void LoadSetup();
|
||||
void SaveSetup();
|
||||
bool Start(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> COM <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintCheck(bool sales, int check); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool SaveCheck(int CheckId); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool deleteCheck(int CheckId); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
int getNextCheckId();
|
||||
|
||||
bool PrintLine(WideString line);
|
||||
void addGoods(Goods* goods);
|
||||
void ClearGoods();
|
||||
int getGoodsPrice();
|
||||
void Cut(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int GetState(); //0 - <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool isOk(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString GetStatusDescription(long StatusCode); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString getLastError(long* err); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString getLastError(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
TDateTime getDateOpenShift(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
void setHeader(TStrings* Text);
|
||||
void getHeader(TStrings* Text);
|
||||
void setTrailer(TStrings* Text);
|
||||
void getTrailer(TStrings* Text);
|
||||
int getCOMPort();
|
||||
void setCOMPort(int n);
|
||||
int getBaudRate();
|
||||
void setBaudRate(int val);
|
||||
int getDaySum();//<2F><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
bool PrintZReport(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
void PrintXReport(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool OpenShift(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DayOpened(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool setNalog(long n,float stavka); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
void PrintCheck(TStringList* Text){}; //Print lines and cut
|
||||
void Push(){}; //<2F> OPOS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
extern PrinterOPOS* printerOPOS;
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
928
devices/Printers/Mebius/__history/PrinterOPOS.cpp.~19~
Normal file
928
devices/Printers/Mebius/__history/PrinterOPOS.cpp.~19~
Normal file
@ -0,0 +1,928 @@
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
#pragma hdrstop
|
||||
|
||||
#include "PrinterOPOS.h"
|
||||
#include "OposFiscalPrinter_1_7_Lib_OCX.h"
|
||||
//#include "OposFiscalPrinter_CCO_OCX.h"
|
||||
#include "ud_Module.h"
|
||||
#include <Registry.hpp>
|
||||
#include <Math.h>
|
||||
#include <DateUtils.hpp>
|
||||
#include <Dialogs.hpp>
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
#pragma package(smart_init)
|
||||
//---------------------------------------------------------------------------
|
||||
FiscalPrinter* g_printer;
|
||||
//---------------------------------------------------------------------------
|
||||
char * kkm_err_msg_ru[] = {
|
||||
"OK", //0
|
||||
"<22><> ID <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //1 FM ID Error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> ", //2 FM Rec Error
|
||||
"Flash Chip <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //3 Flash Chip cant clear
|
||||
"<22><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>", //4 FM not empty
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //5 FM Data destroyed
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>", //6 Cmd ignor prn mode
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //7 Oper code is absent
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //8 Doc type is absent
|
||||
"<22><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>", //9 Ser num CR
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //10 Password error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD>", //11 Data/Time error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD>", //12 Factory registration has already pass
|
||||
"<22><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //13 Ser num CR destroyed
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>", //14 Fiscalize has already pass
|
||||
"<22><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>", //15 Not fisc mode CR
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //16 Fiscalize Data destroyed
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //17 Rewrite is conclude
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //18 Rewrite is destroyed
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //19 Shift already open
|
||||
"<22><> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //20 Shift not opened
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>", //21 Many goods in receipt
|
||||
"<22><> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //22 EOD data in FM destroyed
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //23 Document format error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //24 Text rewrite
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><><EFBFBD> <20><><EFBFBD>", //25 Many parameters in document
|
||||
"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><>", //26 Document parameters error
|
||||
"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><>", //27 Parameters value error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //28 Object non-existent
|
||||
"<22><><EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //29 Document is not finished
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>", //30 goods/operation description not enough
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //31 Check sum packet
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>", //32 Prn not ready
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //33 Nested interrupts
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //34 Check Sum Error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><>", //35 Overflow if FM
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //36 Unknown command
|
||||
"CRC <20><><EFBFBD>", //37 CRC RAM
|
||||
"CRC <20><>", //38 CRC FM
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //39 Data port defective
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>", //40 Receipts parameters sequence
|
||||
"0xy <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>", //41 0xy for required properties
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //42 Length request
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>", //43 number capacity
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //44 Overflow
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>", //45 Number is absent
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //46 Not response
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //47 Transmission error
|
||||
"<22><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //48 Math overflow
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...", //49 Paper out...
|
||||
"<22><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!!", //50 CR not ready!!!
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!", //51 Memory error!!
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //52 Printer off
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //53 Insufficient memory
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //54 Lenght number less
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //55 Zero lenght number
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //56 Password lenght less permissible
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //57 Zero lenght password
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //58 Impossible value
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>-<2D><><EFBFBD>", //59 Time-out overdraw
|
||||
"",
|
||||
"<22><>.<2E><><EFBFBD><EFBFBD>",
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>",
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
|
||||
"","","","","","",//69
|
||||
"","","","","","","","","","",//79
|
||||
"","","","","","","","","","",//89
|
||||
"","","","","","","","","","",//99
|
||||
"","","","","","","","","","",//109
|
||||
"","","","","","","","","","",//119
|
||||
"","","","","","","","","","",//129
|
||||
"","","","","","","","","","",//139
|
||||
"","","","","","","","","","",//149
|
||||
"","","","","","","","","","",//159
|
||||
|
||||
"","","","","","","","","","",//169
|
||||
"","","","","","","","","","",//179
|
||||
"","","","","","","","","","",//189
|
||||
"","","","","","","","","","",//199
|
||||
"","","","","","","","","","",//209
|
||||
"","","","","","","","","","",//219
|
||||
"","","","","","","","","","",//229
|
||||
"","","","","","","","","","",//239
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>",//240 Cmd not init
|
||||
"<22><>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//241 Cmd write err
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(DSR=0)",//242 Prn not ready (DSR=0)
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//243 Cmd ok
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//244 Cmd resp timeout
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//245 Prn error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//246 Cmd resp large
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//247 Cmd resp small
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//248
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//249
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//250 Cmd break
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//251
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//252
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//253
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//254
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)!"//255 Previous cmd run
|
||||
};
|
||||
//------------------------------------------------------------------------------
|
||||
bool FiscalPrinter::getNextCheckId(int &id)
|
||||
{
|
||||
CheckId++; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
SaveSetup(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
id=CheckId;
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinter::SaveCheck(int CheckId) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD>)
|
||||
{
|
||||
if(dModule->UserType) //true - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>; false - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
dModule->SaveCheck(CheckId,dModule->UserId,0,getGoodsPrice());
|
||||
else
|
||||
dModule->SaveCheck(CheckId,0,dModule->UserId,getGoodsPrice());
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinter::deleteCheck(int CheckId) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
{
|
||||
dModule->UpdateChek(CheckId);
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
int FiscalPrinter::getCOMPort()
|
||||
{
|
||||
int n=-1;
|
||||
|
||||
TRegistry* reg=new TRegistry;
|
||||
reg->RootKey = HKEY_LOCAL_MACHINE;
|
||||
if(reg->OpenKeyReadOnly("\\SOFTWARE\\OLEforRetail\\ServiceOPOS\\FiscalPrinter\\MbsFiscalPrinter"))
|
||||
{
|
||||
n = reg->ReadInteger("COM Num");
|
||||
}
|
||||
delete reg;
|
||||
return n;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void FiscalPrinter::setBaudRate(int val)
|
||||
{
|
||||
TRegistry* reg=new TRegistry;
|
||||
reg->RootKey = HKEY_LOCAL_MACHINE;
|
||||
if(reg->OpenKey("\\SOFTWARE\\OLEforRetail\\ServiceOPOS\\FiscalPrinter\\MbsFiscalPrinter",true))
|
||||
{
|
||||
reg->WriteInteger("COM Speed",val);
|
||||
}
|
||||
delete reg;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
int FiscalPrinter::getBaudRate()
|
||||
{
|
||||
int n=-1;
|
||||
|
||||
TRegistry* reg=new TRegistry;
|
||||
reg->RootKey = HKEY_LOCAL_MACHINE;
|
||||
if(reg->OpenKeyReadOnly("\\SOFTWARE\\OLEforRetail\\ServiceOPOS\\FiscalPrinter\\MbsFiscalPrinter"))
|
||||
{
|
||||
n = reg->ReadInteger("COM Speed");
|
||||
}
|
||||
delete reg;
|
||||
return n;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void FiscalPrinter::setCOMPort(int n)
|
||||
{
|
||||
TRegistry* reg=new TRegistry;
|
||||
reg->RootKey = HKEY_LOCAL_MACHINE;
|
||||
if(reg->OpenKey("\\SOFTWARE\\OLEforRetail\\ServiceOPOS\\FiscalPrinter\\MbsFiscalPrinter",true))
|
||||
{
|
||||
reg->WriteInteger("COM Num",n);
|
||||
}
|
||||
delete reg;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void FiscalPrinter::LoadSetup()
|
||||
{
|
||||
TIniFile* ini=new TIniFile(ExtractFilePath(ParamStr(0))+"\\Setup.ini");
|
||||
// cPort->port=ini->ReadString("Printer","Port","");
|
||||
// cPort->BaudRate=ini->ReadInteger("Printer","BaudRate",0);
|
||||
CheckId=ini->ReadInteger("Printer","CheckCount",0);
|
||||
TestMode=ini->ReadBool("Printer","TestMode",true);
|
||||
HeadLine=ini->ReadString("Printer","HeadLine","");
|
||||
GoodsName=ini->ReadString("Printer","GoodsName","");
|
||||
CasireName=ini->ReadString("Printer","CasireName","");
|
||||
AutoOpenShift=ini->ReadBool("Printer","AutoOpenShift",false);
|
||||
delete ini;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void FiscalPrinter::SaveSetup()
|
||||
{
|
||||
TIniFile* ini=new TIniFile(ExtractFilePath(ParamStr(0))+"\\Setup.ini");
|
||||
// ini->WriteString("Printer","Port",cPort->port);
|
||||
// ini->WriteInteger("Printer","BaudRate",cPort->BaudRate);
|
||||
ini->WriteInteger("Printer","CheckCount",CheckId);
|
||||
ini->WriteBool("Printer","TestMode",TestMode);
|
||||
ini->WriteString("Printer","GoodsName",GoodsName);
|
||||
ini->WriteString("Printer","CasireName",CasireName);
|
||||
ini->WriteBool("Printer","AutoOpenShift",AutoOpenShift);
|
||||
delete ini;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
int FiscalPrinter::getGoodsPrice()
|
||||
{
|
||||
int sum=0;
|
||||
for(int i=0;i<FListGoods->Count;i++)
|
||||
sum+=((Goods*)FListGoods->Items[i])->price;
|
||||
return sum;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//---------------------------------------------------------------------------
|
||||
//---------------------------------------------------------------------------
|
||||
PrinterOPOS::PrinterOPOS(TComponent* AOwner):FiscalPrinter()
|
||||
{
|
||||
Crashed=false;
|
||||
AutoOpenShift=false;
|
||||
fp=new TOPOSFiscalPrinter(AOwner);
|
||||
fp->DeviceEnabled = False;
|
||||
LoadSetup();
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
PrinterOPOS::~PrinterOPOS()
|
||||
{
|
||||
delete FListGoods;
|
||||
delete fp;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> COM <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::Start()
|
||||
{
|
||||
if(fp->DeviceEnabled) return true;
|
||||
|
||||
FState = fp->Open(L"MbsFiscalPrinter");
|
||||
if(FState!=0)
|
||||
{
|
||||
saveLog(1,AnsiString(FState)+"(PrinterOPOS::Start)"+GetStatusDescription(FState));
|
||||
return false;
|
||||
}
|
||||
FState = fp->ClaimDevice(1000);
|
||||
if(FState!=0)
|
||||
{
|
||||
saveLog(1,AnsiString(FState)+"(PrinterOPOS::Start)"+GetStatusDescription(FState));
|
||||
return false;
|
||||
}
|
||||
fp->DeviceEnabled = True;
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::setHeader(TStrings* Text)
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
for(int i=0;i<Text->Count;i++)
|
||||
{
|
||||
WideString str=Text->Strings[i];
|
||||
err=fp->SetHeaderLine(i+1,str.c_bstr(),false);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}
|
||||
err=fp->ResetPrinter();
|
||||
if(err)throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::setHeader)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::setHeader)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::setHeader) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::setHeader) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::getHeader(TStrings* Text)
|
||||
{
|
||||
TIniFile* ini=new TIniFile(ExtractFilePath(ParamStr(0))+"\\Setup.ini");
|
||||
Text->Add(ini->ReadString("Printer","HeadLine1",""));
|
||||
Text->Add(ini->ReadString("Printer","HeadLine2",""));
|
||||
Text->Add(ini->ReadString("Printer","HeadLine3",""));
|
||||
Text->Add(ini->ReadString("Printer","HeadLine4",""));
|
||||
Text->Add(ini->ReadString("Printer","HeadLine5",""));
|
||||
delete ini;
|
||||
|
||||
for(int i=Text->Count-1;i>=0;i--)
|
||||
if(Text->Strings[i]=="")Text->Delete(i); else break;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::setTrailer(TStrings* Text)
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
for(int i=0;i<Text->Count;i++)
|
||||
{
|
||||
WideString str=Text->Strings[i];
|
||||
err=fp->SetTrailerLine(i+1,str.c_bstr(),false);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}
|
||||
err=fp->ResetPrinter();
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::setTrailer)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::setTrailer)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::setTrailer) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::setTrailer) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::getTrailer(TStrings* Text)
|
||||
{
|
||||
TIniFile* ini=new TIniFile(ExtractFilePath(ParamStr(0))+"\\Setup.ini");
|
||||
Text->Add(ini->ReadString("Printer","TailLine1",""));
|
||||
Text->Add(ini->ReadString("Printer","TailLine2",""));
|
||||
Text->Add(ini->ReadString("Printer","TailLine3",""));
|
||||
Text->Add(ini->ReadString("Printer","TailLine4",""));
|
||||
Text->Add(ini->ReadString("Printer","TailLine5",""));
|
||||
delete ini;
|
||||
|
||||
for(int i=Text->Count-1;i>=0;i--)
|
||||
if(Text->Strings[i]=="")Text->Delete(i); else break;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::PrintLine(WideString line)
|
||||
{
|
||||
//<2F><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
long err=0;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
err=fp->PrintNormal(2, WideString(WideString(WCHAR(0x1B)) + WideString(WCHAR(0x7C)) + line + L"\n").c_bstr());
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::PrintLine)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::PrintLine)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::PrintLine) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::PrintLine) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//sales - true <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, false - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//check - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> =0 <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//TODO <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
bool PrinterOPOS::PrintCheck(bool sales, int check, WideString headLine) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
long err=0;
|
||||
Currency cur=0;
|
||||
Currency cAllPrice=0;
|
||||
bool bOk=true;
|
||||
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
cAllPrice=getGoodsPrice();
|
||||
|
||||
if(check==0) //<2F><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
CheckId++; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
check=CheckId;
|
||||
SaveSetup(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
}
|
||||
|
||||
if(fp->RecEmpty) throw Exception("<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
if(!DayOpened()) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
|
||||
Currency UnitPrice,AllPriceDrb,AllPrice;
|
||||
long Qnt,vat;
|
||||
BSTR* bstr;
|
||||
WideString sStr;
|
||||
BSTR sTmp=new OLECHAR[255];
|
||||
sTmp=L"";
|
||||
long MbsResponceCode;
|
||||
CURRENCY Amount1,Amount2;
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//vat=11; sTmp=L"<22><><EFBFBD><EFBFBD><EFBFBD>";
|
||||
//err = fp->DirectIO(4, &vat, &sTmp);
|
||||
//if (err) goto ErrHandler;
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> TODO!!!
|
||||
if(headLine.Length()>0)
|
||||
PrintLine(headLine);
|
||||
|
||||
|
||||
if(sales) fp->FiscalReceiptType = FPTR_RT_SALES; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
else fp->FiscalReceiptType=FPTR_RT_SERVICE; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//setTrainingMode(true);
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>)
|
||||
err = fp->BeginFiscalReceipt(true);
|
||||
if (err) throw Exception(getLastError(&err)); //251
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (TODO <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
for(int i=0;i<FListGoods->Count;i++)
|
||||
{
|
||||
Goods* goods=(Goods*)FListGoods->Items[i];
|
||||
VarCyFromR8(goods->price*100,&Amount1);
|
||||
Amount2.int64=0;
|
||||
WideString tmp=goods->name1+L"-/--/-0";
|
||||
err=fp->PrintRecItem(tmp.c_bstr(), Amount1, goods->count, goods->VatInfo, Amount2, L"<22><>");
|
||||
if (err) throw Exception(getLastError(&err));
|
||||
}
|
||||
ClearGoods();
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD> PrintRecTotal)
|
||||
err = fp->DirectIO(3, &CheckId, &sTmp);
|
||||
if (err) throw Exception(getLastError(&err));
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//setNalog(1,12);
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>
|
||||
Amount2.int64=0;
|
||||
VarCyFromR8(cAllPrice*100,&Amount1);
|
||||
err=fp->PrintRecTotal(Amount1, Amount1, L"na");
|
||||
if (err) throw Exception(getLastError(&err));
|
||||
|
||||
|
||||
err = fp->EndFiscalReceipt(True); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (AdditionalTrailer) <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
ClearGoods();
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(1,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+CurrToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId)+". "+exception.Message);
|
||||
dModule->SendError(err,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+IntToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId)+". "+exception.Message);
|
||||
bOk=false;
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
ClearGoods();
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+IntToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId));
|
||||
dModule->SendError(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+IntToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId));
|
||||
bOk=false;
|
||||
}
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
if(!bOk)
|
||||
{
|
||||
fp->PrintRecVoid(L"");
|
||||
}
|
||||
|
||||
return bOk;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::Cut() //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
err=fp->PrintNormal(2, WideString(WideString(WCHAR(0x1B)) + WideString(WCHAR(0x7C)) + "75P").c_bstr());
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::Cut)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::Cut)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::Cut) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::Cut) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
/*int PrinterOPOS::GetState()
|
||||
{
|
||||
if(!fp->DeviceEnabled)FState=245;
|
||||
//if(FState!=0) return FState;
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
// fp->ResultCodeExtended
|
||||
return 0;
|
||||
} */
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::isOk()
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
if(fp->RecEmpty) throw "<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!";
|
||||
err=fp->ResetPrinter();
|
||||
if(err) throw Exception(getLastError(&err)); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
AnsiString str;
|
||||
|
||||
if(!dModule->getDayShift())throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool dOpen=DayOpened();
|
||||
if(!dOpen && AutoOpenShift && OpenShift()) dOpen=true;
|
||||
if(!dOpen) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
if(DayOpened())
|
||||
{
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
TDateTime dt=getDateOpenShift();
|
||||
str=getLastError(&err);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
|
||||
dModule->getDate();
|
||||
if(HoursBetween(dt,dModule->date)>24) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> 24 <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
throw Exception("[1]<5D><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
} else throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
BSTR bstr=new OLECHAR[50];
|
||||
err=fp->GetDate(&bstr);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(1,"(PrinterOPOS::isOk)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::isOk)"+exception.Message);
|
||||
return false;
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(1,"(PrinterOPOS::isOk)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::isOk)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
TDateTime PrinterOPOS::getDateOpenShift()
|
||||
{
|
||||
long err=0;
|
||||
TDateTime date=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
long iTmp;
|
||||
BSTR sTmp=new OLECHAR[50];
|
||||
err=fp->DirectIO(13, &iTmp, &sTmp);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
date=StrToDateTime(sTmp);
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::getDateOpenShift)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::getDateOpenShift)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::getDateOpenShift) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::getDateOpenShift) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return date;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString PrinterOPOS::GetStatusDescription(long err)
|
||||
{
|
||||
AnsiString str;
|
||||
try
|
||||
{
|
||||
if(err<256)
|
||||
str=kkm_err_msg_ru[err];
|
||||
if(str=="") str="<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::GetStatusDescription) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return "<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
|
||||
}
|
||||
return str;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString PrinterOPOS::getLastError(long* err)
|
||||
{
|
||||
BSTR str=new OLECHAR[255];
|
||||
str=L"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!";
|
||||
try
|
||||
{
|
||||
fp->DirectIO(1, err, &str);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::getLastError) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
if(str==L"") return GetStatusDescription(*err);
|
||||
return str;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
AnsiString PrinterOPOS::getLastError()
|
||||
{
|
||||
long err;
|
||||
return getLastError(&err);
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::PrintZReport()
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
int sum=getDaySum();
|
||||
err=fp->PrintZReport();
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
dModule->addZReport(sum);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
dModule->addPaper(-142*2);//<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::PrintZReport)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::PrintZReport)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::PrintZReport) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::PrintZReport) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
void PrinterOPOS::PrintXReport()
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
err=fp->PrintXReport();
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::PrintXReport)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::PrintXReport)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::PrintXReport) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::PrintXReport) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::OpenShift()
|
||||
{
|
||||
long err;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
long n=1;
|
||||
//if(CasireName==NULL) CasireName=L" ";
|
||||
BSTR str=CasireName.c_bstr();
|
||||
err=fp->DirectIO (6,&n,&str);
|
||||
if(err) throw Exception(getLastError(&err)); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
err=fp->SetVatValue(1,L"120");
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::OpenShift)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::OpenShift)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::OpenShift) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::OpenShift) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::DayOpened()
|
||||
{
|
||||
return fp->DayOpened;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::setTrainingMode(bool val)
|
||||
{
|
||||
long err;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
if(getTrainingMode()==val) return true;
|
||||
if(val) err=fp->BeginTraining(); else err=fp->EndTraining();
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::setTrainingMode)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::setTrainingMode)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::setTrainingMode) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::setTrainingMode) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::getTrainingMode()
|
||||
{
|
||||
return fp->TrainingModeActive;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::setNalog(long n,float stavka)
|
||||
{
|
||||
long err;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
long s=stavka*10;
|
||||
WideString str=AnsiString(s);
|
||||
err = fp->DirectIO(2, &n, &str);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::setNalog)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::setNalog)"+exception.Message);
|
||||
return true;
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::setNalog) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::setNalog) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return true;
|
||||
}
|
||||
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
int PrinterOPOS::getDaySum()
|
||||
{
|
||||
long err;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
long n=1;
|
||||
BSTR str=new OLECHAR[20];
|
||||
err=fp->DirectIO (300,&n,&str);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
return StrToInt(str)/100.0;
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::getDaySum)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::getDaySum)"+exception.Message);
|
||||
return 0;
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::getDaySum) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::getDaySum) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
int PrinterOPOS::getAllSum()
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
long n=2;
|
||||
BSTR str=new OLECHAR[20];
|
||||
err=fp->DirectIO (300,&n,&str);
|
||||
if(err)throw Exception(getLastError(&err));
|
||||
return StrToInt(str)/100.0;
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::getAllSum)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::getAllSum)"+exception.Message);
|
||||
return 0;
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::getAllSum) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::getAllSum) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//sales - true <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, false - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//check - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> =0 <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
bool FiscalPrinterPort::PrintCheck(bool sales, int check, WideString headLine )
|
||||
{
|
||||
//bool err=0;
|
||||
double cur=0;
|
||||
double cAllPrice=0;
|
||||
bool bOk=true;
|
||||
|
||||
try
|
||||
{
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
cAllPrice=getGoodsPrice();
|
||||
|
||||
Currency UnitPrice,AllPriceDrb,AllPrice;
|
||||
long Qnt,vat;
|
||||
BSTR* bstr;
|
||||
WideString sStr;
|
||||
BSTR sTmp=new OLECHAR[255];
|
||||
sTmp=L"";
|
||||
long MbsResponceCode;
|
||||
CURRENCY Amount1,Amount2;
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(sales) bOk = fp->OpenFiscalInv(1,"0000",1);
|
||||
else bOk = fp->OpenBackInv(1,"0000",1);
|
||||
if (!bOk) throw Exception(getLastError());
|
||||
|
||||
if(headLine.Length()>0)
|
||||
PrintLine(headLine);
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
for(int i=0;i<FListGoods->Count;i++)
|
||||
{
|
||||
Goods* goods=(Goods*)FListGoods->Items[i];
|
||||
bOk=fp->RegisterSale(goods->name1.c_bstr(),goods->name2.c_bstr(),0,"<22>",goods->price,goods->count,0,0); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
if (!bOk) throw Exception(getLastError());
|
||||
}
|
||||
ClearGoods();
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
double Change;
|
||||
bOk=fp->Total("","","P",cAllPrice,Change);
|
||||
if (!bOk) throw Exception(getLastError());
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
bOk = fp->CloseFiscalInv();
|
||||
if(!bOk) throw Exception(getLastError());
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
ClearGoods();
|
||||
saveLog(1,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+CurrToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId)+". "+exception.Message);
|
||||
dModule->SendError(bOk,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+FloatToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId)+". "+exception.Message);
|
||||
bOk=false;
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
ClearGoods();
|
||||
saveLog(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+FloatToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId));
|
||||
dModule->SendError(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+FloatToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId));
|
||||
bOk=false;
|
||||
}
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
if(!bOk)
|
||||
{
|
||||
fp->CancelFiscalInv();
|
||||
}
|
||||
return bOk;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinterPort::PrintZReport()
|
||||
{
|
||||
bool bOk;
|
||||
try
|
||||
{
|
||||
double Amount=0,CashSum=0,ServIn=0,ServOut=0;
|
||||
std::string ExitCode="";
|
||||
bOk=fp->ParishOrConsumption(Amount,ExitCode,CashSum,ServIn,ServOut);
|
||||
if(!bOk) throw Exception(getLastError());
|
||||
bOk=fp->PrintZReport();
|
||||
if(!bOk) throw Exception(getLastError());
|
||||
dModule->addZReport(CashSum);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
ClearGoods();
|
||||
saveLog(1,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "+exception.Message);
|
||||
dModule->SendError(bOk,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "+exception.Message);
|
||||
bOk=false;
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
ClearGoods();
|
||||
saveLog(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.");
|
||||
dModule->SendError(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.");
|
||||
bOk=false;
|
||||
}
|
||||
|
||||
return bOk;
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinterPort::isOk()
|
||||
{
|
||||
try
|
||||
{
|
||||
if (!fp->DiagnosticInfo()) throw Exception(getLastError());
|
||||
if(!dModule->getDayShift())throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::isOk)"+exception.Message);
|
||||
dModule->SendError(1,"(PrinterOPOS::isOk)"+exception.Message);
|
||||
return false;
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::isOk)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::isOk)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
928
devices/Printers/Mebius/__history/PrinterOPOS.cpp.~20~
Normal file
928
devices/Printers/Mebius/__history/PrinterOPOS.cpp.~20~
Normal file
@ -0,0 +1,928 @@
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
#pragma hdrstop
|
||||
|
||||
#include "PrinterOPOS.h"
|
||||
#include "OposFiscalPrinter_1_7_Lib_OCX.h"
|
||||
//#include "OposFiscalPrinter_CCO_OCX.h"
|
||||
#include "ud_Module.h"
|
||||
#include <Registry.hpp>
|
||||
#include <Math.h>
|
||||
#include <DateUtils.hpp>
|
||||
#include <Dialogs.hpp>
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
#pragma package(smart_init)
|
||||
//---------------------------------------------------------------------------
|
||||
FiscalPrinter* g_printer;
|
||||
//---------------------------------------------------------------------------
|
||||
char * kkm_err_msg_ru[] = {
|
||||
"OK", //0
|
||||
"<22><> ID <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //1 FM ID Error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> ", //2 FM Rec Error
|
||||
"Flash Chip <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //3 Flash Chip cant clear
|
||||
"<22><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>", //4 FM not empty
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //5 FM Data destroyed
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>", //6 Cmd ignor prn mode
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //7 Oper code is absent
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //8 Doc type is absent
|
||||
"<22><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>", //9 Ser num CR
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //10 Password error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD>", //11 Data/Time error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD>", //12 Factory registration has already pass
|
||||
"<22><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //13 Ser num CR destroyed
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>", //14 Fiscalize has already pass
|
||||
"<22><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>", //15 Not fisc mode CR
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //16 Fiscalize Data destroyed
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //17 Rewrite is conclude
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //18 Rewrite is destroyed
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //19 Shift already open
|
||||
"<22><> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //20 Shift not opened
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>", //21 Many goods in receipt
|
||||
"<22><> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //22 EOD data in FM destroyed
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //23 Document format error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //24 Text rewrite
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><><EFBFBD> <20><><EFBFBD>", //25 Many parameters in document
|
||||
"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><>", //26 Document parameters error
|
||||
"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><>", //27 Parameters value error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //28 Object non-existent
|
||||
"<22><><EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //29 Document is not finished
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>", //30 goods/operation description not enough
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //31 Check sum packet
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>", //32 Prn not ready
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //33 Nested interrupts
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //34 Check Sum Error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><>", //35 Overflow if FM
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //36 Unknown command
|
||||
"CRC <20><><EFBFBD>", //37 CRC RAM
|
||||
"CRC <20><>", //38 CRC FM
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //39 Data port defective
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>", //40 Receipts parameters sequence
|
||||
"0xy <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>", //41 0xy for required properties
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //42 Length request
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>", //43 number capacity
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //44 Overflow
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>", //45 Number is absent
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //46 Not response
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //47 Transmission error
|
||||
"<22><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //48 Math overflow
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...", //49 Paper out...
|
||||
"<22><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!!", //50 CR not ready!!!
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!", //51 Memory error!!
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //52 Printer off
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //53 Insufficient memory
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //54 Lenght number less
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //55 Zero lenght number
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //56 Password lenght less permissible
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //57 Zero lenght password
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //58 Impossible value
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>-<2D><><EFBFBD>", //59 Time-out overdraw
|
||||
"",
|
||||
"<22><>.<2E><><EFBFBD><EFBFBD>",
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>",
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
|
||||
"","","","","","",//69
|
||||
"","","","","","","","","","",//79
|
||||
"","","","","","","","","","",//89
|
||||
"","","","","","","","","","",//99
|
||||
"","","","","","","","","","",//109
|
||||
"","","","","","","","","","",//119
|
||||
"","","","","","","","","","",//129
|
||||
"","","","","","","","","","",//139
|
||||
"","","","","","","","","","",//149
|
||||
"","","","","","","","","","",//159
|
||||
|
||||
"","","","","","","","","","",//169
|
||||
"","","","","","","","","","",//179
|
||||
"","","","","","","","","","",//189
|
||||
"","","","","","","","","","",//199
|
||||
"","","","","","","","","","",//209
|
||||
"","","","","","","","","","",//219
|
||||
"","","","","","","","","","",//229
|
||||
"","","","","","","","","","",//239
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>",//240 Cmd not init
|
||||
"<22><>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//241 Cmd write err
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(DSR=0)",//242 Prn not ready (DSR=0)
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//243 Cmd ok
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//244 Cmd resp timeout
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//245 Prn error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//246 Cmd resp large
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//247 Cmd resp small
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//248
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//249
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//250 Cmd break
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//251
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//252
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//253
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//254
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)!"//255 Previous cmd run
|
||||
};
|
||||
//------------------------------------------------------------------------------
|
||||
bool FiscalPrinter::getNextCheckId(int &id)
|
||||
{
|
||||
CheckId++; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
SaveSetup(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
id=CheckId;
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinter::SaveCheck(int CheckId) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD>)
|
||||
{
|
||||
if(dModule->UserType) //true - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>; false - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
dModule->SaveCheck(CheckId,dModule->UserId,0,getGoodsPrice());
|
||||
else
|
||||
dModule->SaveCheck(CheckId,0,dModule->UserId,getGoodsPrice());
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinter::deleteCheck(int CheckId) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
{
|
||||
dModule->UpdateChek(CheckId);
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
int FiscalPrinter::getCOMPort()
|
||||
{
|
||||
int n=-1;
|
||||
|
||||
TRegistry* reg=new TRegistry;
|
||||
reg->RootKey = HKEY_LOCAL_MACHINE;
|
||||
if(reg->OpenKeyReadOnly("\\SOFTWARE\\OLEforRetail\\ServiceOPOS\\FiscalPrinter\\MbsFiscalPrinter"))
|
||||
{
|
||||
n = reg->ReadInteger("COM Num");
|
||||
}
|
||||
delete reg;
|
||||
return n;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void FiscalPrinter::setBaudRate(int val)
|
||||
{
|
||||
TRegistry* reg=new TRegistry;
|
||||
reg->RootKey = HKEY_LOCAL_MACHINE;
|
||||
if(reg->OpenKey("\\SOFTWARE\\OLEforRetail\\ServiceOPOS\\FiscalPrinter\\MbsFiscalPrinter",true))
|
||||
{
|
||||
reg->WriteInteger("COM Speed",val);
|
||||
}
|
||||
delete reg;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
int FiscalPrinter::getBaudRate()
|
||||
{
|
||||
int n=-1;
|
||||
|
||||
TRegistry* reg=new TRegistry;
|
||||
reg->RootKey = HKEY_LOCAL_MACHINE;
|
||||
if(reg->OpenKeyReadOnly("\\SOFTWARE\\OLEforRetail\\ServiceOPOS\\FiscalPrinter\\MbsFiscalPrinter"))
|
||||
{
|
||||
n = reg->ReadInteger("COM Speed");
|
||||
}
|
||||
delete reg;
|
||||
return n;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinter::setCOMPort(int n)
|
||||
{
|
||||
TRegistry* reg=new TRegistry;
|
||||
reg->RootKey = HKEY_LOCAL_MACHINE;
|
||||
if(reg->OpenKey("\\SOFTWARE\\OLEforRetail\\ServiceOPOS\\FiscalPrinter\\MbsFiscalPrinter",true))
|
||||
{
|
||||
reg->WriteInteger("COM Num",n);
|
||||
}
|
||||
delete reg;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void FiscalPrinter::LoadSetup()
|
||||
{
|
||||
TIniFile* ini=new TIniFile(ExtractFilePath(ParamStr(0))+"\\Setup.ini");
|
||||
// cPort->port=ini->ReadString("Printer","Port","");
|
||||
// cPort->BaudRate=ini->ReadInteger("Printer","BaudRate",0);
|
||||
CheckId=ini->ReadInteger("Printer","CheckCount",0);
|
||||
TestMode=ini->ReadBool("Printer","TestMode",true);
|
||||
HeadLine=ini->ReadString("Printer","HeadLine","");
|
||||
GoodsName=ini->ReadString("Printer","GoodsName","");
|
||||
CasireName=ini->ReadString("Printer","CasireName","");
|
||||
AutoOpenShift=ini->ReadBool("Printer","AutoOpenShift",false);
|
||||
delete ini;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void FiscalPrinter::SaveSetup()
|
||||
{
|
||||
TIniFile* ini=new TIniFile(ExtractFilePath(ParamStr(0))+"\\Setup.ini");
|
||||
// ini->WriteString("Printer","Port",cPort->port);
|
||||
// ini->WriteInteger("Printer","BaudRate",cPort->BaudRate);
|
||||
ini->WriteInteger("Printer","CheckCount",CheckId);
|
||||
ini->WriteBool("Printer","TestMode",TestMode);
|
||||
ini->WriteString("Printer","GoodsName",GoodsName);
|
||||
ini->WriteString("Printer","CasireName",CasireName);
|
||||
ini->WriteBool("Printer","AutoOpenShift",AutoOpenShift);
|
||||
delete ini;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
int FiscalPrinter::getGoodsPrice()
|
||||
{
|
||||
int sum=0;
|
||||
for(int i=0;i<FListGoods->Count;i++)
|
||||
sum+=((Goods*)FListGoods->Items[i])->price;
|
||||
return sum;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//---------------------------------------------------------------------------
|
||||
//---------------------------------------------------------------------------
|
||||
PrinterOPOS::PrinterOPOS(TComponent* AOwner):FiscalPrinter()
|
||||
{
|
||||
Crashed=false;
|
||||
AutoOpenShift=false;
|
||||
fp=new TOPOSFiscalPrinter(AOwner);
|
||||
fp->DeviceEnabled = False;
|
||||
LoadSetup();
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
PrinterOPOS::~PrinterOPOS()
|
||||
{
|
||||
delete FListGoods;
|
||||
delete fp;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> COM <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::Start()
|
||||
{
|
||||
if(fp->DeviceEnabled) return true;
|
||||
|
||||
FState = fp->Open(L"MbsFiscalPrinter");
|
||||
if(FState!=0)
|
||||
{
|
||||
saveLog(1,AnsiString(FState)+"(PrinterOPOS::Start)"+GetStatusDescription(FState));
|
||||
return false;
|
||||
}
|
||||
FState = fp->ClaimDevice(1000);
|
||||
if(FState!=0)
|
||||
{
|
||||
saveLog(1,AnsiString(FState)+"(PrinterOPOS::Start)"+GetStatusDescription(FState));
|
||||
return false;
|
||||
}
|
||||
fp->DeviceEnabled = True;
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::setHeader(TStrings* Text)
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
for(int i=0;i<Text->Count;i++)
|
||||
{
|
||||
WideString str=Text->Strings[i];
|
||||
err=fp->SetHeaderLine(i+1,str.c_bstr(),false);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}
|
||||
err=fp->ResetPrinter();
|
||||
if(err)throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::setHeader)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::setHeader)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::setHeader) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::setHeader) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::getHeader(TStrings* Text)
|
||||
{
|
||||
TIniFile* ini=new TIniFile(ExtractFilePath(ParamStr(0))+"\\Setup.ini");
|
||||
Text->Add(ini->ReadString("Printer","HeadLine1",""));
|
||||
Text->Add(ini->ReadString("Printer","HeadLine2",""));
|
||||
Text->Add(ini->ReadString("Printer","HeadLine3",""));
|
||||
Text->Add(ini->ReadString("Printer","HeadLine4",""));
|
||||
Text->Add(ini->ReadString("Printer","HeadLine5",""));
|
||||
delete ini;
|
||||
|
||||
for(int i=Text->Count-1;i>=0;i--)
|
||||
if(Text->Strings[i]=="")Text->Delete(i); else break;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::setTrailer(TStrings* Text)
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
for(int i=0;i<Text->Count;i++)
|
||||
{
|
||||
WideString str=Text->Strings[i];
|
||||
err=fp->SetTrailerLine(i+1,str.c_bstr(),false);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}
|
||||
err=fp->ResetPrinter();
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::setTrailer)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::setTrailer)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::setTrailer) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::setTrailer) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::getTrailer(TStrings* Text)
|
||||
{
|
||||
TIniFile* ini=new TIniFile(ExtractFilePath(ParamStr(0))+"\\Setup.ini");
|
||||
Text->Add(ini->ReadString("Printer","TailLine1",""));
|
||||
Text->Add(ini->ReadString("Printer","TailLine2",""));
|
||||
Text->Add(ini->ReadString("Printer","TailLine3",""));
|
||||
Text->Add(ini->ReadString("Printer","TailLine4",""));
|
||||
Text->Add(ini->ReadString("Printer","TailLine5",""));
|
||||
delete ini;
|
||||
|
||||
for(int i=Text->Count-1;i>=0;i--)
|
||||
if(Text->Strings[i]=="")Text->Delete(i); else break;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::PrintLine(WideString line)
|
||||
{
|
||||
//<2F><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
long err=0;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
err=fp->PrintNormal(2, WideString(WideString(WCHAR(0x1B)) + WideString(WCHAR(0x7C)) + line + L"\n").c_bstr());
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::PrintLine)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::PrintLine)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::PrintLine) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::PrintLine) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//sales - true <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, false - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//check - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> =0 <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//TODO <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
bool PrinterOPOS::PrintCheck(bool sales, int check, WideString headLine) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
long err=0;
|
||||
Currency cur=0;
|
||||
Currency cAllPrice=0;
|
||||
bool bOk=true;
|
||||
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
cAllPrice=getGoodsPrice();
|
||||
|
||||
if(check==0) //<2F><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
CheckId++; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
check=CheckId;
|
||||
SaveSetup(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
}
|
||||
|
||||
if(fp->RecEmpty) throw Exception("<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
if(!DayOpened()) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
|
||||
Currency UnitPrice,AllPriceDrb,AllPrice;
|
||||
long Qnt,vat;
|
||||
BSTR* bstr;
|
||||
WideString sStr;
|
||||
BSTR sTmp=new OLECHAR[255];
|
||||
sTmp=L"";
|
||||
long MbsResponceCode;
|
||||
CURRENCY Amount1,Amount2;
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//vat=11; sTmp=L"<22><><EFBFBD><EFBFBD><EFBFBD>";
|
||||
//err = fp->DirectIO(4, &vat, &sTmp);
|
||||
//if (err) goto ErrHandler;
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> TODO!!!
|
||||
if(headLine.Length()>0)
|
||||
PrintLine(headLine);
|
||||
|
||||
|
||||
if(sales) fp->FiscalReceiptType = FPTR_RT_SALES; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
else fp->FiscalReceiptType=FPTR_RT_SERVICE; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//setTrainingMode(true);
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>)
|
||||
err = fp->BeginFiscalReceipt(true);
|
||||
if (err) throw Exception(getLastError(&err)); //251
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (TODO <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
for(int i=0;i<FListGoods->Count;i++)
|
||||
{
|
||||
Goods* goods=(Goods*)FListGoods->Items[i];
|
||||
VarCyFromR8(goods->price*100,&Amount1);
|
||||
Amount2.int64=0;
|
||||
WideString tmp=goods->name1+L"-/--/-0";
|
||||
err=fp->PrintRecItem(tmp.c_bstr(), Amount1, goods->count, goods->VatInfo, Amount2, L"<22><>");
|
||||
if (err) throw Exception(getLastError(&err));
|
||||
}
|
||||
ClearGoods();
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD> PrintRecTotal)
|
||||
err = fp->DirectIO(3, &CheckId, &sTmp);
|
||||
if (err) throw Exception(getLastError(&err));
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//setNalog(1,12);
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>
|
||||
Amount2.int64=0;
|
||||
VarCyFromR8(cAllPrice*100,&Amount1);
|
||||
err=fp->PrintRecTotal(Amount1, Amount1, L"na");
|
||||
if (err) throw Exception(getLastError(&err));
|
||||
|
||||
|
||||
err = fp->EndFiscalReceipt(True); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (AdditionalTrailer) <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
ClearGoods();
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(1,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+CurrToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId)+". "+exception.Message);
|
||||
dModule->SendError(err,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+IntToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId)+". "+exception.Message);
|
||||
bOk=false;
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
ClearGoods();
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+IntToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId));
|
||||
dModule->SendError(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+IntToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId));
|
||||
bOk=false;
|
||||
}
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
if(!bOk)
|
||||
{
|
||||
fp->PrintRecVoid(L"");
|
||||
}
|
||||
|
||||
return bOk;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::Cut() //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
err=fp->PrintNormal(2, WideString(WideString(WCHAR(0x1B)) + WideString(WCHAR(0x7C)) + "75P").c_bstr());
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::Cut)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::Cut)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::Cut) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::Cut) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
/*int PrinterOPOS::GetState()
|
||||
{
|
||||
if(!fp->DeviceEnabled)FState=245;
|
||||
//if(FState!=0) return FState;
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
// fp->ResultCodeExtended
|
||||
return 0;
|
||||
} */
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::isOk()
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
if(fp->RecEmpty) throw "<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!";
|
||||
err=fp->ResetPrinter();
|
||||
if(err) throw Exception(getLastError(&err)); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
AnsiString str;
|
||||
|
||||
if(!dModule->getDayShift())throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool dOpen=DayOpened();
|
||||
if(!dOpen && AutoOpenShift && OpenShift()) dOpen=true;
|
||||
if(!dOpen) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
if(DayOpened())
|
||||
{
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
TDateTime dt=getDateOpenShift();
|
||||
str=getLastError(&err);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
|
||||
dModule->getDate();
|
||||
if(HoursBetween(dt,dModule->date)>24) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> 24 <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
throw Exception("[1]<5D><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
} else throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
BSTR bstr=new OLECHAR[50];
|
||||
err=fp->GetDate(&bstr);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(1,"(PrinterOPOS::isOk)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::isOk)"+exception.Message);
|
||||
return false;
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(1,"(PrinterOPOS::isOk)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::isOk)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
TDateTime PrinterOPOS::getDateOpenShift()
|
||||
{
|
||||
long err=0;
|
||||
TDateTime date=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
long iTmp;
|
||||
BSTR sTmp=new OLECHAR[50];
|
||||
err=fp->DirectIO(13, &iTmp, &sTmp);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
date=StrToDateTime(sTmp);
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::getDateOpenShift)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::getDateOpenShift)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::getDateOpenShift) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::getDateOpenShift) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return date;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString PrinterOPOS::GetStatusDescription(long err)
|
||||
{
|
||||
AnsiString str;
|
||||
try
|
||||
{
|
||||
if(err<256)
|
||||
str=kkm_err_msg_ru[err];
|
||||
if(str=="") str="<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::GetStatusDescription) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return "<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
|
||||
}
|
||||
return str;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString PrinterOPOS::getLastError(long* err)
|
||||
{
|
||||
BSTR str=new OLECHAR[255];
|
||||
str=L"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!";
|
||||
try
|
||||
{
|
||||
fp->DirectIO(1, err, &str);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::getLastError) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
if(str==L"") return GetStatusDescription(*err);
|
||||
return str;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
AnsiString PrinterOPOS::getLastError()
|
||||
{
|
||||
long err;
|
||||
return getLastError(&err);
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::PrintZReport()
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
int sum=getDaySum();
|
||||
err=fp->PrintZReport();
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
dModule->addZReport(sum);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
dModule->addPaper(-142*2);//<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::PrintZReport)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::PrintZReport)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::PrintZReport) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::PrintZReport) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
void PrinterOPOS::PrintXReport()
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
err=fp->PrintXReport();
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::PrintXReport)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::PrintXReport)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::PrintXReport) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::PrintXReport) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::OpenShift()
|
||||
{
|
||||
long err;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
long n=1;
|
||||
//if(CasireName==NULL) CasireName=L" ";
|
||||
BSTR str=CasireName.c_bstr();
|
||||
err=fp->DirectIO (6,&n,&str);
|
||||
if(err) throw Exception(getLastError(&err)); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
err=fp->SetVatValue(1,L"120");
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::OpenShift)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::OpenShift)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::OpenShift) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::OpenShift) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::DayOpened()
|
||||
{
|
||||
return fp->DayOpened;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::setTrainingMode(bool val)
|
||||
{
|
||||
long err;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
if(getTrainingMode()==val) return true;
|
||||
if(val) err=fp->BeginTraining(); else err=fp->EndTraining();
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::setTrainingMode)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::setTrainingMode)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::setTrainingMode) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::setTrainingMode) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::getTrainingMode()
|
||||
{
|
||||
return fp->TrainingModeActive;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::setNalog(long n,float stavka)
|
||||
{
|
||||
long err;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
long s=stavka*10;
|
||||
WideString str=AnsiString(s);
|
||||
err = fp->DirectIO(2, &n, &str);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::setNalog)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::setNalog)"+exception.Message);
|
||||
return true;
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::setNalog) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::setNalog) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return true;
|
||||
}
|
||||
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
int PrinterOPOS::getDaySum()
|
||||
{
|
||||
long err;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
long n=1;
|
||||
BSTR str=new OLECHAR[20];
|
||||
err=fp->DirectIO (300,&n,&str);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
return StrToInt(str)/100.0;
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::getDaySum)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::getDaySum)"+exception.Message);
|
||||
return 0;
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::getDaySum) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::getDaySum) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
int PrinterOPOS::getAllSum()
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
long n=2;
|
||||
BSTR str=new OLECHAR[20];
|
||||
err=fp->DirectIO (300,&n,&str);
|
||||
if(err)throw Exception(getLastError(&err));
|
||||
return StrToInt(str)/100.0;
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::getAllSum)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::getAllSum)"+exception.Message);
|
||||
return 0;
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::getAllSum) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::getAllSum) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//sales - true <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, false - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//check - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> =0 <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
bool FiscalPrinterPort::PrintCheck(bool sales, int check, WideString headLine )
|
||||
{
|
||||
//bool err=0;
|
||||
double cur=0;
|
||||
double cAllPrice=0;
|
||||
bool bOk=true;
|
||||
|
||||
try
|
||||
{
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
cAllPrice=getGoodsPrice();
|
||||
|
||||
Currency UnitPrice,AllPriceDrb,AllPrice;
|
||||
long Qnt,vat;
|
||||
BSTR* bstr;
|
||||
WideString sStr;
|
||||
BSTR sTmp=new OLECHAR[255];
|
||||
sTmp=L"";
|
||||
long MbsResponceCode;
|
||||
CURRENCY Amount1,Amount2;
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(sales) bOk = fp->OpenFiscalInv(1,"0000",1);
|
||||
else bOk = fp->OpenBackInv(1,"0000",1);
|
||||
if (!bOk) throw Exception(getLastError());
|
||||
|
||||
if(headLine.Length()>0)
|
||||
PrintLine(headLine);
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
for(int i=0;i<FListGoods->Count;i++)
|
||||
{
|
||||
Goods* goods=(Goods*)FListGoods->Items[i];
|
||||
bOk=fp->RegisterSale(goods->name1.c_bstr(),goods->name2.c_bstr(),0,"<22>",goods->price,goods->count,0,0); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
if (!bOk) throw Exception(getLastError());
|
||||
}
|
||||
ClearGoods();
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
double Change;
|
||||
bOk=fp->Total("","","P",cAllPrice,Change);
|
||||
if (!bOk) throw Exception(getLastError());
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
bOk = fp->CloseFiscalInv();
|
||||
if(!bOk) throw Exception(getLastError());
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
ClearGoods();
|
||||
saveLog(1,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+CurrToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId)+". "+exception.Message);
|
||||
dModule->SendError(bOk,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+FloatToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId)+". "+exception.Message);
|
||||
bOk=false;
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
ClearGoods();
|
||||
saveLog(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+FloatToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId));
|
||||
dModule->SendError(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+FloatToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId));
|
||||
bOk=false;
|
||||
}
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
if(!bOk)
|
||||
{
|
||||
fp->CancelFiscalInv();
|
||||
}
|
||||
return bOk;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinterPort::PrintZReport()
|
||||
{
|
||||
bool bOk;
|
||||
try
|
||||
{
|
||||
double Amount=0,CashSum=0,ServIn=0,ServOut=0;
|
||||
std::string ExitCode="";
|
||||
bOk=fp->ParishOrConsumption(Amount,ExitCode,CashSum,ServIn,ServOut);
|
||||
if(!bOk) throw Exception(getLastError());
|
||||
bOk=fp->PrintZReport();
|
||||
if(!bOk) throw Exception(getLastError());
|
||||
dModule->addZReport(CashSum);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
ClearGoods();
|
||||
saveLog(1,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "+exception.Message);
|
||||
dModule->SendError(bOk,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "+exception.Message);
|
||||
bOk=false;
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
ClearGoods();
|
||||
saveLog(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.");
|
||||
dModule->SendError(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.");
|
||||
bOk=false;
|
||||
}
|
||||
|
||||
return bOk;
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinterPort::isOk()
|
||||
{
|
||||
try
|
||||
{
|
||||
if (!fp->DiagnosticInfo()) throw Exception(getLastError());
|
||||
if(!dModule->getDayShift())throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::isOk)"+exception.Message);
|
||||
dModule->SendError(1,"(PrinterOPOS::isOk)"+exception.Message);
|
||||
return false;
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::isOk)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::isOk)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
934
devices/Printers/Mebius/__history/PrinterOPOS.cpp.~21~
Normal file
934
devices/Printers/Mebius/__history/PrinterOPOS.cpp.~21~
Normal file
@ -0,0 +1,934 @@
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
#pragma hdrstop
|
||||
|
||||
#include "PrinterOPOS.h"
|
||||
#include "OposFiscalPrinter_1_7_Lib_OCX.h"
|
||||
//#include "OposFiscalPrinter_CCO_OCX.h"
|
||||
#include "ud_Module.h"
|
||||
#include <Registry.hpp>
|
||||
#include <Math.h>
|
||||
#include <DateUtils.hpp>
|
||||
#include <Dialogs.hpp>
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
#pragma package(smart_init)
|
||||
//---------------------------------------------------------------------------
|
||||
FiscalPrinter* g_printer;
|
||||
//---------------------------------------------------------------------------
|
||||
char * kkm_err_msg_ru[] = {
|
||||
"OK", //0
|
||||
"<22><> ID <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //1 FM ID Error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> ", //2 FM Rec Error
|
||||
"Flash Chip <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //3 Flash Chip cant clear
|
||||
"<22><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>", //4 FM not empty
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //5 FM Data destroyed
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>", //6 Cmd ignor prn mode
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //7 Oper code is absent
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //8 Doc type is absent
|
||||
"<22><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>", //9 Ser num CR
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //10 Password error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD>", //11 Data/Time error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD>", //12 Factory registration has already pass
|
||||
"<22><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //13 Ser num CR destroyed
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>", //14 Fiscalize has already pass
|
||||
"<22><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>", //15 Not fisc mode CR
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //16 Fiscalize Data destroyed
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //17 Rewrite is conclude
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //18 Rewrite is destroyed
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //19 Shift already open
|
||||
"<22><> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //20 Shift not opened
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>", //21 Many goods in receipt
|
||||
"<22><> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //22 EOD data in FM destroyed
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //23 Document format error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //24 Text rewrite
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><><EFBFBD> <20><><EFBFBD>", //25 Many parameters in document
|
||||
"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><>", //26 Document parameters error
|
||||
"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><>", //27 Parameters value error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //28 Object non-existent
|
||||
"<22><><EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //29 Document is not finished
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>", //30 goods/operation description not enough
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //31 Check sum packet
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>", //32 Prn not ready
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //33 Nested interrupts
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //34 Check Sum Error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><>", //35 Overflow if FM
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //36 Unknown command
|
||||
"CRC <20><><EFBFBD>", //37 CRC RAM
|
||||
"CRC <20><>", //38 CRC FM
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //39 Data port defective
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>", //40 Receipts parameters sequence
|
||||
"0xy <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>", //41 0xy for required properties
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //42 Length request
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>", //43 number capacity
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //44 Overflow
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>", //45 Number is absent
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //46 Not response
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //47 Transmission error
|
||||
"<22><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //48 Math overflow
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...", //49 Paper out...
|
||||
"<22><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!!", //50 CR not ready!!!
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!", //51 Memory error!!
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //52 Printer off
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //53 Insufficient memory
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //54 Lenght number less
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //55 Zero lenght number
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //56 Password lenght less permissible
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //57 Zero lenght password
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //58 Impossible value
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>-<2D><><EFBFBD>", //59 Time-out overdraw
|
||||
"",
|
||||
"<22><>.<2E><><EFBFBD><EFBFBD>",
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>",
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
|
||||
"","","","","","",//69
|
||||
"","","","","","","","","","",//79
|
||||
"","","","","","","","","","",//89
|
||||
"","","","","","","","","","",//99
|
||||
"","","","","","","","","","",//109
|
||||
"","","","","","","","","","",//119
|
||||
"","","","","","","","","","",//129
|
||||
"","","","","","","","","","",//139
|
||||
"","","","","","","","","","",//149
|
||||
"","","","","","","","","","",//159
|
||||
|
||||
"","","","","","","","","","",//169
|
||||
"","","","","","","","","","",//179
|
||||
"","","","","","","","","","",//189
|
||||
"","","","","","","","","","",//199
|
||||
"","","","","","","","","","",//209
|
||||
"","","","","","","","","","",//219
|
||||
"","","","","","","","","","",//229
|
||||
"","","","","","","","","","",//239
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>",//240 Cmd not init
|
||||
"<22><>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//241 Cmd write err
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(DSR=0)",//242 Prn not ready (DSR=0)
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//243 Cmd ok
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//244 Cmd resp timeout
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//245 Prn error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//246 Cmd resp large
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//247 Cmd resp small
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//248
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//249
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//250 Cmd break
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//251
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//252
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//253
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//254
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)!"//255 Previous cmd run
|
||||
};
|
||||
//------------------------------------------------------------------------------
|
||||
bool FiscalPrinter::getNextCheckId(int &id)
|
||||
{
|
||||
CheckId++; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
SaveSetup(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
id=CheckId;
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinter::SaveCheck(int CheckId) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD>)
|
||||
{
|
||||
if(dModule->UserType) //true - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>; false - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
dModule->SaveCheck(CheckId,dModule->UserId,0,getGoodsPrice());
|
||||
else
|
||||
dModule->SaveCheck(CheckId,0,dModule->UserId,getGoodsPrice());
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinter::deleteCheck(int CheckId) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
{
|
||||
dModule->UpdateChek(CheckId);
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
int FiscalPrinter::getCOMPort()
|
||||
{
|
||||
int n=-1;
|
||||
|
||||
TRegistry* reg=new TRegistry;
|
||||
reg->RootKey = HKEY_LOCAL_MACHINE;
|
||||
if(reg->OpenKeyReadOnly("\\SOFTWARE\\OLEforRetail\\ServiceOPOS\\FiscalPrinter\\MbsFiscalPrinter"))
|
||||
{
|
||||
n = reg->ReadInteger("COM Num");
|
||||
}
|
||||
delete reg;
|
||||
return n;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinter::setBaudRate(int val)
|
||||
{
|
||||
bool result;
|
||||
TRegistry* reg=new TRegistry;
|
||||
reg->RootKey = HKEY_LOCAL_MACHINE;
|
||||
if(reg->OpenKey("\\SOFTWARE\\OLEforRetail\\ServiceOPOS\\FiscalPrinter\\MbsFiscalPrinter",true))
|
||||
{
|
||||
reg->WriteInteger("COM Speed",val);
|
||||
result = true;
|
||||
} else result = false;
|
||||
delete reg;
|
||||
return result;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
int FiscalPrinter::getBaudRate()
|
||||
{
|
||||
int n=-1;
|
||||
TRegistry* reg=new TRegistry;
|
||||
reg->RootKey = HKEY_LOCAL_MACHINE;
|
||||
if(reg->OpenKeyReadOnly("\\SOFTWARE\\OLEforRetail\\ServiceOPOS\\FiscalPrinter\\MbsFiscalPrinter"))
|
||||
{
|
||||
n = reg->ReadInteger("COM Speed");
|
||||
result = true;
|
||||
}
|
||||
delete reg;
|
||||
return n;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinter::setCOMPort(int n)
|
||||
{
|
||||
bool result;
|
||||
TRegistry* reg=new TRegistry;
|
||||
reg->RootKey = HKEY_LOCAL_MACHINE;
|
||||
if(reg->OpenKey("\\SOFTWARE\\OLEforRetail\\ServiceOPOS\\FiscalPrinter\\MbsFiscalPrinter",true))
|
||||
{
|
||||
reg->WriteInteger("COM Num",n);
|
||||
result = true;
|
||||
} else result = false;
|
||||
delete reg;
|
||||
return result;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void FiscalPrinter::LoadSetup()
|
||||
{
|
||||
TIniFile* ini=new TIniFile(ExtractFilePath(ParamStr(0))+"\\Setup.ini");
|
||||
// cPort->port=ini->ReadString("Printer","Port","");
|
||||
// cPort->BaudRate=ini->ReadInteger("Printer","BaudRate",0);
|
||||
CheckId=ini->ReadInteger("Printer","CheckCount",0);
|
||||
TestMode=ini->ReadBool("Printer","TestMode",true);
|
||||
HeadLine=ini->ReadString("Printer","HeadLine","");
|
||||
GoodsName=ini->ReadString("Printer","GoodsName","");
|
||||
CasireName=ini->ReadString("Printer","CasireName","");
|
||||
AutoOpenShift=ini->ReadBool("Printer","AutoOpenShift",false);
|
||||
delete ini;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void FiscalPrinter::SaveSetup()
|
||||
{
|
||||
TIniFile* ini=new TIniFile(ExtractFilePath(ParamStr(0))+"\\Setup.ini");
|
||||
// ini->WriteString("Printer","Port",cPort->port);
|
||||
// ini->WriteInteger("Printer","BaudRate",cPort->BaudRate);
|
||||
ini->WriteInteger("Printer","CheckCount",CheckId);
|
||||
ini->WriteBool("Printer","TestMode",TestMode);
|
||||
ini->WriteString("Printer","GoodsName",GoodsName);
|
||||
ini->WriteString("Printer","CasireName",CasireName);
|
||||
ini->WriteBool("Printer","AutoOpenShift",AutoOpenShift);
|
||||
delete ini;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
int FiscalPrinter::getGoodsPrice()
|
||||
{
|
||||
int sum=0;
|
||||
for(int i=0;i<FListGoods->Count;i++)
|
||||
sum+=((Goods*)FListGoods->Items[i])->price;
|
||||
return sum;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//---------------------------------------------------------------------------
|
||||
//---------------------------------------------------------------------------
|
||||
PrinterOPOS::PrinterOPOS(TComponent* AOwner):FiscalPrinter()
|
||||
{
|
||||
Crashed=false;
|
||||
AutoOpenShift=false;
|
||||
fp=new TOPOSFiscalPrinter(AOwner);
|
||||
fp->DeviceEnabled = False;
|
||||
LoadSetup();
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
PrinterOPOS::~PrinterOPOS()
|
||||
{
|
||||
delete FListGoods;
|
||||
delete fp;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> COM <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::Start()
|
||||
{
|
||||
if(fp->DeviceEnabled) return true;
|
||||
|
||||
FState = fp->Open(L"MbsFiscalPrinter");
|
||||
if(FState!=0)
|
||||
{
|
||||
saveLog(1,AnsiString(FState)+"(PrinterOPOS::Start)"+GetStatusDescription(FState));
|
||||
return false;
|
||||
}
|
||||
FState = fp->ClaimDevice(1000);
|
||||
if(FState!=0)
|
||||
{
|
||||
saveLog(1,AnsiString(FState)+"(PrinterOPOS::Start)"+GetStatusDescription(FState));
|
||||
return false;
|
||||
}
|
||||
fp->DeviceEnabled = True;
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::setHeader(TStrings* Text)
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
for(int i=0;i<Text->Count;i++)
|
||||
{
|
||||
WideString str=Text->Strings[i];
|
||||
err=fp->SetHeaderLine(i+1,str.c_bstr(),false);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}
|
||||
err=fp->ResetPrinter();
|
||||
if(err)throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::setHeader)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::setHeader)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::setHeader) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::setHeader) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::getHeader(TStrings* Text)
|
||||
{
|
||||
TIniFile* ini=new TIniFile(ExtractFilePath(ParamStr(0))+"\\Setup.ini");
|
||||
Text->Add(ini->ReadString("Printer","HeadLine1",""));
|
||||
Text->Add(ini->ReadString("Printer","HeadLine2",""));
|
||||
Text->Add(ini->ReadString("Printer","HeadLine3",""));
|
||||
Text->Add(ini->ReadString("Printer","HeadLine4",""));
|
||||
Text->Add(ini->ReadString("Printer","HeadLine5",""));
|
||||
delete ini;
|
||||
|
||||
for(int i=Text->Count-1;i>=0;i--)
|
||||
if(Text->Strings[i]=="")Text->Delete(i); else break;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::setTrailer(TStrings* Text)
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
for(int i=0;i<Text->Count;i++)
|
||||
{
|
||||
WideString str=Text->Strings[i];
|
||||
err=fp->SetTrailerLine(i+1,str.c_bstr(),false);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}
|
||||
err=fp->ResetPrinter();
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::setTrailer)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::setTrailer)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::setTrailer) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::setTrailer) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::getTrailer(TStrings* Text)
|
||||
{
|
||||
TIniFile* ini=new TIniFile(ExtractFilePath(ParamStr(0))+"\\Setup.ini");
|
||||
Text->Add(ini->ReadString("Printer","TailLine1",""));
|
||||
Text->Add(ini->ReadString("Printer","TailLine2",""));
|
||||
Text->Add(ini->ReadString("Printer","TailLine3",""));
|
||||
Text->Add(ini->ReadString("Printer","TailLine4",""));
|
||||
Text->Add(ini->ReadString("Printer","TailLine5",""));
|
||||
delete ini;
|
||||
|
||||
for(int i=Text->Count-1;i>=0;i--)
|
||||
if(Text->Strings[i]=="")Text->Delete(i); else break;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::PrintLine(WideString line)
|
||||
{
|
||||
//<2F><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
long err=0;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
err=fp->PrintNormal(2, WideString(WideString(WCHAR(0x1B)) + WideString(WCHAR(0x7C)) + line + L"\n").c_bstr());
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::PrintLine)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::PrintLine)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::PrintLine) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::PrintLine) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//sales - true <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, false - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//check - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> =0 <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//TODO <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
bool PrinterOPOS::PrintCheck(bool sales, int check, WideString headLine) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
long err=0;
|
||||
Currency cur=0;
|
||||
Currency cAllPrice=0;
|
||||
bool bOk=true;
|
||||
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
cAllPrice=getGoodsPrice();
|
||||
|
||||
if(check==0) //<2F><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
CheckId++; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
check=CheckId;
|
||||
SaveSetup(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
}
|
||||
|
||||
if(fp->RecEmpty) throw Exception("<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
if(!DayOpened()) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
|
||||
Currency UnitPrice,AllPriceDrb,AllPrice;
|
||||
long Qnt,vat;
|
||||
BSTR* bstr;
|
||||
WideString sStr;
|
||||
BSTR sTmp=new OLECHAR[255];
|
||||
sTmp=L"";
|
||||
long MbsResponceCode;
|
||||
CURRENCY Amount1,Amount2;
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//vat=11; sTmp=L"<22><><EFBFBD><EFBFBD><EFBFBD>";
|
||||
//err = fp->DirectIO(4, &vat, &sTmp);
|
||||
//if (err) goto ErrHandler;
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> TODO!!!
|
||||
if(headLine.Length()>0)
|
||||
PrintLine(headLine);
|
||||
|
||||
|
||||
if(sales) fp->FiscalReceiptType = FPTR_RT_SALES; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
else fp->FiscalReceiptType=FPTR_RT_SERVICE; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//setTrainingMode(true);
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>)
|
||||
err = fp->BeginFiscalReceipt(true);
|
||||
if (err) throw Exception(getLastError(&err)); //251
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (TODO <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
for(int i=0;i<FListGoods->Count;i++)
|
||||
{
|
||||
Goods* goods=(Goods*)FListGoods->Items[i];
|
||||
VarCyFromR8(goods->price*100,&Amount1);
|
||||
Amount2.int64=0;
|
||||
WideString tmp=goods->name1+L"-/--/-0";
|
||||
err=fp->PrintRecItem(tmp.c_bstr(), Amount1, goods->count, goods->VatInfo, Amount2, L"<22><>");
|
||||
if (err) throw Exception(getLastError(&err));
|
||||
}
|
||||
ClearGoods();
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD> PrintRecTotal)
|
||||
err = fp->DirectIO(3, &CheckId, &sTmp);
|
||||
if (err) throw Exception(getLastError(&err));
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//setNalog(1,12);
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>
|
||||
Amount2.int64=0;
|
||||
VarCyFromR8(cAllPrice*100,&Amount1);
|
||||
err=fp->PrintRecTotal(Amount1, Amount1, L"na");
|
||||
if (err) throw Exception(getLastError(&err));
|
||||
|
||||
|
||||
err = fp->EndFiscalReceipt(True); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (AdditionalTrailer) <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
ClearGoods();
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(1,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+CurrToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId)+". "+exception.Message);
|
||||
dModule->SendError(err,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+IntToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId)+". "+exception.Message);
|
||||
bOk=false;
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
ClearGoods();
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+IntToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId));
|
||||
dModule->SendError(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+IntToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId));
|
||||
bOk=false;
|
||||
}
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
if(!bOk)
|
||||
{
|
||||
fp->PrintRecVoid(L"");
|
||||
}
|
||||
|
||||
return bOk;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::Cut() //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
err=fp->PrintNormal(2, WideString(WideString(WCHAR(0x1B)) + WideString(WCHAR(0x7C)) + "75P").c_bstr());
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::Cut)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::Cut)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::Cut) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::Cut) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
/*int PrinterOPOS::GetState()
|
||||
{
|
||||
if(!fp->DeviceEnabled)FState=245;
|
||||
//if(FState!=0) return FState;
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
// fp->ResultCodeExtended
|
||||
return 0;
|
||||
} */
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::isOk()
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
if(fp->RecEmpty) throw "<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!";
|
||||
err=fp->ResetPrinter();
|
||||
if(err) throw Exception(getLastError(&err)); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
AnsiString str;
|
||||
|
||||
if(!dModule->getDayShift())throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool dOpen=DayOpened();
|
||||
if(!dOpen && AutoOpenShift && OpenShift()) dOpen=true;
|
||||
if(!dOpen) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
if(DayOpened())
|
||||
{
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
TDateTime dt=getDateOpenShift();
|
||||
str=getLastError(&err);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
|
||||
dModule->getDate();
|
||||
if(HoursBetween(dt,dModule->date)>24) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> 24 <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
throw Exception("[1]<5D><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
} else throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
BSTR bstr=new OLECHAR[50];
|
||||
err=fp->GetDate(&bstr);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(1,"(PrinterOPOS::isOk)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::isOk)"+exception.Message);
|
||||
return false;
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(1,"(PrinterOPOS::isOk)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::isOk)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
TDateTime PrinterOPOS::getDateOpenShift()
|
||||
{
|
||||
long err=0;
|
||||
TDateTime date=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
long iTmp;
|
||||
BSTR sTmp=new OLECHAR[50];
|
||||
err=fp->DirectIO(13, &iTmp, &sTmp);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
date=StrToDateTime(sTmp);
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::getDateOpenShift)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::getDateOpenShift)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::getDateOpenShift) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::getDateOpenShift) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return date;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString PrinterOPOS::GetStatusDescription(long err)
|
||||
{
|
||||
AnsiString str;
|
||||
try
|
||||
{
|
||||
if(err<256)
|
||||
str=kkm_err_msg_ru[err];
|
||||
if(str=="") str="<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::GetStatusDescription) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return "<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
|
||||
}
|
||||
return str;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString PrinterOPOS::getLastError(long* err)
|
||||
{
|
||||
BSTR str=new OLECHAR[255];
|
||||
str=L"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!";
|
||||
try
|
||||
{
|
||||
fp->DirectIO(1, err, &str);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::getLastError) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
if(str==L"") return GetStatusDescription(*err);
|
||||
return str;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
AnsiString PrinterOPOS::getLastError()
|
||||
{
|
||||
long err;
|
||||
return getLastError(&err);
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::PrintZReport()
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
int sum=getDaySum();
|
||||
err=fp->PrintZReport();
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
dModule->addZReport(sum);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
dModule->addPaper(-142*2);//<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::PrintZReport)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::PrintZReport)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::PrintZReport) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::PrintZReport) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
void PrinterOPOS::PrintXReport()
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
err=fp->PrintXReport();
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::PrintXReport)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::PrintXReport)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::PrintXReport) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::PrintXReport) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::OpenShift()
|
||||
{
|
||||
long err;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
long n=1;
|
||||
//if(CasireName==NULL) CasireName=L" ";
|
||||
BSTR str=CasireName.c_bstr();
|
||||
err=fp->DirectIO (6,&n,&str);
|
||||
if(err) throw Exception(getLastError(&err)); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
err=fp->SetVatValue(1,L"120");
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::OpenShift)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::OpenShift)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::OpenShift) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::OpenShift) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::DayOpened()
|
||||
{
|
||||
return fp->DayOpened;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::setTrainingMode(bool val)
|
||||
{
|
||||
long err;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
if(getTrainingMode()==val) return true;
|
||||
if(val) err=fp->BeginTraining(); else err=fp->EndTraining();
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::setTrainingMode)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::setTrainingMode)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::setTrainingMode) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::setTrainingMode) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::getTrainingMode()
|
||||
{
|
||||
return fp->TrainingModeActive;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::setNalog(long n,float stavka)
|
||||
{
|
||||
long err;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
long s=stavka*10;
|
||||
WideString str=AnsiString(s);
|
||||
err = fp->DirectIO(2, &n, &str);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::setNalog)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::setNalog)"+exception.Message);
|
||||
return true;
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::setNalog) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::setNalog) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return true;
|
||||
}
|
||||
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
int PrinterOPOS::getDaySum()
|
||||
{
|
||||
long err;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
long n=1;
|
||||
BSTR str=new OLECHAR[20];
|
||||
err=fp->DirectIO (300,&n,&str);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
return StrToInt(str)/100.0;
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::getDaySum)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::getDaySum)"+exception.Message);
|
||||
return 0;
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::getDaySum) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::getDaySum) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
int PrinterOPOS::getAllSum()
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
long n=2;
|
||||
BSTR str=new OLECHAR[20];
|
||||
err=fp->DirectIO (300,&n,&str);
|
||||
if(err)throw Exception(getLastError(&err));
|
||||
return StrToInt(str)/100.0;
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::getAllSum)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::getAllSum)"+exception.Message);
|
||||
return 0;
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::getAllSum) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::getAllSum) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//sales - true <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, false - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//check - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> =0 <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
bool FiscalPrinterPort::PrintCheck(bool sales, int check, WideString headLine )
|
||||
{
|
||||
//bool err=0;
|
||||
double cur=0;
|
||||
double cAllPrice=0;
|
||||
bool bOk=true;
|
||||
|
||||
try
|
||||
{
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
cAllPrice=getGoodsPrice();
|
||||
|
||||
Currency UnitPrice,AllPriceDrb,AllPrice;
|
||||
long Qnt,vat;
|
||||
BSTR* bstr;
|
||||
WideString sStr;
|
||||
BSTR sTmp=new OLECHAR[255];
|
||||
sTmp=L"";
|
||||
long MbsResponceCode;
|
||||
CURRENCY Amount1,Amount2;
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(sales) bOk = fp->OpenFiscalInv(1,"0000",1);
|
||||
else bOk = fp->OpenBackInv(1,"0000",1);
|
||||
if (!bOk) throw Exception(getLastError());
|
||||
|
||||
if(headLine.Length()>0)
|
||||
PrintLine(headLine);
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
for(int i=0;i<FListGoods->Count;i++)
|
||||
{
|
||||
Goods* goods=(Goods*)FListGoods->Items[i];
|
||||
bOk=fp->RegisterSale(goods->name1.c_bstr(),goods->name2.c_bstr(),0,"<22>",goods->price,goods->count,0,0); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
if (!bOk) throw Exception(getLastError());
|
||||
}
|
||||
ClearGoods();
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
double Change;
|
||||
bOk=fp->Total("","","P",cAllPrice,Change);
|
||||
if (!bOk) throw Exception(getLastError());
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
bOk = fp->CloseFiscalInv();
|
||||
if(!bOk) throw Exception(getLastError());
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
ClearGoods();
|
||||
saveLog(1,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+CurrToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId)+". "+exception.Message);
|
||||
dModule->SendError(bOk,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+FloatToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId)+". "+exception.Message);
|
||||
bOk=false;
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
ClearGoods();
|
||||
saveLog(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+FloatToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId));
|
||||
dModule->SendError(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+FloatToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId));
|
||||
bOk=false;
|
||||
}
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
if(!bOk)
|
||||
{
|
||||
fp->CancelFiscalInv();
|
||||
}
|
||||
return bOk;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinterPort::PrintZReport()
|
||||
{
|
||||
bool bOk;
|
||||
try
|
||||
{
|
||||
double Amount=0,CashSum=0,ServIn=0,ServOut=0;
|
||||
std::string ExitCode="";
|
||||
bOk=fp->ParishOrConsumption(Amount,ExitCode,CashSum,ServIn,ServOut);
|
||||
if(!bOk) throw Exception(getLastError());
|
||||
bOk=fp->PrintZReport();
|
||||
if(!bOk) throw Exception(getLastError());
|
||||
dModule->addZReport(CashSum);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
ClearGoods();
|
||||
saveLog(1,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "+exception.Message);
|
||||
dModule->SendError(bOk,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "+exception.Message);
|
||||
bOk=false;
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
ClearGoods();
|
||||
saveLog(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.");
|
||||
dModule->SendError(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.");
|
||||
bOk=false;
|
||||
}
|
||||
|
||||
return bOk;
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinterPort::isOk()
|
||||
{
|
||||
try
|
||||
{
|
||||
if (!fp->DiagnosticInfo()) throw Exception(getLastError());
|
||||
if(!dModule->getDayShift())throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::isOk)"+exception.Message);
|
||||
dModule->SendError(1,"(PrinterOPOS::isOk)"+exception.Message);
|
||||
return false;
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::isOk)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::isOk)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
933
devices/Printers/Mebius/__history/PrinterOPOS.cpp.~22~
Normal file
933
devices/Printers/Mebius/__history/PrinterOPOS.cpp.~22~
Normal file
@ -0,0 +1,933 @@
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
#pragma hdrstop
|
||||
|
||||
#include "PrinterOPOS.h"
|
||||
#include "OposFiscalPrinter_1_7_Lib_OCX.h"
|
||||
//#include "OposFiscalPrinter_CCO_OCX.h"
|
||||
#include "ud_Module.h"
|
||||
#include <Registry.hpp>
|
||||
#include <Math.h>
|
||||
#include <DateUtils.hpp>
|
||||
#include <Dialogs.hpp>
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
#pragma package(smart_init)
|
||||
//---------------------------------------------------------------------------
|
||||
FiscalPrinter* g_printer;
|
||||
//---------------------------------------------------------------------------
|
||||
char * kkm_err_msg_ru[] = {
|
||||
"OK", //0
|
||||
"<22><> ID <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //1 FM ID Error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> ", //2 FM Rec Error
|
||||
"Flash Chip <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //3 Flash Chip cant clear
|
||||
"<22><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>", //4 FM not empty
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //5 FM Data destroyed
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>", //6 Cmd ignor prn mode
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //7 Oper code is absent
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //8 Doc type is absent
|
||||
"<22><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>", //9 Ser num CR
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //10 Password error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD>", //11 Data/Time error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD>", //12 Factory registration has already pass
|
||||
"<22><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //13 Ser num CR destroyed
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>", //14 Fiscalize has already pass
|
||||
"<22><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>", //15 Not fisc mode CR
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //16 Fiscalize Data destroyed
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //17 Rewrite is conclude
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //18 Rewrite is destroyed
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //19 Shift already open
|
||||
"<22><> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //20 Shift not opened
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>", //21 Many goods in receipt
|
||||
"<22><> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //22 EOD data in FM destroyed
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //23 Document format error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //24 Text rewrite
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><><EFBFBD> <20><><EFBFBD>", //25 Many parameters in document
|
||||
"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><>", //26 Document parameters error
|
||||
"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><>", //27 Parameters value error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //28 Object non-existent
|
||||
"<22><><EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //29 Document is not finished
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>", //30 goods/operation description not enough
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //31 Check sum packet
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>", //32 Prn not ready
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //33 Nested interrupts
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //34 Check Sum Error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><>", //35 Overflow if FM
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //36 Unknown command
|
||||
"CRC <20><><EFBFBD>", //37 CRC RAM
|
||||
"CRC <20><>", //38 CRC FM
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //39 Data port defective
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>", //40 Receipts parameters sequence
|
||||
"0xy <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>", //41 0xy for required properties
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //42 Length request
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>", //43 number capacity
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //44 Overflow
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>", //45 Number is absent
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //46 Not response
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //47 Transmission error
|
||||
"<22><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //48 Math overflow
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...", //49 Paper out...
|
||||
"<22><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!!", //50 CR not ready!!!
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!", //51 Memory error!!
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //52 Printer off
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //53 Insufficient memory
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //54 Lenght number less
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //55 Zero lenght number
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //56 Password lenght less permissible
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //57 Zero lenght password
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //58 Impossible value
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>-<2D><><EFBFBD>", //59 Time-out overdraw
|
||||
"",
|
||||
"<22><>.<2E><><EFBFBD><EFBFBD>",
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>",
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
|
||||
"","","","","","",//69
|
||||
"","","","","","","","","","",//79
|
||||
"","","","","","","","","","",//89
|
||||
"","","","","","","","","","",//99
|
||||
"","","","","","","","","","",//109
|
||||
"","","","","","","","","","",//119
|
||||
"","","","","","","","","","",//129
|
||||
"","","","","","","","","","",//139
|
||||
"","","","","","","","","","",//149
|
||||
"","","","","","","","","","",//159
|
||||
|
||||
"","","","","","","","","","",//169
|
||||
"","","","","","","","","","",//179
|
||||
"","","","","","","","","","",//189
|
||||
"","","","","","","","","","",//199
|
||||
"","","","","","","","","","",//209
|
||||
"","","","","","","","","","",//219
|
||||
"","","","","","","","","","",//229
|
||||
"","","","","","","","","","",//239
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>",//240 Cmd not init
|
||||
"<22><>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//241 Cmd write err
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(DSR=0)",//242 Prn not ready (DSR=0)
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//243 Cmd ok
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//244 Cmd resp timeout
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//245 Prn error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//246 Cmd resp large
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//247 Cmd resp small
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//248
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//249
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//250 Cmd break
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//251
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//252
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//253
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//254
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)!"//255 Previous cmd run
|
||||
};
|
||||
//------------------------------------------------------------------------------
|
||||
bool FiscalPrinter::getNextCheckId(int &id)
|
||||
{
|
||||
CheckId++; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
SaveSetup(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
id=CheckId;
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinter::SaveCheck(int CheckId) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD>)
|
||||
{
|
||||
if(dModule->UserType) //true - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>; false - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
dModule->SaveCheck(CheckId,dModule->UserId,0,getGoodsPrice());
|
||||
else
|
||||
dModule->SaveCheck(CheckId,0,dModule->UserId,getGoodsPrice());
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinter::deleteCheck(int CheckId) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
{
|
||||
dModule->UpdateChek(CheckId);
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
int FiscalPrinter::getCOMPort()
|
||||
{
|
||||
int n=-1;
|
||||
|
||||
TRegistry* reg=new TRegistry;
|
||||
reg->RootKey = HKEY_LOCAL_MACHINE;
|
||||
if(reg->OpenKeyReadOnly("\\SOFTWARE\\OLEforRetail\\ServiceOPOS\\FiscalPrinter\\MbsFiscalPrinter"))
|
||||
{
|
||||
n = reg->ReadInteger("COM Num");
|
||||
}
|
||||
delete reg;
|
||||
return n;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinter::setBaudRate(int val)
|
||||
{
|
||||
bool result;
|
||||
TRegistry* reg=new TRegistry;
|
||||
reg->RootKey = HKEY_LOCAL_MACHINE;
|
||||
if(reg->OpenKey("\\SOFTWARE\\OLEforRetail\\ServiceOPOS\\FiscalPrinter\\MbsFiscalPrinter",true))
|
||||
{
|
||||
reg->WriteInteger("COM Speed",val);
|
||||
result = true;
|
||||
} else result = false;
|
||||
delete reg;
|
||||
return result;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
int FiscalPrinter::getBaudRate()
|
||||
{
|
||||
int n=-1;
|
||||
TRegistry* reg=new TRegistry;
|
||||
reg->RootKey = HKEY_LOCAL_MACHINE;
|
||||
if(reg->OpenKeyReadOnly("\\SOFTWARE\\OLEforRetail\\ServiceOPOS\\FiscalPrinter\\MbsFiscalPrinter"))
|
||||
{
|
||||
n = reg->ReadInteger("COM Speed");
|
||||
}
|
||||
delete reg;
|
||||
return n;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinter::setCOMPort(int n)
|
||||
{
|
||||
bool result;
|
||||
TRegistry* reg=new TRegistry;
|
||||
reg->RootKey = HKEY_LOCAL_MACHINE;
|
||||
if(reg->OpenKey("\\SOFTWARE\\OLEforRetail\\ServiceOPOS\\FiscalPrinter\\MbsFiscalPrinter",true))
|
||||
{
|
||||
reg->WriteInteger("COM Num",n);
|
||||
result = true;
|
||||
} else result = false;
|
||||
delete reg;
|
||||
return result;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void FiscalPrinter::LoadSetup()
|
||||
{
|
||||
TIniFile* ini=new TIniFile(ExtractFilePath(ParamStr(0))+"\\Setup.ini");
|
||||
// cPort->port=ini->ReadString("Printer","Port","");
|
||||
// cPort->BaudRate=ini->ReadInteger("Printer","BaudRate",0);
|
||||
CheckId=ini->ReadInteger("Printer","CheckCount",0);
|
||||
TestMode=ini->ReadBool("Printer","TestMode",true);
|
||||
HeadLine=ini->ReadString("Printer","HeadLine","");
|
||||
GoodsName=ini->ReadString("Printer","GoodsName","");
|
||||
CasireName=ini->ReadString("Printer","CasireName","");
|
||||
AutoOpenShift=ini->ReadBool("Printer","AutoOpenShift",false);
|
||||
delete ini;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void FiscalPrinter::SaveSetup()
|
||||
{
|
||||
TIniFile* ini=new TIniFile(ExtractFilePath(ParamStr(0))+"\\Setup.ini");
|
||||
// ini->WriteString("Printer","Port",cPort->port);
|
||||
// ini->WriteInteger("Printer","BaudRate",cPort->BaudRate);
|
||||
ini->WriteInteger("Printer","CheckCount",CheckId);
|
||||
ini->WriteBool("Printer","TestMode",TestMode);
|
||||
ini->WriteString("Printer","GoodsName",GoodsName);
|
||||
ini->WriteString("Printer","CasireName",CasireName);
|
||||
ini->WriteBool("Printer","AutoOpenShift",AutoOpenShift);
|
||||
delete ini;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
int FiscalPrinter::getGoodsPrice()
|
||||
{
|
||||
int sum=0;
|
||||
for(int i=0;i<FListGoods->Count;i++)
|
||||
sum+=((Goods*)FListGoods->Items[i])->price;
|
||||
return sum;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//---------------------------------------------------------------------------
|
||||
//---------------------------------------------------------------------------
|
||||
PrinterOPOS::PrinterOPOS(TComponent* AOwner):FiscalPrinter()
|
||||
{
|
||||
Crashed=false;
|
||||
AutoOpenShift=false;
|
||||
fp=new TOPOSFiscalPrinter(AOwner);
|
||||
fp->DeviceEnabled = False;
|
||||
LoadSetup();
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
PrinterOPOS::~PrinterOPOS()
|
||||
{
|
||||
delete FListGoods;
|
||||
delete fp;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> COM <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::Start()
|
||||
{
|
||||
if(fp->DeviceEnabled) return true;
|
||||
|
||||
FState = fp->Open(L"MbsFiscalPrinter");
|
||||
if(FState!=0)
|
||||
{
|
||||
saveLog(1,AnsiString(FState)+"(PrinterOPOS::Start)"+GetStatusDescription(FState));
|
||||
return false;
|
||||
}
|
||||
FState = fp->ClaimDevice(1000);
|
||||
if(FState!=0)
|
||||
{
|
||||
saveLog(1,AnsiString(FState)+"(PrinterOPOS::Start)"+GetStatusDescription(FState));
|
||||
return false;
|
||||
}
|
||||
fp->DeviceEnabled = True;
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::setHeader(TStrings* Text)
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
for(int i=0;i<Text->Count;i++)
|
||||
{
|
||||
WideString str=Text->Strings[i];
|
||||
err=fp->SetHeaderLine(i+1,str.c_bstr(),false);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}
|
||||
err=fp->ResetPrinter();
|
||||
if(err)throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::setHeader)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::setHeader)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::setHeader) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::setHeader) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::getHeader(TStrings* Text)
|
||||
{
|
||||
TIniFile* ini=new TIniFile(ExtractFilePath(ParamStr(0))+"\\Setup.ini");
|
||||
Text->Add(ini->ReadString("Printer","HeadLine1",""));
|
||||
Text->Add(ini->ReadString("Printer","HeadLine2",""));
|
||||
Text->Add(ini->ReadString("Printer","HeadLine3",""));
|
||||
Text->Add(ini->ReadString("Printer","HeadLine4",""));
|
||||
Text->Add(ini->ReadString("Printer","HeadLine5",""));
|
||||
delete ini;
|
||||
|
||||
for(int i=Text->Count-1;i>=0;i--)
|
||||
if(Text->Strings[i]=="")Text->Delete(i); else break;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::setTrailer(TStrings* Text)
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
for(int i=0;i<Text->Count;i++)
|
||||
{
|
||||
WideString str=Text->Strings[i];
|
||||
err=fp->SetTrailerLine(i+1,str.c_bstr(),false);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}
|
||||
err=fp->ResetPrinter();
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::setTrailer)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::setTrailer)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::setTrailer) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::setTrailer) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::getTrailer(TStrings* Text)
|
||||
{
|
||||
TIniFile* ini=new TIniFile(ExtractFilePath(ParamStr(0))+"\\Setup.ini");
|
||||
Text->Add(ini->ReadString("Printer","TailLine1",""));
|
||||
Text->Add(ini->ReadString("Printer","TailLine2",""));
|
||||
Text->Add(ini->ReadString("Printer","TailLine3",""));
|
||||
Text->Add(ini->ReadString("Printer","TailLine4",""));
|
||||
Text->Add(ini->ReadString("Printer","TailLine5",""));
|
||||
delete ini;
|
||||
|
||||
for(int i=Text->Count-1;i>=0;i--)
|
||||
if(Text->Strings[i]=="")Text->Delete(i); else break;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::PrintLine(WideString line)
|
||||
{
|
||||
//<2F><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
long err=0;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
err=fp->PrintNormal(2, WideString(WideString(WCHAR(0x1B)) + WideString(WCHAR(0x7C)) + line + L"\n").c_bstr());
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::PrintLine)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::PrintLine)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::PrintLine) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::PrintLine) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//sales - true <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, false - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//check - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> =0 <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//TODO <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
bool PrinterOPOS::PrintCheck(bool sales, int check, WideString headLine) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
long err=0;
|
||||
Currency cur=0;
|
||||
Currency cAllPrice=0;
|
||||
bool bOk=true;
|
||||
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
cAllPrice=getGoodsPrice();
|
||||
|
||||
if(check==0) //<2F><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
CheckId++; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
check=CheckId;
|
||||
SaveSetup(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
}
|
||||
|
||||
if(fp->RecEmpty) throw Exception("<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
if(!DayOpened()) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
|
||||
Currency UnitPrice,AllPriceDrb,AllPrice;
|
||||
long Qnt,vat;
|
||||
BSTR* bstr;
|
||||
WideString sStr;
|
||||
BSTR sTmp=new OLECHAR[255];
|
||||
sTmp=L"";
|
||||
long MbsResponceCode;
|
||||
CURRENCY Amount1,Amount2;
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//vat=11; sTmp=L"<22><><EFBFBD><EFBFBD><EFBFBD>";
|
||||
//err = fp->DirectIO(4, &vat, &sTmp);
|
||||
//if (err) goto ErrHandler;
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> TODO!!!
|
||||
if(headLine.Length()>0)
|
||||
PrintLine(headLine);
|
||||
|
||||
|
||||
if(sales) fp->FiscalReceiptType = FPTR_RT_SALES; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
else fp->FiscalReceiptType=FPTR_RT_SERVICE; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//setTrainingMode(true);
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>)
|
||||
err = fp->BeginFiscalReceipt(true);
|
||||
if (err) throw Exception(getLastError(&err)); //251
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (TODO <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
for(int i=0;i<FListGoods->Count;i++)
|
||||
{
|
||||
Goods* goods=(Goods*)FListGoods->Items[i];
|
||||
VarCyFromR8(goods->price*100,&Amount1);
|
||||
Amount2.int64=0;
|
||||
WideString tmp=goods->name1+L"-/--/-0";
|
||||
err=fp->PrintRecItem(tmp.c_bstr(), Amount1, goods->count, goods->VatInfo, Amount2, L"<22><>");
|
||||
if (err) throw Exception(getLastError(&err));
|
||||
}
|
||||
ClearGoods();
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD> PrintRecTotal)
|
||||
err = fp->DirectIO(3, &CheckId, &sTmp);
|
||||
if (err) throw Exception(getLastError(&err));
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//setNalog(1,12);
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>
|
||||
Amount2.int64=0;
|
||||
VarCyFromR8(cAllPrice*100,&Amount1);
|
||||
err=fp->PrintRecTotal(Amount1, Amount1, L"na");
|
||||
if (err) throw Exception(getLastError(&err));
|
||||
|
||||
|
||||
err = fp->EndFiscalReceipt(True); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (AdditionalTrailer) <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
ClearGoods();
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(1,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+CurrToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId)+". "+exception.Message);
|
||||
dModule->SendError(err,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+IntToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId)+". "+exception.Message);
|
||||
bOk=false;
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
ClearGoods();
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+IntToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId));
|
||||
dModule->SendError(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+IntToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId));
|
||||
bOk=false;
|
||||
}
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
if(!bOk)
|
||||
{
|
||||
fp->PrintRecVoid(L"");
|
||||
}
|
||||
|
||||
return bOk;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::Cut() //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
err=fp->PrintNormal(2, WideString(WideString(WCHAR(0x1B)) + WideString(WCHAR(0x7C)) + "75P").c_bstr());
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::Cut)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::Cut)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::Cut) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::Cut) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
/*int PrinterOPOS::GetState()
|
||||
{
|
||||
if(!fp->DeviceEnabled)FState=245;
|
||||
//if(FState!=0) return FState;
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
// fp->ResultCodeExtended
|
||||
return 0;
|
||||
} */
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::isOk()
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
if(fp->RecEmpty) throw "<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!";
|
||||
err=fp->ResetPrinter();
|
||||
if(err) throw Exception(getLastError(&err)); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
AnsiString str;
|
||||
|
||||
if(!dModule->getDayShift())throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool dOpen=DayOpened();
|
||||
if(!dOpen && AutoOpenShift && OpenShift()) dOpen=true;
|
||||
if(!dOpen) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
if(DayOpened())
|
||||
{
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
TDateTime dt=getDateOpenShift();
|
||||
str=getLastError(&err);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
|
||||
dModule->getDate();
|
||||
if(HoursBetween(dt,dModule->date)>24) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> 24 <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
throw Exception("[1]<5D><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
} else throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
BSTR bstr=new OLECHAR[50];
|
||||
err=fp->GetDate(&bstr);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(1,"(PrinterOPOS::isOk)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::isOk)"+exception.Message);
|
||||
return false;
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(1,"(PrinterOPOS::isOk)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::isOk)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
TDateTime PrinterOPOS::getDateOpenShift()
|
||||
{
|
||||
long err=0;
|
||||
TDateTime date=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
long iTmp;
|
||||
BSTR sTmp=new OLECHAR[50];
|
||||
err=fp->DirectIO(13, &iTmp, &sTmp);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
date=StrToDateTime(sTmp);
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::getDateOpenShift)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::getDateOpenShift)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::getDateOpenShift) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::getDateOpenShift) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return date;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString PrinterOPOS::GetStatusDescription(long err)
|
||||
{
|
||||
AnsiString str;
|
||||
try
|
||||
{
|
||||
if(err<256)
|
||||
str=kkm_err_msg_ru[err];
|
||||
if(str=="") str="<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::GetStatusDescription) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return "<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
|
||||
}
|
||||
return str;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString PrinterOPOS::getLastError(long* err)
|
||||
{
|
||||
BSTR str=new OLECHAR[255];
|
||||
str=L"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!";
|
||||
try
|
||||
{
|
||||
fp->DirectIO(1, err, &str);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::getLastError) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
if(str==L"") return GetStatusDescription(*err);
|
||||
return str;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
AnsiString PrinterOPOS::getLastError()
|
||||
{
|
||||
long err;
|
||||
return getLastError(&err);
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::PrintZReport()
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
int sum=getDaySum();
|
||||
err=fp->PrintZReport();
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
dModule->addZReport(sum);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
dModule->addPaper(-142*2);//<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::PrintZReport)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::PrintZReport)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::PrintZReport) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::PrintZReport) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
void PrinterOPOS::PrintXReport()
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
err=fp->PrintXReport();
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::PrintXReport)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::PrintXReport)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::PrintXReport) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::PrintXReport) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::OpenShift()
|
||||
{
|
||||
long err;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
long n=1;
|
||||
//if(CasireName==NULL) CasireName=L" ";
|
||||
BSTR str=CasireName.c_bstr();
|
||||
err=fp->DirectIO (6,&n,&str);
|
||||
if(err) throw Exception(getLastError(&err)); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
err=fp->SetVatValue(1,L"120");
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::OpenShift)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::OpenShift)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::OpenShift) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::OpenShift) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::DayOpened()
|
||||
{
|
||||
return fp->DayOpened;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::setTrainingMode(bool val)
|
||||
{
|
||||
long err;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
if(getTrainingMode()==val) return true;
|
||||
if(val) err=fp->BeginTraining(); else err=fp->EndTraining();
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::setTrainingMode)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::setTrainingMode)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::setTrainingMode) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::setTrainingMode) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::getTrainingMode()
|
||||
{
|
||||
return fp->TrainingModeActive;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::setNalog(long n,float stavka)
|
||||
{
|
||||
long err;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
long s=stavka*10;
|
||||
WideString str=AnsiString(s);
|
||||
err = fp->DirectIO(2, &n, &str);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::setNalog)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::setNalog)"+exception.Message);
|
||||
return true;
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::setNalog) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::setNalog) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return true;
|
||||
}
|
||||
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
int PrinterOPOS::getDaySum()
|
||||
{
|
||||
long err;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
long n=1;
|
||||
BSTR str=new OLECHAR[20];
|
||||
err=fp->DirectIO (300,&n,&str);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
return StrToInt(str)/100.0;
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::getDaySum)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::getDaySum)"+exception.Message);
|
||||
return 0;
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::getDaySum) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::getDaySum) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
int PrinterOPOS::getAllSum()
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
long n=2;
|
||||
BSTR str=new OLECHAR[20];
|
||||
err=fp->DirectIO (300,&n,&str);
|
||||
if(err)throw Exception(getLastError(&err));
|
||||
return StrToInt(str)/100.0;
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::getAllSum)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::getAllSum)"+exception.Message);
|
||||
return 0;
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::getAllSum) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::getAllSum) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//sales - true <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, false - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//check - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> =0 <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
bool FiscalPrinterPort::PrintCheck(bool sales, int check, WideString headLine )
|
||||
{
|
||||
//bool err=0;
|
||||
double cur=0;
|
||||
double cAllPrice=0;
|
||||
bool bOk=true;
|
||||
|
||||
try
|
||||
{
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
cAllPrice=getGoodsPrice();
|
||||
|
||||
Currency UnitPrice,AllPriceDrb,AllPrice;
|
||||
long Qnt,vat;
|
||||
BSTR* bstr;
|
||||
WideString sStr;
|
||||
BSTR sTmp=new OLECHAR[255];
|
||||
sTmp=L"";
|
||||
long MbsResponceCode;
|
||||
CURRENCY Amount1,Amount2;
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(sales) bOk = fp->OpenFiscalInv(1,"0000",1);
|
||||
else bOk = fp->OpenBackInv(1,"0000",1);
|
||||
if (!bOk) throw Exception(getLastError());
|
||||
|
||||
if(headLine.Length()>0)
|
||||
PrintLine(headLine);
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
for(int i=0;i<FListGoods->Count;i++)
|
||||
{
|
||||
Goods* goods=(Goods*)FListGoods->Items[i];
|
||||
bOk=fp->RegisterSale(goods->name1.c_bstr(),goods->name2.c_bstr(),0,"<22>",goods->price,goods->count,0,0); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
if (!bOk) throw Exception(getLastError());
|
||||
}
|
||||
ClearGoods();
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
double Change;
|
||||
bOk=fp->Total("","","P",cAllPrice,Change);
|
||||
if (!bOk) throw Exception(getLastError());
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
bOk = fp->CloseFiscalInv();
|
||||
if(!bOk) throw Exception(getLastError());
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
ClearGoods();
|
||||
saveLog(1,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+CurrToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId)+". "+exception.Message);
|
||||
dModule->SendError(bOk,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+FloatToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId)+". "+exception.Message);
|
||||
bOk=false;
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
ClearGoods();
|
||||
saveLog(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+FloatToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId));
|
||||
dModule->SendError(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+FloatToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId));
|
||||
bOk=false;
|
||||
}
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
if(!bOk)
|
||||
{
|
||||
fp->CancelFiscalInv();
|
||||
}
|
||||
return bOk;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinterPort::PrintZReport()
|
||||
{
|
||||
bool bOk;
|
||||
try
|
||||
{
|
||||
double Amount=0,CashSum=0,ServIn=0,ServOut=0;
|
||||
std::string ExitCode="";
|
||||
bOk=fp->ParishOrConsumption(Amount,ExitCode,CashSum,ServIn,ServOut);
|
||||
if(!bOk) throw Exception(getLastError());
|
||||
bOk=fp->PrintZReport();
|
||||
if(!bOk) throw Exception(getLastError());
|
||||
dModule->addZReport(CashSum);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
ClearGoods();
|
||||
saveLog(1,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "+exception.Message);
|
||||
dModule->SendError(bOk,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "+exception.Message);
|
||||
bOk=false;
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
ClearGoods();
|
||||
saveLog(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.");
|
||||
dModule->SendError(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.");
|
||||
bOk=false;
|
||||
}
|
||||
|
||||
return bOk;
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinterPort::isOk()
|
||||
{
|
||||
try
|
||||
{
|
||||
if (!fp->DiagnosticInfo()) throw Exception(getLastError());
|
||||
if(!dModule->getDayShift())throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::isOk)"+exception.Message);
|
||||
dModule->SendError(1,"(PrinterOPOS::isOk)"+exception.Message);
|
||||
return false;
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::isOk)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::isOk)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
934
devices/Printers/Mebius/__history/PrinterOPOS.cpp.~23~
Normal file
934
devices/Printers/Mebius/__history/PrinterOPOS.cpp.~23~
Normal file
@ -0,0 +1,934 @@
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
#pragma hdrstop
|
||||
|
||||
#include "PrinterOPOS.h"
|
||||
#include "OposFiscalPrinter_1_7_Lib_OCX.h"
|
||||
//#include "OposFiscalPrinter_CCO_OCX.h"
|
||||
#include "ud_Module.h"
|
||||
#include <Registry.hpp>
|
||||
#include <Math.h>
|
||||
#include <DateUtils.hpp>
|
||||
#include <Dialogs.hpp>
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
#pragma package(smart_init)
|
||||
//---------------------------------------------------------------------------
|
||||
FiscalPrinter* g_printer;
|
||||
//---------------------------------------------------------------------------
|
||||
char * kkm_err_msg_ru[] = {
|
||||
"OK", //0
|
||||
"<22><> ID <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //1 FM ID Error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> ", //2 FM Rec Error
|
||||
"Flash Chip <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //3 Flash Chip cant clear
|
||||
"<22><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>", //4 FM not empty
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //5 FM Data destroyed
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>", //6 Cmd ignor prn mode
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //7 Oper code is absent
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //8 Doc type is absent
|
||||
"<22><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>", //9 Ser num CR
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //10 Password error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD>", //11 Data/Time error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD>", //12 Factory registration has already pass
|
||||
"<22><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //13 Ser num CR destroyed
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>", //14 Fiscalize has already pass
|
||||
"<22><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>", //15 Not fisc mode CR
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //16 Fiscalize Data destroyed
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //17 Rewrite is conclude
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //18 Rewrite is destroyed
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //19 Shift already open
|
||||
"<22><> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //20 Shift not opened
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>", //21 Many goods in receipt
|
||||
"<22><> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //22 EOD data in FM destroyed
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //23 Document format error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //24 Text rewrite
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><><EFBFBD> <20><><EFBFBD>", //25 Many parameters in document
|
||||
"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><>", //26 Document parameters error
|
||||
"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><>", //27 Parameters value error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //28 Object non-existent
|
||||
"<22><><EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //29 Document is not finished
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>", //30 goods/operation description not enough
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //31 Check sum packet
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>", //32 Prn not ready
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //33 Nested interrupts
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //34 Check Sum Error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><>", //35 Overflow if FM
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //36 Unknown command
|
||||
"CRC <20><><EFBFBD>", //37 CRC RAM
|
||||
"CRC <20><>", //38 CRC FM
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //39 Data port defective
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>", //40 Receipts parameters sequence
|
||||
"0xy <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>", //41 0xy for required properties
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //42 Length request
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>", //43 number capacity
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //44 Overflow
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>", //45 Number is absent
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //46 Not response
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //47 Transmission error
|
||||
"<22><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //48 Math overflow
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...", //49 Paper out...
|
||||
"<22><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!!", //50 CR not ready!!!
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!", //51 Memory error!!
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //52 Printer off
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //53 Insufficient memory
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //54 Lenght number less
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //55 Zero lenght number
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //56 Password lenght less permissible
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //57 Zero lenght password
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //58 Impossible value
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>-<2D><><EFBFBD>", //59 Time-out overdraw
|
||||
"",
|
||||
"<22><>.<2E><><EFBFBD><EFBFBD>",
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>",
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
|
||||
"","","","","","",//69
|
||||
"","","","","","","","","","",//79
|
||||
"","","","","","","","","","",//89
|
||||
"","","","","","","","","","",//99
|
||||
"","","","","","","","","","",//109
|
||||
"","","","","","","","","","",//119
|
||||
"","","","","","","","","","",//129
|
||||
"","","","","","","","","","",//139
|
||||
"","","","","","","","","","",//149
|
||||
"","","","","","","","","","",//159
|
||||
|
||||
"","","","","","","","","","",//169
|
||||
"","","","","","","","","","",//179
|
||||
"","","","","","","","","","",//189
|
||||
"","","","","","","","","","",//199
|
||||
"","","","","","","","","","",//209
|
||||
"","","","","","","","","","",//219
|
||||
"","","","","","","","","","",//229
|
||||
"","","","","","","","","","",//239
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>",//240 Cmd not init
|
||||
"<22><>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//241 Cmd write err
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(DSR=0)",//242 Prn not ready (DSR=0)
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//243 Cmd ok
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//244 Cmd resp timeout
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//245 Prn error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//246 Cmd resp large
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//247 Cmd resp small
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//248
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//249
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//250 Cmd break
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//251
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//252
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//253
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//254
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)!"//255 Previous cmd run
|
||||
};
|
||||
//------------------------------------------------------------------------------
|
||||
bool FiscalPrinter::getNextCheckId(int &id)
|
||||
{
|
||||
CheckId++; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
SaveSetup(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
id=CheckId;
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinter::SaveCheck(int CheckId) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD>)
|
||||
{
|
||||
if(dModule->UserType) //true - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>; false - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
dModule->SaveCheck(CheckId,dModule->UserId,0,getGoodsPrice());
|
||||
else
|
||||
dModule->SaveCheck(CheckId,0,dModule->UserId,getGoodsPrice());
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinter::deleteCheck(int CheckId) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
{
|
||||
dModule->UpdateChek(CheckId);
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
int FiscalPrinter::getCOMPort()
|
||||
{
|
||||
int n=-1;
|
||||
|
||||
TRegistry* reg=new TRegistry;
|
||||
reg->RootKey = HKEY_LOCAL_MACHINE;
|
||||
if(reg->OpenKeyReadOnly("\\SOFTWARE\\OLEforRetail\\ServiceOPOS\\FiscalPrinter\\MbsFiscalPrinter"))
|
||||
{
|
||||
n = reg->ReadInteger("COM Num");
|
||||
}
|
||||
delete reg;
|
||||
return n;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinter::setBaudRate(int val)
|
||||
{
|
||||
bool result;
|
||||
TRegistry* reg=new TRegistry;
|
||||
reg->RootKey = HKEY_LOCAL_MACHINE;
|
||||
if(reg->OpenKey("\\SOFTWARE\\OLEforRetail\\ServiceOPOS\\FiscalPrinter\\MbsFiscalPrinter",true))
|
||||
{
|
||||
reg->WriteInteger("COM Speed",val);
|
||||
result = true;
|
||||
} else result = false;
|
||||
delete reg;
|
||||
return result;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
int FiscalPrinter::getBaudRate()
|
||||
{
|
||||
int n=-1;
|
||||
TRegistry* reg=new TRegistry;
|
||||
reg->RootKey = HKEY_LOCAL_MACHINE;
|
||||
if(reg->OpenKeyReadOnly("\\SOFTWARE\\OLEforRetail\\ServiceOPOS\\FiscalPrinter\\MbsFiscalPrinter"))
|
||||
{
|
||||
n = reg->ReadInteger("COM Speed");
|
||||
}
|
||||
delete reg;
|
||||
return n;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinter::setCOMPort(int n)
|
||||
{
|
||||
bool result;
|
||||
TRegistry* reg=new TRegistry;
|
||||
reg->RootKey = HKEY_LOCAL_MACHINE;
|
||||
if(reg->OpenKey("\\SOFTWARE\\OLEforRetail\\ServiceOPOS\\FiscalPrinter\\MbsFiscalPrinter",true))
|
||||
{
|
||||
reg->WriteInteger("COM Num",n);
|
||||
result = true;
|
||||
} else result = false;
|
||||
delete reg;
|
||||
return result;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void FiscalPrinter::LoadSetup()
|
||||
{
|
||||
TIniFile* ini=new TIniFile(ExtractFilePath(ParamStr(0))+"\\Setup.ini");
|
||||
// cPort->port=ini->ReadString("Printer","Port","");
|
||||
// cPort->BaudRate=ini->ReadInteger("Printer","BaudRate",0);
|
||||
CheckId=ini->ReadInteger("Printer","CheckCount",0);
|
||||
TestMode=ini->ReadBool("Printer","TestMode",true);
|
||||
HeadLine=ini->ReadString("Printer","HeadLine","");
|
||||
GoodsName=ini->ReadString("Printer","GoodsName","");
|
||||
CasireName=ini->ReadString("Printer","CasireName","");
|
||||
AutoOpenShift=ini->ReadBool("Printer","AutoOpenShift",false);
|
||||
delete ini;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void FiscalPrinter::SaveSetup()
|
||||
{
|
||||
TIniFile* ini=new TIniFile(ExtractFilePath(ParamStr(0))+"\\Setup.ini");
|
||||
// ini->WriteString("Printer","Port",cPort->port);
|
||||
// ini->WriteInteger("Printer","BaudRate",cPort->BaudRate);
|
||||
ini->WriteInteger("Printer","CheckCount",CheckId);
|
||||
ini->WriteBool("Printer","TestMode",TestMode);
|
||||
ini->WriteString("Printer","GoodsName",GoodsName);
|
||||
ini->WriteString("Printer","CasireName",CasireName);
|
||||
ini->WriteBool("Printer","AutoOpenShift",AutoOpenShift);
|
||||
delete ini;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
int FiscalPrinter::getGoodsPrice()
|
||||
{
|
||||
int sum=0;
|
||||
for(int i=0;i<FListGoods->Count;i++)
|
||||
sum+=((Goods*)FListGoods->Items[i])->price;
|
||||
return sum;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//---------------------------------------------------------------------------
|
||||
//---------------------------------------------------------------------------
|
||||
PrinterOPOS::PrinterOPOS(TComponent* AOwner):FiscalPrinter()
|
||||
{
|
||||
Crashed=false;
|
||||
AutoOpenShift=false;
|
||||
fp=new TOPOSFiscalPrinter(AOwner);
|
||||
fp->DeviceEnabled = False;
|
||||
LoadSetup();
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
PrinterOPOS::~PrinterOPOS()
|
||||
{
|
||||
delete FListGoods;
|
||||
delete fp;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> COM <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::Start()
|
||||
{
|
||||
if(fp->DeviceEnabled) return true;
|
||||
|
||||
FState = fp->Open(L"MbsFiscalPrinter");
|
||||
if(FState!=0)
|
||||
{
|
||||
saveLog(1,AnsiString(FState)+"(PrinterOPOS::Start)"+GetStatusDescription(FState));
|
||||
return false;
|
||||
}
|
||||
FState = fp->ClaimDevice(1000);
|
||||
if(FState!=0)
|
||||
{
|
||||
saveLog(1,AnsiString(FState)+"(PrinterOPOS::Start)"+GetStatusDescription(FState));
|
||||
return false;
|
||||
}
|
||||
fp->DeviceEnabled = True;
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::setHeader(TStrings* Text)
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
for(int i=0;i<Text->Count;i++)
|
||||
{
|
||||
WideString str=Text->Strings[i];
|
||||
err=fp->SetHeaderLine(i+1,str.c_bstr(),false);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}
|
||||
err=fp->ResetPrinter();
|
||||
if(err)throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::setHeader)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::setHeader)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::setHeader) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::setHeader) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::getHeader(TStrings* Text)
|
||||
{
|
||||
TIniFile* ini=new TIniFile(ExtractFilePath(ParamStr(0))+"\\Setup.ini");
|
||||
Text->Add(ini->ReadString("Printer","HeadLine1",""));
|
||||
Text->Add(ini->ReadString("Printer","HeadLine2",""));
|
||||
Text->Add(ini->ReadString("Printer","HeadLine3",""));
|
||||
Text->Add(ini->ReadString("Printer","HeadLine4",""));
|
||||
Text->Add(ini->ReadString("Printer","HeadLine5",""));
|
||||
delete ini;
|
||||
|
||||
for(int i=Text->Count-1;i>=0;i--)
|
||||
if(Text->Strings[i]=="")Text->Delete(i); else break;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::setTrailer(TStrings* Text)
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
for(int i=0;i<Text->Count;i++)
|
||||
{
|
||||
WideString str=Text->Strings[i];
|
||||
err=fp->SetTrailerLine(i+1,str.c_bstr(),false);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}
|
||||
err=fp->ResetPrinter();
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::setTrailer)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::setTrailer)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::setTrailer) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::setTrailer) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::getTrailer(TStrings* Text)
|
||||
{
|
||||
TIniFile* ini=new TIniFile(ExtractFilePath(ParamStr(0))+"\\Setup.ini");
|
||||
Text->Add(ini->ReadString("Printer","TailLine1",""));
|
||||
Text->Add(ini->ReadString("Printer","TailLine2",""));
|
||||
Text->Add(ini->ReadString("Printer","TailLine3",""));
|
||||
Text->Add(ini->ReadString("Printer","TailLine4",""));
|
||||
Text->Add(ini->ReadString("Printer","TailLine5",""));
|
||||
delete ini;
|
||||
|
||||
for(int i=Text->Count-1;i>=0;i--)
|
||||
if(Text->Strings[i]=="")Text->Delete(i); else break;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::PrintLine(WideString line)
|
||||
{
|
||||
//<2F><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
long err=0;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
err=fp->PrintNormal(2, WideString(WideString(WCHAR(0x1B)) + WideString(WCHAR(0x7C)) + line + L"\n").c_bstr());
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::PrintLine)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::PrintLine)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::PrintLine) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::PrintLine) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//sales - true <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, false - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//check - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> =0 <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//TODO <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
bool PrinterOPOS::PrintCheck(bool sales, int check, WideString headLine) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
long err=0;
|
||||
Currency cur=0;
|
||||
Currency cAllPrice=0;
|
||||
bool bOk=true;
|
||||
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
cAllPrice=getGoodsPrice();
|
||||
|
||||
if(check==0) //<2F><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
CheckId++; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
check=CheckId;
|
||||
SaveSetup(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
}
|
||||
|
||||
if(fp->RecEmpty) throw Exception("<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
if(!DayOpened()) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
|
||||
Currency UnitPrice,AllPriceDrb,AllPrice;
|
||||
long Qnt,vat;
|
||||
BSTR* bstr;
|
||||
WideString sStr;
|
||||
BSTR sTmp=new OLECHAR[255];
|
||||
sTmp=L"";
|
||||
long MbsResponceCode;
|
||||
CURRENCY Amount1,Amount2;
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//vat=11; sTmp=L"<22><><EFBFBD><EFBFBD><EFBFBD>";
|
||||
//err = fp->DirectIO(4, &vat, &sTmp);
|
||||
//if (err) goto ErrHandler;
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> TODO!!!
|
||||
if(headLine.Length()>0)
|
||||
PrintLine(headLine);
|
||||
|
||||
|
||||
if(sales) fp->FiscalReceiptType = FPTR_RT_SALES; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
else fp->FiscalReceiptType=FPTR_RT_SERVICE; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//setTrainingMode(true);
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>)
|
||||
err = fp->BeginFiscalReceipt(true);
|
||||
if (err) throw Exception(getLastError(&err)); //251
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (TODO <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
for(int i=0;i<FListGoods->Count;i++)
|
||||
{
|
||||
Goods* goods=(Goods*)FListGoods->Items[i];
|
||||
VarCyFromR8(goods->price*100,&Amount1);
|
||||
Amount2.int64=0;
|
||||
WideString tmp=goods->name1+L"-/--/-0";
|
||||
err=fp->PrintRecItem(tmp.c_bstr(), Amount1, goods->count, goods->VatInfo, Amount2, L"<22><>");
|
||||
if (err) throw Exception(getLastError(&err));
|
||||
}
|
||||
ClearGoods();
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD> PrintRecTotal)
|
||||
err = fp->DirectIO(3, &CheckId, &sTmp);
|
||||
if (err) throw Exception(getLastError(&err));
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//setNalog(1,12);
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>
|
||||
Amount2.int64=0;
|
||||
VarCyFromR8(cAllPrice*100,&Amount1);
|
||||
err=fp->PrintRecTotal(Amount1, Amount1, L"na");
|
||||
if (err) throw Exception(getLastError(&err));
|
||||
|
||||
|
||||
err = fp->EndFiscalReceipt(True); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (AdditionalTrailer) <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
ClearGoods();
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(1,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+CurrToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId)+". "+exception.Message);
|
||||
dModule->SendError(err,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+IntToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId)+". "+exception.Message);
|
||||
bOk=false;
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
ClearGoods();
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+IntToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId));
|
||||
dModule->SendError(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+IntToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId));
|
||||
bOk=false;
|
||||
}
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
if(!bOk)
|
||||
{
|
||||
fp->PrintRecVoid(L"");
|
||||
}
|
||||
|
||||
return bOk;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::Cut() //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
err=fp->PrintNormal(2, WideString(WideString(WCHAR(0x1B)) + WideString(WCHAR(0x7C)) + "75P").c_bstr());
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::Cut)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::Cut)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::Cut) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::Cut) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
/*int PrinterOPOS::GetState()
|
||||
{
|
||||
if(!fp->DeviceEnabled)FState=245;
|
||||
//if(FState!=0) return FState;
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
// fp->ResultCodeExtended
|
||||
return 0;
|
||||
} */
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::isOk()
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
if(fp->RecEmpty) throw "<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!";
|
||||
err=fp->ResetPrinter();
|
||||
if(err) throw Exception(getLastError(&err)); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
AnsiString str;
|
||||
|
||||
if(!dModule->getDayShift())throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool dOpen=DayOpened();
|
||||
if(!dOpen && AutoOpenShift && OpenShift()) dOpen=true;
|
||||
if(!dOpen) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
if(DayOpened())
|
||||
{
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
TDateTime dt=getDateOpenShift();
|
||||
str=getLastError(&err);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
|
||||
dModule->getDate();
|
||||
if(HoursBetween(dt,dModule->date)>24) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> 24 <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
throw Exception("[1]<5D><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
} else throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
BSTR bstr=new OLECHAR[50];
|
||||
err=fp->GetDate(&bstr);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(1,"(PrinterOPOS::isOk)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::isOk)"+exception.Message);
|
||||
return false;
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(1,"(PrinterOPOS::isOk)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::isOk)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
TDateTime PrinterOPOS::getDateOpenShift()
|
||||
{
|
||||
long err=0;
|
||||
TDateTime date=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
long iTmp;
|
||||
BSTR sTmp=new OLECHAR[50];
|
||||
err=fp->DirectIO(13, &iTmp, &sTmp);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
date=StrToDateTime(sTmp);
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::getDateOpenShift)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::getDateOpenShift)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::getDateOpenShift) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::getDateOpenShift) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return date;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString PrinterOPOS::GetStatusDescription(long err)
|
||||
{
|
||||
AnsiString str;
|
||||
try
|
||||
{
|
||||
if(err<256)
|
||||
str=kkm_err_msg_ru[err];
|
||||
if(str=="") str="<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::GetStatusDescription) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return "<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
|
||||
}
|
||||
return str;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString PrinterOPOS::getLastError(long* err)
|
||||
{
|
||||
BSTR str=new OLECHAR[255];
|
||||
str=L"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!";
|
||||
try
|
||||
{
|
||||
fp->DirectIO(1, err, &str);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::getLastError) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
if(str==L"") return GetStatusDescription(*err);
|
||||
return str;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
AnsiString PrinterOPOS::getLastError()
|
||||
{
|
||||
long err;
|
||||
return getLastError(&err);
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::PrintZReport()
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
int sum=getDaySum();
|
||||
err=fp->PrintZReport();
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
dModule->addZReport(sum);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
dModule->addPaper(-142*2);//<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::PrintZReport)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::PrintZReport)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::PrintZReport) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::PrintZReport) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
void PrinterOPOS::PrintXReport()
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
err=fp->PrintXReport();
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::PrintXReport)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::PrintXReport)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::PrintXReport) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::PrintXReport) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::OpenShift()
|
||||
{
|
||||
long err;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
long n=1;
|
||||
//if(CasireName==NULL) CasireName=L" ";
|
||||
BSTR str=CasireName.c_bstr();
|
||||
err=fp->DirectIO (6,&n,&str);
|
||||
if(err) throw Exception(getLastError(&err)); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
err=fp->SetVatValue(1,L"120");
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::OpenShift)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::OpenShift)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::OpenShift) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::OpenShift) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::DayOpened()
|
||||
{
|
||||
return fp->DayOpened;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::setTrainingMode(bool val)
|
||||
{
|
||||
long err;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
if(getTrainingMode()==val) return true;
|
||||
if(val) err=fp->BeginTraining(); else err=fp->EndTraining();
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::setTrainingMode)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::setTrainingMode)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::setTrainingMode) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::setTrainingMode) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::getTrainingMode()
|
||||
{
|
||||
return fp->TrainingModeActive;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::setNalog(long n,float stavka)
|
||||
{
|
||||
long err;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
long s=stavka*10;
|
||||
WideString str=AnsiString(s);
|
||||
err = fp->DirectIO(2, &n, &str);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::setNalog)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::setNalog)"+exception.Message);
|
||||
return true;
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::setNalog) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::setNalog) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return true;
|
||||
}
|
||||
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
int PrinterOPOS::getDaySum()
|
||||
{
|
||||
long err;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
long n=1;
|
||||
BSTR str=new OLECHAR[20];
|
||||
err=fp->DirectIO (300,&n,&str);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
return StrToInt(str)/100.0;
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::getDaySum)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::getDaySum)"+exception.Message);
|
||||
return 0;
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::getDaySum) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::getDaySum) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
int PrinterOPOS::getAllSum()
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
long n=2;
|
||||
BSTR str=new OLECHAR[20];
|
||||
err=fp->DirectIO (300,&n,&str);
|
||||
if(err)throw Exception(getLastError(&err));
|
||||
return StrToInt(str)/100.0;
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::getAllSum)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::getAllSum)"+exception.Message);
|
||||
return 0;
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::getAllSum) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::getAllSum) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//sales - true <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, false - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//check - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> =0 <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
bool FiscalPrinterPort::PrintCheck(bool sales, int check, WideString headLine )
|
||||
{
|
||||
//bool err=0;
|
||||
double cur=0;
|
||||
double cAllPrice=0;
|
||||
bool bOk=true;
|
||||
|
||||
try
|
||||
{
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
cAllPrice=getGoodsPrice();
|
||||
|
||||
Currency UnitPrice,AllPriceDrb,AllPrice;
|
||||
long Qnt,vat;
|
||||
BSTR* bstr;
|
||||
WideString sStr;
|
||||
BSTR sTmp=new OLECHAR[255];
|
||||
sTmp=L"";
|
||||
long MbsResponceCode;
|
||||
CURRENCY Amount1,Amount2;
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(sales) bOk = fp->OpenFiscalInv(1,"0000",1);
|
||||
else bOk = fp->OpenBackInv(1,"0000",1);
|
||||
if (!bOk) throw Exception(getLastError());
|
||||
|
||||
if(headLine.Length()>0)
|
||||
PrintLine(headLine);
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
for(int i=0;i<FListGoods->Count;i++)
|
||||
{
|
||||
Goods* goods=(Goods*)FListGoods->Items[i];
|
||||
bOk=fp->RegisterSale(goods->name1.c_bstr(),goods->name2.c_bstr(),0,"<22>",goods->price,goods->count,0,0); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
if (!bOk) throw Exception(getLastError());
|
||||
}
|
||||
ClearGoods();
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
double Change;
|
||||
bOk=fp->Total("","","P",cAllPrice,Change);
|
||||
if (!bOk) throw Exception(getLastError());
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
bOk = fp->CloseFiscalInv();
|
||||
if(!bOk) throw Exception(getLastError());
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
ClearGoods();
|
||||
saveLog(1,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+CurrToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId)+". "+exception.Message);
|
||||
dModule->SendError(bOk,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+FloatToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId)+". "+exception.Message);
|
||||
bOk=false;
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
ClearGoods();
|
||||
saveLog(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+FloatToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId));
|
||||
dModule->SendError(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+FloatToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId));
|
||||
bOk=false;
|
||||
}
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
if(!bOk)
|
||||
{
|
||||
fp->CancelFiscalInv();
|
||||
}
|
||||
return bOk;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinterPort::PrintZReport()
|
||||
{
|
||||
bool bOk;
|
||||
try
|
||||
{
|
||||
double Amount=0,CashSum=0,ServIn=0,ServOut=0;
|
||||
std::string ExitCode="";
|
||||
bOk=fp->ParishOrConsumption(Amount,ExitCode,CashSum,ServIn,ServOut);
|
||||
//bool ParishOrConsumption(std::string Oper,std::string Password,double Amount,std::wstring strH,std::wstring strF,std::string& ExitCode,double& CashSum,double& ServIn,double& ServOut); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(!bOk) throw Exception(getLastError());
|
||||
bOk=fp->PrintZReport();
|
||||
if(!bOk) throw Exception(getLastError());
|
||||
dModule->addZReport(CashSum);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
ClearGoods();
|
||||
saveLog(1,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "+exception.Message);
|
||||
dModule->SendError(bOk,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "+exception.Message);
|
||||
bOk=false;
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
ClearGoods();
|
||||
saveLog(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.");
|
||||
dModule->SendError(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.");
|
||||
bOk=false;
|
||||
}
|
||||
|
||||
return bOk;
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinterPort::isOk()
|
||||
{
|
||||
try
|
||||
{
|
||||
if (!fp->DiagnosticInfo()) throw Exception(getLastError());
|
||||
if(!dModule->getDayShift())throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::isOk)"+exception.Message);
|
||||
dModule->SendError(1,"(PrinterOPOS::isOk)"+exception.Message);
|
||||
return false;
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::isOk)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::isOk)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
933
devices/Printers/Mebius/__history/PrinterOPOS.cpp.~24~
Normal file
933
devices/Printers/Mebius/__history/PrinterOPOS.cpp.~24~
Normal file
@ -0,0 +1,933 @@
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
#pragma hdrstop
|
||||
|
||||
#include "PrinterOPOS.h"
|
||||
#include "OposFiscalPrinter_1_7_Lib_OCX.h"
|
||||
//#include "OposFiscalPrinter_CCO_OCX.h"
|
||||
#include "ud_Module.h"
|
||||
#include <Registry.hpp>
|
||||
#include <Math.h>
|
||||
#include <DateUtils.hpp>
|
||||
#include <Dialogs.hpp>
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
#pragma package(smart_init)
|
||||
//---------------------------------------------------------------------------
|
||||
FiscalPrinter* g_printer;
|
||||
//---------------------------------------------------------------------------
|
||||
char * kkm_err_msg_ru[] = {
|
||||
"OK", //0
|
||||
"<22><> ID <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //1 FM ID Error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> ", //2 FM Rec Error
|
||||
"Flash Chip <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //3 Flash Chip cant clear
|
||||
"<22><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>", //4 FM not empty
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //5 FM Data destroyed
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>", //6 Cmd ignor prn mode
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //7 Oper code is absent
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //8 Doc type is absent
|
||||
"<22><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>", //9 Ser num CR
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //10 Password error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD>", //11 Data/Time error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD>", //12 Factory registration has already pass
|
||||
"<22><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //13 Ser num CR destroyed
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>", //14 Fiscalize has already pass
|
||||
"<22><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>", //15 Not fisc mode CR
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //16 Fiscalize Data destroyed
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //17 Rewrite is conclude
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //18 Rewrite is destroyed
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //19 Shift already open
|
||||
"<22><> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //20 Shift not opened
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>", //21 Many goods in receipt
|
||||
"<22><> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //22 EOD data in FM destroyed
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //23 Document format error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //24 Text rewrite
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><><EFBFBD> <20><><EFBFBD>", //25 Many parameters in document
|
||||
"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><>", //26 Document parameters error
|
||||
"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><>", //27 Parameters value error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //28 Object non-existent
|
||||
"<22><><EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //29 Document is not finished
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>", //30 goods/operation description not enough
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //31 Check sum packet
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>", //32 Prn not ready
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //33 Nested interrupts
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //34 Check Sum Error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><>", //35 Overflow if FM
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //36 Unknown command
|
||||
"CRC <20><><EFBFBD>", //37 CRC RAM
|
||||
"CRC <20><>", //38 CRC FM
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //39 Data port defective
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>", //40 Receipts parameters sequence
|
||||
"0xy <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>", //41 0xy for required properties
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //42 Length request
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>", //43 number capacity
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //44 Overflow
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>", //45 Number is absent
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //46 Not response
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //47 Transmission error
|
||||
"<22><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //48 Math overflow
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...", //49 Paper out...
|
||||
"<22><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!!", //50 CR not ready!!!
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!", //51 Memory error!!
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //52 Printer off
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //53 Insufficient memory
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //54 Lenght number less
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //55 Zero lenght number
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //56 Password lenght less permissible
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //57 Zero lenght password
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //58 Impossible value
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>-<2D><><EFBFBD>", //59 Time-out overdraw
|
||||
"",
|
||||
"<22><>.<2E><><EFBFBD><EFBFBD>",
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>",
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
|
||||
"","","","","","",//69
|
||||
"","","","","","","","","","",//79
|
||||
"","","","","","","","","","",//89
|
||||
"","","","","","","","","","",//99
|
||||
"","","","","","","","","","",//109
|
||||
"","","","","","","","","","",//119
|
||||
"","","","","","","","","","",//129
|
||||
"","","","","","","","","","",//139
|
||||
"","","","","","","","","","",//149
|
||||
"","","","","","","","","","",//159
|
||||
|
||||
"","","","","","","","","","",//169
|
||||
"","","","","","","","","","",//179
|
||||
"","","","","","","","","","",//189
|
||||
"","","","","","","","","","",//199
|
||||
"","","","","","","","","","",//209
|
||||
"","","","","","","","","","",//219
|
||||
"","","","","","","","","","",//229
|
||||
"","","","","","","","","","",//239
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>",//240 Cmd not init
|
||||
"<22><>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//241 Cmd write err
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(DSR=0)",//242 Prn not ready (DSR=0)
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//243 Cmd ok
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//244 Cmd resp timeout
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//245 Prn error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//246 Cmd resp large
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//247 Cmd resp small
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//248
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//249
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//250 Cmd break
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//251
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//252
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//253
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//254
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)!"//255 Previous cmd run
|
||||
};
|
||||
//------------------------------------------------------------------------------
|
||||
bool FiscalPrinter::getNextCheckId(int &id)
|
||||
{
|
||||
CheckId++; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
SaveSetup(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
id=CheckId;
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinter::SaveCheck(int CheckId) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD>)
|
||||
{
|
||||
if(dModule->UserType) //true - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>; false - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
dModule->SaveCheck(CheckId,dModule->UserId,0,getGoodsPrice());
|
||||
else
|
||||
dModule->SaveCheck(CheckId,0,dModule->UserId,getGoodsPrice());
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinter::deleteCheck(int CheckId) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
{
|
||||
dModule->UpdateChek(CheckId);
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
int FiscalPrinter::getCOMPort()
|
||||
{
|
||||
int n=-1;
|
||||
|
||||
TRegistry* reg=new TRegistry;
|
||||
reg->RootKey = HKEY_LOCAL_MACHINE;
|
||||
if(reg->OpenKeyReadOnly("\\SOFTWARE\\OLEforRetail\\ServiceOPOS\\FiscalPrinter\\MbsFiscalPrinter"))
|
||||
{
|
||||
n = reg->ReadInteger("COM Num");
|
||||
}
|
||||
delete reg;
|
||||
return n;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinter::setBaudRate(int val)
|
||||
{
|
||||
bool result;
|
||||
TRegistry* reg=new TRegistry;
|
||||
reg->RootKey = HKEY_LOCAL_MACHINE;
|
||||
if(reg->OpenKey("\\SOFTWARE\\OLEforRetail\\ServiceOPOS\\FiscalPrinter\\MbsFiscalPrinter",true))
|
||||
{
|
||||
reg->WriteInteger("COM Speed",val);
|
||||
result = true;
|
||||
} else result = false;
|
||||
delete reg;
|
||||
return result;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
int FiscalPrinter::getBaudRate()
|
||||
{
|
||||
int n=-1;
|
||||
TRegistry* reg=new TRegistry;
|
||||
reg->RootKey = HKEY_LOCAL_MACHINE;
|
||||
if(reg->OpenKeyReadOnly("\\SOFTWARE\\OLEforRetail\\ServiceOPOS\\FiscalPrinter\\MbsFiscalPrinter"))
|
||||
{
|
||||
n = reg->ReadInteger("COM Speed");
|
||||
}
|
||||
delete reg;
|
||||
return n;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinter::setCOMPort(int n)
|
||||
{
|
||||
bool result;
|
||||
TRegistry* reg=new TRegistry;
|
||||
reg->RootKey = HKEY_LOCAL_MACHINE;
|
||||
if(reg->OpenKey("\\SOFTWARE\\OLEforRetail\\ServiceOPOS\\FiscalPrinter\\MbsFiscalPrinter",true))
|
||||
{
|
||||
reg->WriteInteger("COM Num",n);
|
||||
result = true;
|
||||
} else result = false;
|
||||
delete reg;
|
||||
return result;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void FiscalPrinter::LoadSetup()
|
||||
{
|
||||
TIniFile* ini=new TIniFile(ExtractFilePath(ParamStr(0))+"\\Setup.ini");
|
||||
// cPort->port=ini->ReadString("Printer","Port","");
|
||||
// cPort->BaudRate=ini->ReadInteger("Printer","BaudRate",0);
|
||||
CheckId=ini->ReadInteger("Printer","CheckCount",0);
|
||||
TestMode=ini->ReadBool("Printer","TestMode",true);
|
||||
HeadLine=ini->ReadString("Printer","HeadLine","");
|
||||
GoodsName=ini->ReadString("Printer","GoodsName","");
|
||||
CasireName=ini->ReadString("Printer","CasireName","");
|
||||
AutoOpenShift=ini->ReadBool("Printer","AutoOpenShift",false);
|
||||
delete ini;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void FiscalPrinter::SaveSetup()
|
||||
{
|
||||
TIniFile* ini=new TIniFile(ExtractFilePath(ParamStr(0))+"\\Setup.ini");
|
||||
// ini->WriteString("Printer","Port",cPort->port);
|
||||
// ini->WriteInteger("Printer","BaudRate",cPort->BaudRate);
|
||||
ini->WriteInteger("Printer","CheckCount",CheckId);
|
||||
ini->WriteBool("Printer","TestMode",TestMode);
|
||||
ini->WriteString("Printer","GoodsName",GoodsName);
|
||||
ini->WriteString("Printer","CasireName",CasireName);
|
||||
ini->WriteBool("Printer","AutoOpenShift",AutoOpenShift);
|
||||
delete ini;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
int FiscalPrinter::getGoodsPrice()
|
||||
{
|
||||
int sum=0;
|
||||
for(int i=0;i<FListGoods->Count;i++)
|
||||
sum+=((Goods*)FListGoods->Items[i])->price;
|
||||
return sum;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//---------------------------------------------------------------------------
|
||||
//---------------------------------------------------------------------------
|
||||
PrinterOPOS::PrinterOPOS(TComponent* AOwner):FiscalPrinter()
|
||||
{
|
||||
Crashed=false;
|
||||
AutoOpenShift=false;
|
||||
fp=new TOPOSFiscalPrinter(AOwner);
|
||||
fp->DeviceEnabled = False;
|
||||
LoadSetup();
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
PrinterOPOS::~PrinterOPOS()
|
||||
{
|
||||
delete FListGoods;
|
||||
delete fp;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> COM <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::Start()
|
||||
{
|
||||
if(fp->DeviceEnabled) return true;
|
||||
|
||||
FState = fp->Open(L"MbsFiscalPrinter");
|
||||
if(FState!=0)
|
||||
{
|
||||
saveLog(1,AnsiString(FState)+"(PrinterOPOS::Start)"+GetStatusDescription(FState));
|
||||
return false;
|
||||
}
|
||||
FState = fp->ClaimDevice(1000);
|
||||
if(FState!=0)
|
||||
{
|
||||
saveLog(1,AnsiString(FState)+"(PrinterOPOS::Start)"+GetStatusDescription(FState));
|
||||
return false;
|
||||
}
|
||||
fp->DeviceEnabled = True;
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::setHeader(TStrings* Text)
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
for(int i=0;i<Text->Count;i++)
|
||||
{
|
||||
WideString str=Text->Strings[i];
|
||||
err=fp->SetHeaderLine(i+1,str.c_bstr(),false);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}
|
||||
err=fp->ResetPrinter();
|
||||
if(err)throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::setHeader)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::setHeader)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::setHeader) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::setHeader) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::getHeader(TStrings* Text)
|
||||
{
|
||||
TIniFile* ini=new TIniFile(ExtractFilePath(ParamStr(0))+"\\Setup.ini");
|
||||
Text->Add(ini->ReadString("Printer","HeadLine1",""));
|
||||
Text->Add(ini->ReadString("Printer","HeadLine2",""));
|
||||
Text->Add(ini->ReadString("Printer","HeadLine3",""));
|
||||
Text->Add(ini->ReadString("Printer","HeadLine4",""));
|
||||
Text->Add(ini->ReadString("Printer","HeadLine5",""));
|
||||
delete ini;
|
||||
|
||||
for(int i=Text->Count-1;i>=0;i--)
|
||||
if(Text->Strings[i]=="")Text->Delete(i); else break;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::setTrailer(TStrings* Text)
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
for(int i=0;i<Text->Count;i++)
|
||||
{
|
||||
WideString str=Text->Strings[i];
|
||||
err=fp->SetTrailerLine(i+1,str.c_bstr(),false);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}
|
||||
err=fp->ResetPrinter();
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::setTrailer)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::setTrailer)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::setTrailer) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::setTrailer) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::getTrailer(TStrings* Text)
|
||||
{
|
||||
TIniFile* ini=new TIniFile(ExtractFilePath(ParamStr(0))+"\\Setup.ini");
|
||||
Text->Add(ini->ReadString("Printer","TailLine1",""));
|
||||
Text->Add(ini->ReadString("Printer","TailLine2",""));
|
||||
Text->Add(ini->ReadString("Printer","TailLine3",""));
|
||||
Text->Add(ini->ReadString("Printer","TailLine4",""));
|
||||
Text->Add(ini->ReadString("Printer","TailLine5",""));
|
||||
delete ini;
|
||||
|
||||
for(int i=Text->Count-1;i>=0;i--)
|
||||
if(Text->Strings[i]=="")Text->Delete(i); else break;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::PrintLine(WideString line)
|
||||
{
|
||||
//<2F><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
long err=0;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
err=fp->PrintNormal(2, WideString(WideString(WCHAR(0x1B)) + WideString(WCHAR(0x7C)) + line + L"\n").c_bstr());
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::PrintLine)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::PrintLine)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::PrintLine) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::PrintLine) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//sales - true <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, false - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//check - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> =0 <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//TODO <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
bool PrinterOPOS::PrintCheck(bool sales, int check, WideString headLine) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
long err=0;
|
||||
Currency cur=0;
|
||||
Currency cAllPrice=0;
|
||||
bool bOk=true;
|
||||
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
cAllPrice=getGoodsPrice();
|
||||
|
||||
if(check==0) //<2F><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
CheckId++; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
check=CheckId;
|
||||
SaveSetup(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
}
|
||||
|
||||
if(fp->RecEmpty) throw Exception("<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
if(!DayOpened()) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
|
||||
Currency UnitPrice,AllPriceDrb,AllPrice;
|
||||
long Qnt,vat;
|
||||
BSTR* bstr;
|
||||
WideString sStr;
|
||||
BSTR sTmp=new OLECHAR[255];
|
||||
sTmp=L"";
|
||||
long MbsResponceCode;
|
||||
CURRENCY Amount1,Amount2;
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//vat=11; sTmp=L"<22><><EFBFBD><EFBFBD><EFBFBD>";
|
||||
//err = fp->DirectIO(4, &vat, &sTmp);
|
||||
//if (err) goto ErrHandler;
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> TODO!!!
|
||||
if(headLine.Length()>0)
|
||||
PrintLine(headLine);
|
||||
|
||||
|
||||
if(sales) fp->FiscalReceiptType = FPTR_RT_SALES; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
else fp->FiscalReceiptType=FPTR_RT_SERVICE; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//setTrainingMode(true);
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>)
|
||||
err = fp->BeginFiscalReceipt(true);
|
||||
if (err) throw Exception(getLastError(&err)); //251
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (TODO <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
for(int i=0;i<FListGoods->Count;i++)
|
||||
{
|
||||
Goods* goods=(Goods*)FListGoods->Items[i];
|
||||
VarCyFromR8(goods->price*100,&Amount1);
|
||||
Amount2.int64=0;
|
||||
WideString tmp=goods->name1+L"-/--/-0";
|
||||
err=fp->PrintRecItem(tmp.c_bstr(), Amount1, goods->count, goods->VatInfo, Amount2, L"<22><>");
|
||||
if (err) throw Exception(getLastError(&err));
|
||||
}
|
||||
ClearGoods();
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD> PrintRecTotal)
|
||||
err = fp->DirectIO(3, &CheckId, &sTmp);
|
||||
if (err) throw Exception(getLastError(&err));
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//setNalog(1,12);
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>
|
||||
Amount2.int64=0;
|
||||
VarCyFromR8(cAllPrice*100,&Amount1);
|
||||
err=fp->PrintRecTotal(Amount1, Amount1, L"na");
|
||||
if (err) throw Exception(getLastError(&err));
|
||||
|
||||
|
||||
err = fp->EndFiscalReceipt(True); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (AdditionalTrailer) <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
ClearGoods();
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(1,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+CurrToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId)+". "+exception.Message);
|
||||
dModule->SendError(err,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+IntToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId)+". "+exception.Message);
|
||||
bOk=false;
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
ClearGoods();
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+IntToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId));
|
||||
dModule->SendError(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+IntToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId));
|
||||
bOk=false;
|
||||
}
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
if(!bOk)
|
||||
{
|
||||
fp->PrintRecVoid(L"");
|
||||
}
|
||||
|
||||
return bOk;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::Cut() //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
err=fp->PrintNormal(2, WideString(WideString(WCHAR(0x1B)) + WideString(WCHAR(0x7C)) + "75P").c_bstr());
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::Cut)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::Cut)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::Cut) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::Cut) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
/*int PrinterOPOS::GetState()
|
||||
{
|
||||
if(!fp->DeviceEnabled)FState=245;
|
||||
//if(FState!=0) return FState;
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
// fp->ResultCodeExtended
|
||||
return 0;
|
||||
} */
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::isOk()
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
if(fp->RecEmpty) throw "<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!";
|
||||
err=fp->ResetPrinter();
|
||||
if(err) throw Exception(getLastError(&err)); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
AnsiString str;
|
||||
|
||||
if(!dModule->getDayShift())throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool dOpen=DayOpened();
|
||||
if(!dOpen && AutoOpenShift && OpenShift()) dOpen=true;
|
||||
if(!dOpen) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
if(DayOpened())
|
||||
{
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
TDateTime dt=getDateOpenShift();
|
||||
str=getLastError(&err);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
|
||||
dModule->getDate();
|
||||
if(HoursBetween(dt,dModule->date)>24) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> 24 <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
throw Exception("[1]<5D><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
} else throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
BSTR bstr=new OLECHAR[50];
|
||||
err=fp->GetDate(&bstr);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(1,"(PrinterOPOS::isOk)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::isOk)"+exception.Message);
|
||||
return false;
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(1,"(PrinterOPOS::isOk)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::isOk)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
TDateTime PrinterOPOS::getDateOpenShift()
|
||||
{
|
||||
long err=0;
|
||||
TDateTime date=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
long iTmp;
|
||||
BSTR sTmp=new OLECHAR[50];
|
||||
err=fp->DirectIO(13, &iTmp, &sTmp);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
date=StrToDateTime(sTmp);
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::getDateOpenShift)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::getDateOpenShift)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::getDateOpenShift) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::getDateOpenShift) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return date;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString PrinterOPOS::GetStatusDescription(long err)
|
||||
{
|
||||
AnsiString str;
|
||||
try
|
||||
{
|
||||
if(err<256)
|
||||
str=kkm_err_msg_ru[err];
|
||||
if(str=="") str="<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::GetStatusDescription) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return "<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
|
||||
}
|
||||
return str;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString PrinterOPOS::getLastError(long* err)
|
||||
{
|
||||
BSTR str=new OLECHAR[255];
|
||||
str=L"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!";
|
||||
try
|
||||
{
|
||||
fp->DirectIO(1, err, &str);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::getLastError) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
if(str==L"") return GetStatusDescription(*err);
|
||||
return str;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
AnsiString PrinterOPOS::getLastError()
|
||||
{
|
||||
long err;
|
||||
return getLastError(&err);
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::PrintZReport()
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
int sum=getDaySum();
|
||||
err=fp->PrintZReport();
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
dModule->addZReport(sum);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
dModule->addPaper(-142*2);//<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::PrintZReport)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::PrintZReport)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::PrintZReport) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::PrintZReport) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
void PrinterOPOS::PrintXReport()
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
err=fp->PrintXReport();
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::PrintXReport)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::PrintXReport)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::PrintXReport) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::PrintXReport) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::OpenShift()
|
||||
{
|
||||
long err;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
long n=1;
|
||||
//if(CasireName==NULL) CasireName=L" ";
|
||||
BSTR str=CasireName.c_bstr();
|
||||
err=fp->DirectIO (6,&n,&str);
|
||||
if(err) throw Exception(getLastError(&err)); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
err=fp->SetVatValue(1,L"120");
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::OpenShift)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::OpenShift)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::OpenShift) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::OpenShift) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::DayOpened()
|
||||
{
|
||||
return fp->DayOpened;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::setTrainingMode(bool val)
|
||||
{
|
||||
long err;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
if(getTrainingMode()==val) return true;
|
||||
if(val) err=fp->BeginTraining(); else err=fp->EndTraining();
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::setTrainingMode)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::setTrainingMode)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::setTrainingMode) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::setTrainingMode) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::getTrainingMode()
|
||||
{
|
||||
return fp->TrainingModeActive;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::setNalog(long n,float stavka)
|
||||
{
|
||||
long err;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
long s=stavka*10;
|
||||
WideString str=AnsiString(s);
|
||||
err = fp->DirectIO(2, &n, &str);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::setNalog)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::setNalog)"+exception.Message);
|
||||
return true;
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::setNalog) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::setNalog) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return true;
|
||||
}
|
||||
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
int PrinterOPOS::getDaySum()
|
||||
{
|
||||
long err;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
long n=1;
|
||||
BSTR str=new OLECHAR[20];
|
||||
err=fp->DirectIO (300,&n,&str);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
return StrToInt(str)/100.0;
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::getDaySum)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::getDaySum)"+exception.Message);
|
||||
return 0;
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::getDaySum) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::getDaySum) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
int PrinterOPOS::getAllSum()
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
long n=2;
|
||||
BSTR str=new OLECHAR[20];
|
||||
err=fp->DirectIO (300,&n,&str);
|
||||
if(err)throw Exception(getLastError(&err));
|
||||
return StrToInt(str)/100.0;
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::getAllSum)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::getAllSum)"+exception.Message);
|
||||
return 0;
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::getAllSum) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::getAllSum) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//sales - true <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, false - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//check - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> =0 <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
bool FiscalPrinterPort::PrintCheck(bool sales, int check, WideString headLine )
|
||||
{
|
||||
//bool err=0;
|
||||
double cur=0;
|
||||
double cAllPrice=0;
|
||||
bool bOk=true;
|
||||
|
||||
try
|
||||
{
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
cAllPrice=getGoodsPrice();
|
||||
|
||||
Currency UnitPrice,AllPriceDrb,AllPrice;
|
||||
long Qnt,vat;
|
||||
BSTR* bstr;
|
||||
WideString sStr;
|
||||
BSTR sTmp=new OLECHAR[255];
|
||||
sTmp=L"";
|
||||
long MbsResponceCode;
|
||||
CURRENCY Amount1,Amount2;
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(sales) bOk = fp->OpenFiscalInv(1,"0000",1);
|
||||
else bOk = fp->OpenBackInv(1,"0000",1);
|
||||
if (!bOk) throw Exception(getLastError());
|
||||
|
||||
if(headLine.Length()>0)
|
||||
PrintLine(headLine);
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
for(int i=0;i<FListGoods->Count;i++)
|
||||
{
|
||||
Goods* goods=(Goods*)FListGoods->Items[i];
|
||||
bOk=fp->RegisterSale(goods->name1.c_bstr(),goods->name2.c_bstr(),0,"<22>",goods->price,goods->count,0,0); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
if (!bOk) throw Exception(getLastError());
|
||||
}
|
||||
ClearGoods();
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
double Change;
|
||||
bOk=fp->Total("","","P",cAllPrice,Change);
|
||||
if (!bOk) throw Exception(getLastError());
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
bOk = fp->CloseFiscalInv();
|
||||
if(!bOk) throw Exception(getLastError());
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
ClearGoods();
|
||||
saveLog(1,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+CurrToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId)+". "+exception.Message);
|
||||
dModule->SendError(bOk,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+FloatToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId)+". "+exception.Message);
|
||||
bOk=false;
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
ClearGoods();
|
||||
saveLog(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+FloatToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId));
|
||||
dModule->SendError(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+FloatToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId));
|
||||
bOk=false;
|
||||
}
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
if(!bOk)
|
||||
{
|
||||
fp->CancelFiscalInv();
|
||||
}
|
||||
return bOk;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinterPort::PrintZReport()
|
||||
{
|
||||
bool bOk;
|
||||
try
|
||||
{
|
||||
double Amount=0,CashSum=0,ServIn=0,ServOut=0;
|
||||
std::string Oper,Password,ExitCode="";
|
||||
bOk=fp->ParishOrConsumption(Oper,Password,Amount,ExitCode,CashSum,ServIn,ServOut);
|
||||
if(!bOk) throw Exception(getLastError());
|
||||
bOk=fp->PrintZReport();
|
||||
if(!bOk) throw Exception(getLastError());
|
||||
dModule->addZReport(CashSum);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
ClearGoods();
|
||||
saveLog(1,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "+exception.Message);
|
||||
dModule->SendError(bOk,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "+exception.Message);
|
||||
bOk=false;
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
ClearGoods();
|
||||
saveLog(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.");
|
||||
dModule->SendError(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.");
|
||||
bOk=false;
|
||||
}
|
||||
|
||||
return bOk;
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinterPort::isOk()
|
||||
{
|
||||
try
|
||||
{
|
||||
if (!fp->DiagnosticInfo()) throw Exception(getLastError());
|
||||
if(!dModule->getDayShift())throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::isOk)"+exception.Message);
|
||||
dModule->SendError(1,"(PrinterOPOS::isOk)"+exception.Message);
|
||||
return false;
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::isOk)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::isOk)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
935
devices/Printers/Mebius/__history/PrinterOPOS.cpp.~25~
Normal file
935
devices/Printers/Mebius/__history/PrinterOPOS.cpp.~25~
Normal file
@ -0,0 +1,935 @@
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
#pragma hdrstop
|
||||
|
||||
#include "PrinterOPOS.h"
|
||||
#include "OposFiscalPrinter_1_7_Lib_OCX.h"
|
||||
//#include "OposFiscalPrinter_CCO_OCX.h"
|
||||
#include "ud_Module.h"
|
||||
#include <Registry.hpp>
|
||||
#include <Math.h>
|
||||
#include <DateUtils.hpp>
|
||||
#include <Dialogs.hpp>
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
#pragma package(smart_init)
|
||||
//---------------------------------------------------------------------------
|
||||
FiscalPrinter* g_printer;
|
||||
//---------------------------------------------------------------------------
|
||||
char * kkm_err_msg_ru[] = {
|
||||
"OK", //0
|
||||
"<22><> ID <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //1 FM ID Error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> ", //2 FM Rec Error
|
||||
"Flash Chip <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //3 Flash Chip cant clear
|
||||
"<22><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>", //4 FM not empty
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //5 FM Data destroyed
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>", //6 Cmd ignor prn mode
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //7 Oper code is absent
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //8 Doc type is absent
|
||||
"<22><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>", //9 Ser num CR
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //10 Password error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD>", //11 Data/Time error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD>", //12 Factory registration has already pass
|
||||
"<22><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //13 Ser num CR destroyed
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>", //14 Fiscalize has already pass
|
||||
"<22><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>", //15 Not fisc mode CR
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //16 Fiscalize Data destroyed
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //17 Rewrite is conclude
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //18 Rewrite is destroyed
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //19 Shift already open
|
||||
"<22><> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //20 Shift not opened
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>", //21 Many goods in receipt
|
||||
"<22><> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //22 EOD data in FM destroyed
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //23 Document format error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //24 Text rewrite
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><><EFBFBD> <20><><EFBFBD>", //25 Many parameters in document
|
||||
"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><>", //26 Document parameters error
|
||||
"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><>", //27 Parameters value error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //28 Object non-existent
|
||||
"<22><><EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //29 Document is not finished
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>", //30 goods/operation description not enough
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //31 Check sum packet
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>", //32 Prn not ready
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //33 Nested interrupts
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //34 Check Sum Error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><>", //35 Overflow if FM
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //36 Unknown command
|
||||
"CRC <20><><EFBFBD>", //37 CRC RAM
|
||||
"CRC <20><>", //38 CRC FM
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //39 Data port defective
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>", //40 Receipts parameters sequence
|
||||
"0xy <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>", //41 0xy for required properties
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //42 Length request
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>", //43 number capacity
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //44 Overflow
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>", //45 Number is absent
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //46 Not response
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //47 Transmission error
|
||||
"<22><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //48 Math overflow
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...", //49 Paper out...
|
||||
"<22><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!!", //50 CR not ready!!!
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!", //51 Memory error!!
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //52 Printer off
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //53 Insufficient memory
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //54 Lenght number less
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //55 Zero lenght number
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //56 Password lenght less permissible
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //57 Zero lenght password
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //58 Impossible value
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>-<2D><><EFBFBD>", //59 Time-out overdraw
|
||||
"",
|
||||
"<22><>.<2E><><EFBFBD><EFBFBD>",
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>",
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
|
||||
"","","","","","",//69
|
||||
"","","","","","","","","","",//79
|
||||
"","","","","","","","","","",//89
|
||||
"","","","","","","","","","",//99
|
||||
"","","","","","","","","","",//109
|
||||
"","","","","","","","","","",//119
|
||||
"","","","","","","","","","",//129
|
||||
"","","","","","","","","","",//139
|
||||
"","","","","","","","","","",//149
|
||||
"","","","","","","","","","",//159
|
||||
|
||||
"","","","","","","","","","",//169
|
||||
"","","","","","","","","","",//179
|
||||
"","","","","","","","","","",//189
|
||||
"","","","","","","","","","",//199
|
||||
"","","","","","","","","","",//209
|
||||
"","","","","","","","","","",//219
|
||||
"","","","","","","","","","",//229
|
||||
"","","","","","","","","","",//239
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>",//240 Cmd not init
|
||||
"<22><>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//241 Cmd write err
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(DSR=0)",//242 Prn not ready (DSR=0)
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//243 Cmd ok
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//244 Cmd resp timeout
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//245 Prn error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//246 Cmd resp large
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//247 Cmd resp small
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//248
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//249
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//250 Cmd break
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//251
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//252
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//253
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//254
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)!"//255 Previous cmd run
|
||||
};
|
||||
//------------------------------------------------------------------------------
|
||||
bool FiscalPrinter::getNextCheckId(int &id)
|
||||
{
|
||||
CheckId++; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
SaveSetup(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
id=CheckId;
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinter::SaveCheck(int CheckId) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD>)
|
||||
{
|
||||
if(dModule->UserType) //true - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>; false - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
dModule->SaveCheck(CheckId,dModule->UserId,0,getGoodsPrice());
|
||||
else
|
||||
dModule->SaveCheck(CheckId,0,dModule->UserId,getGoodsPrice());
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinter::deleteCheck(int CheckId) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
{
|
||||
dModule->UpdateChek(CheckId);
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
int FiscalPrinter::getCOMPort()
|
||||
{
|
||||
int n=-1;
|
||||
|
||||
TRegistry* reg=new TRegistry;
|
||||
reg->RootKey = HKEY_LOCAL_MACHINE;
|
||||
if(reg->OpenKeyReadOnly("\\SOFTWARE\\OLEforRetail\\ServiceOPOS\\FiscalPrinter\\MbsFiscalPrinter"))
|
||||
{
|
||||
n = reg->ReadInteger("COM Num");
|
||||
}
|
||||
delete reg;
|
||||
return n;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinter::setBaudRate(int val)
|
||||
{
|
||||
bool result;
|
||||
TRegistry* reg=new TRegistry;
|
||||
reg->RootKey = HKEY_LOCAL_MACHINE;
|
||||
if(reg->OpenKey("\\SOFTWARE\\OLEforRetail\\ServiceOPOS\\FiscalPrinter\\MbsFiscalPrinter",true))
|
||||
{
|
||||
reg->WriteInteger("COM Speed",val);
|
||||
result = true;
|
||||
} else result = false;
|
||||
delete reg;
|
||||
return result;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
int FiscalPrinter::getBaudRate()
|
||||
{
|
||||
int n=-1;
|
||||
TRegistry* reg=new TRegistry;
|
||||
reg->RootKey = HKEY_LOCAL_MACHINE;
|
||||
if(reg->OpenKeyReadOnly("\\SOFTWARE\\OLEforRetail\\ServiceOPOS\\FiscalPrinter\\MbsFiscalPrinter"))
|
||||
{
|
||||
n = reg->ReadInteger("COM Speed");
|
||||
}
|
||||
delete reg;
|
||||
return n;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinter::setCOMPort(int n)
|
||||
{
|
||||
bool result;
|
||||
TRegistry* reg=new TRegistry;
|
||||
reg->RootKey = HKEY_LOCAL_MACHINE;
|
||||
if(reg->OpenKey("\\SOFTWARE\\OLEforRetail\\ServiceOPOS\\FiscalPrinter\\MbsFiscalPrinter",true))
|
||||
{
|
||||
reg->WriteInteger("COM Num",n);
|
||||
result = true;
|
||||
} else result = false;
|
||||
delete reg;
|
||||
return result;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void FiscalPrinter::LoadSetup()
|
||||
{
|
||||
TIniFile* ini=new TIniFile(ExtractFilePath(ParamStr(0))+"\\Setup.ini");
|
||||
// cPort->port=ini->ReadString("Printer","Port","");
|
||||
// cPort->BaudRate=ini->ReadInteger("Printer","BaudRate",0);
|
||||
CheckId=ini->ReadInteger("Printer","CheckCount",0);
|
||||
TestMode=ini->ReadBool("Printer","TestMode",true);
|
||||
HeadLine=ini->ReadString("Printer","HeadLine","");
|
||||
GoodsName=ini->ReadString("Printer","GoodsName","");
|
||||
CasireName=ini->ReadString("Printer","CasireName","");
|
||||
AutoOpenShift=ini->ReadBool("Printer","AutoOpenShift",false);
|
||||
delete ini;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void FiscalPrinter::SaveSetup()
|
||||
{
|
||||
TIniFile* ini=new TIniFile(ExtractFilePath(ParamStr(0))+"\\Setup.ini");
|
||||
// ini->WriteString("Printer","Port",cPort->port);
|
||||
// ini->WriteInteger("Printer","BaudRate",cPort->BaudRate);
|
||||
ini->WriteInteger("Printer","CheckCount",CheckId);
|
||||
ini->WriteBool("Printer","TestMode",TestMode);
|
||||
ini->WriteString("Printer","GoodsName",GoodsName);
|
||||
ini->WriteString("Printer","CasireName",CasireName);
|
||||
ini->WriteBool("Printer","AutoOpenShift",AutoOpenShift);
|
||||
delete ini;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
int FiscalPrinter::getGoodsPrice()
|
||||
{
|
||||
int sum=0;
|
||||
for(int i=0;i<FListGoods->Count;i++)
|
||||
sum+=((Goods*)FListGoods->Items[i])->price;
|
||||
return sum;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//---------------------------------------------------------------------------
|
||||
//---------------------------------------------------------------------------
|
||||
PrinterOPOS::PrinterOPOS(TComponent* AOwner):FiscalPrinter()
|
||||
{
|
||||
Crashed=false;
|
||||
AutoOpenShift=false;
|
||||
fp=new TOPOSFiscalPrinter(AOwner);
|
||||
fp->DeviceEnabled = False;
|
||||
LoadSetup();
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
PrinterOPOS::~PrinterOPOS()
|
||||
{
|
||||
delete FListGoods;
|
||||
delete fp;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> COM <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::Start()
|
||||
{
|
||||
if(fp->DeviceEnabled) return true;
|
||||
|
||||
FState = fp->Open(L"MbsFiscalPrinter");
|
||||
if(FState!=0)
|
||||
{
|
||||
saveLog(1,AnsiString(FState)+"(PrinterOPOS::Start)"+GetStatusDescription(FState));
|
||||
return false;
|
||||
}
|
||||
FState = fp->ClaimDevice(1000);
|
||||
if(FState!=0)
|
||||
{
|
||||
saveLog(1,AnsiString(FState)+"(PrinterOPOS::Start)"+GetStatusDescription(FState));
|
||||
return false;
|
||||
}
|
||||
fp->DeviceEnabled = True;
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::setHeader(TStrings* Text)
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
for(int i=0;i<Text->Count;i++)
|
||||
{
|
||||
WideString str=Text->Strings[i];
|
||||
err=fp->SetHeaderLine(i+1,str.c_bstr(),false);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}
|
||||
err=fp->ResetPrinter();
|
||||
if(err)throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::setHeader)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::setHeader)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::setHeader) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::setHeader) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::getHeader(TStrings* Text)
|
||||
{
|
||||
TIniFile* ini=new TIniFile(ExtractFilePath(ParamStr(0))+"\\Setup.ini");
|
||||
Text->Add(ini->ReadString("Printer","HeadLine1",""));
|
||||
Text->Add(ini->ReadString("Printer","HeadLine2",""));
|
||||
Text->Add(ini->ReadString("Printer","HeadLine3",""));
|
||||
Text->Add(ini->ReadString("Printer","HeadLine4",""));
|
||||
Text->Add(ini->ReadString("Printer","HeadLine5",""));
|
||||
delete ini;
|
||||
|
||||
for(int i=Text->Count-1;i>=0;i--)
|
||||
if(Text->Strings[i]=="")Text->Delete(i); else break;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::setTrailer(TStrings* Text)
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
for(int i=0;i<Text->Count;i++)
|
||||
{
|
||||
WideString str=Text->Strings[i];
|
||||
err=fp->SetTrailerLine(i+1,str.c_bstr(),false);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}
|
||||
err=fp->ResetPrinter();
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::setTrailer)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::setTrailer)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::setTrailer) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::setTrailer) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::getTrailer(TStrings* Text)
|
||||
{
|
||||
TIniFile* ini=new TIniFile(ExtractFilePath(ParamStr(0))+"\\Setup.ini");
|
||||
Text->Add(ini->ReadString("Printer","TailLine1",""));
|
||||
Text->Add(ini->ReadString("Printer","TailLine2",""));
|
||||
Text->Add(ini->ReadString("Printer","TailLine3",""));
|
||||
Text->Add(ini->ReadString("Printer","TailLine4",""));
|
||||
Text->Add(ini->ReadString("Printer","TailLine5",""));
|
||||
delete ini;
|
||||
|
||||
for(int i=Text->Count-1;i>=0;i--)
|
||||
if(Text->Strings[i]=="")Text->Delete(i); else break;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::PrintLine(WideString line)
|
||||
{
|
||||
//<2F><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
long err=0;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
err=fp->PrintNormal(2, WideString(WideString(WCHAR(0x1B)) + WideString(WCHAR(0x7C)) + line + L"\n").c_bstr());
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::PrintLine)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::PrintLine)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::PrintLine) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::PrintLine) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//sales - true <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, false - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//check - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> =0 <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//TODO <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
bool PrinterOPOS::PrintCheck(bool sales, int check, WideString headLine) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
long err=0;
|
||||
Currency cur=0;
|
||||
Currency cAllPrice=0;
|
||||
bool bOk=true;
|
||||
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
cAllPrice=getGoodsPrice();
|
||||
|
||||
if(check==0) //<2F><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
CheckId++; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
check=CheckId;
|
||||
SaveSetup(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
}
|
||||
|
||||
if(fp->RecEmpty) throw Exception("<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
if(!DayOpened()) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
|
||||
Currency UnitPrice,AllPriceDrb,AllPrice;
|
||||
long Qnt,vat;
|
||||
BSTR* bstr;
|
||||
WideString sStr;
|
||||
BSTR sTmp=new OLECHAR[255];
|
||||
sTmp=L"";
|
||||
long MbsResponceCode;
|
||||
CURRENCY Amount1,Amount2;
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//vat=11; sTmp=L"<22><><EFBFBD><EFBFBD><EFBFBD>";
|
||||
//err = fp->DirectIO(4, &vat, &sTmp);
|
||||
//if (err) goto ErrHandler;
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> TODO!!!
|
||||
if(headLine.Length()>0)
|
||||
PrintLine(headLine);
|
||||
|
||||
|
||||
if(sales) fp->FiscalReceiptType = FPTR_RT_SALES; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
else fp->FiscalReceiptType=FPTR_RT_SERVICE; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//setTrainingMode(true);
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>)
|
||||
err = fp->BeginFiscalReceipt(true);
|
||||
if (err) throw Exception(getLastError(&err)); //251
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (TODO <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
for(int i=0;i<FListGoods->Count;i++)
|
||||
{
|
||||
Goods* goods=(Goods*)FListGoods->Items[i];
|
||||
VarCyFromR8(goods->price*100,&Amount1);
|
||||
Amount2.int64=0;
|
||||
WideString tmp=goods->name1+L"-/--/-0";
|
||||
err=fp->PrintRecItem(tmp.c_bstr(), Amount1, goods->count, goods->VatInfo, Amount2, L"<22><>");
|
||||
if (err) throw Exception(getLastError(&err));
|
||||
}
|
||||
ClearGoods();
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD> PrintRecTotal)
|
||||
err = fp->DirectIO(3, &CheckId, &sTmp);
|
||||
if (err) throw Exception(getLastError(&err));
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//setNalog(1,12);
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>
|
||||
Amount2.int64=0;
|
||||
VarCyFromR8(cAllPrice*100,&Amount1);
|
||||
err=fp->PrintRecTotal(Amount1, Amount1, L"na");
|
||||
if (err) throw Exception(getLastError(&err));
|
||||
|
||||
|
||||
err = fp->EndFiscalReceipt(True); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (AdditionalTrailer) <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
ClearGoods();
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(1,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+CurrToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId)+". "+exception.Message);
|
||||
dModule->SendError(err,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+IntToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId)+". "+exception.Message);
|
||||
bOk=false;
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
ClearGoods();
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+IntToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId));
|
||||
dModule->SendError(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+IntToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId));
|
||||
bOk=false;
|
||||
}
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
if(!bOk)
|
||||
{
|
||||
fp->PrintRecVoid(L"");
|
||||
}
|
||||
|
||||
return bOk;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::Cut() //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
err=fp->PrintNormal(2, WideString(WideString(WCHAR(0x1B)) + WideString(WCHAR(0x7C)) + "75P").c_bstr());
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::Cut)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::Cut)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::Cut) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::Cut) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
/*int PrinterOPOS::GetState()
|
||||
{
|
||||
if(!fp->DeviceEnabled)FState=245;
|
||||
//if(FState!=0) return FState;
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
// fp->ResultCodeExtended
|
||||
return 0;
|
||||
} */
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::isOk()
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
if(fp->RecEmpty) throw "<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!";
|
||||
err=fp->ResetPrinter();
|
||||
if(err) throw Exception(getLastError(&err)); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
AnsiString str;
|
||||
|
||||
if(!dModule->getDayShift())throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool dOpen=DayOpened();
|
||||
if(!dOpen && AutoOpenShift && OpenShift()) dOpen=true;
|
||||
if(!dOpen) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
if(DayOpened())
|
||||
{
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
TDateTime dt=getDateOpenShift();
|
||||
str=getLastError(&err);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
|
||||
dModule->getDate();
|
||||
if(HoursBetween(dt,dModule->date)>24) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> 24 <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
throw Exception("[1]<5D><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
} else throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
BSTR bstr=new OLECHAR[50];
|
||||
err=fp->GetDate(&bstr);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(1,"(PrinterOPOS::isOk)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::isOk)"+exception.Message);
|
||||
return false;
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(1,"(PrinterOPOS::isOk)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::isOk)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
TDateTime PrinterOPOS::getDateOpenShift()
|
||||
{
|
||||
long err=0;
|
||||
TDateTime date=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
long iTmp;
|
||||
BSTR sTmp=new OLECHAR[50];
|
||||
err=fp->DirectIO(13, &iTmp, &sTmp);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
date=StrToDateTime(sTmp);
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::getDateOpenShift)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::getDateOpenShift)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::getDateOpenShift) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::getDateOpenShift) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return date;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString PrinterOPOS::GetStatusDescription(long err)
|
||||
{
|
||||
AnsiString str;
|
||||
try
|
||||
{
|
||||
if(err<256)
|
||||
str=kkm_err_msg_ru[err];
|
||||
if(str=="") str="<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::GetStatusDescription) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return "<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
|
||||
}
|
||||
return str;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString PrinterOPOS::getLastError(long* err)
|
||||
{
|
||||
BSTR str=new OLECHAR[255];
|
||||
str=L"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!";
|
||||
try
|
||||
{
|
||||
fp->DirectIO(1, err, &str);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::getLastError) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
if(str==L"") return GetStatusDescription(*err);
|
||||
return str;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
AnsiString PrinterOPOS::getLastError()
|
||||
{
|
||||
long err;
|
||||
return getLastError(&err);
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::PrintZReport()
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
int sum=getDaySum();
|
||||
err=fp->PrintZReport();
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
dModule->addZReport(sum);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
dModule->addPaper(-142*2);//<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::PrintZReport)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::PrintZReport)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::PrintZReport) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::PrintZReport) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
void PrinterOPOS::PrintXReport()
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
err=fp->PrintXReport();
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::PrintXReport)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::PrintXReport)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::PrintXReport) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::PrintXReport) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::OpenShift()
|
||||
{
|
||||
long err;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
long n=1;
|
||||
//if(CasireName==NULL) CasireName=L" ";
|
||||
BSTR str=CasireName.c_bstr();
|
||||
err=fp->DirectIO (6,&n,&str);
|
||||
if(err) throw Exception(getLastError(&err)); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
err=fp->SetVatValue(1,L"120");
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::OpenShift)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::OpenShift)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::OpenShift) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::OpenShift) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::DayOpened()
|
||||
{
|
||||
return fp->DayOpened;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::setTrainingMode(bool val)
|
||||
{
|
||||
long err;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
if(getTrainingMode()==val) return true;
|
||||
if(val) err=fp->BeginTraining(); else err=fp->EndTraining();
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::setTrainingMode)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::setTrainingMode)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::setTrainingMode) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::setTrainingMode) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::getTrainingMode()
|
||||
{
|
||||
return fp->TrainingModeActive;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::setNalog(long n,float stavka)
|
||||
{
|
||||
long err;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
long s=stavka*10;
|
||||
WideString str=AnsiString(s);
|
||||
err = fp->DirectIO(2, &n, &str);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::setNalog)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::setNalog)"+exception.Message);
|
||||
return true;
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::setNalog) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::setNalog) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return true;
|
||||
}
|
||||
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
int PrinterOPOS::getDaySum()
|
||||
{
|
||||
long err;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
long n=1;
|
||||
BSTR str=new OLECHAR[20];
|
||||
err=fp->DirectIO (300,&n,&str);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
return StrToInt(str)/100.0;
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::getDaySum)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::getDaySum)"+exception.Message);
|
||||
return 0;
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::getDaySum) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::getDaySum) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
int PrinterOPOS::getAllSum()
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
long n=2;
|
||||
BSTR str=new OLECHAR[20];
|
||||
err=fp->DirectIO (300,&n,&str);
|
||||
if(err)throw Exception(getLastError(&err));
|
||||
return StrToInt(str)/100.0;
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::getAllSum)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::getAllSum)"+exception.Message);
|
||||
return 0;
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::getAllSum) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::getAllSum) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//sales - true <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, false - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//check - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> =0 <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
bool FiscalPrinterPort::PrintCheck(bool sales, int check, WideString headLine )
|
||||
{
|
||||
//bool err=0;
|
||||
double cur=0;
|
||||
double cAllPrice=0;
|
||||
bool bOk=true;
|
||||
|
||||
try
|
||||
{
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
cAllPrice=getGoodsPrice();
|
||||
|
||||
Currency UnitPrice,AllPriceDrb,AllPrice;
|
||||
long Qnt,vat;
|
||||
BSTR* bstr;
|
||||
WideString sStr;
|
||||
BSTR sTmp=new OLECHAR[255];
|
||||
sTmp=L"";
|
||||
long MbsResponceCode;
|
||||
CURRENCY Amount1,Amount2;
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(sales) bOk = fp->OpenFiscalInv(1,"0000",1);
|
||||
else bOk = fp->OpenBackInv(1,"0000",1);
|
||||
if (!bOk) throw Exception(getLastError());
|
||||
|
||||
if(headLine.Length()>0)
|
||||
PrintLine(headLine);
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
for(int i=0;i<FListGoods->Count;i++)
|
||||
{
|
||||
Goods* goods=(Goods*)FListGoods->Items[i];
|
||||
bOk=fp->RegisterSale(goods->name1.c_bstr(),goods->name2.c_bstr(),0,"<22>",goods->price,goods->count,0,0); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
if (!bOk) throw Exception(getLastError());
|
||||
}
|
||||
ClearGoods();
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
double Change;
|
||||
bOk=fp->Total("","","P",cAllPrice,Change);
|
||||
if (!bOk) throw Exception(getLastError());
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
bOk = fp->CloseFiscalInv();
|
||||
if(!bOk) throw Exception(getLastError());
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
ClearGoods();
|
||||
saveLog(1,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+CurrToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId)+". "+exception.Message);
|
||||
dModule->SendError(bOk,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+FloatToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId)+". "+exception.Message);
|
||||
bOk=false;
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
ClearGoods();
|
||||
saveLog(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+FloatToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId));
|
||||
dModule->SendError(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+FloatToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId));
|
||||
bOk=false;
|
||||
}
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
if(!bOk)
|
||||
{
|
||||
fp->CancelFiscalInv();
|
||||
}
|
||||
return bOk;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinterPort::PrintZReport()
|
||||
{
|
||||
bool bOk;
|
||||
try
|
||||
{
|
||||
double Amount=0,CashSum=0,ServIn=0,ServOut=0;
|
||||
std::string Oper,Password,ExitCode="";
|
||||
std::wstring strH,strF;
|
||||
bOk=fp->ParishOrConsumption(Oper,Password,Amount,strH,strF,ExitCode,CashSum,ServIn,ServOut);
|
||||
//bool ParishOrConsumption(std::string Oper,std::string Password,double Amount,std::wstring strH,std::wstring strF,std::string& ExitCode,double& CashSum,double& ServIn,double& ServOut); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(!bOk) throw Exception(getLastError());
|
||||
bOk=fp->PrintZReport();
|
||||
if(!bOk) throw Exception(getLastError());
|
||||
dModule->addZReport(CashSum);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
ClearGoods();
|
||||
saveLog(1,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "+exception.Message);
|
||||
dModule->SendError(bOk,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "+exception.Message);
|
||||
bOk=false;
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
ClearGoods();
|
||||
saveLog(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.");
|
||||
dModule->SendError(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.");
|
||||
bOk=false;
|
||||
}
|
||||
|
||||
return bOk;
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinterPort::isOk()
|
||||
{
|
||||
try
|
||||
{
|
||||
if (!fp->DiagnosticInfo()) throw Exception(getLastError());
|
||||
if(!dModule->getDayShift())throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::isOk)"+exception.Message);
|
||||
dModule->SendError(1,"(PrinterOPOS::isOk)"+exception.Message);
|
||||
return false;
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::isOk)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::isOk)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
934
devices/Printers/Mebius/__history/PrinterOPOS.cpp.~26~
Normal file
934
devices/Printers/Mebius/__history/PrinterOPOS.cpp.~26~
Normal file
@ -0,0 +1,934 @@
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
#pragma hdrstop
|
||||
|
||||
#include "PrinterOPOS.h"
|
||||
#include "OposFiscalPrinter_1_7_Lib_OCX.h"
|
||||
//#include "OposFiscalPrinter_CCO_OCX.h"
|
||||
#include "ud_Module.h"
|
||||
#include <Registry.hpp>
|
||||
#include <Math.h>
|
||||
#include <DateUtils.hpp>
|
||||
#include <Dialogs.hpp>
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
#pragma package(smart_init)
|
||||
//---------------------------------------------------------------------------
|
||||
FiscalPrinter* g_printer;
|
||||
//---------------------------------------------------------------------------
|
||||
char * kkm_err_msg_ru[] = {
|
||||
"OK", //0
|
||||
"<22><> ID <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //1 FM ID Error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> ", //2 FM Rec Error
|
||||
"Flash Chip <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //3 Flash Chip cant clear
|
||||
"<22><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>", //4 FM not empty
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //5 FM Data destroyed
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>", //6 Cmd ignor prn mode
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //7 Oper code is absent
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //8 Doc type is absent
|
||||
"<22><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>", //9 Ser num CR
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //10 Password error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD>", //11 Data/Time error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD>", //12 Factory registration has already pass
|
||||
"<22><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //13 Ser num CR destroyed
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>", //14 Fiscalize has already pass
|
||||
"<22><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>", //15 Not fisc mode CR
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //16 Fiscalize Data destroyed
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //17 Rewrite is conclude
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //18 Rewrite is destroyed
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //19 Shift already open
|
||||
"<22><> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //20 Shift not opened
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>", //21 Many goods in receipt
|
||||
"<22><> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //22 EOD data in FM destroyed
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //23 Document format error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //24 Text rewrite
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><><EFBFBD> <20><><EFBFBD>", //25 Many parameters in document
|
||||
"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><>", //26 Document parameters error
|
||||
"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><>", //27 Parameters value error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //28 Object non-existent
|
||||
"<22><><EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //29 Document is not finished
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>", //30 goods/operation description not enough
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //31 Check sum packet
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>", //32 Prn not ready
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //33 Nested interrupts
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //34 Check Sum Error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><>", //35 Overflow if FM
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //36 Unknown command
|
||||
"CRC <20><><EFBFBD>", //37 CRC RAM
|
||||
"CRC <20><>", //38 CRC FM
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //39 Data port defective
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>", //40 Receipts parameters sequence
|
||||
"0xy <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>", //41 0xy for required properties
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //42 Length request
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>", //43 number capacity
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //44 Overflow
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>", //45 Number is absent
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //46 Not response
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //47 Transmission error
|
||||
"<22><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //48 Math overflow
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...", //49 Paper out...
|
||||
"<22><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!!", //50 CR not ready!!!
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!", //51 Memory error!!
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //52 Printer off
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //53 Insufficient memory
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //54 Lenght number less
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //55 Zero lenght number
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //56 Password lenght less permissible
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //57 Zero lenght password
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //58 Impossible value
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>-<2D><><EFBFBD>", //59 Time-out overdraw
|
||||
"",
|
||||
"<22><>.<2E><><EFBFBD><EFBFBD>",
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>",
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
|
||||
"","","","","","",//69
|
||||
"","","","","","","","","","",//79
|
||||
"","","","","","","","","","",//89
|
||||
"","","","","","","","","","",//99
|
||||
"","","","","","","","","","",//109
|
||||
"","","","","","","","","","",//119
|
||||
"","","","","","","","","","",//129
|
||||
"","","","","","","","","","",//139
|
||||
"","","","","","","","","","",//149
|
||||
"","","","","","","","","","",//159
|
||||
|
||||
"","","","","","","","","","",//169
|
||||
"","","","","","","","","","",//179
|
||||
"","","","","","","","","","",//189
|
||||
"","","","","","","","","","",//199
|
||||
"","","","","","","","","","",//209
|
||||
"","","","","","","","","","",//219
|
||||
"","","","","","","","","","",//229
|
||||
"","","","","","","","","","",//239
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>",//240 Cmd not init
|
||||
"<22><>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//241 Cmd write err
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(DSR=0)",//242 Prn not ready (DSR=0)
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//243 Cmd ok
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//244 Cmd resp timeout
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//245 Prn error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//246 Cmd resp large
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//247 Cmd resp small
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//248
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//249
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//250 Cmd break
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//251
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//252
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//253
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//254
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)!"//255 Previous cmd run
|
||||
};
|
||||
//------------------------------------------------------------------------------
|
||||
bool FiscalPrinter::getNextCheckId(int &id)
|
||||
{
|
||||
CheckId++; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
SaveSetup(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
id=CheckId;
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinter::SaveCheck(int CheckId) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD>)
|
||||
{
|
||||
if(dModule->UserType) //true - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>; false - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
dModule->SaveCheck(CheckId,dModule->UserId,0,getGoodsPrice());
|
||||
else
|
||||
dModule->SaveCheck(CheckId,0,dModule->UserId,getGoodsPrice());
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinter::deleteCheck(int CheckId) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
{
|
||||
dModule->UpdateChek(CheckId);
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
int FiscalPrinter::getCOMPort()
|
||||
{
|
||||
int n=-1;
|
||||
|
||||
TRegistry* reg=new TRegistry;
|
||||
reg->RootKey = HKEY_LOCAL_MACHINE;
|
||||
if(reg->OpenKeyReadOnly("\\SOFTWARE\\OLEforRetail\\ServiceOPOS\\FiscalPrinter\\MbsFiscalPrinter"))
|
||||
{
|
||||
n = reg->ReadInteger("COM Num");
|
||||
}
|
||||
delete reg;
|
||||
return n;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinter::setBaudRate(int val)
|
||||
{
|
||||
bool result;
|
||||
TRegistry* reg=new TRegistry;
|
||||
reg->RootKey = HKEY_LOCAL_MACHINE;
|
||||
if(reg->OpenKey("\\SOFTWARE\\OLEforRetail\\ServiceOPOS\\FiscalPrinter\\MbsFiscalPrinter",true))
|
||||
{
|
||||
reg->WriteInteger("COM Speed",val);
|
||||
result = true;
|
||||
} else result = false;
|
||||
delete reg;
|
||||
return result;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
int FiscalPrinter::getBaudRate()
|
||||
{
|
||||
int n=-1;
|
||||
TRegistry* reg=new TRegistry;
|
||||
reg->RootKey = HKEY_LOCAL_MACHINE;
|
||||
if(reg->OpenKeyReadOnly("\\SOFTWARE\\OLEforRetail\\ServiceOPOS\\FiscalPrinter\\MbsFiscalPrinter"))
|
||||
{
|
||||
n = reg->ReadInteger("COM Speed");
|
||||
}
|
||||
delete reg;
|
||||
return n;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinter::setCOMPort(int n)
|
||||
{
|
||||
bool result;
|
||||
TRegistry* reg=new TRegistry;
|
||||
reg->RootKey = HKEY_LOCAL_MACHINE;
|
||||
if(reg->OpenKey("\\SOFTWARE\\OLEforRetail\\ServiceOPOS\\FiscalPrinter\\MbsFiscalPrinter",true))
|
||||
{
|
||||
reg->WriteInteger("COM Num",n);
|
||||
result = true;
|
||||
} else result = false;
|
||||
delete reg;
|
||||
return result;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void FiscalPrinter::LoadSetup()
|
||||
{
|
||||
TIniFile* ini=new TIniFile(ExtractFilePath(ParamStr(0))+"\\Setup.ini");
|
||||
// cPort->port=ini->ReadString("Printer","Port","");
|
||||
// cPort->BaudRate=ini->ReadInteger("Printer","BaudRate",0);
|
||||
CheckId=ini->ReadInteger("Printer","CheckCount",0);
|
||||
TestMode=ini->ReadBool("Printer","TestMode",true);
|
||||
HeadLine=ini->ReadString("Printer","HeadLine","");
|
||||
GoodsName=ini->ReadString("Printer","GoodsName","");
|
||||
CasireName=ini->ReadString("Printer","CasireName","");
|
||||
AutoOpenShift=ini->ReadBool("Printer","AutoOpenShift",false);
|
||||
delete ini;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void FiscalPrinter::SaveSetup()
|
||||
{
|
||||
TIniFile* ini=new TIniFile(ExtractFilePath(ParamStr(0))+"\\Setup.ini");
|
||||
// ini->WriteString("Printer","Port",cPort->port);
|
||||
// ini->WriteInteger("Printer","BaudRate",cPort->BaudRate);
|
||||
ini->WriteInteger("Printer","CheckCount",CheckId);
|
||||
ini->WriteBool("Printer","TestMode",TestMode);
|
||||
ini->WriteString("Printer","GoodsName",GoodsName);
|
||||
ini->WriteString("Printer","CasireName",CasireName);
|
||||
ini->WriteBool("Printer","AutoOpenShift",AutoOpenShift);
|
||||
delete ini;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
int FiscalPrinter::getGoodsPrice()
|
||||
{
|
||||
int sum=0;
|
||||
for(int i=0;i<FListGoods->Count;i++)
|
||||
sum+=((Goods*)FListGoods->Items[i])->price;
|
||||
return sum;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//---------------------------------------------------------------------------
|
||||
//---------------------------------------------------------------------------
|
||||
PrinterOPOS::PrinterOPOS(TComponent* AOwner):FiscalPrinter()
|
||||
{
|
||||
Crashed=false;
|
||||
AutoOpenShift=false;
|
||||
fp=new TOPOSFiscalPrinter(AOwner);
|
||||
fp->DeviceEnabled = False;
|
||||
LoadSetup();
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
PrinterOPOS::~PrinterOPOS()
|
||||
{
|
||||
delete FListGoods;
|
||||
delete fp;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> COM <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::Start()
|
||||
{
|
||||
if(fp->DeviceEnabled) return true;
|
||||
|
||||
FState = fp->Open(L"MbsFiscalPrinter");
|
||||
if(FState!=0)
|
||||
{
|
||||
saveLog(1,AnsiString(FState)+"(PrinterOPOS::Start)"+GetStatusDescription(FState));
|
||||
return false;
|
||||
}
|
||||
FState = fp->ClaimDevice(1000);
|
||||
if(FState!=0)
|
||||
{
|
||||
saveLog(1,AnsiString(FState)+"(PrinterOPOS::Start)"+GetStatusDescription(FState));
|
||||
return false;
|
||||
}
|
||||
fp->DeviceEnabled = True;
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::setHeader(TStrings* Text)
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
for(int i=0;i<Text->Count;i++)
|
||||
{
|
||||
WideString str=Text->Strings[i];
|
||||
err=fp->SetHeaderLine(i+1,str.c_bstr(),false);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}
|
||||
err=fp->ResetPrinter();
|
||||
if(err)throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::setHeader)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::setHeader)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::setHeader) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::setHeader) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::getHeader(TStrings* Text)
|
||||
{
|
||||
TIniFile* ini=new TIniFile(ExtractFilePath(ParamStr(0))+"\\Setup.ini");
|
||||
Text->Add(ini->ReadString("Printer","HeadLine1",""));
|
||||
Text->Add(ini->ReadString("Printer","HeadLine2",""));
|
||||
Text->Add(ini->ReadString("Printer","HeadLine3",""));
|
||||
Text->Add(ini->ReadString("Printer","HeadLine4",""));
|
||||
Text->Add(ini->ReadString("Printer","HeadLine5",""));
|
||||
delete ini;
|
||||
|
||||
for(int i=Text->Count-1;i>=0;i--)
|
||||
if(Text->Strings[i]=="")Text->Delete(i); else break;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::setTrailer(TStrings* Text)
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
for(int i=0;i<Text->Count;i++)
|
||||
{
|
||||
WideString str=Text->Strings[i];
|
||||
err=fp->SetTrailerLine(i+1,str.c_bstr(),false);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}
|
||||
err=fp->ResetPrinter();
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::setTrailer)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::setTrailer)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::setTrailer) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::setTrailer) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::getTrailer(TStrings* Text)
|
||||
{
|
||||
TIniFile* ini=new TIniFile(ExtractFilePath(ParamStr(0))+"\\Setup.ini");
|
||||
Text->Add(ini->ReadString("Printer","TailLine1",""));
|
||||
Text->Add(ini->ReadString("Printer","TailLine2",""));
|
||||
Text->Add(ini->ReadString("Printer","TailLine3",""));
|
||||
Text->Add(ini->ReadString("Printer","TailLine4",""));
|
||||
Text->Add(ini->ReadString("Printer","TailLine5",""));
|
||||
delete ini;
|
||||
|
||||
for(int i=Text->Count-1;i>=0;i--)
|
||||
if(Text->Strings[i]=="")Text->Delete(i); else break;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::PrintLine(WideString line)
|
||||
{
|
||||
//<2F><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
long err=0;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
err=fp->PrintNormal(2, WideString(WideString(WCHAR(0x1B)) + WideString(WCHAR(0x7C)) + line + L"\n").c_bstr());
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::PrintLine)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::PrintLine)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::PrintLine) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::PrintLine) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//sales - true <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, false - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//check - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> =0 <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//TODO <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
bool PrinterOPOS::PrintCheck(bool sales, int check, WideString headLine) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
long err=0;
|
||||
Currency cur=0;
|
||||
Currency cAllPrice=0;
|
||||
bool bOk=true;
|
||||
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
cAllPrice=getGoodsPrice();
|
||||
|
||||
if(check==0) //<2F><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
CheckId++; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
check=CheckId;
|
||||
SaveSetup(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
}
|
||||
|
||||
if(fp->RecEmpty) throw Exception("<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
if(!DayOpened()) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
|
||||
Currency UnitPrice,AllPriceDrb,AllPrice;
|
||||
long Qnt,vat;
|
||||
BSTR* bstr;
|
||||
WideString sStr;
|
||||
BSTR sTmp=new OLECHAR[255];
|
||||
sTmp=L"";
|
||||
long MbsResponceCode;
|
||||
CURRENCY Amount1,Amount2;
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//vat=11; sTmp=L"<22><><EFBFBD><EFBFBD><EFBFBD>";
|
||||
//err = fp->DirectIO(4, &vat, &sTmp);
|
||||
//if (err) goto ErrHandler;
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> TODO!!!
|
||||
if(headLine.Length()>0)
|
||||
PrintLine(headLine);
|
||||
|
||||
|
||||
if(sales) fp->FiscalReceiptType = FPTR_RT_SALES; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
else fp->FiscalReceiptType=FPTR_RT_SERVICE; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//setTrainingMode(true);
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>)
|
||||
err = fp->BeginFiscalReceipt(true);
|
||||
if (err) throw Exception(getLastError(&err)); //251
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (TODO <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
for(int i=0;i<FListGoods->Count;i++)
|
||||
{
|
||||
Goods* goods=(Goods*)FListGoods->Items[i];
|
||||
VarCyFromR8(goods->price*100,&Amount1);
|
||||
Amount2.int64=0;
|
||||
WideString tmp=goods->name1+L"-/--/-0";
|
||||
err=fp->PrintRecItem(tmp.c_bstr(), Amount1, goods->count, goods->VatInfo, Amount2, L"<22><>");
|
||||
if (err) throw Exception(getLastError(&err));
|
||||
}
|
||||
ClearGoods();
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD> PrintRecTotal)
|
||||
err = fp->DirectIO(3, &CheckId, &sTmp);
|
||||
if (err) throw Exception(getLastError(&err));
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//setNalog(1,12);
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>
|
||||
Amount2.int64=0;
|
||||
VarCyFromR8(cAllPrice*100,&Amount1);
|
||||
err=fp->PrintRecTotal(Amount1, Amount1, L"na");
|
||||
if (err) throw Exception(getLastError(&err));
|
||||
|
||||
|
||||
err = fp->EndFiscalReceipt(True); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (AdditionalTrailer) <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
ClearGoods();
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(1,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+CurrToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId)+". "+exception.Message);
|
||||
dModule->SendError(err,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+IntToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId)+". "+exception.Message);
|
||||
bOk=false;
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
ClearGoods();
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+IntToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId));
|
||||
dModule->SendError(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+IntToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId));
|
||||
bOk=false;
|
||||
}
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
if(!bOk)
|
||||
{
|
||||
fp->PrintRecVoid(L"");
|
||||
}
|
||||
|
||||
return bOk;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::Cut() //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
err=fp->PrintNormal(2, WideString(WideString(WCHAR(0x1B)) + WideString(WCHAR(0x7C)) + "75P").c_bstr());
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::Cut)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::Cut)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::Cut) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::Cut) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
/*int PrinterOPOS::GetState()
|
||||
{
|
||||
if(!fp->DeviceEnabled)FState=245;
|
||||
//if(FState!=0) return FState;
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
// fp->ResultCodeExtended
|
||||
return 0;
|
||||
} */
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::isOk()
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
if(fp->RecEmpty) throw "<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!";
|
||||
err=fp->ResetPrinter();
|
||||
if(err) throw Exception(getLastError(&err)); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
AnsiString str;
|
||||
|
||||
if(!dModule->getDayShift())throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool dOpen=DayOpened();
|
||||
if(!dOpen && AutoOpenShift && OpenShift()) dOpen=true;
|
||||
if(!dOpen) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
if(DayOpened())
|
||||
{
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
TDateTime dt=getDateOpenShift();
|
||||
str=getLastError(&err);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
|
||||
dModule->getDate();
|
||||
if(HoursBetween(dt,dModule->date)>24) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> 24 <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
throw Exception("[1]<5D><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
} else throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
BSTR bstr=new OLECHAR[50];
|
||||
err=fp->GetDate(&bstr);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(1,"(PrinterOPOS::isOk)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::isOk)"+exception.Message);
|
||||
return false;
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(1,"(PrinterOPOS::isOk)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::isOk)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
TDateTime PrinterOPOS::getDateOpenShift()
|
||||
{
|
||||
long err=0;
|
||||
TDateTime date=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
long iTmp;
|
||||
BSTR sTmp=new OLECHAR[50];
|
||||
err=fp->DirectIO(13, &iTmp, &sTmp);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
date=StrToDateTime(sTmp);
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::getDateOpenShift)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::getDateOpenShift)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::getDateOpenShift) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::getDateOpenShift) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return date;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString PrinterOPOS::GetStatusDescription(long err)
|
||||
{
|
||||
AnsiString str;
|
||||
try
|
||||
{
|
||||
if(err<256)
|
||||
str=kkm_err_msg_ru[err];
|
||||
if(str=="") str="<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::GetStatusDescription) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return "<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
|
||||
}
|
||||
return str;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString PrinterOPOS::getLastError(long* err)
|
||||
{
|
||||
BSTR str=new OLECHAR[255];
|
||||
str=L"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!";
|
||||
try
|
||||
{
|
||||
fp->DirectIO(1, err, &str);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::getLastError) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
if(str==L"") return GetStatusDescription(*err);
|
||||
return str;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
AnsiString PrinterOPOS::getLastError()
|
||||
{
|
||||
long err;
|
||||
return getLastError(&err);
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::PrintZReport()
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
int sum=getDaySum();
|
||||
err=fp->PrintZReport();
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
dModule->addZReport(sum);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
dModule->addPaper(-142*2);//<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::PrintZReport)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::PrintZReport)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::PrintZReport) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::PrintZReport) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
void PrinterOPOS::PrintXReport()
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
err=fp->PrintXReport();
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::PrintXReport)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::PrintXReport)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::PrintXReport) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::PrintXReport) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::OpenShift()
|
||||
{
|
||||
long err;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
long n=1;
|
||||
//if(CasireName==NULL) CasireName=L" ";
|
||||
BSTR str=CasireName.c_bstr();
|
||||
err=fp->DirectIO (6,&n,&str);
|
||||
if(err) throw Exception(getLastError(&err)); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
err=fp->SetVatValue(1,L"120");
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::OpenShift)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::OpenShift)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::OpenShift) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::OpenShift) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::DayOpened()
|
||||
{
|
||||
return fp->DayOpened;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::setTrainingMode(bool val)
|
||||
{
|
||||
long err;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
if(getTrainingMode()==val) return true;
|
||||
if(val) err=fp->BeginTraining(); else err=fp->EndTraining();
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::setTrainingMode)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::setTrainingMode)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::setTrainingMode) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::setTrainingMode) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::getTrainingMode()
|
||||
{
|
||||
return fp->TrainingModeActive;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::setNalog(long n,float stavka)
|
||||
{
|
||||
long err;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
long s=stavka*10;
|
||||
WideString str=AnsiString(s);
|
||||
err = fp->DirectIO(2, &n, &str);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::setNalog)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::setNalog)"+exception.Message);
|
||||
return true;
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::setNalog) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::setNalog) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return true;
|
||||
}
|
||||
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
int PrinterOPOS::getDaySum()
|
||||
{
|
||||
long err;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
long n=1;
|
||||
BSTR str=new OLECHAR[20];
|
||||
err=fp->DirectIO (300,&n,&str);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
return StrToInt(str)/100.0;
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::getDaySum)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::getDaySum)"+exception.Message);
|
||||
return 0;
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::getDaySum) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::getDaySum) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
int PrinterOPOS::getAllSum()
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
long n=2;
|
||||
BSTR str=new OLECHAR[20];
|
||||
err=fp->DirectIO (300,&n,&str);
|
||||
if(err)throw Exception(getLastError(&err));
|
||||
return StrToInt(str)/100.0;
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::getAllSum)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::getAllSum)"+exception.Message);
|
||||
return 0;
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::getAllSum) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::getAllSum) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//sales - true <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, false - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//check - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> =0 <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
bool FiscalPrinterPort::PrintCheck(bool sales, int check, WideString headLine )
|
||||
{
|
||||
//bool err=0;
|
||||
double cur=0;
|
||||
double cAllPrice=0;
|
||||
bool bOk=true;
|
||||
|
||||
try
|
||||
{
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
cAllPrice=getGoodsPrice();
|
||||
|
||||
Currency UnitPrice,AllPriceDrb,AllPrice;
|
||||
long Qnt,vat;
|
||||
BSTR* bstr;
|
||||
WideString sStr;
|
||||
BSTR sTmp=new OLECHAR[255];
|
||||
sTmp=L"";
|
||||
long MbsResponceCode;
|
||||
CURRENCY Amount1,Amount2;
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(sales) bOk = fp->OpenFiscalInv(1,"0000",1);
|
||||
else bOk = fp->OpenBackInv(1,"0000",1);
|
||||
if (!bOk) throw Exception(getLastError());
|
||||
|
||||
if(headLine.Length()>0)
|
||||
PrintLine(headLine);
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
for(int i=0;i<FListGoods->Count;i++)
|
||||
{
|
||||
Goods* goods=(Goods*)FListGoods->Items[i];
|
||||
bOk=fp->RegisterSale(goods->name1.c_bstr(),goods->name2.c_bstr(),0,"<22>",goods->price,goods->count,0,0); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
if (!bOk) throw Exception(getLastError());
|
||||
}
|
||||
ClearGoods();
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
double Change;
|
||||
bOk=fp->Total("","","P",cAllPrice,Change);
|
||||
if (!bOk) throw Exception(getLastError());
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
bOk = fp->CloseFiscalInv();
|
||||
if(!bOk) throw Exception(getLastError());
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
ClearGoods();
|
||||
saveLog(1,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+CurrToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId)+". "+exception.Message);
|
||||
dModule->SendError(bOk,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+FloatToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId)+". "+exception.Message);
|
||||
bOk=false;
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
ClearGoods();
|
||||
saveLog(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+FloatToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId));
|
||||
dModule->SendError(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+FloatToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId));
|
||||
bOk=false;
|
||||
}
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
if(!bOk)
|
||||
{
|
||||
fp->CancelFiscalInv();
|
||||
}
|
||||
return bOk;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinterPort::PrintZReport()
|
||||
{
|
||||
bool bOk;
|
||||
try
|
||||
{
|
||||
double Amount=0,CashSum=0,ServIn=0,ServOut=0;
|
||||
std::string Oper,Password,ExitCode="";
|
||||
std::wstring strH,strF;
|
||||
bOk=fp->ParishOrConsumption(Oper,Password,Amount,strH,strF,ExitCode,CashSum,ServIn,ServOut);
|
||||
if(!bOk) throw Exception(getLastError());
|
||||
bOk=fp->PrintZReport();
|
||||
if(!bOk) throw Exception(getLastError());
|
||||
dModule->addZReport(CashSum);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
ClearGoods();
|
||||
saveLog(1,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "+exception.Message);
|
||||
dModule->SendError(bOk,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "+exception.Message);
|
||||
bOk=false;
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
ClearGoods();
|
||||
saveLog(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.");
|
||||
dModule->SendError(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.");
|
||||
bOk=false;
|
||||
}
|
||||
|
||||
return bOk;
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinterPort::isOk()
|
||||
{
|
||||
try
|
||||
{
|
||||
if (!fp->DiagnosticInfo()) throw Exception(getLastError());
|
||||
if(!dModule->getDayShift())throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::isOk)"+exception.Message);
|
||||
dModule->SendError(1,"(PrinterOPOS::isOk)"+exception.Message);
|
||||
return false;
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::isOk)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::isOk)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
934
devices/Printers/Mebius/__history/PrinterOPOS.cpp.~27~
Normal file
934
devices/Printers/Mebius/__history/PrinterOPOS.cpp.~27~
Normal file
@ -0,0 +1,934 @@
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
#pragma hdrstop
|
||||
|
||||
#include "PrinterOPOS.h"
|
||||
#include "OposFiscalPrinter_1_7_Lib_OCX.h"
|
||||
//#include "OposFiscalPrinter_CCO_OCX.h"
|
||||
#include "ud_Module.h"
|
||||
#include <Registry.hpp>
|
||||
#include <Math.h>
|
||||
#include <DateUtils.hpp>
|
||||
#include <Dialogs.hpp>
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
#pragma package(smart_init)
|
||||
//---------------------------------------------------------------------------
|
||||
FiscalPrinter* g_printer;
|
||||
//---------------------------------------------------------------------------
|
||||
char * kkm_err_msg_ru[] = {
|
||||
"OK", //0
|
||||
"<22><> ID <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //1 FM ID Error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> ", //2 FM Rec Error
|
||||
"Flash Chip <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //3 Flash Chip cant clear
|
||||
"<22><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>", //4 FM not empty
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //5 FM Data destroyed
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>", //6 Cmd ignor prn mode
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //7 Oper code is absent
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //8 Doc type is absent
|
||||
"<22><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>", //9 Ser num CR
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //10 Password error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD>", //11 Data/Time error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD>", //12 Factory registration has already pass
|
||||
"<22><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //13 Ser num CR destroyed
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>", //14 Fiscalize has already pass
|
||||
"<22><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>", //15 Not fisc mode CR
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //16 Fiscalize Data destroyed
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //17 Rewrite is conclude
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //18 Rewrite is destroyed
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //19 Shift already open
|
||||
"<22><> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //20 Shift not opened
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>", //21 Many goods in receipt
|
||||
"<22><> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //22 EOD data in FM destroyed
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //23 Document format error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //24 Text rewrite
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><><EFBFBD> <20><><EFBFBD>", //25 Many parameters in document
|
||||
"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><>", //26 Document parameters error
|
||||
"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><>", //27 Parameters value error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //28 Object non-existent
|
||||
"<22><><EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //29 Document is not finished
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>", //30 goods/operation description not enough
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //31 Check sum packet
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>", //32 Prn not ready
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //33 Nested interrupts
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //34 Check Sum Error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><>", //35 Overflow if FM
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //36 Unknown command
|
||||
"CRC <20><><EFBFBD>", //37 CRC RAM
|
||||
"CRC <20><>", //38 CRC FM
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //39 Data port defective
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>", //40 Receipts parameters sequence
|
||||
"0xy <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>", //41 0xy for required properties
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //42 Length request
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>", //43 number capacity
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //44 Overflow
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>", //45 Number is absent
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //46 Not response
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //47 Transmission error
|
||||
"<22><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //48 Math overflow
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...", //49 Paper out...
|
||||
"<22><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!!", //50 CR not ready!!!
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!", //51 Memory error!!
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //52 Printer off
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //53 Insufficient memory
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //54 Lenght number less
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //55 Zero lenght number
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //56 Password lenght less permissible
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //57 Zero lenght password
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //58 Impossible value
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>-<2D><><EFBFBD>", //59 Time-out overdraw
|
||||
"",
|
||||
"<22><>.<2E><><EFBFBD><EFBFBD>",
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>",
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
|
||||
"","","","","","",//69
|
||||
"","","","","","","","","","",//79
|
||||
"","","","","","","","","","",//89
|
||||
"","","","","","","","","","",//99
|
||||
"","","","","","","","","","",//109
|
||||
"","","","","","","","","","",//119
|
||||
"","","","","","","","","","",//129
|
||||
"","","","","","","","","","",//139
|
||||
"","","","","","","","","","",//149
|
||||
"","","","","","","","","","",//159
|
||||
|
||||
"","","","","","","","","","",//169
|
||||
"","","","","","","","","","",//179
|
||||
"","","","","","","","","","",//189
|
||||
"","","","","","","","","","",//199
|
||||
"","","","","","","","","","",//209
|
||||
"","","","","","","","","","",//219
|
||||
"","","","","","","","","","",//229
|
||||
"","","","","","","","","","",//239
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>",//240 Cmd not init
|
||||
"<22><>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//241 Cmd write err
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(DSR=0)",//242 Prn not ready (DSR=0)
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//243 Cmd ok
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//244 Cmd resp timeout
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//245 Prn error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//246 Cmd resp large
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//247 Cmd resp small
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//248
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//249
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//250 Cmd break
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//251
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//252
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//253
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//254
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)!"//255 Previous cmd run
|
||||
};
|
||||
//------------------------------------------------------------------------------
|
||||
bool FiscalPrinter::getNextCheckId(int &id)
|
||||
{
|
||||
CheckId++; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
SaveSetup(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
id=CheckId;
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinter::SaveCheck(int CheckId) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD>)
|
||||
{
|
||||
if(dModule->UserType) //true - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>; false - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
dModule->SaveCheck(CheckId,dModule->UserId,0,getGoodsPrice());
|
||||
else
|
||||
dModule->SaveCheck(CheckId,0,dModule->UserId,getGoodsPrice());
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinter::deleteCheck(int CheckId) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
{
|
||||
dModule->UpdateChek(CheckId);
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
int FiscalPrinter::getCOMPort()
|
||||
{
|
||||
int n=-1;
|
||||
|
||||
TRegistry* reg=new TRegistry;
|
||||
reg->RootKey = HKEY_LOCAL_MACHINE;
|
||||
if(reg->OpenKeyReadOnly("\\SOFTWARE\\OLEforRetail\\ServiceOPOS\\FiscalPrinter\\MbsFiscalPrinter"))
|
||||
{
|
||||
n = reg->ReadInteger("COM Num");
|
||||
}
|
||||
delete reg;
|
||||
return n;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinter::setBaudRate(int val)
|
||||
{
|
||||
bool result;
|
||||
TRegistry* reg=new TRegistry;
|
||||
reg->RootKey = HKEY_LOCAL_MACHINE;
|
||||
if(reg->OpenKey("\\SOFTWARE\\OLEforRetail\\ServiceOPOS\\FiscalPrinter\\MbsFiscalPrinter",true))
|
||||
{
|
||||
reg->WriteInteger("COM Speed",val);
|
||||
result = true;
|
||||
} else result = false;
|
||||
delete reg;
|
||||
return result;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
int FiscalPrinter::getBaudRate()
|
||||
{
|
||||
int n=-1;
|
||||
TRegistry* reg=new TRegistry;
|
||||
reg->RootKey = HKEY_LOCAL_MACHINE;
|
||||
if(reg->OpenKeyReadOnly("\\SOFTWARE\\OLEforRetail\\ServiceOPOS\\FiscalPrinter\\MbsFiscalPrinter"))
|
||||
{
|
||||
n = reg->ReadInteger("COM Speed");
|
||||
}
|
||||
delete reg;
|
||||
return n;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinter::setCOMPort(int n)
|
||||
{
|
||||
bool result;
|
||||
TRegistry* reg=new TRegistry;
|
||||
reg->RootKey = HKEY_LOCAL_MACHINE;
|
||||
if(reg->OpenKey("\\SOFTWARE\\OLEforRetail\\ServiceOPOS\\FiscalPrinter\\MbsFiscalPrinter",true))
|
||||
{
|
||||
reg->WriteInteger("COM Num",n);
|
||||
result = true;
|
||||
} else result = false;
|
||||
delete reg;
|
||||
return result;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void FiscalPrinter::LoadSetup()
|
||||
{
|
||||
TIniFile* ini=new TIniFile(ExtractFilePath(ParamStr(0))+"\\Setup.ini");
|
||||
// cPort->port=ini->ReadString("Printer","Port","");
|
||||
// cPort->BaudRate=ini->ReadInteger("Printer","BaudRate",0);
|
||||
CheckId=ini->ReadInteger("Printer","CheckCount",0);
|
||||
TestMode=ini->ReadBool("Printer","TestMode",true);
|
||||
HeadLine=ini->ReadString("Printer","HeadLine","");
|
||||
GoodsName=ini->ReadString("Printer","GoodsName","");
|
||||
CasireName=ini->ReadString("Printer","CasireName","");
|
||||
AutoOpenShift=ini->ReadBool("Printer","AutoOpenShift",false);
|
||||
delete ini;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void FiscalPrinter::SaveSetup()
|
||||
{
|
||||
TIniFile* ini=new TIniFile(ExtractFilePath(ParamStr(0))+"\\Setup.ini");
|
||||
ini->WriteString("Printer","Port",cPort->port); //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||
ini->WriteInteger("Printer","BaudRate",cPort->BaudRate); //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||
ini->WriteInteger("Printer","CheckCount",CheckId);
|
||||
ini->WriteBool("Printer","TestMode",TestMode);
|
||||
ini->WriteString("Printer","GoodsName",GoodsName);
|
||||
ini->WriteString("Printer","CasireName",CasireName);
|
||||
ini->WriteBool("Printer","AutoOpenShift",AutoOpenShift);
|
||||
delete ini;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
int FiscalPrinter::getGoodsPrice()
|
||||
{
|
||||
int sum=0;
|
||||
for(int i=0;i<FListGoods->Count;i++)
|
||||
sum+=((Goods*)FListGoods->Items[i])->price;
|
||||
return sum;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//---------------------------------------------------------------------------
|
||||
//---------------------------------------------------------------------------
|
||||
PrinterOPOS::PrinterOPOS(TComponent* AOwner):FiscalPrinter()
|
||||
{
|
||||
Crashed=false;
|
||||
AutoOpenShift=false;
|
||||
fp=new TOPOSFiscalPrinter(AOwner);
|
||||
fp->DeviceEnabled = False;
|
||||
LoadSetup();
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
PrinterOPOS::~PrinterOPOS()
|
||||
{
|
||||
delete FListGoods;
|
||||
delete fp;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> COM <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::Start()
|
||||
{
|
||||
if(fp->DeviceEnabled) return true;
|
||||
|
||||
FState = fp->Open(L"MbsFiscalPrinter");
|
||||
if(FState!=0)
|
||||
{
|
||||
saveLog(1,AnsiString(FState)+"(PrinterOPOS::Start)"+GetStatusDescription(FState));
|
||||
return false;
|
||||
}
|
||||
FState = fp->ClaimDevice(1000);
|
||||
if(FState!=0)
|
||||
{
|
||||
saveLog(1,AnsiString(FState)+"(PrinterOPOS::Start)"+GetStatusDescription(FState));
|
||||
return false;
|
||||
}
|
||||
fp->DeviceEnabled = True;
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::setHeader(TStrings* Text)
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
for(int i=0;i<Text->Count;i++)
|
||||
{
|
||||
WideString str=Text->Strings[i];
|
||||
err=fp->SetHeaderLine(i+1,str.c_bstr(),false);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}
|
||||
err=fp->ResetPrinter();
|
||||
if(err)throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::setHeader)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::setHeader)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::setHeader) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::setHeader) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::getHeader(TStrings* Text)
|
||||
{
|
||||
TIniFile* ini=new TIniFile(ExtractFilePath(ParamStr(0))+"\\Setup.ini");
|
||||
Text->Add(ini->ReadString("Printer","HeadLine1",""));
|
||||
Text->Add(ini->ReadString("Printer","HeadLine2",""));
|
||||
Text->Add(ini->ReadString("Printer","HeadLine3",""));
|
||||
Text->Add(ini->ReadString("Printer","HeadLine4",""));
|
||||
Text->Add(ini->ReadString("Printer","HeadLine5",""));
|
||||
delete ini;
|
||||
|
||||
for(int i=Text->Count-1;i>=0;i--)
|
||||
if(Text->Strings[i]=="")Text->Delete(i); else break;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::setTrailer(TStrings* Text)
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
for(int i=0;i<Text->Count;i++)
|
||||
{
|
||||
WideString str=Text->Strings[i];
|
||||
err=fp->SetTrailerLine(i+1,str.c_bstr(),false);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}
|
||||
err=fp->ResetPrinter();
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::setTrailer)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::setTrailer)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::setTrailer) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::setTrailer) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::getTrailer(TStrings* Text)
|
||||
{
|
||||
TIniFile* ini=new TIniFile(ExtractFilePath(ParamStr(0))+"\\Setup.ini");
|
||||
Text->Add(ini->ReadString("Printer","TailLine1",""));
|
||||
Text->Add(ini->ReadString("Printer","TailLine2",""));
|
||||
Text->Add(ini->ReadString("Printer","TailLine3",""));
|
||||
Text->Add(ini->ReadString("Printer","TailLine4",""));
|
||||
Text->Add(ini->ReadString("Printer","TailLine5",""));
|
||||
delete ini;
|
||||
|
||||
for(int i=Text->Count-1;i>=0;i--)
|
||||
if(Text->Strings[i]=="")Text->Delete(i); else break;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::PrintLine(WideString line)
|
||||
{
|
||||
//<2F><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
long err=0;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
err=fp->PrintNormal(2, WideString(WideString(WCHAR(0x1B)) + WideString(WCHAR(0x7C)) + line + L"\n").c_bstr());
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::PrintLine)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::PrintLine)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::PrintLine) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::PrintLine) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//sales - true <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, false - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//check - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> =0 <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//TODO <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
bool PrinterOPOS::PrintCheck(bool sales, int check, WideString headLine) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
long err=0;
|
||||
Currency cur=0;
|
||||
Currency cAllPrice=0;
|
||||
bool bOk=true;
|
||||
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
cAllPrice=getGoodsPrice();
|
||||
|
||||
if(check==0) //<2F><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
CheckId++; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
check=CheckId;
|
||||
SaveSetup(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
}
|
||||
|
||||
if(fp->RecEmpty) throw Exception("<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
if(!DayOpened()) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
|
||||
Currency UnitPrice,AllPriceDrb,AllPrice;
|
||||
long Qnt,vat;
|
||||
BSTR* bstr;
|
||||
WideString sStr;
|
||||
BSTR sTmp=new OLECHAR[255];
|
||||
sTmp=L"";
|
||||
long MbsResponceCode;
|
||||
CURRENCY Amount1,Amount2;
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//vat=11; sTmp=L"<22><><EFBFBD><EFBFBD><EFBFBD>";
|
||||
//err = fp->DirectIO(4, &vat, &sTmp);
|
||||
//if (err) goto ErrHandler;
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> TODO!!!
|
||||
if(headLine.Length()>0)
|
||||
PrintLine(headLine);
|
||||
|
||||
|
||||
if(sales) fp->FiscalReceiptType = FPTR_RT_SALES; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
else fp->FiscalReceiptType=FPTR_RT_SERVICE; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//setTrainingMode(true);
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>)
|
||||
err = fp->BeginFiscalReceipt(true);
|
||||
if (err) throw Exception(getLastError(&err)); //251
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (TODO <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
for(int i=0;i<FListGoods->Count;i++)
|
||||
{
|
||||
Goods* goods=(Goods*)FListGoods->Items[i];
|
||||
VarCyFromR8(goods->price*100,&Amount1);
|
||||
Amount2.int64=0;
|
||||
WideString tmp=goods->name1+L"-/--/-0";
|
||||
err=fp->PrintRecItem(tmp.c_bstr(), Amount1, goods->count, goods->VatInfo, Amount2, L"<22><>");
|
||||
if (err) throw Exception(getLastError(&err));
|
||||
}
|
||||
ClearGoods();
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD> PrintRecTotal)
|
||||
err = fp->DirectIO(3, &CheckId, &sTmp);
|
||||
if (err) throw Exception(getLastError(&err));
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//setNalog(1,12);
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>
|
||||
Amount2.int64=0;
|
||||
VarCyFromR8(cAllPrice*100,&Amount1);
|
||||
err=fp->PrintRecTotal(Amount1, Amount1, L"na");
|
||||
if (err) throw Exception(getLastError(&err));
|
||||
|
||||
|
||||
err = fp->EndFiscalReceipt(True); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (AdditionalTrailer) <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
ClearGoods();
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(1,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+CurrToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId)+". "+exception.Message);
|
||||
dModule->SendError(err,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+IntToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId)+". "+exception.Message);
|
||||
bOk=false;
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
ClearGoods();
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+IntToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId));
|
||||
dModule->SendError(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+IntToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId));
|
||||
bOk=false;
|
||||
}
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
if(!bOk)
|
||||
{
|
||||
fp->PrintRecVoid(L"");
|
||||
}
|
||||
|
||||
return bOk;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::Cut() //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
err=fp->PrintNormal(2, WideString(WideString(WCHAR(0x1B)) + WideString(WCHAR(0x7C)) + "75P").c_bstr());
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::Cut)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::Cut)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::Cut) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::Cut) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
/*int PrinterOPOS::GetState()
|
||||
{
|
||||
if(!fp->DeviceEnabled)FState=245;
|
||||
//if(FState!=0) return FState;
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
// fp->ResultCodeExtended
|
||||
return 0;
|
||||
} */
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::isOk()
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
if(fp->RecEmpty) throw "<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!";
|
||||
err=fp->ResetPrinter();
|
||||
if(err) throw Exception(getLastError(&err)); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
AnsiString str;
|
||||
|
||||
if(!dModule->getDayShift())throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool dOpen=DayOpened();
|
||||
if(!dOpen && AutoOpenShift && OpenShift()) dOpen=true;
|
||||
if(!dOpen) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
if(DayOpened())
|
||||
{
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
TDateTime dt=getDateOpenShift();
|
||||
str=getLastError(&err);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
|
||||
dModule->getDate();
|
||||
if(HoursBetween(dt,dModule->date)>24) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> 24 <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
throw Exception("[1]<5D><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
} else throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
BSTR bstr=new OLECHAR[50];
|
||||
err=fp->GetDate(&bstr);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(1,"(PrinterOPOS::isOk)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::isOk)"+exception.Message);
|
||||
return false;
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(1,"(PrinterOPOS::isOk)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::isOk)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
TDateTime PrinterOPOS::getDateOpenShift()
|
||||
{
|
||||
long err=0;
|
||||
TDateTime date=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
long iTmp;
|
||||
BSTR sTmp=new OLECHAR[50];
|
||||
err=fp->DirectIO(13, &iTmp, &sTmp);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
date=StrToDateTime(sTmp);
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::getDateOpenShift)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::getDateOpenShift)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::getDateOpenShift) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::getDateOpenShift) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return date;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString PrinterOPOS::GetStatusDescription(long err)
|
||||
{
|
||||
AnsiString str;
|
||||
try
|
||||
{
|
||||
if(err<256)
|
||||
str=kkm_err_msg_ru[err];
|
||||
if(str=="") str="<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::GetStatusDescription) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return "<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
|
||||
}
|
||||
return str;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString PrinterOPOS::getLastError(long* err)
|
||||
{
|
||||
BSTR str=new OLECHAR[255];
|
||||
str=L"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!";
|
||||
try
|
||||
{
|
||||
fp->DirectIO(1, err, &str);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::getLastError) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
if(str==L"") return GetStatusDescription(*err);
|
||||
return str;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
AnsiString PrinterOPOS::getLastError()
|
||||
{
|
||||
long err;
|
||||
return getLastError(&err);
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::PrintZReport()
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
int sum=getDaySum();
|
||||
err=fp->PrintZReport();
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
dModule->addZReport(sum);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
dModule->addPaper(-142*2);//<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::PrintZReport)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::PrintZReport)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::PrintZReport) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::PrintZReport) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
void PrinterOPOS::PrintXReport()
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
err=fp->PrintXReport();
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::PrintXReport)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::PrintXReport)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::PrintXReport) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::PrintXReport) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::OpenShift()
|
||||
{
|
||||
long err;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
long n=1;
|
||||
//if(CasireName==NULL) CasireName=L" ";
|
||||
BSTR str=CasireName.c_bstr();
|
||||
err=fp->DirectIO (6,&n,&str);
|
||||
if(err) throw Exception(getLastError(&err)); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
err=fp->SetVatValue(1,L"120");
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::OpenShift)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::OpenShift)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::OpenShift) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::OpenShift) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::DayOpened()
|
||||
{
|
||||
return fp->DayOpened;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::setTrainingMode(bool val)
|
||||
{
|
||||
long err;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
if(getTrainingMode()==val) return true;
|
||||
if(val) err=fp->BeginTraining(); else err=fp->EndTraining();
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::setTrainingMode)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::setTrainingMode)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::setTrainingMode) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::setTrainingMode) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::getTrainingMode()
|
||||
{
|
||||
return fp->TrainingModeActive;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::setNalog(long n,float stavka)
|
||||
{
|
||||
long err;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
long s=stavka*10;
|
||||
WideString str=AnsiString(s);
|
||||
err = fp->DirectIO(2, &n, &str);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::setNalog)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::setNalog)"+exception.Message);
|
||||
return true;
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::setNalog) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::setNalog) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return true;
|
||||
}
|
||||
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
int PrinterOPOS::getDaySum()
|
||||
{
|
||||
long err;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
long n=1;
|
||||
BSTR str=new OLECHAR[20];
|
||||
err=fp->DirectIO (300,&n,&str);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
return StrToInt(str)/100.0;
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::getDaySum)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::getDaySum)"+exception.Message);
|
||||
return 0;
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::getDaySum) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::getDaySum) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
int PrinterOPOS::getAllSum()
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
long n=2;
|
||||
BSTR str=new OLECHAR[20];
|
||||
err=fp->DirectIO (300,&n,&str);
|
||||
if(err)throw Exception(getLastError(&err));
|
||||
return StrToInt(str)/100.0;
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::getAllSum)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::getAllSum)"+exception.Message);
|
||||
return 0;
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::getAllSum) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::getAllSum) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//sales - true <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, false - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//check - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> =0 <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
bool FiscalPrinterPort::PrintCheck(bool sales, int check, WideString headLine )
|
||||
{
|
||||
//bool err=0;
|
||||
double cur=0;
|
||||
double cAllPrice=0;
|
||||
bool bOk=true;
|
||||
|
||||
try
|
||||
{
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
cAllPrice=getGoodsPrice();
|
||||
|
||||
Currency UnitPrice,AllPriceDrb,AllPrice;
|
||||
long Qnt,vat;
|
||||
BSTR* bstr;
|
||||
WideString sStr;
|
||||
BSTR sTmp=new OLECHAR[255];
|
||||
sTmp=L"";
|
||||
long MbsResponceCode;
|
||||
CURRENCY Amount1,Amount2;
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(sales) bOk = fp->OpenFiscalInv(1,"0000",1);
|
||||
else bOk = fp->OpenBackInv(1,"0000",1);
|
||||
if (!bOk) throw Exception(getLastError());
|
||||
|
||||
if(headLine.Length()>0)
|
||||
PrintLine(headLine);
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
for(int i=0;i<FListGoods->Count;i++)
|
||||
{
|
||||
Goods* goods=(Goods*)FListGoods->Items[i];
|
||||
bOk=fp->RegisterSale(goods->name1.c_bstr(),goods->name2.c_bstr(),0,"<22>",goods->price,goods->count,0,0); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
if (!bOk) throw Exception(getLastError());
|
||||
}
|
||||
ClearGoods();
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
double Change;
|
||||
bOk=fp->Total("","","P",cAllPrice,Change);
|
||||
if (!bOk) throw Exception(getLastError());
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
bOk = fp->CloseFiscalInv();
|
||||
if(!bOk) throw Exception(getLastError());
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
ClearGoods();
|
||||
saveLog(1,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+CurrToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId)+". "+exception.Message);
|
||||
dModule->SendError(bOk,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+FloatToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId)+". "+exception.Message);
|
||||
bOk=false;
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
ClearGoods();
|
||||
saveLog(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+FloatToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId));
|
||||
dModule->SendError(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+FloatToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId));
|
||||
bOk=false;
|
||||
}
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
if(!bOk)
|
||||
{
|
||||
fp->CancelFiscalInv();
|
||||
}
|
||||
return bOk;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinterPort::PrintZReport()
|
||||
{
|
||||
bool bOk;
|
||||
try
|
||||
{
|
||||
double Amount=0,CashSum=0,ServIn=0,ServOut=0;
|
||||
std::string Oper,Password,ExitCode="";
|
||||
std::wstring strH,strF;
|
||||
bOk=fp->ParishOrConsumption(Oper,Password,Amount,strH,strF,ExitCode,CashSum,ServIn,ServOut);
|
||||
if(!bOk) throw Exception(getLastError());
|
||||
bOk=fp->PrintZReport();
|
||||
if(!bOk) throw Exception(getLastError());
|
||||
dModule->addZReport(CashSum);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
ClearGoods();
|
||||
saveLog(1,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "+exception.Message);
|
||||
dModule->SendError(bOk,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "+exception.Message);
|
||||
bOk=false;
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
ClearGoods();
|
||||
saveLog(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.");
|
||||
dModule->SendError(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.");
|
||||
bOk=false;
|
||||
}
|
||||
|
||||
return bOk;
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinterPort::isOk()
|
||||
{
|
||||
try
|
||||
{
|
||||
if (!fp->DiagnosticInfo()) throw Exception(getLastError());
|
||||
if(!dModule->getDayShift())throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::isOk)"+exception.Message);
|
||||
dModule->SendError(1,"(PrinterOPOS::isOk)"+exception.Message);
|
||||
return false;
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::isOk)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::isOk)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
934
devices/Printers/Mebius/__history/PrinterOPOS.cpp.~28~
Normal file
934
devices/Printers/Mebius/__history/PrinterOPOS.cpp.~28~
Normal file
@ -0,0 +1,934 @@
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
#pragma hdrstop
|
||||
|
||||
#include "PrinterOPOS.h"
|
||||
#include "OposFiscalPrinter_1_7_Lib_OCX.h"
|
||||
//#include "OposFiscalPrinter_CCO_OCX.h"
|
||||
#include "ud_Module.h"
|
||||
#include <Registry.hpp>
|
||||
#include <Math.h>
|
||||
#include <DateUtils.hpp>
|
||||
#include <Dialogs.hpp>
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
#pragma package(smart_init)
|
||||
//---------------------------------------------------------------------------
|
||||
FiscalPrinter* g_printer;
|
||||
//---------------------------------------------------------------------------
|
||||
char * kkm_err_msg_ru[] = {
|
||||
"OK", //0
|
||||
"<22><> ID <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //1 FM ID Error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> ", //2 FM Rec Error
|
||||
"Flash Chip <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //3 Flash Chip cant clear
|
||||
"<22><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>", //4 FM not empty
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //5 FM Data destroyed
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>", //6 Cmd ignor prn mode
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //7 Oper code is absent
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //8 Doc type is absent
|
||||
"<22><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>", //9 Ser num CR
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //10 Password error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD>", //11 Data/Time error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD>", //12 Factory registration has already pass
|
||||
"<22><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //13 Ser num CR destroyed
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>", //14 Fiscalize has already pass
|
||||
"<22><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>", //15 Not fisc mode CR
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //16 Fiscalize Data destroyed
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //17 Rewrite is conclude
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //18 Rewrite is destroyed
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //19 Shift already open
|
||||
"<22><> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //20 Shift not opened
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>", //21 Many goods in receipt
|
||||
"<22><> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //22 EOD data in FM destroyed
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //23 Document format error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //24 Text rewrite
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><><EFBFBD> <20><><EFBFBD>", //25 Many parameters in document
|
||||
"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><>", //26 Document parameters error
|
||||
"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><>", //27 Parameters value error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //28 Object non-existent
|
||||
"<22><><EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //29 Document is not finished
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>", //30 goods/operation description not enough
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //31 Check sum packet
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>", //32 Prn not ready
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //33 Nested interrupts
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //34 Check Sum Error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><>", //35 Overflow if FM
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //36 Unknown command
|
||||
"CRC <20><><EFBFBD>", //37 CRC RAM
|
||||
"CRC <20><>", //38 CRC FM
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //39 Data port defective
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>", //40 Receipts parameters sequence
|
||||
"0xy <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>", //41 0xy for required properties
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //42 Length request
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>", //43 number capacity
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //44 Overflow
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>", //45 Number is absent
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //46 Not response
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //47 Transmission error
|
||||
"<22><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //48 Math overflow
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...", //49 Paper out...
|
||||
"<22><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!!", //50 CR not ready!!!
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!", //51 Memory error!!
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //52 Printer off
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //53 Insufficient memory
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //54 Lenght number less
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //55 Zero lenght number
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //56 Password lenght less permissible
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //57 Zero lenght password
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", //58 Impossible value
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>-<2D><><EFBFBD>", //59 Time-out overdraw
|
||||
"",
|
||||
"<22><>.<2E><><EFBFBD><EFBFBD>",
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>",
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
|
||||
"","","","","","",//69
|
||||
"","","","","","","","","","",//79
|
||||
"","","","","","","","","","",//89
|
||||
"","","","","","","","","","",//99
|
||||
"","","","","","","","","","",//109
|
||||
"","","","","","","","","","",//119
|
||||
"","","","","","","","","","",//129
|
||||
"","","","","","","","","","",//139
|
||||
"","","","","","","","","","",//149
|
||||
"","","","","","","","","","",//159
|
||||
|
||||
"","","","","","","","","","",//169
|
||||
"","","","","","","","","","",//179
|
||||
"","","","","","","","","","",//189
|
||||
"","","","","","","","","","",//199
|
||||
"","","","","","","","","","",//209
|
||||
"","","","","","","","","","",//219
|
||||
"","","","","","","","","","",//229
|
||||
"","","","","","","","","","",//239
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>",//240 Cmd not init
|
||||
"<22><>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//241 Cmd write err
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(DSR=0)",//242 Prn not ready (DSR=0)
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//243 Cmd ok
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//244 Cmd resp timeout
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//245 Prn error
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//246 Cmd resp large
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//247 Cmd resp small
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//248
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//249
|
||||
"<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//250 Cmd break
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//251
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//252
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//253
|
||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",//254
|
||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)!"//255 Previous cmd run
|
||||
};
|
||||
//------------------------------------------------------------------------------
|
||||
bool FiscalPrinter::getNextCheckId(int &id)
|
||||
{
|
||||
CheckId++; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
SaveSetup(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
id=CheckId;
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinter::SaveCheck(int CheckId) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD>)
|
||||
{
|
||||
if(dModule->UserType) //true - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>; false - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
dModule->SaveCheck(CheckId,dModule->UserId,0,getGoodsPrice());
|
||||
else
|
||||
dModule->SaveCheck(CheckId,0,dModule->UserId,getGoodsPrice());
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinter::deleteCheck(int CheckId) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
{
|
||||
dModule->UpdateChek(CheckId);
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
int FiscalPrinter::getCOMPort()
|
||||
{
|
||||
int n=-1;
|
||||
|
||||
TRegistry* reg=new TRegistry;
|
||||
reg->RootKey = HKEY_LOCAL_MACHINE;
|
||||
if(reg->OpenKeyReadOnly("\\SOFTWARE\\OLEforRetail\\ServiceOPOS\\FiscalPrinter\\MbsFiscalPrinter"))
|
||||
{
|
||||
n = reg->ReadInteger("COM Num");
|
||||
}
|
||||
delete reg;
|
||||
return n;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinter::setBaudRate(int val)
|
||||
{
|
||||
bool result;
|
||||
TRegistry* reg=new TRegistry;
|
||||
reg->RootKey = HKEY_LOCAL_MACHINE;
|
||||
if(reg->OpenKey("\\SOFTWARE\\OLEforRetail\\ServiceOPOS\\FiscalPrinter\\MbsFiscalPrinter",true))
|
||||
{
|
||||
reg->WriteInteger("COM Speed",val);
|
||||
result = true;
|
||||
} else result = false;
|
||||
delete reg;
|
||||
return result;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
int FiscalPrinter::getBaudRate()
|
||||
{
|
||||
int n=-1;
|
||||
TRegistry* reg=new TRegistry;
|
||||
reg->RootKey = HKEY_LOCAL_MACHINE;
|
||||
if(reg->OpenKeyReadOnly("\\SOFTWARE\\OLEforRetail\\ServiceOPOS\\FiscalPrinter\\MbsFiscalPrinter"))
|
||||
{
|
||||
n = reg->ReadInteger("COM Speed");
|
||||
}
|
||||
delete reg;
|
||||
return n;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinter::setCOMPort(int n)
|
||||
{
|
||||
bool result;
|
||||
TRegistry* reg=new TRegistry;
|
||||
reg->RootKey = HKEY_LOCAL_MACHINE;
|
||||
if(reg->OpenKey("\\SOFTWARE\\OLEforRetail\\ServiceOPOS\\FiscalPrinter\\MbsFiscalPrinter",true))
|
||||
{
|
||||
reg->WriteInteger("COM Num",n);
|
||||
result = true;
|
||||
} else result = false;
|
||||
delete reg;
|
||||
return result;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void FiscalPrinter::LoadSetup()
|
||||
{
|
||||
TIniFile* ini=new TIniFile(ExtractFilePath(ParamStr(0))+"\\Setup.ini");
|
||||
// cPort->port=ini->ReadString("Printer","Port","");
|
||||
// cPort->BaudRate=ini->ReadInteger("Printer","BaudRate",0);
|
||||
CheckId=ini->ReadInteger("Printer","CheckCount",0);
|
||||
TestMode=ini->ReadBool("Printer","TestMode",true);
|
||||
HeadLine=ini->ReadString("Printer","HeadLine","");
|
||||
GoodsName=ini->ReadString("Printer","GoodsName","");
|
||||
CasireName=ini->ReadString("Printer","CasireName","");
|
||||
AutoOpenShift=ini->ReadBool("Printer","AutoOpenShift",false);
|
||||
delete ini;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void FiscalPrinter::SaveSetup()
|
||||
{
|
||||
TIniFile* ini=new TIniFile(ExtractFilePath(ParamStr(0))+"\\Setup.ini");
|
||||
// ini->WriteString("Printer","Port",cPort->port); //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||
// ini->WriteInteger("Printer","BaudRate",cPort->BaudRate); //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||
ini->WriteInteger("Printer","CheckCount",CheckId);
|
||||
ini->WriteBool("Printer","TestMode",TestMode);
|
||||
ini->WriteString("Printer","GoodsName",GoodsName);
|
||||
ini->WriteString("Printer","CasireName",CasireName);
|
||||
ini->WriteBool("Printer","AutoOpenShift",AutoOpenShift);
|
||||
delete ini;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
int FiscalPrinter::getGoodsPrice()
|
||||
{
|
||||
int sum=0;
|
||||
for(int i=0;i<FListGoods->Count;i++)
|
||||
sum+=((Goods*)FListGoods->Items[i])->price;
|
||||
return sum;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//---------------------------------------------------------------------------
|
||||
//---------------------------------------------------------------------------
|
||||
PrinterOPOS::PrinterOPOS(TComponent* AOwner):FiscalPrinter()
|
||||
{
|
||||
Crashed=false;
|
||||
AutoOpenShift=false;
|
||||
fp=new TOPOSFiscalPrinter(AOwner);
|
||||
fp->DeviceEnabled = False;
|
||||
LoadSetup();
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
PrinterOPOS::~PrinterOPOS()
|
||||
{
|
||||
delete FListGoods;
|
||||
delete fp;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> COM <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::Start()
|
||||
{
|
||||
if(fp->DeviceEnabled) return true;
|
||||
|
||||
FState = fp->Open(L"MbsFiscalPrinter");
|
||||
if(FState!=0)
|
||||
{
|
||||
saveLog(1,AnsiString(FState)+"(PrinterOPOS::Start)"+GetStatusDescription(FState));
|
||||
return false;
|
||||
}
|
||||
FState = fp->ClaimDevice(1000);
|
||||
if(FState!=0)
|
||||
{
|
||||
saveLog(1,AnsiString(FState)+"(PrinterOPOS::Start)"+GetStatusDescription(FState));
|
||||
return false;
|
||||
}
|
||||
fp->DeviceEnabled = True;
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::setHeader(TStrings* Text)
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
for(int i=0;i<Text->Count;i++)
|
||||
{
|
||||
WideString str=Text->Strings[i];
|
||||
err=fp->SetHeaderLine(i+1,str.c_bstr(),false);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}
|
||||
err=fp->ResetPrinter();
|
||||
if(err)throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::setHeader)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::setHeader)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::setHeader) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::setHeader) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::getHeader(TStrings* Text)
|
||||
{
|
||||
TIniFile* ini=new TIniFile(ExtractFilePath(ParamStr(0))+"\\Setup.ini");
|
||||
Text->Add(ini->ReadString("Printer","HeadLine1",""));
|
||||
Text->Add(ini->ReadString("Printer","HeadLine2",""));
|
||||
Text->Add(ini->ReadString("Printer","HeadLine3",""));
|
||||
Text->Add(ini->ReadString("Printer","HeadLine4",""));
|
||||
Text->Add(ini->ReadString("Printer","HeadLine5",""));
|
||||
delete ini;
|
||||
|
||||
for(int i=Text->Count-1;i>=0;i--)
|
||||
if(Text->Strings[i]=="")Text->Delete(i); else break;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::setTrailer(TStrings* Text)
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
for(int i=0;i<Text->Count;i++)
|
||||
{
|
||||
WideString str=Text->Strings[i];
|
||||
err=fp->SetTrailerLine(i+1,str.c_bstr(),false);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}
|
||||
err=fp->ResetPrinter();
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::setTrailer)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::setTrailer)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::setTrailer) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::setTrailer) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void PrinterOPOS::getTrailer(TStrings* Text)
|
||||
{
|
||||
TIniFile* ini=new TIniFile(ExtractFilePath(ParamStr(0))+"\\Setup.ini");
|
||||
Text->Add(ini->ReadString("Printer","TailLine1",""));
|
||||
Text->Add(ini->ReadString("Printer","TailLine2",""));
|
||||
Text->Add(ini->ReadString("Printer","TailLine3",""));
|
||||
Text->Add(ini->ReadString("Printer","TailLine4",""));
|
||||
Text->Add(ini->ReadString("Printer","TailLine5",""));
|
||||
delete ini;
|
||||
|
||||
for(int i=Text->Count-1;i>=0;i--)
|
||||
if(Text->Strings[i]=="")Text->Delete(i); else break;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::PrintLine(WideString line)
|
||||
{
|
||||
//<2F><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
long err=0;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
err=fp->PrintNormal(2, WideString(WideString(WCHAR(0x1B)) + WideString(WCHAR(0x7C)) + line + L"\n").c_bstr());
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::PrintLine)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::PrintLine)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::PrintLine) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::PrintLine) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//sales - true <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, false - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//check - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> =0 <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//TODO <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
bool PrinterOPOS::PrintCheck(bool sales, int check, WideString headLine) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
long err=0;
|
||||
Currency cur=0;
|
||||
Currency cAllPrice=0;
|
||||
bool bOk=true;
|
||||
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
cAllPrice=getGoodsPrice();
|
||||
|
||||
if(check==0) //<2F><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
CheckId++; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
check=CheckId;
|
||||
SaveSetup(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
}
|
||||
|
||||
if(fp->RecEmpty) throw Exception("<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
if(!DayOpened()) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
|
||||
Currency UnitPrice,AllPriceDrb,AllPrice;
|
||||
long Qnt,vat;
|
||||
BSTR* bstr;
|
||||
WideString sStr;
|
||||
BSTR sTmp=new OLECHAR[255];
|
||||
sTmp=L"";
|
||||
long MbsResponceCode;
|
||||
CURRENCY Amount1,Amount2;
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//vat=11; sTmp=L"<22><><EFBFBD><EFBFBD><EFBFBD>";
|
||||
//err = fp->DirectIO(4, &vat, &sTmp);
|
||||
//if (err) goto ErrHandler;
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> TODO!!!
|
||||
if(headLine.Length()>0)
|
||||
PrintLine(headLine);
|
||||
|
||||
|
||||
if(sales) fp->FiscalReceiptType = FPTR_RT_SALES; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
else fp->FiscalReceiptType=FPTR_RT_SERVICE; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//setTrainingMode(true);
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>)
|
||||
err = fp->BeginFiscalReceipt(true);
|
||||
if (err) throw Exception(getLastError(&err)); //251
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (TODO <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
for(int i=0;i<FListGoods->Count;i++)
|
||||
{
|
||||
Goods* goods=(Goods*)FListGoods->Items[i];
|
||||
VarCyFromR8(goods->price*100,&Amount1);
|
||||
Amount2.int64=0;
|
||||
WideString tmp=goods->name1+L"-/--/-0";
|
||||
err=fp->PrintRecItem(tmp.c_bstr(), Amount1, goods->count, goods->VatInfo, Amount2, L"<22><>");
|
||||
if (err) throw Exception(getLastError(&err));
|
||||
}
|
||||
ClearGoods();
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD> PrintRecTotal)
|
||||
err = fp->DirectIO(3, &CheckId, &sTmp);
|
||||
if (err) throw Exception(getLastError(&err));
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//setNalog(1,12);
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>
|
||||
Amount2.int64=0;
|
||||
VarCyFromR8(cAllPrice*100,&Amount1);
|
||||
err=fp->PrintRecTotal(Amount1, Amount1, L"na");
|
||||
if (err) throw Exception(getLastError(&err));
|
||||
|
||||
|
||||
err = fp->EndFiscalReceipt(True); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (AdditionalTrailer) <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
ClearGoods();
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(1,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+CurrToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId)+". "+exception.Message);
|
||||
dModule->SendError(err,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+IntToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId)+". "+exception.Message);
|
||||
bOk=false;
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
ClearGoods();
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+IntToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId));
|
||||
dModule->SendError(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+IntToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId));
|
||||
bOk=false;
|
||||
}
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
if(!bOk)
|
||||
{
|
||||
fp->PrintRecVoid(L"");
|
||||
}
|
||||
|
||||
return bOk;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::Cut() //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
err=fp->PrintNormal(2, WideString(WideString(WCHAR(0x1B)) + WideString(WCHAR(0x7C)) + "75P").c_bstr());
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::Cut)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::Cut)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::Cut) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::Cut) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
/*int PrinterOPOS::GetState()
|
||||
{
|
||||
if(!fp->DeviceEnabled)FState=245;
|
||||
//if(FState!=0) return FState;
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
// fp->ResultCodeExtended
|
||||
return 0;
|
||||
} */
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::isOk()
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
if(fp->RecEmpty) throw "<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!";
|
||||
err=fp->ResetPrinter();
|
||||
if(err) throw Exception(getLastError(&err)); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
AnsiString str;
|
||||
|
||||
if(!dModule->getDayShift())throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool dOpen=DayOpened();
|
||||
if(!dOpen && AutoOpenShift && OpenShift()) dOpen=true;
|
||||
if(!dOpen) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
if(DayOpened())
|
||||
{
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
TDateTime dt=getDateOpenShift();
|
||||
str=getLastError(&err);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
|
||||
dModule->getDate();
|
||||
if(HoursBetween(dt,dModule->date)>24) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> 24 <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
throw Exception("[1]<5D><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
} else throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
BSTR bstr=new OLECHAR[50];
|
||||
err=fp->GetDate(&bstr);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(1,"(PrinterOPOS::isOk)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::isOk)"+exception.Message);
|
||||
return false;
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(1,"(PrinterOPOS::isOk)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::isOk)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
TDateTime PrinterOPOS::getDateOpenShift()
|
||||
{
|
||||
long err=0;
|
||||
TDateTime date=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
long iTmp;
|
||||
BSTR sTmp=new OLECHAR[50];
|
||||
err=fp->DirectIO(13, &iTmp, &sTmp);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
date=StrToDateTime(sTmp);
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::getDateOpenShift)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::getDateOpenShift)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::getDateOpenShift) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::getDateOpenShift) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return date;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString PrinterOPOS::GetStatusDescription(long err)
|
||||
{
|
||||
AnsiString str;
|
||||
try
|
||||
{
|
||||
if(err<256)
|
||||
str=kkm_err_msg_ru[err];
|
||||
if(str=="") str="<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::GetStatusDescription) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return "<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
|
||||
}
|
||||
return str;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString PrinterOPOS::getLastError(long* err)
|
||||
{
|
||||
BSTR str=new OLECHAR[255];
|
||||
str=L"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!";
|
||||
try
|
||||
{
|
||||
fp->DirectIO(1, err, &str);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::getLastError) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
if(str==L"") return GetStatusDescription(*err);
|
||||
return str;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
AnsiString PrinterOPOS::getLastError()
|
||||
{
|
||||
long err;
|
||||
return getLastError(&err);
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::PrintZReport()
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{
|
||||
if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
|
||||
int sum=getDaySum();
|
||||
err=fp->PrintZReport();
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
dModule->addZReport(sum);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
dModule->addPaper(-142*2);//<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::PrintZReport)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::PrintZReport)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::PrintZReport) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::PrintZReport) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
void PrinterOPOS::PrintXReport()
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
err=fp->PrintXReport();
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::PrintXReport)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::PrintXReport)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::PrintXReport) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::PrintXReport) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::OpenShift()
|
||||
{
|
||||
long err;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
long n=1;
|
||||
//if(CasireName==NULL) CasireName=L" ";
|
||||
BSTR str=CasireName.c_bstr();
|
||||
err=fp->DirectIO (6,&n,&str);
|
||||
if(err) throw Exception(getLastError(&err)); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
err=fp->SetVatValue(1,L"120");
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::OpenShift)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::OpenShift)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::OpenShift) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::OpenShift) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::DayOpened()
|
||||
{
|
||||
return fp->DayOpened;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::setTrainingMode(bool val)
|
||||
{
|
||||
long err;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
if(getTrainingMode()==val) return true;
|
||||
if(val) err=fp->BeginTraining(); else err=fp->EndTraining();
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::setTrainingMode)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::setTrainingMode)"+exception.Message);
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::setTrainingMode) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::setTrainingMode) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool PrinterOPOS::getTrainingMode()
|
||||
{
|
||||
return fp->TrainingModeActive;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrinterOPOS::setNalog(long n,float stavka)
|
||||
{
|
||||
long err;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
long s=stavka*10;
|
||||
WideString str=AnsiString(s);
|
||||
err = fp->DirectIO(2, &n, &str);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::setNalog)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::setNalog)"+exception.Message);
|
||||
return true;
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::setNalog) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::setNalog) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return true;
|
||||
}
|
||||
|
||||
return err==0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
int PrinterOPOS::getDaySum()
|
||||
{
|
||||
long err;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
long n=1;
|
||||
BSTR str=new OLECHAR[20];
|
||||
err=fp->DirectIO (300,&n,&str);
|
||||
if(err) throw Exception(getLastError(&err));
|
||||
return StrToInt(str)/100.0;
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::getDaySum)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::getDaySum)"+exception.Message);
|
||||
return 0;
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::getDaySum) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::getDaySum) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
int PrinterOPOS::getAllSum()
|
||||
{
|
||||
long err=0;
|
||||
try
|
||||
{ if(Crashed) throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
||||
long n=2;
|
||||
BSTR str=new OLECHAR[20];
|
||||
err=fp->DirectIO (300,&n,&str);
|
||||
if(err)throw Exception(getLastError(&err));
|
||||
return StrToInt(str)/100.0;
|
||||
}catch(Exception &exception)
|
||||
{
|
||||
if(err==251) Crashed=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
saveLog(err,"(PrinterOPOS::getAllSum)"+exception.Message);
|
||||
dModule->SendError(err,"(PrinterOPOS::getAllSum)"+exception.Message);
|
||||
return 0;
|
||||
}catch(...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::getAllSum) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::getAllSum) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//sales - true <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, false - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//check - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> =0 <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
bool FiscalPrinterPort::PrintCheck(bool sales, int check, WideString headLine )
|
||||
{
|
||||
//bool err=0;
|
||||
double cur=0;
|
||||
double cAllPrice=0;
|
||||
bool bOk=true;
|
||||
|
||||
try
|
||||
{
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
cAllPrice=getGoodsPrice();
|
||||
|
||||
Currency UnitPrice,AllPriceDrb,AllPrice;
|
||||
long Qnt,vat;
|
||||
BSTR* bstr;
|
||||
WideString sStr;
|
||||
BSTR sTmp=new OLECHAR[255];
|
||||
sTmp=L"";
|
||||
long MbsResponceCode;
|
||||
CURRENCY Amount1,Amount2;
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(sales) bOk = fp->OpenFiscalInv(1,"0000",1);
|
||||
else bOk = fp->OpenBackInv(1,"0000",1);
|
||||
if (!bOk) throw Exception(getLastError());
|
||||
|
||||
if(headLine.Length()>0)
|
||||
PrintLine(headLine);
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
for(int i=0;i<FListGoods->Count;i++)
|
||||
{
|
||||
Goods* goods=(Goods*)FListGoods->Items[i];
|
||||
bOk=fp->RegisterSale(goods->name1.c_bstr(),goods->name2.c_bstr(),0,"<22>",goods->price,goods->count,0,0); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
if (!bOk) throw Exception(getLastError());
|
||||
}
|
||||
ClearGoods();
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
double Change;
|
||||
bOk=fp->Total("","","P",cAllPrice,Change);
|
||||
if (!bOk) throw Exception(getLastError());
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
bOk = fp->CloseFiscalInv();
|
||||
if(!bOk) throw Exception(getLastError());
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
ClearGoods();
|
||||
saveLog(1,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+CurrToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId)+". "+exception.Message);
|
||||
dModule->SendError(bOk,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+FloatToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId)+". "+exception.Message);
|
||||
bOk=false;
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
ClearGoods();
|
||||
saveLog(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+FloatToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId));
|
||||
dModule->SendError(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: N: "+IntToStr(dModule->UserId)+" <20><><EFBFBD><EFBFBD><EFBFBD>: "+FloatToStr(cAllPrice)+" <20><><EFBFBD>: "+AnsiString(CheckId));
|
||||
bOk=false;
|
||||
}
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
if(!bOk)
|
||||
{
|
||||
fp->CancelFiscalInv();
|
||||
}
|
||||
return bOk;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinterPort::PrintZReport()
|
||||
{
|
||||
bool bOk;
|
||||
try
|
||||
{
|
||||
double Amount=0,CashSum=0,ServIn=0,ServOut=0;
|
||||
std::string Oper,Password,ExitCode="";
|
||||
std::wstring strH,strF;
|
||||
bOk=fp->ParishOrConsumption(Oper,Password,Amount,strH,strF,ExitCode,CashSum,ServIn,ServOut);
|
||||
if(!bOk) throw Exception(getLastError());
|
||||
bOk=fp->PrintZReport();
|
||||
if(!bOk) throw Exception(getLastError());
|
||||
dModule->addZReport(CashSum);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
ClearGoods();
|
||||
saveLog(1,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "+exception.Message);
|
||||
dModule->SendError(bOk,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "+exception.Message);
|
||||
bOk=false;
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
ClearGoods();
|
||||
saveLog(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.");
|
||||
dModule->SendError(1,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.");
|
||||
bOk=false;
|
||||
}
|
||||
|
||||
return bOk;
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
bool FiscalPrinterPort::isOk()
|
||||
{
|
||||
try
|
||||
{
|
||||
if (!fp->DiagnosticInfo()) throw Exception(getLastError());
|
||||
if(!dModule->getDayShift())throw Exception("<22><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
}
|
||||
catch(Exception &exception)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::isOk)"+exception.Message);
|
||||
dModule->SendError(1,"(PrinterOPOS::isOk)"+exception.Message);
|
||||
return false;
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
saveLog(1,"(PrinterOPOS::isOk)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
dModule->SendError(1,"(PrinterOPOS::isOk)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
207
devices/Printers/Mebius/__history/PrinterOPOS.h.~10~
Normal file
207
devices/Printers/Mebius/__history/PrinterOPOS.h.~10~
Normal file
@ -0,0 +1,207 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#ifndef PrinterOPOSH
|
||||
#define PrinterOPOSH
|
||||
//---------------------------------------------------------------------------
|
||||
//#include "OposFiscalPrinter_1_7_Lib_OCX.h"
|
||||
#include "OposFiscalPrinter_CCO_TLB.h"
|
||||
#include "FP300KZ.h"
|
||||
//---------------------------------------------------------------------------
|
||||
const LONG FPTR_RT_CASH_IN = 1;
|
||||
const LONG FPTR_RT_CASH_OUT = 2;
|
||||
const LONG FPTR_RT_GENERIC = 3;
|
||||
const LONG FPTR_RT_SALES = 4;
|
||||
const LONG FPTR_RT_SERVICE = 5;
|
||||
const LONG FPTR_RT_SIMPLE_INVOICE = 6;
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
class Goods
|
||||
{
|
||||
private:
|
||||
public:
|
||||
WideString name1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
WideString name2; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
double price; //<2F><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
long count; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
long VatInfo; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Goods(WideString name1, WideString name2, double price, long count,long VatInfo)
|
||||
{ //if(name1==NULL)
|
||||
// this->name1=L"";
|
||||
//else
|
||||
this->name1=name1;
|
||||
//if(name2==NULL)
|
||||
// this->name2=L"";
|
||||
//else
|
||||
this->name2=name2;
|
||||
this->price=price;
|
||||
this->count=count;
|
||||
this->VatInfo=VatInfo;
|
||||
};
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
class FiscalPrinter
|
||||
{
|
||||
protected:
|
||||
bool Crashed;
|
||||
long FState;
|
||||
TList* FListGoods;
|
||||
long CheckId; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
public:
|
||||
AnsiString HeadLine; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
WideString GoodsName; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
WideString CasireName; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool TestMode;
|
||||
bool AutoOpenShift; //<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
FiscalPrinter(){ FListGoods= new TList(); CheckId=0; LoadSetup(); };
|
||||
virtual AnsiString getPrinterName()=0;
|
||||
virtual bool Start()=0;
|
||||
virtual bool isOk()=0;
|
||||
virtual long getCheckId(){ return CheckId; }; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void ClearGoods()
|
||||
{
|
||||
try
|
||||
{
|
||||
while(FListGoods->Count>0)
|
||||
{
|
||||
Goods* g=(Goods*)FListGoods->Items[0];
|
||||
delete g;
|
||||
FListGoods->Delete(0);
|
||||
}
|
||||
FListGoods->Clear();
|
||||
}catch(...)
|
||||
{
|
||||
Crashed=true;
|
||||
}
|
||||
};
|
||||
int getGoodsPrice();
|
||||
virtual bool PrintLine(WideString line)=0;
|
||||
void addGoods(Goods* goods)
|
||||
{
|
||||
FListGoods->Add(goods);
|
||||
};
|
||||
virtual bool getNextCheckId(int &id);
|
||||
|
||||
bool SaveCheck(int CheckId);
|
||||
virtual bool PrintCheck(bool sales, int check, WideString headLine ) { return false; };
|
||||
bool deleteCheck(int CheckId);
|
||||
virtual AnsiString getLastError(){ return ""; };
|
||||
virtual bool DayOpened(){ return false; };
|
||||
virtual void setHeader(TStrings* Text){};
|
||||
virtual void getHeader(TStrings* Text){};
|
||||
virtual void setTrailer(TStrings* Text){};
|
||||
virtual void getTrailer(TStrings* Text){};
|
||||
virtual bool OpenShift(){ return true; }; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int getCOMPort();
|
||||
int getBaudRate();
|
||||
void setBaudRate(int val);
|
||||
void setCOMPort(int n);
|
||||
virtual bool PrintZReport()=0;
|
||||
virtual void PrintXReport()=0;
|
||||
|
||||
void LoadSetup();
|
||||
void SaveSetup();
|
||||
virtual bool setTrainingMode(bool val){ return false; };
|
||||
virtual bool Cut(){ return false; }; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
virtual bool setNalog(long n,float stavka){ return false; }; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
virtual int getAllSum(){ return 0; };
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> OPOS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
class PrinterOPOS : public FiscalPrinter
|
||||
{
|
||||
private:
|
||||
TOPOSFiscalPrinter *fp;
|
||||
public:
|
||||
|
||||
|
||||
bool setTrainingMode(bool val);
|
||||
bool getTrainingMode();
|
||||
|
||||
PrinterOPOS(TComponent* AOwner);
|
||||
virtual ~PrinterOPOS();
|
||||
AnsiString getPrinterName(){ return "Moebius";};
|
||||
bool Start(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> COM <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintCheck(bool sales, int check, WideString headLine ); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool SaveCheck(int CheckId); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool deleteCheck(int CheckId); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool Cut(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//int GetState(); //0 - <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool isOk(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString GetStatusDescription(long StatusCode); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString getLastError(long* err); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString getLastError(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
TDateTime getDateOpenShift(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
void setHeader(TStrings* Text);
|
||||
void getHeader(TStrings* Text);
|
||||
void setTrailer(TStrings* Text);
|
||||
void getTrailer(TStrings* Text);
|
||||
int getCOMPort();
|
||||
void setCOMPort(int n);
|
||||
int getDaySum(); //<2F><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int getAllSum(); //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
bool PrintLine(WideString line);
|
||||
bool PrintZReport(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
void PrintXReport(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool OpenShift(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DayOpened(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool setNalog(long n,float stavka); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
void Push(){}; //<2F> OPOS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
class FiscalPrinterPort : public FiscalPrinter
|
||||
{
|
||||
private:
|
||||
FP300KZ* fp;
|
||||
public:
|
||||
FiscalPrinterPort():FiscalPrinter()
|
||||
{ fp = new FP300KZ();
|
||||
};
|
||||
virtual ~FiscalPrinterPort(){ delete fp; };
|
||||
AnsiString getPrinterName(){ return "Port";};
|
||||
bool getNextCheckId(int &res)
|
||||
{
|
||||
int num;
|
||||
bool b=fp->GetLastPrintedDocNumber(num);
|
||||
res=num+1;
|
||||
if(!b)throw Exception(getLastError());
|
||||
return b;
|
||||
};
|
||||
|
||||
bool Start()
|
||||
{
|
||||
fp->OpenCOMPort(getCOMPort(),getBaudRate());
|
||||
return fp->PrinterInit();
|
||||
};
|
||||
long getCheckId(){ int num; fp->GetLastPrintedDocNumber(num); return num; }; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool PrintCheck(bool sales, int check, WideString headLine ); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool isOk();
|
||||
bool PrintLine(WideString line)
|
||||
{
|
||||
//if(line!=NULL)
|
||||
return fp->PrintLine(line.c_bstr());
|
||||
//else
|
||||
// return fp->PrintLine(L"");
|
||||
};
|
||||
AnsiString getLastError()
|
||||
{
|
||||
return fp->getLastErrorDest().c_str();
|
||||
};
|
||||
bool DayOpened(){ return true; };
|
||||
bool PrintZReport();
|
||||
void PrintXReport() { fp->PrintXReport(); };
|
||||
bool Cut(){ return fp->CutPaper(); };
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
extern FiscalPrinter* g_printer;
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
208
devices/Printers/Mebius/__history/PrinterOPOS.h.~11~
Normal file
208
devices/Printers/Mebius/__history/PrinterOPOS.h.~11~
Normal file
@ -0,0 +1,208 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#ifndef PrinterOPOSH
|
||||
#define PrinterOPOSH
|
||||
//---------------------------------------------------------------------------
|
||||
#include <wstring.h>
|
||||
//#include "OposFiscalPrinter_1_7_Lib_OCX.h"
|
||||
#include "OposFiscalPrinter_CCO_TLB.h"
|
||||
#include "FP300KZ.h"
|
||||
//---------------------------------------------------------------------------
|
||||
const LONG FPTR_RT_CASH_IN = 1;
|
||||
const LONG FPTR_RT_CASH_OUT = 2;
|
||||
const LONG FPTR_RT_GENERIC = 3;
|
||||
const LONG FPTR_RT_SALES = 4;
|
||||
const LONG FPTR_RT_SERVICE = 5;
|
||||
const LONG FPTR_RT_SIMPLE_INVOICE = 6;
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
class Goods
|
||||
{
|
||||
private:
|
||||
public:
|
||||
WideString name1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
WideString name2; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
double price; //<2F><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
long count; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
long VatInfo; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Goods(WideString name1, WideString name2, double price, long count,long VatInfo)
|
||||
{ //if(name1==NULL)
|
||||
// this->name1=L"";
|
||||
//else
|
||||
this->name1=name1;
|
||||
//if(name2==NULL)
|
||||
// this->name2=L"";
|
||||
//else
|
||||
this->name2=name2;
|
||||
this->price=price;
|
||||
this->count=count;
|
||||
this->VatInfo=VatInfo;
|
||||
};
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
class FiscalPrinter
|
||||
{
|
||||
protected:
|
||||
bool Crashed;
|
||||
long FState;
|
||||
TList* FListGoods;
|
||||
long CheckId; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
public:
|
||||
AnsiString HeadLine; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
WideString GoodsName; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
WideString CasireName; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool TestMode;
|
||||
bool AutoOpenShift; //<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
FiscalPrinter(){ FListGoods= new TList(); CheckId=0; LoadSetup(); };
|
||||
virtual AnsiString getPrinterName()=0;
|
||||
virtual bool Start()=0;
|
||||
virtual bool isOk()=0;
|
||||
virtual long getCheckId(){ return CheckId; }; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void ClearGoods()
|
||||
{
|
||||
try
|
||||
{
|
||||
while(FListGoods->Count>0)
|
||||
{
|
||||
Goods* g=(Goods*)FListGoods->Items[0];
|
||||
delete g;
|
||||
FListGoods->Delete(0);
|
||||
}
|
||||
FListGoods->Clear();
|
||||
}catch(...)
|
||||
{
|
||||
Crashed=true;
|
||||
}
|
||||
};
|
||||
int getGoodsPrice();
|
||||
virtual bool PrintLine(WideString line)=0;
|
||||
void addGoods(Goods* goods)
|
||||
{
|
||||
FListGoods->Add(goods);
|
||||
};
|
||||
virtual bool getNextCheckId(int &id);
|
||||
|
||||
bool SaveCheck(int CheckId);
|
||||
virtual bool PrintCheck(bool sales, int check, WideString headLine ) { return false; };
|
||||
bool deleteCheck(int CheckId);
|
||||
virtual AnsiString getLastError(){ return ""; };
|
||||
virtual bool DayOpened(){ return false; };
|
||||
virtual void setHeader(TStrings* Text){};
|
||||
virtual void getHeader(TStrings* Text){};
|
||||
virtual void setTrailer(TStrings* Text){};
|
||||
virtual void getTrailer(TStrings* Text){};
|
||||
virtual bool OpenShift(){ return true; }; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int getCOMPort();
|
||||
int getBaudRate();
|
||||
void setBaudRate(int val);
|
||||
void setCOMPort(int n);
|
||||
virtual bool PrintZReport()=0;
|
||||
virtual void PrintXReport()=0;
|
||||
|
||||
void LoadSetup();
|
||||
void SaveSetup();
|
||||
virtual bool setTrainingMode(bool val){ return false; };
|
||||
virtual bool Cut(){ return false; }; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
virtual bool setNalog(long n,float stavka){ return false; }; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
virtual int getAllSum(){ return 0; };
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> OPOS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
class PrinterOPOS : public FiscalPrinter
|
||||
{
|
||||
private:
|
||||
TOPOSFiscalPrinter *fp;
|
||||
public:
|
||||
|
||||
|
||||
bool setTrainingMode(bool val);
|
||||
bool getTrainingMode();
|
||||
|
||||
PrinterOPOS(TComponent* AOwner);
|
||||
virtual ~PrinterOPOS();
|
||||
AnsiString getPrinterName(){ return "Moebius";};
|
||||
bool Start(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> COM <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintCheck(bool sales, int check, WideString headLine ); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool SaveCheck(int CheckId); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool deleteCheck(int CheckId); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool Cut(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//int GetState(); //0 - <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool isOk(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString GetStatusDescription(long StatusCode); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString getLastError(long* err); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString getLastError(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
TDateTime getDateOpenShift(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
void setHeader(TStrings* Text);
|
||||
void getHeader(TStrings* Text);
|
||||
void setTrailer(TStrings* Text);
|
||||
void getTrailer(TStrings* Text);
|
||||
int getCOMPort();
|
||||
void setCOMPort(int n);
|
||||
int getDaySum(); //<2F><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int getAllSum(); //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
bool PrintLine(WideString line);
|
||||
bool PrintZReport(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
void PrintXReport(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool OpenShift(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DayOpened(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool setNalog(long n,float stavka); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
void Push(){}; //<2F> OPOS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
class FiscalPrinterPort : public FiscalPrinter
|
||||
{
|
||||
private:
|
||||
FP300KZ* fp;
|
||||
public:
|
||||
FiscalPrinterPort():FiscalPrinter()
|
||||
{ fp = new FP300KZ();
|
||||
};
|
||||
virtual ~FiscalPrinterPort(){ delete fp; };
|
||||
AnsiString getPrinterName(){ return "Port";};
|
||||
bool getNextCheckId(int &res)
|
||||
{
|
||||
int num;
|
||||
bool b=fp->GetLastPrintedDocNumber(num);
|
||||
res=num+1;
|
||||
if(!b)throw Exception(getLastError());
|
||||
return b;
|
||||
};
|
||||
|
||||
bool Start()
|
||||
{
|
||||
fp->OpenCOMPort(getCOMPort(),getBaudRate());
|
||||
return fp->PrinterInit();
|
||||
};
|
||||
long getCheckId(){ int num; fp->GetLastPrintedDocNumber(num); return num; }; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool PrintCheck(bool sales, int check, WideString headLine ); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool isOk();
|
||||
bool PrintLine(WideString line)
|
||||
{
|
||||
//if(line!=NULL)
|
||||
return fp->PrintLine(line.c_bstr());
|
||||
//else
|
||||
// return fp->PrintLine(L"");
|
||||
};
|
||||
AnsiString getLastError()
|
||||
{
|
||||
return fp->getLastErrorDest().c_str();
|
||||
};
|
||||
bool DayOpened(){ return true; };
|
||||
bool PrintZReport();
|
||||
void PrintXReport() { fp->PrintXReport(); };
|
||||
bool Cut(){ return fp->CutPaper(); };
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
extern FiscalPrinter* g_printer;
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
209
devices/Printers/Mebius/__history/PrinterOPOS.h.~12~
Normal file
209
devices/Printers/Mebius/__history/PrinterOPOS.h.~12~
Normal file
@ -0,0 +1,209 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#ifndef PrinterOPOSH
|
||||
#define PrinterOPOSH
|
||||
//---------------------------------------------------------------------------
|
||||
//#include <System.hpp>
|
||||
#include <vcl.h>
|
||||
//#include "OposFiscalPrinter_1_7_Lib_OCX.h"
|
||||
#include "OposFiscalPrinter_CCO_TLB.h"
|
||||
#include "FP300KZ.h"
|
||||
//---------------------------------------------------------------------------
|
||||
const LONG FPTR_RT_CASH_IN = 1;
|
||||
const LONG FPTR_RT_CASH_OUT = 2;
|
||||
const LONG FPTR_RT_GENERIC = 3;
|
||||
const LONG FPTR_RT_SALES = 4;
|
||||
const LONG FPTR_RT_SERVICE = 5;
|
||||
const LONG FPTR_RT_SIMPLE_INVOICE = 6;
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
class Goods
|
||||
{
|
||||
private:
|
||||
public:
|
||||
WideString name1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
WideString name2; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
double price; //<2F><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
long count; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
long VatInfo; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Goods(WideString name1, WideString name2, double price, long count,long VatInfo)
|
||||
{ //if(name1==NULL)
|
||||
// this->name1=L"";
|
||||
//else
|
||||
this->name1=name1;
|
||||
//if(name2==NULL)
|
||||
// this->name2=L"";
|
||||
//else
|
||||
this->name2=name2;
|
||||
this->price=price;
|
||||
this->count=count;
|
||||
this->VatInfo=VatInfo;
|
||||
};
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
class FiscalPrinter
|
||||
{
|
||||
protected:
|
||||
bool Crashed;
|
||||
long FState;
|
||||
TList* FListGoods;
|
||||
long CheckId; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
public:
|
||||
AnsiString HeadLine; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
WideString GoodsName; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
WideString CasireName; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool TestMode;
|
||||
bool AutoOpenShift; //<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
FiscalPrinter(){ FListGoods= new TList(); CheckId=0; LoadSetup(); };
|
||||
virtual AnsiString getPrinterName()=0;
|
||||
virtual bool Start()=0;
|
||||
virtual bool isOk()=0;
|
||||
virtual long getCheckId(){ return CheckId; }; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void ClearGoods()
|
||||
{
|
||||
try
|
||||
{
|
||||
while(FListGoods->Count>0)
|
||||
{
|
||||
Goods* g=(Goods*)FListGoods->Items[0];
|
||||
delete g;
|
||||
FListGoods->Delete(0);
|
||||
}
|
||||
FListGoods->Clear();
|
||||
}catch(...)
|
||||
{
|
||||
Crashed=true;
|
||||
}
|
||||
};
|
||||
int getGoodsPrice();
|
||||
virtual bool PrintLine(WideString line)=0;
|
||||
void addGoods(Goods* goods)
|
||||
{
|
||||
FListGoods->Add(goods);
|
||||
};
|
||||
virtual bool getNextCheckId(int &id);
|
||||
|
||||
bool SaveCheck(int CheckId);
|
||||
virtual bool PrintCheck(bool sales, int check, WideString headLine ) { return false; };
|
||||
bool deleteCheck(int CheckId);
|
||||
virtual AnsiString getLastError(){ return ""; };
|
||||
virtual bool DayOpened(){ return false; };
|
||||
virtual void setHeader(TStrings* Text){};
|
||||
virtual void getHeader(TStrings* Text){};
|
||||
virtual void setTrailer(TStrings* Text){};
|
||||
virtual void getTrailer(TStrings* Text){};
|
||||
virtual bool OpenShift(){ return true; }; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int getCOMPort();
|
||||
int getBaudRate();
|
||||
void setBaudRate(int val);
|
||||
void setCOMPort(int n);
|
||||
virtual bool PrintZReport()=0;
|
||||
virtual void PrintXReport()=0;
|
||||
|
||||
void LoadSetup();
|
||||
void SaveSetup();
|
||||
virtual bool setTrainingMode(bool val){ return false; };
|
||||
virtual bool Cut(){ return false; }; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
virtual bool setNalog(long n,float stavka){ return false; }; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
virtual int getAllSum(){ return 0; };
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> OPOS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
class PrinterOPOS : public FiscalPrinter
|
||||
{
|
||||
private:
|
||||
TOPOSFiscalPrinter *fp;
|
||||
public:
|
||||
|
||||
|
||||
bool setTrainingMode(bool val);
|
||||
bool getTrainingMode();
|
||||
|
||||
PrinterOPOS(TComponent* AOwner);
|
||||
virtual ~PrinterOPOS();
|
||||
AnsiString getPrinterName(){ return "Moebius";};
|
||||
bool Start(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> COM <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintCheck(bool sales, int check, WideString headLine ); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool SaveCheck(int CheckId); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool deleteCheck(int CheckId); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool Cut(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//int GetState(); //0 - <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool isOk(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString GetStatusDescription(long StatusCode); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString getLastError(long* err); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString getLastError(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
TDateTime getDateOpenShift(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
void setHeader(TStrings* Text);
|
||||
void getHeader(TStrings* Text);
|
||||
void setTrailer(TStrings* Text);
|
||||
void getTrailer(TStrings* Text);
|
||||
int getCOMPort();
|
||||
void setCOMPort(int n);
|
||||
int getDaySum(); //<2F><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int getAllSum(); //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
bool PrintLine(WideString line);
|
||||
bool PrintZReport(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
void PrintXReport(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool OpenShift(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DayOpened(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool setNalog(long n,float stavka); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
void Push(){}; //<2F> OPOS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
class FiscalPrinterPort : public FiscalPrinter
|
||||
{
|
||||
private:
|
||||
FP300KZ* fp;
|
||||
public:
|
||||
FiscalPrinterPort():FiscalPrinter()
|
||||
{ fp = new FP300KZ();
|
||||
};
|
||||
virtual ~FiscalPrinterPort(){ delete fp; };
|
||||
AnsiString getPrinterName(){ return "Port";};
|
||||
bool getNextCheckId(int &res)
|
||||
{
|
||||
int num;
|
||||
bool b=fp->GetLastPrintedDocNumber(num);
|
||||
res=num+1;
|
||||
if(!b)throw Exception(getLastError());
|
||||
return b;
|
||||
};
|
||||
|
||||
bool Start()
|
||||
{
|
||||
fp->OpenCOMPort(getCOMPort(),getBaudRate());
|
||||
return fp->PrinterInit();
|
||||
};
|
||||
long getCheckId(){ int num; fp->GetLastPrintedDocNumber(num); return num; }; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool PrintCheck(bool sales, int check, WideString headLine ); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool isOk();
|
||||
bool PrintLine(WideString line)
|
||||
{
|
||||
//if(line!=NULL)
|
||||
return fp->PrintLine(line.c_bstr());
|
||||
//else
|
||||
// return fp->PrintLine(L"");
|
||||
};
|
||||
AnsiString getLastError()
|
||||
{
|
||||
return fp->getLastErrorDest().c_str();
|
||||
};
|
||||
bool DayOpened(){ return true; };
|
||||
bool PrintZReport();
|
||||
void PrintXReport() { fp->PrintXReport(); };
|
||||
bool Cut(){ return fp->CutPaper(); };
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
extern FiscalPrinter* g_printer;
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
209
devices/Printers/Mebius/__history/PrinterOPOS.h.~13~
Normal file
209
devices/Printers/Mebius/__history/PrinterOPOS.h.~13~
Normal file
@ -0,0 +1,209 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#ifndef PrinterOPOSH
|
||||
#define PrinterOPOSH
|
||||
//---------------------------------------------------------------------------
|
||||
//#include <System.hpp>
|
||||
#include <vcl.h>
|
||||
//#include "OposFiscalPrinter_1_7_Lib_OCX.h"
|
||||
#include "OposFiscalPrinter_CCO_TLB.h"
|
||||
#include "FP300KZ.h"
|
||||
//---------------------------------------------------------------------------
|
||||
const LONG FPTR_RT_CASH_IN = 1;
|
||||
const LONG FPTR_RT_CASH_OUT = 2;
|
||||
const LONG FPTR_RT_GENERIC = 3;
|
||||
const LONG FPTR_RT_SALES = 4;
|
||||
const LONG FPTR_RT_SERVICE = 5;
|
||||
const LONG FPTR_RT_SIMPLE_INVOICE = 6;
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
class Goods
|
||||
{
|
||||
private:
|
||||
public:
|
||||
WideString name1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
WideString name2; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
double price; //<2F><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
long count; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
long VatInfo; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Goods(WideString name1, WideString name2, double price, long count,long VatInfo)
|
||||
{ //if(name1==NULL)
|
||||
// this->name1=L"";
|
||||
//else
|
||||
this->name1=name1;
|
||||
//if(name2==NULL)
|
||||
// this->name2=L"";
|
||||
//else
|
||||
this->name2=name2;
|
||||
this->price=price;
|
||||
this->count=count;
|
||||
this->VatInfo=VatInfo;
|
||||
};
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
class FiscalPrinter
|
||||
{
|
||||
protected:
|
||||
bool Crashed;
|
||||
long FState;
|
||||
TList* FListGoods;
|
||||
long CheckId; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
public:
|
||||
AnsiString HeadLine; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
WideString GoodsName; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
WideString CasireName; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool TestMode;
|
||||
bool AutoOpenShift; //<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
FiscalPrinter(){ FListGoods= new TList(); CheckId=0; LoadSetup(); };
|
||||
virtual AnsiString getPrinterName()=0;
|
||||
virtual bool Start()=0;
|
||||
virtual bool isOk()=0;
|
||||
virtual long getCheckId(){ return CheckId; }; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void ClearGoods()
|
||||
{
|
||||
try
|
||||
{
|
||||
while(FListGoods->Count>0)
|
||||
{
|
||||
Goods* g=(Goods*)FListGoods->Items[0];
|
||||
delete g;
|
||||
FListGoods->Delete(0);
|
||||
}
|
||||
FListGoods->Clear();
|
||||
}catch(...)
|
||||
{
|
||||
Crashed=true;
|
||||
}
|
||||
};
|
||||
int getGoodsPrice();
|
||||
virtual bool PrintLine(WideString line)=0;
|
||||
void addGoods(Goods* goods)
|
||||
{
|
||||
FListGoods->Add(goods);
|
||||
};
|
||||
virtual bool getNextCheckId(int &id);
|
||||
|
||||
bool SaveCheck(int CheckId);
|
||||
virtual bool PrintCheck(bool sales, int check, WideString headLine ) { return false; };
|
||||
bool deleteCheck(int CheckId);
|
||||
virtual AnsiString getLastError(){ return ""; };
|
||||
virtual bool DayOpened(){ return false; };
|
||||
virtual void setHeader(TStrings* Text){};
|
||||
virtual void getHeader(TStrings* Text){};
|
||||
virtual void setTrailer(TStrings* Text){};
|
||||
virtual void getTrailer(TStrings* Text){};
|
||||
virtual bool OpenShift(){ return true; }; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int getCOMPort();
|
||||
int getBaudRate();
|
||||
void setBaudRate(int val);
|
||||
void setCOMPort(int n);
|
||||
virtual bool PrintZReport()=0;
|
||||
virtual void PrintXReport()=0;
|
||||
|
||||
void LoadSetup();
|
||||
void SaveSetup();
|
||||
virtual bool setTrainingMode(bool val){ return false; };
|
||||
virtual bool Cut(){ return false; }; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
virtual bool setNalog(long n,float stavka){ return false; }; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
virtual int getAllSum(){ return 0; };
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> OPOS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
class PrinterOPOS : public FiscalPrinter
|
||||
{
|
||||
private:
|
||||
TOPOSFiscalPrinter_1_7 *fp;
|
||||
public:
|
||||
|
||||
|
||||
bool setTrainingMode(bool val);
|
||||
bool getTrainingMode();
|
||||
|
||||
PrinterOPOS(TComponent* AOwner);
|
||||
virtual ~PrinterOPOS();
|
||||
AnsiString getPrinterName(){ return "Moebius";};
|
||||
bool Start(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> COM <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintCheck(bool sales, int check, WideString headLine ); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool SaveCheck(int CheckId); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool deleteCheck(int CheckId); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool Cut(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//int GetState(); //0 - <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool isOk(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString GetStatusDescription(long StatusCode); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString getLastError(long* err); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString getLastError(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
TDateTime getDateOpenShift(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
void setHeader(TStrings* Text);
|
||||
void getHeader(TStrings* Text);
|
||||
void setTrailer(TStrings* Text);
|
||||
void getTrailer(TStrings* Text);
|
||||
int getCOMPort();
|
||||
void setCOMPort(int n);
|
||||
int getDaySum(); //<2F><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int getAllSum(); //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
bool PrintLine(WideString line);
|
||||
bool PrintZReport(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
void PrintXReport(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool OpenShift(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DayOpened(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool setNalog(long n,float stavka); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
void Push(){}; //<2F> OPOS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
class FiscalPrinterPort : public FiscalPrinter
|
||||
{
|
||||
private:
|
||||
FP300KZ* fp;
|
||||
public:
|
||||
FiscalPrinterPort():FiscalPrinter()
|
||||
{ fp = new FP300KZ();
|
||||
};
|
||||
virtual ~FiscalPrinterPort(){ delete fp; };
|
||||
AnsiString getPrinterName(){ return "Port";};
|
||||
bool getNextCheckId(int &res)
|
||||
{
|
||||
int num;
|
||||
bool b=fp->GetLastPrintedDocNumber(num);
|
||||
res=num+1;
|
||||
if(!b)throw Exception(getLastError());
|
||||
return b;
|
||||
};
|
||||
|
||||
bool Start()
|
||||
{
|
||||
fp->OpenCOMPort(getCOMPort(),getBaudRate());
|
||||
return fp->PrinterInit();
|
||||
};
|
||||
long getCheckId(){ int num; fp->GetLastPrintedDocNumber(num); return num; }; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool PrintCheck(bool sales, int check, WideString headLine ); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool isOk();
|
||||
bool PrintLine(WideString line)
|
||||
{
|
||||
//if(line!=NULL)
|
||||
return fp->PrintLine(line.c_bstr());
|
||||
//else
|
||||
// return fp->PrintLine(L"");
|
||||
};
|
||||
AnsiString getLastError()
|
||||
{
|
||||
return fp->getLastErrorDest().c_str();
|
||||
};
|
||||
bool DayOpened(){ return true; };
|
||||
bool PrintZReport();
|
||||
void PrintXReport() { fp->PrintXReport(); };
|
||||
bool Cut(){ return fp->CutPaper(); };
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
extern FiscalPrinter* g_printer;
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
209
devices/Printers/Mebius/__history/PrinterOPOS.h.~14~
Normal file
209
devices/Printers/Mebius/__history/PrinterOPOS.h.~14~
Normal file
@ -0,0 +1,209 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#ifndef PrinterOPOSH
|
||||
#define PrinterOPOSH
|
||||
//---------------------------------------------------------------------------
|
||||
//#include <System.hpp>
|
||||
#include <vcl.h>
|
||||
//#include "OposFiscalPrinter_1_7_Lib_OCX.h"
|
||||
#include "OposFiscalPrinter_CCO_OCX.h"
|
||||
#include "FP300KZ.h"
|
||||
//---------------------------------------------------------------------------
|
||||
const LONG FPTR_RT_CASH_IN = 1;
|
||||
const LONG FPTR_RT_CASH_OUT = 2;
|
||||
const LONG FPTR_RT_GENERIC = 3;
|
||||
const LONG FPTR_RT_SALES = 4;
|
||||
const LONG FPTR_RT_SERVICE = 5;
|
||||
const LONG FPTR_RT_SIMPLE_INVOICE = 6;
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
class Goods
|
||||
{
|
||||
private:
|
||||
public:
|
||||
WideString name1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
WideString name2; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
double price; //<2F><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
long count; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
long VatInfo; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Goods(WideString name1, WideString name2, double price, long count,long VatInfo)
|
||||
{ //if(name1==NULL)
|
||||
// this->name1=L"";
|
||||
//else
|
||||
this->name1=name1;
|
||||
//if(name2==NULL)
|
||||
// this->name2=L"";
|
||||
//else
|
||||
this->name2=name2;
|
||||
this->price=price;
|
||||
this->count=count;
|
||||
this->VatInfo=VatInfo;
|
||||
};
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
class FiscalPrinter
|
||||
{
|
||||
protected:
|
||||
bool Crashed;
|
||||
long FState;
|
||||
TList* FListGoods;
|
||||
long CheckId; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
public:
|
||||
AnsiString HeadLine; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
WideString GoodsName; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
WideString CasireName; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool TestMode;
|
||||
bool AutoOpenShift; //<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
FiscalPrinter(){ FListGoods= new TList(); CheckId=0; LoadSetup(); };
|
||||
virtual AnsiString getPrinterName()=0;
|
||||
virtual bool Start()=0;
|
||||
virtual bool isOk()=0;
|
||||
virtual long getCheckId(){ return CheckId; }; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void ClearGoods()
|
||||
{
|
||||
try
|
||||
{
|
||||
while(FListGoods->Count>0)
|
||||
{
|
||||
Goods* g=(Goods*)FListGoods->Items[0];
|
||||
delete g;
|
||||
FListGoods->Delete(0);
|
||||
}
|
||||
FListGoods->Clear();
|
||||
}catch(...)
|
||||
{
|
||||
Crashed=true;
|
||||
}
|
||||
};
|
||||
int getGoodsPrice();
|
||||
virtual bool PrintLine(WideString line)=0;
|
||||
void addGoods(Goods* goods)
|
||||
{
|
||||
FListGoods->Add(goods);
|
||||
};
|
||||
virtual bool getNextCheckId(int &id);
|
||||
|
||||
bool SaveCheck(int CheckId);
|
||||
virtual bool PrintCheck(bool sales, int check, WideString headLine ) { return false; };
|
||||
bool deleteCheck(int CheckId);
|
||||
virtual AnsiString getLastError(){ return ""; };
|
||||
virtual bool DayOpened(){ return false; };
|
||||
virtual void setHeader(TStrings* Text){};
|
||||
virtual void getHeader(TStrings* Text){};
|
||||
virtual void setTrailer(TStrings* Text){};
|
||||
virtual void getTrailer(TStrings* Text){};
|
||||
virtual bool OpenShift(){ return true; }; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int getCOMPort();
|
||||
int getBaudRate();
|
||||
void setBaudRate(int val);
|
||||
void setCOMPort(int n);
|
||||
virtual bool PrintZReport()=0;
|
||||
virtual void PrintXReport()=0;
|
||||
|
||||
void LoadSetup();
|
||||
void SaveSetup();
|
||||
virtual bool setTrainingMode(bool val){ return false; };
|
||||
virtual bool Cut(){ return false; }; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
virtual bool setNalog(long n,float stavka){ return false; }; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
virtual int getAllSum(){ return 0; };
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> OPOS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
class PrinterOPOS : public FiscalPrinter
|
||||
{
|
||||
private:
|
||||
TOPOSFiscalPrinter_1_7 *fp;
|
||||
public:
|
||||
|
||||
|
||||
bool setTrainingMode(bool val);
|
||||
bool getTrainingMode();
|
||||
|
||||
PrinterOPOS(TComponent* AOwner);
|
||||
virtual ~PrinterOPOS();
|
||||
AnsiString getPrinterName(){ return "Moebius";};
|
||||
bool Start(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> COM <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintCheck(bool sales, int check, WideString headLine ); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool SaveCheck(int CheckId); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool deleteCheck(int CheckId); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool Cut(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//int GetState(); //0 - <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool isOk(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString GetStatusDescription(long StatusCode); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString getLastError(long* err); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString getLastError(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
TDateTime getDateOpenShift(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
void setHeader(TStrings* Text);
|
||||
void getHeader(TStrings* Text);
|
||||
void setTrailer(TStrings* Text);
|
||||
void getTrailer(TStrings* Text);
|
||||
int getCOMPort();
|
||||
void setCOMPort(int n);
|
||||
int getDaySum(); //<2F><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int getAllSum(); //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
bool PrintLine(WideString line);
|
||||
bool PrintZReport(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
void PrintXReport(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool OpenShift(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DayOpened(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool setNalog(long n,float stavka); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
void Push(){}; //<2F> OPOS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
class FiscalPrinterPort : public FiscalPrinter
|
||||
{
|
||||
private:
|
||||
FP300KZ* fp;
|
||||
public:
|
||||
FiscalPrinterPort():FiscalPrinter()
|
||||
{ fp = new FP300KZ();
|
||||
};
|
||||
virtual ~FiscalPrinterPort(){ delete fp; };
|
||||
AnsiString getPrinterName(){ return "Port";};
|
||||
bool getNextCheckId(int &res)
|
||||
{
|
||||
int num;
|
||||
bool b=fp->GetLastPrintedDocNumber(num);
|
||||
res=num+1;
|
||||
if(!b)throw Exception(getLastError());
|
||||
return b;
|
||||
};
|
||||
|
||||
bool Start()
|
||||
{
|
||||
fp->OpenCOMPort(getCOMPort(),getBaudRate());
|
||||
return fp->PrinterInit();
|
||||
};
|
||||
long getCheckId(){ int num; fp->GetLastPrintedDocNumber(num); return num; }; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool PrintCheck(bool sales, int check, WideString headLine ); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool isOk();
|
||||
bool PrintLine(WideString line)
|
||||
{
|
||||
//if(line!=NULL)
|
||||
return fp->PrintLine(line.c_bstr());
|
||||
//else
|
||||
// return fp->PrintLine(L"");
|
||||
};
|
||||
AnsiString getLastError()
|
||||
{
|
||||
return fp->getLastErrorDest().c_str();
|
||||
};
|
||||
bool DayOpened(){ return true; };
|
||||
bool PrintZReport();
|
||||
void PrintXReport() { fp->PrintXReport(); };
|
||||
bool Cut(){ return fp->CutPaper(); };
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
extern FiscalPrinter* g_printer;
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
209
devices/Printers/Mebius/__history/PrinterOPOS.h.~15~
Normal file
209
devices/Printers/Mebius/__history/PrinterOPOS.h.~15~
Normal file
@ -0,0 +1,209 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#ifndef PrinterOPOSH
|
||||
#define PrinterOPOSH
|
||||
//---------------------------------------------------------------------------
|
||||
//#include <System.hpp>
|
||||
#include <vcl.h>
|
||||
//#include "OposFiscalPrinter_1_7_Lib_OCX.h"
|
||||
#include "OposFiscalPrinter_CCO_OCX.h"
|
||||
#include "FP300KZ.h"
|
||||
//---------------------------------------------------------------------------
|
||||
const LONG FPTR_RT_CASH_IN = 1;
|
||||
const LONG FPTR_RT_CASH_OUT = 2;
|
||||
const LONG FPTR_RT_GENERIC = 3;
|
||||
const LONG FPTR_RT_SALES = 4;
|
||||
const LONG FPTR_RT_SERVICE = 5;
|
||||
const LONG FPTR_RT_SIMPLE_INVOICE = 6;
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
class Goods
|
||||
{
|
||||
private:
|
||||
public:
|
||||
WideString name1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
WideString name2; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
double price; //<2F><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
long count; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
long VatInfo; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Goods(WideString name1, WideString name2, double price, long count,long VatInfo)
|
||||
{ //if(name1==NULL)
|
||||
// this->name1=L"";
|
||||
//else
|
||||
this->name1=name1;
|
||||
//if(name2==NULL)
|
||||
// this->name2=L"";
|
||||
//else
|
||||
this->name2=name2;
|
||||
this->price=price;
|
||||
this->count=count;
|
||||
this->VatInfo=VatInfo;
|
||||
};
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
class FiscalPrinter
|
||||
{
|
||||
protected:
|
||||
bool Crashed;
|
||||
long FState;
|
||||
TList* FListGoods;
|
||||
long CheckId; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
public:
|
||||
AnsiString HeadLine; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
WideString GoodsName; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
WideString CasireName; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool TestMode;
|
||||
bool AutoOpenShift; //<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
FiscalPrinter(){ FListGoods= new TList(); CheckId=0; LoadSetup(); };
|
||||
virtual AnsiString getPrinterName()=0;
|
||||
virtual bool Start()=0;
|
||||
virtual bool isOk()=0;
|
||||
virtual long getCheckId(){ return CheckId; }; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void ClearGoods()
|
||||
{
|
||||
try
|
||||
{
|
||||
while(FListGoods->Count>0)
|
||||
{
|
||||
Goods* g=(Goods*)FListGoods->Items[0];
|
||||
delete g;
|
||||
FListGoods->Delete(0);
|
||||
}
|
||||
FListGoods->Clear();
|
||||
}catch(...)
|
||||
{
|
||||
Crashed=true;
|
||||
}
|
||||
};
|
||||
int getGoodsPrice();
|
||||
virtual bool PrintLine(WideString line)=0;
|
||||
void addGoods(Goods* goods)
|
||||
{
|
||||
FListGoods->Add(goods);
|
||||
};
|
||||
virtual bool getNextCheckId(int &id);
|
||||
|
||||
bool SaveCheck(int CheckId);
|
||||
virtual bool PrintCheck(bool sales, int check, WideString headLine ) { return false; };
|
||||
bool deleteCheck(int CheckId);
|
||||
virtual AnsiString getLastError(){ return ""; };
|
||||
virtual bool DayOpened(){ return false; };
|
||||
virtual void setHeader(TStrings* Text){};
|
||||
virtual void getHeader(TStrings* Text){};
|
||||
virtual void setTrailer(TStrings* Text){};
|
||||
virtual void getTrailer(TStrings* Text){};
|
||||
virtual bool OpenShift(){ return true; }; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int getCOMPort();
|
||||
int getBaudRate();
|
||||
void setBaudRate(int val);
|
||||
void setCOMPort(int n);
|
||||
virtual bool PrintZReport()=0;
|
||||
virtual void PrintXReport()=0;
|
||||
|
||||
void LoadSetup();
|
||||
void SaveSetup();
|
||||
virtual bool setTrainingMode(bool val){ return false; };
|
||||
virtual bool Cut(){ return false; }; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
virtual bool setNalog(long n,float stavka){ return false; }; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
virtual int getAllSum(){ return 0; };
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> OPOS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
class PrinterOPOS : public FiscalPrinter
|
||||
{
|
||||
private:
|
||||
TOPOSFiscalPrinter *fp;
|
||||
public:
|
||||
|
||||
|
||||
bool setTrainingMode(bool val);
|
||||
bool getTrainingMode();
|
||||
|
||||
PrinterOPOS(TComponent* AOwner);
|
||||
virtual ~PrinterOPOS();
|
||||
AnsiString getPrinterName(){ return "Moebius";};
|
||||
bool Start(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> COM <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintCheck(bool sales, int check, WideString headLine ); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool SaveCheck(int CheckId); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool deleteCheck(int CheckId); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool Cut(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//int GetState(); //0 - <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool isOk(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString GetStatusDescription(long StatusCode); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString getLastError(long* err); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString getLastError(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
TDateTime getDateOpenShift(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
void setHeader(TStrings* Text);
|
||||
void getHeader(TStrings* Text);
|
||||
void setTrailer(TStrings* Text);
|
||||
void getTrailer(TStrings* Text);
|
||||
int getCOMPort();
|
||||
void setCOMPort(int n);
|
||||
int getDaySum(); //<2F><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int getAllSum(); //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
bool PrintLine(WideString line);
|
||||
bool PrintZReport(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
void PrintXReport(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool OpenShift(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DayOpened(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool setNalog(long n,float stavka); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
void Push(){}; //<2F> OPOS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
class FiscalPrinterPort : public FiscalPrinter
|
||||
{
|
||||
private:
|
||||
FP300KZ* fp;
|
||||
public:
|
||||
FiscalPrinterPort():FiscalPrinter()
|
||||
{ fp = new FP300KZ();
|
||||
};
|
||||
virtual ~FiscalPrinterPort(){ delete fp; };
|
||||
AnsiString getPrinterName(){ return "Port";};
|
||||
bool getNextCheckId(int &res)
|
||||
{
|
||||
int num;
|
||||
bool b=fp->GetLastPrintedDocNumber(num);
|
||||
res=num+1;
|
||||
if(!b)throw Exception(getLastError());
|
||||
return b;
|
||||
};
|
||||
|
||||
bool Start()
|
||||
{
|
||||
fp->OpenCOMPort(getCOMPort(),getBaudRate());
|
||||
return fp->PrinterInit();
|
||||
};
|
||||
long getCheckId(){ int num; fp->GetLastPrintedDocNumber(num); return num; }; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool PrintCheck(bool sales, int check, WideString headLine ); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool isOk();
|
||||
bool PrintLine(WideString line)
|
||||
{
|
||||
//if(line!=NULL)
|
||||
return fp->PrintLine(line.c_bstr());
|
||||
//else
|
||||
// return fp->PrintLine(L"");
|
||||
};
|
||||
AnsiString getLastError()
|
||||
{
|
||||
return fp->getLastErrorDest().c_str();
|
||||
};
|
||||
bool DayOpened(){ return true; };
|
||||
bool PrintZReport();
|
||||
void PrintXReport() { fp->PrintXReport(); };
|
||||
bool Cut(){ return fp->CutPaper(); };
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
extern FiscalPrinter* g_printer;
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
209
devices/Printers/Mebius/__history/PrinterOPOS.h.~16~
Normal file
209
devices/Printers/Mebius/__history/PrinterOPOS.h.~16~
Normal file
@ -0,0 +1,209 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#ifndef PrinterOPOSH
|
||||
#define PrinterOPOSH
|
||||
//---------------------------------------------------------------------------
|
||||
//#include <System.hpp>
|
||||
#include <vcl.h>
|
||||
#include "OposFiscalPrinter_1_7_Lib_OCX.h"
|
||||
//#include "OposFiscalPrinter_CCO_OCX.h"
|
||||
#include "FP300KZ.h"
|
||||
//---------------------------------------------------------------------------
|
||||
const LONG FPTR_RT_CASH_IN = 1;
|
||||
const LONG FPTR_RT_CASH_OUT = 2;
|
||||
const LONG FPTR_RT_GENERIC = 3;
|
||||
const LONG FPTR_RT_SALES = 4;
|
||||
const LONG FPTR_RT_SERVICE = 5;
|
||||
const LONG FPTR_RT_SIMPLE_INVOICE = 6;
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
class Goods
|
||||
{
|
||||
private:
|
||||
public:
|
||||
WideString name1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
WideString name2; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
double price; //<2F><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
long count; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
long VatInfo; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Goods(WideString name1, WideString name2, double price, long count,long VatInfo)
|
||||
{ //if(name1==NULL)
|
||||
// this->name1=L"";
|
||||
//else
|
||||
this->name1=name1;
|
||||
//if(name2==NULL)
|
||||
// this->name2=L"";
|
||||
//else
|
||||
this->name2=name2;
|
||||
this->price=price;
|
||||
this->count=count;
|
||||
this->VatInfo=VatInfo;
|
||||
};
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
class FiscalPrinter
|
||||
{
|
||||
protected:
|
||||
bool Crashed;
|
||||
long FState;
|
||||
TList* FListGoods;
|
||||
long CheckId; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
public:
|
||||
AnsiString HeadLine; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
WideString GoodsName; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
WideString CasireName; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool TestMode;
|
||||
bool AutoOpenShift; //<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
FiscalPrinter(){ FListGoods= new TList(); CheckId=0; LoadSetup(); };
|
||||
virtual AnsiString getPrinterName()=0;
|
||||
virtual bool Start()=0;
|
||||
virtual bool isOk()=0;
|
||||
virtual long getCheckId(){ return CheckId; }; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void ClearGoods()
|
||||
{
|
||||
try
|
||||
{
|
||||
while(FListGoods->Count>0)
|
||||
{
|
||||
Goods* g=(Goods*)FListGoods->Items[0];
|
||||
delete g;
|
||||
FListGoods->Delete(0);
|
||||
}
|
||||
FListGoods->Clear();
|
||||
}catch(...)
|
||||
{
|
||||
Crashed=true;
|
||||
}
|
||||
};
|
||||
int getGoodsPrice();
|
||||
virtual bool PrintLine(WideString line)=0;
|
||||
void addGoods(Goods* goods)
|
||||
{
|
||||
FListGoods->Add(goods);
|
||||
};
|
||||
virtual bool getNextCheckId(int &id);
|
||||
|
||||
bool SaveCheck(int CheckId);
|
||||
virtual bool PrintCheck(bool sales, int check, WideString headLine ) { return false; };
|
||||
bool deleteCheck(int CheckId);
|
||||
virtual AnsiString getLastError(){ return ""; };
|
||||
virtual bool DayOpened(){ return false; };
|
||||
virtual void setHeader(TStrings* Text){};
|
||||
virtual void getHeader(TStrings* Text){};
|
||||
virtual void setTrailer(TStrings* Text){};
|
||||
virtual void getTrailer(TStrings* Text){};
|
||||
virtual bool OpenShift(){ return true; }; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int getCOMPort();
|
||||
int getBaudRate();
|
||||
void setBaudRate(int val);
|
||||
void setCOMPort(int n);
|
||||
virtual bool PrintZReport()=0;
|
||||
virtual void PrintXReport()=0;
|
||||
|
||||
void LoadSetup();
|
||||
void SaveSetup();
|
||||
virtual bool setTrainingMode(bool val){ return false; };
|
||||
virtual bool Cut(){ return false; }; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
virtual bool setNalog(long n,float stavka){ return false; }; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
virtual int getAllSum(){ return 0; };
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> OPOS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
class PrinterOPOS : public FiscalPrinter
|
||||
{
|
||||
private:
|
||||
TOPOSFiscalPrinter *fp;
|
||||
public:
|
||||
|
||||
|
||||
bool setTrainingMode(bool val);
|
||||
bool getTrainingMode();
|
||||
|
||||
PrinterOPOS(TComponent* AOwner);
|
||||
virtual ~PrinterOPOS();
|
||||
AnsiString getPrinterName(){ return "Moebius";};
|
||||
bool Start(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> COM <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintCheck(bool sales, int check, WideString headLine ); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool SaveCheck(int CheckId); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool deleteCheck(int CheckId); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool Cut(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//int GetState(); //0 - <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool isOk(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString GetStatusDescription(long StatusCode); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString getLastError(long* err); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString getLastError(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
TDateTime getDateOpenShift(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
void setHeader(TStrings* Text);
|
||||
void getHeader(TStrings* Text);
|
||||
void setTrailer(TStrings* Text);
|
||||
void getTrailer(TStrings* Text);
|
||||
int getCOMPort();
|
||||
void setCOMPort(int n);
|
||||
int getDaySum(); //<2F><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int getAllSum(); //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
bool PrintLine(WideString line);
|
||||
bool PrintZReport(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
void PrintXReport(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool OpenShift(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DayOpened(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool setNalog(long n,float stavka); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
void Push(){}; //<2F> OPOS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
class FiscalPrinterPort : public FiscalPrinter
|
||||
{
|
||||
private:
|
||||
FP300KZ* fp;
|
||||
public:
|
||||
FiscalPrinterPort():FiscalPrinter()
|
||||
{ fp = new FP300KZ();
|
||||
};
|
||||
virtual ~FiscalPrinterPort(){ delete fp; };
|
||||
AnsiString getPrinterName(){ return "Port";};
|
||||
bool getNextCheckId(int &res)
|
||||
{
|
||||
int num;
|
||||
bool b=fp->GetLastPrintedDocNumber(num);
|
||||
res=num+1;
|
||||
if(!b)throw Exception(getLastError());
|
||||
return b;
|
||||
};
|
||||
|
||||
bool Start()
|
||||
{
|
||||
fp->OpenCOMPort(getCOMPort(),getBaudRate());
|
||||
return fp->PrinterInit();
|
||||
};
|
||||
long getCheckId(){ int num; fp->GetLastPrintedDocNumber(num); return num; }; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool PrintCheck(bool sales, int check, WideString headLine ); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool isOk();
|
||||
bool PrintLine(WideString line)
|
||||
{
|
||||
//if(line!=NULL)
|
||||
return fp->PrintLine(line.c_bstr());
|
||||
//else
|
||||
// return fp->PrintLine(L"");
|
||||
};
|
||||
AnsiString getLastError()
|
||||
{
|
||||
return fp->getLastErrorDest().c_str();
|
||||
};
|
||||
bool DayOpened(){ return true; };
|
||||
bool PrintZReport();
|
||||
void PrintXReport() { fp->PrintXReport(); };
|
||||
bool Cut(){ return fp->CutPaper(); };
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
extern FiscalPrinter* g_printer;
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
209
devices/Printers/Mebius/__history/PrinterOPOS.h.~17~
Normal file
209
devices/Printers/Mebius/__history/PrinterOPOS.h.~17~
Normal file
@ -0,0 +1,209 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#ifndef PrinterOPOSH
|
||||
#define PrinterOPOSH
|
||||
//---------------------------------------------------------------------------
|
||||
//#include <System.hpp>
|
||||
#include <vcl.h>
|
||||
#include "OposFiscalPrinter_1_7_Lib_OCX.h"
|
||||
//#include "OposFiscalPrinter_CCO_OCX.h"
|
||||
#include "FP300KZ.h"
|
||||
//---------------------------------------------------------------------------
|
||||
const LONG FPTR_RT_CASH_IN = 1;
|
||||
const LONG FPTR_RT_CASH_OUT = 2;
|
||||
const LONG FPTR_RT_GENERIC = 3;
|
||||
const LONG FPTR_RT_SALES = 4;
|
||||
const LONG FPTR_RT_SERVICE = 5;
|
||||
const LONG FPTR_RT_SIMPLE_INVOICE = 6;
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
class Goods
|
||||
{
|
||||
private:
|
||||
public:
|
||||
WideString name1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
WideString name2; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
double price; //<2F><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
long count; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
long VatInfo; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Goods(WideString name1, WideString name2, double price, long count,long VatInfo)
|
||||
{ //if(name1==NULL)
|
||||
// this->name1=L"";
|
||||
//else
|
||||
this->name1=name1;
|
||||
//if(name2==NULL)
|
||||
// this->name2=L"";
|
||||
//else
|
||||
this->name2=name2;
|
||||
this->price=price;
|
||||
this->count=count;
|
||||
this->VatInfo=VatInfo;
|
||||
};
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
class FiscalPrinter
|
||||
{
|
||||
protected:
|
||||
bool Crashed;
|
||||
long FState;
|
||||
TList* FListGoods;
|
||||
long CheckId; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
public:
|
||||
AnsiString HeadLine; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
WideString GoodsName; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
WideString CasireName; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool TestMode;
|
||||
bool AutoOpenShift; //<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
FiscalPrinter(){ FListGoods= new TList(); CheckId=0; LoadSetup(); };
|
||||
virtual AnsiString getPrinterName()=0;
|
||||
virtual bool Start()=0;
|
||||
virtual bool isOk()=0;
|
||||
virtual long getCheckId(){ return CheckId; }; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void ClearGoods()
|
||||
{
|
||||
try
|
||||
{
|
||||
while(FListGoods->Count>0)
|
||||
{
|
||||
Goods* g=(Goods*)FListGoods->Items[0];
|
||||
delete g;
|
||||
FListGoods->Delete(0);
|
||||
}
|
||||
FListGoods->Clear();
|
||||
}catch(...)
|
||||
{
|
||||
Crashed=true;
|
||||
}
|
||||
};
|
||||
int getGoodsPrice();
|
||||
virtual bool PrintLine(WideString line)=0;
|
||||
void addGoods(Goods* goods)
|
||||
{
|
||||
FListGoods->Add(goods);
|
||||
};
|
||||
virtual bool getNextCheckId(int &id);
|
||||
|
||||
bool SaveCheck(int CheckId);
|
||||
virtual bool PrintCheck(bool sales, int check, WideString headLine ) { return false; };
|
||||
bool deleteCheck(int CheckId);
|
||||
virtual AnsiString getLastError(){ return ""; };
|
||||
virtual bool DayOpened(){ return false; };
|
||||
virtual void setHeader(TStrings* Text){};
|
||||
virtual void getHeader(TStrings* Text){};
|
||||
virtual void setTrailer(TStrings* Text){};
|
||||
virtual void getTrailer(TStrings* Text){};
|
||||
virtual bool OpenShift(){ return true; }; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int getCOMPort();
|
||||
int getBaudRate();
|
||||
void setBaudRate(int val);
|
||||
void setCOMPort(int n);
|
||||
virtual bool PrintZReport()=0;
|
||||
virtual void PrintXReport()=0;
|
||||
|
||||
void LoadSetup();
|
||||
void SaveSetup();
|
||||
virtual bool setTrainingMode(bool val){ return false; };
|
||||
virtual bool Cut(){ return false; }; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
virtual bool setNalog(long n,float stavka){ return false; }; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
virtual int getAllSum(){ return 0; };
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> OPOS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
class PrinterOPOS : public FiscalPrinter
|
||||
{
|
||||
private:
|
||||
TOPOSFiscalPrinter *fp;
|
||||
public:
|
||||
|
||||
|
||||
bool setTrainingMode(bool val);
|
||||
bool getTrainingMode();
|
||||
|
||||
PrinterOPOS(TComponent* AOwner);
|
||||
virtual ~PrinterOPOS();
|
||||
AnsiString getPrinterName(){ return "Moebius";};
|
||||
bool Start(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> COM <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintCheck(bool sales, int check, WideString headLine ); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool SaveCheck(int CheckId); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool deleteCheck(int CheckId); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool Cut(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//int GetState(); //0 - <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool isOk(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString GetStatusDescription(long StatusCode); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString getLastError(long* err); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString getLastError(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
TDateTime getDateOpenShift(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
void setHeader(TStrings* Text);
|
||||
void getHeader(TStrings* Text);
|
||||
void setTrailer(TStrings* Text);
|
||||
void getTrailer(TStrings* Text);
|
||||
int getCOMPort();
|
||||
void setCOMPort(int n);
|
||||
int getDaySum(); //<2F><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int getAllSum(); //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
bool PrintLine(WideString line);
|
||||
bool PrintZReport(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
void PrintXReport(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool OpenShift(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DayOpened(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool setNalog(long n,float stavka); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
void Push(){}; //<2F> OPOS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
class FiscalPrinterPort : public FiscalPrinter
|
||||
{
|
||||
private:
|
||||
FP300KZ* fp;
|
||||
public:
|
||||
FiscalPrinterPort():FiscalPrinter()
|
||||
{ fp = new FP300KZ();
|
||||
};
|
||||
virtual ~FiscalPrinterPort(){ delete fp; };
|
||||
AnsiString getPrinterName(){ return "Port";};
|
||||
bool getNextCheckId(int &res)
|
||||
{
|
||||
int num;
|
||||
bool b=fp->GetLastPrintedDocNumber(num);
|
||||
res=num+1;
|
||||
if(!b)throw Exception(getLastError());
|
||||
return b;
|
||||
};
|
||||
|
||||
bool Start()
|
||||
{
|
||||
fp->OpenCOMPort(getCOMPort(),getBaudRate());
|
||||
return fp->PrinterInit();
|
||||
};
|
||||
long getCheckId(){ int num; fp->GetLastPrintedDocNumber(num); return num; }; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool PrintCheck(bool sales, int check, WideString headLine ); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool isOk();
|
||||
bool PrintLine(WideString line)
|
||||
{
|
||||
//if(line!=NULL)
|
||||
return fp->PrintLine(line.c_bstr());
|
||||
//else
|
||||
// return fp->PrintLine(L"");
|
||||
};
|
||||
AnsiString getLastError()
|
||||
{
|
||||
return fp->getLastErrorDest().c_str();
|
||||
};
|
||||
bool DayOpened(){ return true; };
|
||||
bool PrintZReport();
|
||||
void PrintXReport() { fp->PrintXReport(); };
|
||||
bool Cut(){ return fp->CutPaper(); };
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
extern FiscalPrinter* g_printer;
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
209
devices/Printers/Mebius/__history/PrinterOPOS.h.~18~
Normal file
209
devices/Printers/Mebius/__history/PrinterOPOS.h.~18~
Normal file
@ -0,0 +1,209 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#ifndef PrinterOPOSH
|
||||
#define PrinterOPOSH
|
||||
//---------------------------------------------------------------------------
|
||||
//#include <System.hpp>
|
||||
#include <vcl.h>
|
||||
#include "OposFiscalPrinter_1_7_Lib_OCX.h"
|
||||
//#include "OposFiscalPrinter_CCO_OCX.h"
|
||||
#include "FP300KZ.h"
|
||||
//---------------------------------------------------------------------------
|
||||
const LONG FPTR_RT_CASH_IN = 1;
|
||||
const LONG FPTR_RT_CASH_OUT = 2;
|
||||
const LONG FPTR_RT_GENERIC = 3;
|
||||
const LONG FPTR_RT_SALES = 4;
|
||||
const LONG FPTR_RT_SERVICE = 5;
|
||||
const LONG FPTR_RT_SIMPLE_INVOICE = 6;
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
class Goods
|
||||
{
|
||||
private:
|
||||
public:
|
||||
WideString name1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
WideString name2; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
double price; //<2F><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
long count; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
long VatInfo; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Goods(WideString name1, WideString name2, double price, long count,long VatInfo)
|
||||
{ //if(name1==NULL)
|
||||
// this->name1=L"";
|
||||
//else
|
||||
this->name1=name1;
|
||||
//if(name2==NULL)
|
||||
// this->name2=L"";
|
||||
//else
|
||||
this->name2=name2;
|
||||
this->price=price;
|
||||
this->count=count;
|
||||
this->VatInfo=VatInfo;
|
||||
};
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
class FiscalPrinter
|
||||
{
|
||||
protected:
|
||||
bool Crashed;
|
||||
long FState;
|
||||
TList* FListGoods;
|
||||
long CheckId; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
public:
|
||||
AnsiString HeadLine; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
WideString GoodsName; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
WideString CasireName; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool TestMode;
|
||||
bool AutoOpenShift; //<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
FiscalPrinter(){ FListGoods= new TList(); CheckId=0; LoadSetup(); };
|
||||
virtual AnsiString getPrinterName()=0;
|
||||
virtual bool Start()=0;
|
||||
virtual bool isOk()=0;
|
||||
virtual long getCheckId(){ return CheckId; }; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void ClearGoods()
|
||||
{
|
||||
try
|
||||
{
|
||||
while(FListGoods->Count>0)
|
||||
{
|
||||
Goods* g=(Goods*)FListGoods->Items[0];
|
||||
delete g;
|
||||
FListGoods->Delete(0);
|
||||
}
|
||||
FListGoods->Clear();
|
||||
}catch(...)
|
||||
{
|
||||
Crashed=true;
|
||||
}
|
||||
};
|
||||
int getGoodsPrice();
|
||||
virtual bool PrintLine(WideString line)=0;
|
||||
void addGoods(Goods* goods)
|
||||
{
|
||||
FListGoods->Add(goods);
|
||||
};
|
||||
virtual bool getNextCheckId(int &id);
|
||||
|
||||
bool SaveCheck(int CheckId);
|
||||
virtual bool PrintCheck(bool sales, int check, WideString headLine ) { return false; };
|
||||
bool deleteCheck(int CheckId);
|
||||
virtual AnsiString getLastError(){ return ""; };
|
||||
virtual bool DayOpened(){ return false; };
|
||||
virtual void setHeader(TStrings* Text){};
|
||||
virtual void getHeader(TStrings* Text){};
|
||||
virtual void setTrailer(TStrings* Text){};
|
||||
virtual void getTrailer(TStrings* Text){};
|
||||
virtual bool OpenShift(){ return true; }; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int getCOMPort();
|
||||
int getBaudRate();
|
||||
void setBaudRate(int val);
|
||||
void setCOMPort(int n);
|
||||
virtual bool PrintZReport()=0;
|
||||
virtual void PrintXReport()=0;
|
||||
|
||||
void LoadSetup();
|
||||
void SaveSetup();
|
||||
virtual bool setTrainingMode(bool val){ return false; };
|
||||
virtual bool Cut(){ return false; }; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
virtual bool setNalog(long n,float stavka){ return false; }; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
virtual int getAllSum(){ return 0; };
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> OPOS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
class PrinterOPOS : public FiscalPrinter
|
||||
{
|
||||
private:
|
||||
TOPOSFiscalPrinter *fp;
|
||||
public:
|
||||
|
||||
|
||||
bool setTrainingMode(bool val);
|
||||
bool getTrainingMode();
|
||||
|
||||
PrinterOPOS(TComponent* AOwner);
|
||||
virtual ~PrinterOPOS();
|
||||
AnsiString getPrinterName(){ return "Moebius";};
|
||||
bool Start(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> COM <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintCheck(bool sales, int check, WideString headLine ); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool SaveCheck(int CheckId); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool deleteCheck(int CheckId); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool Cut(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//int GetState(); //0 - <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool isOk(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString GetStatusDescription(long StatusCode); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString getLastError(long* err); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString getLastError(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
TDateTime getDateOpenShift(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
void setHeader(TStrings* Text);
|
||||
void getHeader(TStrings* Text);
|
||||
void setTrailer(TStrings* Text);
|
||||
void getTrailer(TStrings* Text);
|
||||
int getCOMPort();
|
||||
void setCOMPort(int n);
|
||||
int getDaySum(); //<2F><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int getAllSum(); //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
bool PrintLine(WideString line);
|
||||
bool PrintZReport(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
void PrintXReport(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool OpenShift(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DayOpened(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool setNalog(long n,float stavka); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
void Push(){}; //<2F> OPOS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
class FiscalPrinterPort : public FiscalPrinter
|
||||
{
|
||||
private:
|
||||
FP300KZ* fp;
|
||||
public:
|
||||
FiscalPrinterPort():FiscalPrinter()
|
||||
{ fp = new FP300KZ();
|
||||
};
|
||||
virtual ~FiscalPrinterPort(){ delete fp; };
|
||||
AnsiString getPrinterName(){ return "Port";};
|
||||
bool getNextCheckId(int &res)
|
||||
{
|
||||
int num;
|
||||
bool b=fp->GetLastPrintedDocNumber(num);
|
||||
res=num+1;
|
||||
if(!b)throw Exception(getLastError());
|
||||
return b;
|
||||
};
|
||||
|
||||
bool Start()
|
||||
{
|
||||
fp->OpenCOMPort(getCOMPort(),getBaudRate());
|
||||
return fp->PrinterInit();
|
||||
};
|
||||
long getCheckId(){ int num; fp->GetLastPrintedDocNumber(num); return num; }; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool PrintCheck(bool sales, int check, WideString headLine ); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool isOk();
|
||||
bool PrintLine(WideString line)
|
||||
{
|
||||
//if(line!=NULL)
|
||||
return fp->PrintLine(line.c_bstr());
|
||||
//else
|
||||
// return fp->PrintLine(L"");
|
||||
};
|
||||
AnsiString getLastError()
|
||||
{
|
||||
return fp->getLastErrorDest().c_str();
|
||||
};
|
||||
bool DayOpened(){ return true; };
|
||||
bool PrintZReport();
|
||||
void PrintXReport() { fp->PrintXReport(); };
|
||||
bool Cut(){ return fp->CutPaper(); };
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
extern FiscalPrinter* g_printer;
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
207
devices/Printers/Mebius/__history/PrinterOPOS.h.~9~
Normal file
207
devices/Printers/Mebius/__history/PrinterOPOS.h.~9~
Normal file
@ -0,0 +1,207 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#ifndef PrinterOPOSH
|
||||
#define PrinterOPOSH
|
||||
//---------------------------------------------------------------------------
|
||||
//#include "OposFiscalPrinter_1_7_Lib_OCX.h"
|
||||
#include "OposFiscalPrinter_CCO_TLB.h"
|
||||
#include "FP300KZ.h"
|
||||
//---------------------------------------------------------------------------
|
||||
const LONG FPTR_RT_CASH_IN = 1;
|
||||
const LONG FPTR_RT_CASH_OUT = 2;
|
||||
const LONG FPTR_RT_GENERIC = 3;
|
||||
const LONG FPTR_RT_SALES = 4;
|
||||
const LONG FPTR_RT_SERVICE = 5;
|
||||
const LONG FPTR_RT_SIMPLE_INVOICE = 6;
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
class Goods
|
||||
{
|
||||
private:
|
||||
public:
|
||||
WideString name1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
WideString name2; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
double price; //<2F><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
long count; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
long VatInfo; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Goods(WideString name1, WideString name2, double price, long count,long VatInfo)
|
||||
{ //if(name1==NULL)
|
||||
// this->name1=L"";
|
||||
//else
|
||||
this->name1=name1;
|
||||
//if(name2==NULL)
|
||||
// this->name2=L"";
|
||||
//else
|
||||
this->name2=name2;
|
||||
this->price=price;
|
||||
this->count=count;
|
||||
this->VatInfo=VatInfo;
|
||||
};
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
class FiscalPrinter
|
||||
{
|
||||
protected:
|
||||
bool Crashed;
|
||||
long FState;
|
||||
TList* FListGoods;
|
||||
long CheckId; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
public:
|
||||
AnsiString HeadLine; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
WideString GoodsName; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
WideString CasireName; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool TestMode;
|
||||
bool AutoOpenShift; //<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
FiscalPrinter(){ FListGoods= new TList(); CheckId=0; LoadSetup(); };
|
||||
virtual AnsiString getPrinterName()=0;
|
||||
virtual bool Start()=0;
|
||||
virtual bool isOk()=0;
|
||||
virtual long getCheckId(){ return CheckId; }; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void ClearGoods()
|
||||
{
|
||||
try
|
||||
{
|
||||
while(FListGoods->Count>0)
|
||||
{
|
||||
Goods* g=(Goods*)FListGoods->Items[0];
|
||||
delete g;
|
||||
FListGoods->Delete(0);
|
||||
}
|
||||
FListGoods->Clear();
|
||||
}catch(...)
|
||||
{
|
||||
Crashed=true;
|
||||
}
|
||||
};
|
||||
int getGoodsPrice();
|
||||
virtual bool PrintLine(WideString line)=0;
|
||||
void addGoods(Goods* goods)
|
||||
{
|
||||
FListGoods->Add(goods);
|
||||
};
|
||||
virtual bool getNextCheckId(int &id);
|
||||
|
||||
bool SaveCheck(int CheckId);
|
||||
virtual bool PrintCheck(bool sales, int check, WideString headLine ) { return false; };
|
||||
bool deleteCheck(int CheckId);
|
||||
virtual AnsiString getLastError(){ return ""; };
|
||||
virtual bool DayOpened(){ return false; };
|
||||
virtual void setHeader(TStrings* Text){};
|
||||
virtual void getHeader(TStrings* Text){};
|
||||
virtual void setTrailer(TStrings* Text){};
|
||||
virtual void getTrailer(TStrings* Text){};
|
||||
virtual bool OpenShift(){ return true; }; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int getCOMPort();
|
||||
int getBaudRate();
|
||||
void setBaudRate(int val);
|
||||
void setCOMPort(int n);
|
||||
virtual bool PrintZReport()=0;
|
||||
virtual void PrintXReport()=0;
|
||||
|
||||
void LoadSetup();
|
||||
void SaveSetup();
|
||||
virtual bool setTrainingMode(bool val){ return false; };
|
||||
virtual bool Cut(){ return false; }; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
virtual bool setNalog(long n,float stavka){ return false; }; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
virtual int getAllSum(){ return 0; };
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> OPOS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
class PrinterOPOS : public FiscalPrinter
|
||||
{
|
||||
private:
|
||||
TOPOSFiscalPrinter *fp;
|
||||
public:
|
||||
|
||||
|
||||
bool setTrainingMode(bool val);
|
||||
bool getTrainingMode();
|
||||
|
||||
PrinterOPOS(TComponent* AOwner);
|
||||
virtual ~PrinterOPOS();
|
||||
AnsiString getPrinterName(){ return "Moebius";};
|
||||
bool Start(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> COM <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintCheck(bool sales, int check, WideString headLine ); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool SaveCheck(int CheckId); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool deleteCheck(int CheckId); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool Cut(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//int GetState(); //0 - <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool isOk(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString GetStatusDescription(long StatusCode); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString getLastError(long* err); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AnsiString getLastError(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
TDateTime getDateOpenShift(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
void setHeader(TStrings* Text);
|
||||
void getHeader(TStrings* Text);
|
||||
void setTrailer(TStrings* Text);
|
||||
void getTrailer(TStrings* Text);
|
||||
int getCOMPort();
|
||||
void setCOMPort(int n);
|
||||
int getDaySum(); //<2F><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int getAllSum(); //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
bool PrintLine(WideString line);
|
||||
bool PrintZReport(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
void PrintXReport(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool OpenShift(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DayOpened(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool setNalog(long n,float stavka); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
void Push(){}; //<2F> OPOS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
class FiscalPrinterPort : public FiscalPrinter
|
||||
{
|
||||
private:
|
||||
FP300KZ* fp;
|
||||
public:
|
||||
FiscalPrinterPort():FiscalPrinter()
|
||||
{ fp = new FP300KZ();
|
||||
};
|
||||
virtual ~FiscalPrinterPort(){ delete fp; };
|
||||
AnsiString getPrinterName(){ return "Port";};
|
||||
bool getNextCheckId(int &res)
|
||||
{
|
||||
int num;
|
||||
bool b=fp->GetLastPrintedDocNumber(num);
|
||||
res=num+1;
|
||||
if(!b)throw Exception(getLastError());
|
||||
return b;
|
||||
};
|
||||
|
||||
bool Start()
|
||||
{
|
||||
fp->OpenCOMPort(getCOMPort(),getBaudRate());
|
||||
return fp->PrinterInit();
|
||||
};
|
||||
long getCheckId(){ int num; fp->GetLastPrintedDocNumber(num); return num; }; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool PrintCheck(bool sales, int check, WideString headLine ); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool isOk();
|
||||
bool PrintLine(WideString line)
|
||||
{
|
||||
//if(line!=NULL)
|
||||
return fp->PrintLine(line.c_bstr());
|
||||
//else
|
||||
// return fp->PrintLine(L"");
|
||||
};
|
||||
AnsiString getLastError()
|
||||
{
|
||||
return fp->getLastErrorDest().c_str();
|
||||
};
|
||||
bool DayOpened(){ return true; };
|
||||
bool PrintZReport();
|
||||
void PrintXReport() { fp->PrintXReport(); };
|
||||
bool Cut(){ return fp->CutPaper(); };
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
extern FiscalPrinter* g_printer;
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
33
devices/Printers/Printer.cpp
Normal file
33
devices/Printers/Printer.cpp
Normal file
@ -0,0 +1,33 @@
|
||||
//---------------------------------------------------------------------------
|
||||
//#pragma hdrstop
|
||||
|
||||
#include "stdafx.h"
|
||||
#ifdef _WINDOWS
|
||||
#include <Math.h>
|
||||
#else
|
||||
#include <math.h>
|
||||
#endif
|
||||
|
||||
#include "Printer.h"
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//#pragma package(smart_init)
|
||||
//---------------------------------------------------------------------------
|
||||
typedef unsigned int uint4;
|
||||
//---------------------------------------------------------------------------
|
||||
CPrinter::CPrinter()
|
||||
{
|
||||
m_Dots=0;
|
||||
m_LastErrorCode=0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
CPrinter::~CPrinter()
|
||||
{
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//Получить множитель для перевода в целые. если 0 точек после запятой то вернёт 1 иначе кол-во * 10
|
||||
double CPrinter::M()
|
||||
{
|
||||
return pow(10.0f,m_Dots);
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
46
devices/Printers/Printer.h
Normal file
46
devices/Printers/Printer.h
Normal file
@ -0,0 +1,46 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#ifndef CPrinterH
|
||||
#define CPrinterH
|
||||
//---------------------------------------------------------------------------
|
||||
#include <string>
|
||||
//---------------------------------------------------------------------------
|
||||
//Контрольно кассавая машина ККМ
|
||||
//Абстрактный класс
|
||||
//---------------------------------------------------------------------------
|
||||
struct MyError
|
||||
{
|
||||
int ErrorCode;
|
||||
std::string ErrorMessage;
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
class CPrinter
|
||||
{
|
||||
private:
|
||||
protected:
|
||||
public:
|
||||
unsigned char m_Dots; //Количество десятичных знаков после зяпятой
|
||||
//std::string m_DevNumber; ///<Идентификатор оборудования
|
||||
int m_LastErrorCode; ///<Код ошибки 0 без ошибок
|
||||
std::string m_LastErrorDescription; ///<Описание последней ошибки
|
||||
|
||||
CPrinter();
|
||||
virtual ~CPrinter();
|
||||
|
||||
double M(); ///<Получить множитель для перевода в целые. если 0 точек после запятой то вернёт 1 иначе кол-во * 10
|
||||
|
||||
virtual bool isOk() = 0; ///<Готов ли к работе принтер (должна быстро выполнятся)
|
||||
virtual bool OpenSerial(std::string ComNumber, int BaudRate) = 0; ///<Соедениться по COM порту
|
||||
virtual MyError PrinterInit() = 0; ///<Инициализация принтера.
|
||||
virtual bool CashInOut(bool test, double sum) = 0; ///<Внесение +, выемка - (test - проверка можно ли выплонить данную функцию)
|
||||
virtual bool GetCashSum(double& sum) = 0; ///<Получить сумму наличности в кассе.
|
||||
//virtual int Beep(int Hz,int mSec) = 0; ///<Звуковой сигнал
|
||||
virtual MyError PrintZReport() = 0; ///<Печатать дневной отчёт с гашением
|
||||
virtual MyError PrintXReport() = 0; ///<Печатать дневной отчёт без гашения
|
||||
virtual MyError PrintLine(std::wstring line) = 0; ///<Печатает строку текста (на служебном и на фискальном)
|
||||
virtual int GetLineLength() = 0; //Получить ширину строки чека в символах.
|
||||
virtual MyError PrintDiagnostic() = 0; //Печать диагностической информации
|
||||
|
||||
//virtual void OnExit( wxCommandEvent& event ){ event.Skip(); }
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
BIN
devices/Printers/Printer.obj
Normal file
BIN
devices/Printers/Printer.obj
Normal file
Binary file not shown.
97
devices/Printers/Printer.~cpp
Normal file
97
devices/Printers/Printer.~cpp
Normal file
@ -0,0 +1,97 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#pragma hdrstop
|
||||
|
||||
#include "stdafx.h"
|
||||
|
||||
#include "Printer.h"
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//#pragma package(smart_init)
|
||||
//---------------------------------------------------------------------------
|
||||
typedef unsigned int uint4;
|
||||
//---------------------------------------------------------------------------
|
||||
std::string TransformCode(std::string str)
|
||||
{
|
||||
for(uint4 i=1;i<=str.length();i++)
|
||||
{
|
||||
switch(str[i])
|
||||
{
|
||||
case '<27>': str[i]=(char)0x80; break;
|
||||
case '<27>': str[i]=(char)0x81; break;
|
||||
case '<27>': str[i]=(char)0x82; break;
|
||||
case '<27>': str[i]=(char)0x83; break;
|
||||
case '<27>': str[i]=(char)0x84; break;
|
||||
case '<27>': str[i]=(char)0x85; break;
|
||||
case '<27>': str[i]=(char)0xF0; break;
|
||||
case '<27>': str[i]=(char)0x86; break;
|
||||
case '<27>': str[i]=(char)0x87; break;
|
||||
case '<27>': str[i]=(char)0x88; break;
|
||||
case '<27>': str[i]=(char)0x89; break;
|
||||
case '<27>': str[i]=(char)0x8A; break;
|
||||
case '<27>': str[i]=(char)0x8B; break;
|
||||
case '<27>': str[i]=(char)0x8C; break;
|
||||
case '<27>': str[i]=(char)0x8D; break;
|
||||
case '<27>': str[i]=(char)0x8E; break;
|
||||
case '<27>': str[i]=(char)0x8F; break;
|
||||
case '<27>': str[i]=(char)0x90; break;
|
||||
case '<27>': str[i]=(char)0x91; break;
|
||||
case '<27>': str[i]=(char)0x92; break;
|
||||
case '<27>': str[i]=(char)0x93; break;
|
||||
case '<27>': str[i]=(char)0x94; break;
|
||||
case '<27>': str[i]=(char)0x95; break;
|
||||
case '<27>': str[i]=(char)0x96; break;
|
||||
case '<27>': str[i]=(char)0x97; break;
|
||||
case '<27>': str[i]=(char)0x98; break;
|
||||
case '<27>': str[i]=(char)0x99; break;
|
||||
case '<27>': str[i]=(char)0x9A; break;
|
||||
case '<27>': str[i]=(char)0x9B; break;
|
||||
case '<27>': str[i]=(char)0x9C; break;
|
||||
case '<27>': str[i]=(char)0x9D; break;
|
||||
case '<27>': str[i]=(char)0x9E; break;
|
||||
case '<27>': str[i]=(char)0x9F; break;
|
||||
case '<27>': str[i]=(char)0xA0; break;
|
||||
case '<27>': str[i]=(char)0xA1; break;
|
||||
case '<27>': str[i]=(char)0xA2; break;
|
||||
case '<27>': str[i]=(char)0xA3; break;
|
||||
case '<27>': str[i]=(char)0xA4; break;
|
||||
case '<27>': str[i]=(char)0xA5; break;
|
||||
case '<27>': str[i]=(char)0xF1; break;
|
||||
case '<27>': str[i]=(char)0xA6; break;
|
||||
case '<27>': str[i]=(char)0xA7; break;
|
||||
case '<27>': str[i]=(char)0xA8; break;
|
||||
case '<27>': str[i]=(char)0xA9; break;
|
||||
case '<27>': str[i]=(char)0xAA; break;
|
||||
case '<27>': str[i]=(char)0xAB; break;
|
||||
case '<27>': str[i]=(char)0xAC; break;
|
||||
case '<27>': str[i]=(char)0xAD; break;
|
||||
case '<27>': str[i]=(char)0xAE; break;
|
||||
case '<27>': str[i]=(char)0xAF; break;
|
||||
case '<27>': str[i]=(char)0xE0; break;
|
||||
case '<27>': str[i]=(char)0xE1; break;
|
||||
case '<27>': str[i]=(char)0xE2; break;
|
||||
case '<27>': str[i]=(char)0xE3; break;
|
||||
case '<27>': str[i]=(char)0xE4; break;
|
||||
case '<27>': str[i]=(char)0xE5; break;
|
||||
case '<27>': str[i]=(char)0xE6; break;
|
||||
case '<27>': str[i]=(char)0xE7; break;
|
||||
case '<27>': str[i]=(char)0xE8; break;
|
||||
case '<27>': str[i]=(char)0xE9; break;
|
||||
case '<27>': str[i]=(char)0xEA; break;
|
||||
case '<27>': str[i]=(char)0xEB; break;
|
||||
case '<27>': str[i]=(char)0xEC; break;
|
||||
case '<27>': str[i]=(char)0xED; break;
|
||||
case '<27>': str[i]=(char)0xEE; break;
|
||||
case '<27>': str[i]=(char)0xEF; break;
|
||||
}
|
||||
}
|
||||
return str;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
CPrinter::CPrinter()
|
||||
{
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
CPrinter::~CPrinter()
|
||||
{
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
16
devices/Printers/Printer.~h
Normal file
16
devices/Printers/Printer.~h
Normal file
@ -0,0 +1,16 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#ifndef CPrinterH
|
||||
#define CPrinterH
|
||||
//---------------------------------------------------------------------------
|
||||
#include <string>
|
||||
//---------------------------------------------------------------------------
|
||||
class CPrinter
|
||||
{
|
||||
private:
|
||||
protected:
|
||||
public:
|
||||
CPrinter();
|
||||
virtual ~CPrinter();
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
BIN
devices/Printers/TG2480/TG2480_eng-1-00-080220.pdf
Normal file
BIN
devices/Printers/TG2480/TG2480_eng-1-00-080220.pdf
Normal file
Binary file not shown.
0
devices/Printers/stdafx.h
Normal file
0
devices/Printers/stdafx.h
Normal file
@ -0,0 +1,6 @@
|
||||
[InternetShortcut]
|
||||
URL=http://termoprinter.org.ua/Downloads/unisystem/UNS_TP_commands.pdf
|
||||
IDList=
|
||||
HotKey=0
|
||||
IconFile=C:\Users\Igor\AppData\Local\Mozilla\Firefox\Profiles\60g1oq0j.default\shortcutCache\R4ftq2tUbCSITdcPnnk5vw==.ico
|
||||
IconIndex=0
|
||||
Reference in New Issue
Block a user