//--------------------------------------------------------------------------- #ifndef FP300KZ1CH #define FP300KZ1CH //--------------------------------------------------------------------------- #include "FP300KZ.h" //#include "../Printer.h" //#include "../../ComPort.h" #include #include #include //--------------------------------------------------------------------------- struct LDDevice //Логическое устройство { int Number; //Номер или id устройства std::string Name; //Имя ЛУ int ComNumber; //Номер ком-порта ЛУ int BaudRate; //Скорость работы ЛУ, в бодах или в виде индекса (индекс 0 соответствует скорости 1200 бод) std::string ComputerName; //Имя компьютера, на котором установлено физическое устройство int TimeOut; //Таймаут ожидания ответа от ЛУ std::string FrType; //Тип ФР, соответствующий добавляемому ЛУ }; //--------------------------------------------------------------------------- //Специальный класс 1с драйвера class FP300KZ1C : public FP300KZ { //private: public: TSimpleList *ListLDDevice; //список устройств //SProp* PropMas; int StringQuantity; //На сколько строк двигать бумагу int StringNumber; //Для изменения заголовока чека и хвоста bool ReportType; //Полный либо сокращённый фискальный отчёт std::string BarCode; //("ШтрихКод") для последующей печати std::string Date;//("Дата") "DD-MM-YYYY" дата в ККМ, получаемое методом GETECRSTATUS std::string Time; //Время "HH:MM:SS" TIMESTR //std::string TimeStr; //ВРЕМЯСТРОКА тоже самое что и Time int Department; //Отдел bool Absolute; double Discount;//СКИДКА double Change; //Сдача только чтение // float DiscountInvertor; //ЗНАКСКИДКИ (умнож на скидку) int DocumentNumber; //НОМЕРДОКУМЕНТА int OperatorNumber; //НОМЕРОПЕРАТОРА double Price; //ЦЕНА double Summ1,Summ2,Summ3,Summ4,Summ5,Summ6,Summ7,Summ8; double Quantity; //КОЛИЧЕСТВО //int ResultCode; //РЕЗУЛЬТАТ выполнения последней команды std::string RNN,RNM; //РНМ см ПОЛУЧИТЬДЛИННЫЕЗАВОДСКОЙНОМЕРИРНМ() std::string ROUGHVALVE;//ГРУБЫЙКЛАПАН Пустая строка //std::string SerialNumber; //SERIALNUMBER ЗАВОДСКОЙНОМЕР (смотри: PrinterNumber) std::string StringHead; std::string StringTail; std::string StringForPrinting; // СТРОКАДЛЯПЕЧАТИ void setStringForPrinting(std::string str); double Tax1, Tax2, Tax3, Tax4, Tax5; // (НАЛОГ1, НАЛОГ2, НАЛОГ3, НАЛОГ4, НАЛОГ5) bool Open; //Открыт фискальный или служебный чек int Items; //Количество зарегистрированных продаж в текущем или последнем фискальном чеке. double Amount; //Сумма последнего фискального чека double Tender; //Сумма оплаты текущего или последнего чека double getCashIn(); //float CashIn; //КэшИн Float, чтение/запись, используется как показатель суммы внесения после выполенния опереции CASHINCOME (ВНЕСЕНИЕ), CASHOUTCOME (ВЫПЛАТА) и покупок/продаж double getCashOut(); //float CashOut; //КэшАут Float, чтение/запись, используется как показатель суммы выплат после выполенния опереции CASHINCOME (ВНЕСЕНИЕ), CASHOUTCOME (ВЫПЛАТА) double getCashSum(); //float CashSum; //КэшСумма Float, чтение/запись, используется как показатель суммы наличности в кассе после выполенния опереции CASHINCOME (ВНЕСЕНИЕ), CASHOUTCOME (ВЫПЛАТА) и покупок/продаж int getSessionSec(); std::string getStatuses(); //int TimeOut; //ТАЙМАУТПРИЕМАБАЙТА std::string FIRSTSESSIONDATE; //Указывает дату начала для печати отчета методом FISCALREPORTFORDATESRANGE (ФИСКАЛЬНЫЙОТЧЁТПОДИАПАЗОНУДАТ) std::string LASTSESSIONDATE; //Указывает дату окончания для печати отчета методом FISCALREPORTFORDATESRANGE (ФИСКАЛЬНЫЙОТЧЁТПОДИАПАЗОНУДАТ) int FirstSessionNumber; //Указывает начальную смену для печати отчета методом FISCALREPORTFORSESSIONRANGE (ФИСКАЛЬНЫЙОТЧЁТПОДИАПАЗОНУСМЕН) int LastSessionNumber; //Указывает конечную смену для печати отчета методом FISCALREPORTFORSESSIONRANGE (ФИСКАЛЬНЫЙОТЧЁТПОДИАПАЗОНУСМЕН) int LDIndex; //ИНДЕКСЛУ Integer, чтение/запись, содержит текущее выбранное логическое устройство int LDNumber; //НОМЕРЛУ Integer, чтение/запись, содержит текущее выбранное логическое устройство std::string LDName; //ИМЯЛУ Строка, чтение/запись, содержит имя текущего логического устройства. По-умолчанию инициализируется строкой «Устройство №N», где N — порядковый номер устройства (начиная с 1) //std::string ECRFlafs; //ФЛАГИККМ Строка, чтение, содержит полный развернутый статус ККМ в виде строки размером 6*8 байт, состоящей из символов '0' или '1', позволяющей получить любую информацию о текущем статусе ККМ. Строка состояния соответствует побитному описанию статуса ФР Порт. Заполняется применением метода GETECRSTATUS (ПОЛУЧИТЬСОСТОЯНИЕККМ) int LineNumber; //НОМЕРЛИНИИ чтение/запись, задает номер строки для загрузки в качестве графического логотипа методом LOADLINEDATA (ЗАГРУЗКАГРАФИКИ) std::string LineData; //ГРАФИЧЕСКАЯИНФОРМАЦИЯ Cтрока, чтение/запись, задает содержимое загружаемой строки шрафического логотипа методом LOADLINEDATA (ЗАГРУЗКАГРАФИКИ) // float TaxA, TaxB, TaxC, TaxD, TaxE; //(СУММАА, СУММАБ, СУММАВ, СУММАГ) Float, чтние, содержит сумму накоплений в кассе за смену (до снятия Z-отчета) по налоговым ставкам A, B, C, D. Сумма может быть получена вызовом метода (GETSUMS (СУММАНАКОПЛЕНИЙ)) std::string PayMode; //ТИПОПЛАТЫ Задает тип оплаты, используемый при оплате и закрытии чека. Может быть указан один из следующих типов: ‘P’ – Оплата наличными; ‘N’ – Оплата в кредит; ‘C’ – Оплата чеком; ‘D’ – Оплата дебитной картой ‘I’ - Программируемый тип оплаты 1 ‘J’ - Программируемый тип оплаты 2 ‘K’ - Программируемый тип оплаты 3 ‘L’ - Программируемый тип оплаты 4 Примечание: по-умолчанию (если свойство не проинициализировано) используется оплата наличными. //Перременные для работы с логическим устройством int ActiveLD; //Активное логическое устройство std::string LDComputerName; //ИМЯКОМПЬЮТЕРАЛУ Строка, чтение/запись, задает имя компьютера, на котором установлено физическое устройство ФР. Примечание: В даной версии поддерживается, но не используется. int LDTimeOut; //ТАЙМАУТЛУ Integer, чтение/запись, задает таймаут для текущего ЛУ int LDBaudRate; //СКОРОСТЬОБМЕНАЛУ чтеие/запись, устанавливает или получает текущую скорость обмена с ФР, сохраненную или сохраняемую в ЛУ. Используется методами ENUMLD (ПЕРЕЧИСЛИТЬЛУ), GETPARAMLD (ПОЛУЧИТЬПАРАМЕТРЫЛУ), SETACTIVELD (УСТАНОВИТЬАКТИВНОЕЛУ), SETPARAMLD (УСТАНОВИТЬПАРАМЕТРЫЛУ), int LDComNumber; //COMПОРТЛУ Integer, чтеие/запись, устанавливает или получает текущий порт для обмена с ФР, сохраненный ли сохраняемый в ЛУ. Используется методами ENUMLD (ПЕРЕЧИСЛИТЬЛУ), GETPARAMLD (ПОЛУЧИТЬПАРАМЕТРЫЛУ), SETACTIVELD (УСТАНОВИТЬАКТИВНОЕЛУ), SETPARAMLD (УСТАНОВИТЬПАРАМЕТРЫЛУ), std::string LDFrType; std::string FrType; // //bool PORTLOCKED; //ПОРТЗАБЛОКИРОВАН Boolean, чтение, утсанавливается в True (1), если порт используется и в False (0), если порт свободен bool UseReceiptRibbon; //Печатать либо не печатать при выполнении функций: PrintString, PrintWideString, FeedDocument. bool UseJournalRibbon; //ИспользоватьОперационныйЖурнал 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); //<Добавить логическое устройство bool DelLD(int LDNumber); bool LoadLD(); //Загрузить логические устройства bool SaveLD(); int getLDCount(); //LDCount ОЛИЧЕСТВОЛУ Integer, чтение, содержит количество логических устройств, получаемое методом GETCOUNTLD (ПОЛУЧИТЬКОЛИЧЕСТВОЛУ), изменяется при удалении или добавлении нового ЛУ int GetLastPrintedDocNumber2(); std::string ECRFlags(); //Свойство в виде метода }; //--------------------------------------------------------------------------- #endif