DCPlugin/src/ATBAPP/support/Ticket.cpp

298 lines
8.4 KiB
C++

#include "Ticket.h"
#include <QDebug>
Ticket::Ticket(TICKET_VARIANT ticketVariant, QObject *parent )
: QObject(parent)
, ticketVariant(ticketVariant)
, _hasTemplateDynData(false)
{
}
TICKET_VARIANT Ticket::variant()
{
return this->ticketVariant;
}
QList<quint8> * Ticket::templateList()
{
return &(this->_templateList);
}
bool Ticket::hasTemplateDynData()
{
return this->_hasTemplateDynData;
}
quint8 Ticket::getCurrentProcessedTemplateNumber()
{
return this->currentProcessedTemplateNumber;
}
void Ticket::setCurrentTemplateProcessed()
{
this->currentProcessedTemplateNumber++;
}
bool Ticket::initNew(TICKET_VARIANT ticketVariant, const QList<quint8> & templateList, const QHash<QString, QVariant> & printingData)
{
this->clear();
this->ticketVariant = ticketVariant;
this->printingData = printingData;
this->_templateList = templateList;
this->currentProcessedTemplateNumber = 0;
// DEBUG
qCritical() << "Ticket::initNew():";
qCritical() << " -> " << ticketVariant;
int multiplicatorInt = 1; // default
quint8 headerTemplate;
quint8 multiTemplate;
quint8 footerTemplate;
switch (this->ticketVariant) {
case TICKET_VARIANT::START_RECEIPT:
if (templateList.isEmpty()) {
this->_templateList << 21 << 22 << 23;
}
else {
this->_templateList = templateList;
}
break;
case TICKET_VARIANT::STOP_RECEIPT:
if (templateList.isEmpty()) {
this->_templateList << 24 << 25 << 26;
}
else {
this->_templateList = templateList;
}
break;
case TICKET_VARIANT::FINE_PAYMENT:
if (templateList.isEmpty()) {
this->_templateList << 24 << 25 << 26;
}
else {
this->_templateList = templateList;
}
break;
case TICKET_VARIANT::FREE_TICKET:
if (templateList.isEmpty()) {
this->_templateList << 24 << 25 << 26;
}
else {
this->_templateList = templateList;
}
break;
case TICKET_VARIANT::FOOD_STAMP:
if (printingData.contains("dyn1_list")) {
this->_hasTemplateDynData = true;
this->dyn1List = printingData["dyn1_list"].toStringList();
this->dyn2List = printingData["dyn2_list"].toStringList();
}
if (templateList.isEmpty()) {
headerTemplate = 0;
multiTemplate = 1;
footerTemplate = 2;
}
else
if (templateList.size() == 2) {
headerTemplate = 0;
multiTemplate = templateList.at(0);
footerTemplate = templateList.at(1);
}
else
if (templateList.size() == 3) {
headerTemplate = templateList.at(0);
multiTemplate = templateList.at(1);
footerTemplate = templateList.at(2);
}
else {
headerTemplate = 0;
multiTemplate = 1;
footerTemplate = 2;
}
// header is optional:
if (headerTemplate != 0) {
this->_templateList << headerTemplate;
}
if (printingData.contains("multiplicator")) {
multiplicatorInt = printingData["multiplicator"].toInt();
for (int i = 1; i < multiplicatorInt; i++) {
this->_templateList << multiTemplate;
}
// last template:
this->_templateList << footerTemplate;
}
else {
this->_templateList = templateList;
}
// DEBUG FOOD_STAMP:
qCritical() << " --> printingData[\"multiplicator\"]" << multiplicatorInt;
break;
default:
this->_templateList = templateList;
}
// DEBUG
QString templateListString;
for (int i =0; i < this->_templateList.size(); ++i) {
templateListString.append(QString(" %1").arg(this->_templateList.at(i)));
}
qCritical() << " -> templates: " << templateListString;
return true;
}
void Ticket::clear()
{
this->ticketVariant = TICKET_VARIANT::PARKING_TICKET;
this->printingData.clear();
this->_templateList.clear();
this->errorCode.clear();
this->errorDescription.clear();
this->_hasTemplateDynData = false;
this->dyn1List.clear();
this->dyn1List.clear();
}
QString Ticket::getErrorCode() { return this->errorCode; }
QString Ticket::getErrorDescription() { return this->errorDescription; }
/**
*/
QStringList Ticket::getDyn1List()
{
return this->dyn1List;
}
QStringList Ticket::getDyn2List()
{
return this->dyn2List;
}
QHash<QString, QVariant> & Ticket::getPrintingData()
{
return this->printingData;
}
/************************************************************************************************
* operator
*
*/
QDebug operator<<(QDebug debug, TICKET_VARIANT ticketVariant)
{
switch (ticketVariant) {
case TICKET_VARIANT::PARKING_TICKET:
debug << "TICKET_VARIANT::PARKING_TICKET";
break;
case TICKET_VARIANT::PARKING_TICKET_CAR:
debug << "TICKET_VARIANT::PARKING_TICKET_CAR";
break;
case TICKET_VARIANT::PARKING_TICKET_CAMPER:
debug << "TICKET_VARIANT::PARKING_TICKET_CAMPER";
break;
case TICKET_VARIANT::PARKING_TICKET_VAN:
debug << "TICKET_VARIANT::PARKING_TICKET_VAN";
break;
case TICKET_VARIANT::DAY_TICKET:
debug << "TICKET_VARIANT::DAY_TICKET";
break;
case TICKET_VARIANT::DAY_TICKET_CHILD:
debug << "TICKET_VARIANT::DAY_TICKET_CHILD";
break;
case TICKET_VARIANT::DAY_TICKET_TEEN:
debug << "TICKET_VARIANT::DAY_TICKET_TEEN";
break;
case TICKET_VARIANT::DAY_TICKET_ADULT:
debug << "TICKET_VARIANT::DAY_TICKET_ADULT";
break;
case TICKET_VARIANT::DAY_TICKET_CAR:
debug << "TICKET_VARIANT::DAY_TICKET_CAR";
break;
case TICKET_VARIANT::DAY_TICKET_CAMPER:
debug << "TICKET_VARIANT::DAY_TICKET_CAMPER";
break;
case TICKET_VARIANT::DAY_TICKET_VAN:
debug << "TICKET_VARIANT::DAY_TICKET_VAN";
break;
case TICKET_VARIANT::FIXED_PRICE_1:
debug << "TICKET_VARIANT::FIXED_PRICE_1";
break;
case TICKET_VARIANT::FIXED_PRICE_2:
debug << "TICKET_VARIANT::FIXED_PRICE_2";
break;
case TICKET_VARIANT::FIXED_PRICE_3:
debug << "TICKET_VARIANT::FIXED_PRICE_3";
break;
case TICKET_VARIANT::FIXED_PRICE_4:
debug << "TICKET_VARIANT::FIXED_PRICE_4";
break;
case TICKET_VARIANT::FIXED_PRICE_5:
debug << "TICKET_VARIANT::FIXED_PRICE_5";
break;
case TICKET_VARIANT::FIXED_PRICE_6:
debug << "TICKET_VARIANT::FIXED_PRICE_6";
break;
case TICKET_VARIANT::FIXED_PRICE_7:
debug << "TICKET_VARIANT::FIXED_PRICE_7";
break;
case TICKET_VARIANT::FIXED_PRICE_8:
debug << "TICKET_VARIANT::FIXED_PRICE_8";
break;
case TICKET_VARIANT::FIXED_PRICE_9:
debug << "TICKET_VARIANT::FIXED_PRICE_9";
break;
case TICKET_VARIANT::FIXED_PRICE_10:
debug << "TICKET_VARIANT::FIXED_PRICE_10";
break;
case TICKET_VARIANT::RECEIPT:
debug << "TICKET_VARIANT::RECEIPT";
break;
case TICKET_VARIANT::ERROR_RECEIPT:
debug << "TICKET_VARIANT::ERROR_RECEIPT";
break;
case TICKET_VARIANT::START_RECEIPT:
debug << "TICKET_VARIANT::START_RECEIPT";
break;
case TICKET_VARIANT::STOP_RECEIPT:
debug << "TICKET_VARIANT::STOP_RECEIPT";
break;
case TICKET_VARIANT::FINE_PAYMENT:
debug << "TICKET_VARIANT::FINE_PAYMENT";
break;
case TICKET_VARIANT::FOOD_STAMP:
debug << "TICKET_VARIANT::FOOD_STAMP";
break;
case TICKET_VARIANT::FREE_TICKET:
debug << "TICKET_VARIANT::FREE_TICKET";
break;
case TICKET_VARIANT::NO_TICKET:
debug << "TICKET_VARIANT::NO_TICKET";
break;
case TICKET_VARIANT::INVALID:
debug << "TICKET_VARIANT::INVALID";
break;
}
return debug;
}