MOBILISIS-Calculator/library/include/mobilisis/tariff_permit_type.h

134 lines
3.8 KiB
C

#ifndef TARIFF_PERMIT_TYPE_H_INCLUDED
#define TARIFF_PERMIT_TYPE_H_INCLUDED
#include <QString>
enum class PERMIT_TYPE : quint8 {
SHORT_TERM_PARKING,
DAY_TICKET,
SZEGED_START,
SZEGED_STOP,
DAY_TICKET_ADULT,
DAY_TICKET_TEEN,
DAY_TICKET_CHILD,
FOOD_STAMP,
INVALID
};
struct PermitType {
PERMIT_TYPE m_permitType;
PermitType() { m_permitType = PERMIT_TYPE::INVALID; }
PermitType(int permitType) {
switch(permitType) {
case 0:
m_permitType = PERMIT_TYPE::SHORT_TERM_PARKING;
break;
case 1:
m_permitType = PERMIT_TYPE::DAY_TICKET;
break;
case 2:
m_permitType = PERMIT_TYPE::SZEGED_START;
break;
case 3:
m_permitType = PERMIT_TYPE::SZEGED_STOP;
break;
case 4:
m_permitType = PERMIT_TYPE::DAY_TICKET_ADULT;
break;
case 5:
m_permitType = PERMIT_TYPE::DAY_TICKET_TEEN;
break;
case 6:
m_permitType = PERMIT_TYPE::DAY_TICKET_CHILD;
break;
case 7:
m_permitType = PERMIT_TYPE::FOOD_STAMP;
break;
default:
m_permitType = PERMIT_TYPE::INVALID;
}
}
PermitType(PERMIT_TYPE permitType) : m_permitType(permitType) {}
void set(PERMIT_TYPE p) { m_permitType = p; }
PERMIT_TYPE get() const { return m_permitType; }
operator PERMIT_TYPE() const { return m_permitType; }
operator int () const {
switch(m_permitType) {
case PERMIT_TYPE::SHORT_TERM_PARKING:
return 0;
case PERMIT_TYPE::DAY_TICKET:
return 1;
case PERMIT_TYPE::SZEGED_START:
return 2;
case PERMIT_TYPE::SZEGED_STOP:
return 3;
case PERMIT_TYPE::DAY_TICKET_ADULT:
return 4;
case PERMIT_TYPE::DAY_TICKET_CHILD:
return 5;
case PERMIT_TYPE::DAY_TICKET_TEEN:
return 6;
case PERMIT_TYPE::FOOD_STAMP:
return 7;
default:
break;
}
return 7;
}
operator QString () {
switch(m_permitType) {
case PERMIT_TYPE::DAY_TICKET:
return QString("DAY_TICKET");
case PERMIT_TYPE::DAY_TICKET_ADULT:
return QString("DAY_TICKET_ADULT");
case PERMIT_TYPE::DAY_TICKET_CHILD:
return QString("DAY_TICKET_CHILD");
case PERMIT_TYPE::DAY_TICKET_TEEN:
return QString("DAY_TICKET_TEEN");
case PERMIT_TYPE::SHORT_TERM_PARKING:
return QString("SHORT_TERM_PARKING");
case PERMIT_TYPE::SZEGED_START:
return QString("SZEGED_START");
case PERMIT_TYPE::SZEGED_STOP:
return QString("SZEGED_STOP");
case PERMIT_TYPE::FOOD_STAMP:
return QString("FOOD_STAMP");
default:
break;
}
return QString("INVALID");
}
operator QString () const {
switch(m_permitType) {
case PERMIT_TYPE::DAY_TICKET:
return QString("DAY_TICKET");
case PERMIT_TYPE::DAY_TICKET_ADULT:
return QString("DAY_TICKET_ADULT");
case PERMIT_TYPE::DAY_TICKET_CHILD:
return QString("DAY_TICKET_CHILD");
case PERMIT_TYPE::DAY_TICKET_TEEN:
return QString("DAY_TICKET_TEEN");
case PERMIT_TYPE::SHORT_TERM_PARKING:
return QString("SHORT_TERM_PARKING");
case PERMIT_TYPE::SZEGED_START:
return QString("SZEGED_START");
case PERMIT_TYPE::SZEGED_STOP:
return QString("SZEGED_STOP");
case PERMIT_TYPE::FOOD_STAMP:
return QString("FOOD_STAMP");
default:
break;
}
return QString("INVALID");
}
};
#endif // TARIFF_PERMIT_TYPE_H_INCLUDED