Files
Tools_CPP/devices/Printers/FP300KZ/FP300KZ1C.h
2024-11-01 12:23:13 +05:00

120 lines
7.6 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//---------------------------------------------------------------------------
#ifndef FP300KZ1CH
#define FP300KZ1CH
//---------------------------------------------------------------------------
#include "FP300KZ.h"
//#include "../Printer.h"
//#include "../../ComPort.h"
#include <stdTools.h>
#include <structs.h>
#include <string>
//---------------------------------------------------------------------------
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<LDDevice*> *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