MOBILISIS-Calculator/library/src/ticket.cpp
2023-12-01 14:24:51 +01:00

86 lines
2.3 KiB
C++

#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<CODE>(m_status) == VALID) {
return m_validFrom;
}
return QDateTime();
}
QDateTime Ticket::getValidUntil() const {
if (std::get<CODE>(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;
}