calculate_parking/calculate_parking_tickets/calculate_parking_tickets_day.h

86 lines
2.0 KiB
C++

#ifndef CALCULATE_PARKING_TICKETS_DAY_H_INCLUDED
#define CALCULATE_PARKING_TICKETS_DAY_H_INCLUDED
#include "calculate_parking_tickets_global.h"
#include "calculate_parking_tickets_tariff_step.h"
#include "calculate_parking_tickets_tariff.h"
#include "calculate_parking_tickets_utils.h"
#include <QTime>
#include <QVector>
#include <QPair>
#include <cinttypes>
#include <array>
struct DayInternal {
};
struct parking_tariff_t;
template <class T>
struct Day {
static bool price(parking_tariff_t const * /*tariff*/,
QTime const & /*time*/,
uint32_t * /*price_units*/) {
// minute_t const minute = time.hour()*60 + time.minute();
// for (int i = 0; i < MIN_PER_DAY; ++i) {
//if (m_tariffSteps[i].isValid()) {
//}
//}
return true;
}
protected:
//std::array<TariffStep, MIN_PER_DAY> m_tariffSteps;
#if 0
static bool price(parking_tariff_t const *tariff,
QTime const &time, uint32_t *price_units, int dayIndex) {
minute_t const minute = time.hour()*60 + time.minute();
for (int i = 0; i < tariff->m_tariffSteps[dayIndex].size(); ++i) {
//if (minute >= tariff->m_tariff[dayIndex][i].first) {
// *price_units += tariff->m_tariff[dayIndex][i].second;
// return true;
//}
}
return true;
// return false;
}
#endif
};
struct Holiday : Day<Holiday> {
enum { dayIndex = 0 };
};
struct Monday : Day<Monday> {
enum { dayIndex = Qt::Monday };
};
struct Tuesday : Day<Tuesday> {
enum { dayIndex = Qt::Tuesday };
};
struct Wednesday : Day<Wednesday> {
enum { dayIndex = Qt::Wednesday };
};
struct Thursday : Day<Thursday> {
enum { dayIndex = Qt::Thursday };
};
struct Friday : Day<Friday> {
enum { dayIndex = Qt::Friday };
};
struct Saturday : Day<Saturday> {
enum { dayIndex = Qt::Saturday };
};
struct Sunday : Day<Sunday> {
enum { dayIndex = Qt::Sunday };
};
#endif // CALCULATE_PARKING_TICKETS_DAY_H_INCLUDED