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

90 lines
3.1 KiB
C++

//---------------------------------------------------------------------------
#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;
//---------------------------------------------------------------------------
//Ïðîäàâàåìûé òîâàð
class Goods
{
private:
public:
WideString name; //Íàçâàíèå òîâàðà
double price; //Öåíà çà åäåíèöó
long count; //Êîëè÷åñòâî
long VatInfo; //Íîìåð íàëîãîâîé ñòàâêè èç ñïðàâî÷íèêà
Goods(WideString name,double price, long count,long VatInfo){this->name=name; this->price=price; this->count=count; this->VatInfo=VatInfo; };
};
//---------------------------------------------------------------------------
//Îáâ¸ðòêà äëÿ OPOS ôèñêàëüíîãî ïðèíòåðà
class PrinterOPOS
{
private:
bool Crashed;
TOPOSFiscalPrinter *fp;
long FState;
TList* FListGoods;
public:
AnsiString HeadLine; //Ïåðâàÿ ñòðîêà â ÷åêå "Îïëàòà çà óñëóãè âîäîñíàáæåíèÿ"
long CheckId; //Ñêîëüêî ðàñïå÷àòàëè ÷åêîâ íà äàííîì òåðìèíàëå
bool TestMode;
bool setTrainingMode(bool val);
bool getTrainingMode();
PrinterOPOS(TComponent* AOwner);
virtual ~PrinterOPOS();
void LoadSetup();
void SaveSetup();
bool Start(); //Ñîåäåíèòüñÿ ïî COM ïîðòó è ïðîèíèöèàëèçèðîâàòü ïðèíòåð
bool PrintCheck(bool sales, int check); //Ïå÷àòü ÷åêà
bool SaveCheck(int CheckId); //Ñîõðàíåíèå ÷åêà äëÿ ïîñëåäóþùåé ðàñïå÷àòêè
bool deleteCheck(int CheckId); //Óäàëåíèå ÷åêà èç áàçû
int getNextCheckId();
bool PrintLine(WideString line);
void addGoods(Goods* goods);
void ClearGoods();
int getGoodsPrice();
void Cut(); //Îòðåçàòü áóìàãó
int GetState(); //0 - Íåò îøèáîê ãîòîâ ê ïå÷àòè ÷åêà
bool isOk(); //Ïðîâåðêà ðàáîòîñïîñîáíîñòè ïðèíòåðà
AnsiString GetStatusDescription(long StatusCode); //Îïèñàíèå ñòàòóñà
AnsiString getLastError(long* err); //Ïîëó÷èòü êîä ïîñëåäíåé îøèáêè
AnsiString getLastError(); //Ïîëó÷èòü êîä ïîñëåäíåé îøèáêè
TDateTime getDateOpenShift(); //Ïîëó÷èòü äàòó îòêðûòèÿ ñìåíû
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();//Ñóììà â êàññà ñ ïðîøëîãî Z îò÷¸òà
bool PrintZReport(); //Ïå÷àòü îò÷¸òà è çàêðûòèå ñìåíû
void PrintXReport(); //Ïå÷àòü ñóòî÷íîãî îò÷¸òà áåç çàêðûòèÿ ñìåíû
bool OpenShift(); //Îòêðûòèå ñìåíû
bool DayOpened(); //Îòðûòà ëè ñìåíà
bool setNalog(long n,float stavka); //Çàïîëíåíèå ìàññèâà ñ ñóììàìè ïî íàëîãîâûì ñòàâêàì
void PrintCheck(TStringList* Text){}; //Print lines and cut
void Push(){}; //Â OPOS äðàéâåðå íåò òàêîé ôóíêöèè
};
//---------------------------------------------------------------------------
extern PrinterOPOS* printerOPOS;
//---------------------------------------------------------------------------
#endif