#include "Ticket.h" #include Ticket::Ticket(TICKET_VARIANT ticketVariant, QObject *parent ) : QObject(parent) , ticketVariant(ticketVariant) , _hasTemplateDynData(false) { } TICKET_VARIANT Ticket::variant() { return this->ticketVariant; } QList * 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 & templateList, const QHash & 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 & 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; }