#include "ticket.h" Ticket::Ticket() : m_status(Ticket::s[NOT_INITIALIZED]) , m_validFrom() , m_validUntil() , m_durationMinutesNetto(0) , m_durationMinutesBrutto(0) , m_price() { } Ticket::Ticket(QDateTime const &s, QDateTime const &e, int durationMinutesNetto, int durationMinutesBrutto, uint32_t price, Ticket::Status status) : m_status(status) , m_validFrom(s) , m_validUntil(e) , m_durationMinutesNetto(durationMinutesNetto) , m_durationMinutesBrutto(durationMinutesBrutto) , m_price(price) { } Ticket::Status Ticket::setStatus(Status status) { Status old = m_status; m_status = status; return old; } Ticket::Status Ticket::getStatus() const { return m_status; } void Ticket::setValidFrom(QDateTime const &validFrom) { m_validFrom = validFrom; } void Ticket::setValidUntil(QDateTime const &validUntil) { m_validUntil = validUntil; } QDateTime Ticket::getValidFrom() const { if (std::get(m_status) == VALID) { return m_validFrom; } return QDateTime(); } QDateTime Ticket::getValidUntil() const { if (std::get(m_status) == VALID) { return m_validUntil; } return QDateTime(); } uint32_t Ticket::getPrice() const { return m_price; } void Ticket::setPrice(uint32_t price) { m_price = price; } Ticket::operator QString() { QStringList status; status << QString("**********************"); status << QString("Status ............. : %1 (%2)") .arg(std::get<0>(m_status)) .arg(std::get<2>(m_status)); status << QString("Valid from ......... : %1").arg(m_validFrom.toString(Qt::ISODate)); status << QString("Valid until ........ : %1").arg(m_validUntil.toString(Qt::ISODate)); status << QString("Duration (netto) ... : %1").arg(m_durationMinutesNetto); status << QString("Duration (brutto)... : %1").arg(m_durationMinutesBrutto); status << QString("Price .............. : %1").arg(m_price); status << QString("**********************"); return status.join('\n'); } QDebug operator<<(QDebug debug, Ticket::Status const &status) { QDebugStateSaver saver(debug); debug << "Ticket-Status: " << std::get<1>(status) << "(" << std::get<2>(status) << ")"; return debug; }