Compare commits
No commits in common. "8cf816c158f4ac803a819a8e95d9aee1dff62a0d" and "0f05a1a784c52ee27816a283073da7f881e765ac" have entirely different histories.
8cf816c158
...
0f05a1a784
@ -45,20 +45,6 @@ public:
|
|||||||
// (e.g. Schoenau/Koenigsee)
|
// (e.g. Schoenau/Koenigsee)
|
||||||
//
|
//
|
||||||
QList<int> GetTimeSteps(Configuration *cfg) const;
|
QList<int> GetTimeSteps(Configuration *cfg) const;
|
||||||
QList<int> GetSteps(Configuration *cfg) const { return GetTimeSteps(cfg); }
|
|
||||||
|
|
||||||
// additional helper functions
|
|
||||||
bool noSpecialDays(Configuration const *cfg) const {
|
|
||||||
return (cfg->SpecialDays.size() == 0) && (cfg->SpecialDaysWorktime.size() == 0);
|
|
||||||
}
|
|
||||||
bool specialDays(Configuration const *cfg) const {
|
|
||||||
return !noSpecialDays(cfg);
|
|
||||||
}
|
|
||||||
bool tariffIs24_7(Configuration const *cfg) const {
|
|
||||||
return (cfg->YearPeriod.size() == 0 &&
|
|
||||||
cfg->SpecialDays.size() == 0 &&
|
|
||||||
cfg->SpecialDaysWorktime.size() == 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// Introduced for PaymentMethod::Steps (e.g. Schoenau)
|
// Introduced for PaymentMethod::Steps (e.g. Schoenau)
|
||||||
@ -66,6 +52,11 @@ private:
|
|||||||
uint32_t GetCostFromDuration(Configuration *cfg, QDateTime const &start, quint64 durationMinutes) const;
|
uint32_t GetCostFromDuration(Configuration *cfg, QDateTime const &start, quint64 durationMinutes) const;
|
||||||
uint32_t GetCostFromDuration(Configuration *cfg, QDateTime const &start, QDateTime const &end) const;
|
uint32_t GetCostFromDuration(Configuration *cfg, QDateTime const &start, QDateTime const &end) const;
|
||||||
|
|
||||||
|
PaymentMethod getPaymentMethodId(Configuration const *cfg);
|
||||||
|
int getMinimalParkingTime(Configuration const *cfg, PaymentMethod methodId);
|
||||||
|
int getMaximalParkingTime(Configuration const *cfg, PaymentMethod methodId);
|
||||||
|
uint32_t getMinimalParkingPrice(Configuration const *cfg, PaymentMethod methodId);
|
||||||
|
|
||||||
Ticket private_GetCostFromDuration(Configuration const* cfg,
|
Ticket private_GetCostFromDuration(Configuration const* cfg,
|
||||||
QDateTime const &start,
|
QDateTime const &start,
|
||||||
int durationMinutes,
|
int durationMinutes,
|
||||||
@ -80,13 +71,7 @@ private:
|
|||||||
|
|
||||||
//
|
//
|
||||||
uint32_t GetPriceForTimeStep(Configuration *cfg, int timeStep) const;
|
uint32_t GetPriceForTimeStep(Configuration *cfg, int timeStep) const;
|
||||||
uint32_t GetPriceForStep(Configuration *cfg, int step) const {
|
|
||||||
return GetPriceForTimeStep(cfg, step);
|
|
||||||
}
|
|
||||||
uint32_t GetDurationForPrice(Configuration *cfg, int price) const;
|
uint32_t GetDurationForPrice(Configuration *cfg, int price) const;
|
||||||
uint32_t GetStepForPrice(Configuration *cfg, int price) const {
|
|
||||||
return GetDurationForPrice(cfg, price);
|
|
||||||
}
|
|
||||||
|
|
||||||
int findWorkTimeRange(QDateTime const &dt,
|
int findWorkTimeRange(QDateTime const &dt,
|
||||||
QScopedArrayPointer<TariffTimeRange> const &worktime,
|
QScopedArrayPointer<TariffTimeRange> const &worktime,
|
||||||
@ -94,6 +79,9 @@ private:
|
|||||||
int findNextWorkTimeRange(QDateTime const &dt,
|
int findNextWorkTimeRange(QDateTime const &dt,
|
||||||
QScopedArrayPointer<TariffTimeRange> const &worktime,
|
QScopedArrayPointer<TariffTimeRange> const &worktime,
|
||||||
size_t size);
|
size_t size);
|
||||||
|
|
||||||
|
uint32_t computeWeekDaysPrice(Configuration const *cfg, PaymentMethod id) const;
|
||||||
|
double computeWeekDaysDurationUnit(Configuration const *cfg, PaymentMethod id) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // CALCULATOR_FUNCTIONS_H_INCLUDED
|
#endif // CALCULATOR_FUNCTIONS_H_INCLUDED
|
||||||
|
@ -21,9 +21,6 @@
|
|||||||
#include "period_year.h"
|
#include "period_year.h"
|
||||||
#include "payment_rate.h"
|
#include "payment_rate.h"
|
||||||
#include "atb_project.h"
|
#include "atb_project.h"
|
||||||
#include "tariff_daily_ticket.h"
|
|
||||||
|
|
||||||
#include <QVector>
|
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace rapidjson;
|
using namespace rapidjson;
|
||||||
@ -44,7 +41,6 @@ public:
|
|||||||
multimap<int, ATBPeriodYear> YearPeriod;
|
multimap<int, ATBPeriodYear> YearPeriod;
|
||||||
multimap<int, ATBWeekDaysWorktime> WeekDaysWorktime;
|
multimap<int, ATBWeekDaysWorktime> WeekDaysWorktime;
|
||||||
multimap<int, ATBPaymentOption> PaymentOption;
|
multimap<int, ATBPaymentOption> PaymentOption;
|
||||||
multimap<int, ATBDailyTicket> DailyTicket;
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Parse JSON string
|
/// Parse JSON string
|
||||||
@ -53,8 +49,7 @@ public:
|
|||||||
/// <returns>Returns operation status bool (OK | FAIL) </returns>
|
/// <returns>Returns operation status bool (OK | FAIL) </returns>
|
||||||
bool ParseJson(Configuration* cfg, const char* json);
|
bool ParseJson(Configuration* cfg, const char* json);
|
||||||
|
|
||||||
ATBPaymentOption const &getPaymentOptions();
|
ATBPaymentOption const & getPaymentOptions();
|
||||||
QVector<ATBDailyTicket> const &getDailyTickets() const;
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
#ifndef MEMBER_TYPE_H_INCLUDED
|
#pragma once
|
||||||
#define MEMBER_TYPE_H_INCLUDED
|
|
||||||
|
|
||||||
enum MemberType
|
enum MemberType
|
||||||
{
|
{
|
||||||
@ -13,11 +12,5 @@ enum MemberType
|
|||||||
WeekDaysWorkTimeType = 0x06,
|
WeekDaysWorkTimeType = 0x06,
|
||||||
SpecialDaysWorktimeType = 0x07,
|
SpecialDaysWorktimeType = 0x07,
|
||||||
SpecialDaysType = 0x08,
|
SpecialDaysType = 0x08,
|
||||||
PeriodYearType = 0x09,
|
PeriodYearType = 0x09
|
||||||
DailyTicketType = 0x0A,
|
};
|
||||||
CustomerType = 0x0B,
|
|
||||||
TimeBaseType = 0x0C,
|
|
||||||
TimeRangeType = 0x0D
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // MEMBER_TYPE_H_INCLUDED
|
|
@ -4,18 +4,15 @@
|
|||||||
class ATBPaymentOption
|
class ATBPaymentOption
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ATBPaymentOption() = default;
|
int pop_id;
|
||||||
|
std::string pop_label;
|
||||||
int pop_id;
|
int pop_payment_method_id;
|
||||||
std::string pop_label;
|
std::string pop_day_end_time;
|
||||||
int pop_payment_method_id;
|
std::string pop_day_night_end_time;
|
||||||
std::string pop_day_end_time;
|
double pop_price_night;
|
||||||
std::string pop_day_night_end_time;
|
double pop_min_time;
|
||||||
double pop_price_night;
|
double pop_max_time;
|
||||||
double pop_min_time;
|
double pop_min_price;
|
||||||
double pop_max_time;
|
int pop_carry_over;
|
||||||
double pop_min_price;
|
|
||||||
int pop_carry_over;
|
|
||||||
int pop_daily_card_price;
|
int pop_daily_card_price;
|
||||||
int pop_business_hours;
|
|
||||||
};
|
};
|
||||||
|
@ -1,21 +0,0 @@
|
|||||||
#ifndef TARIFF_BUSINESS_HOURS_H_INCLUDED
|
|
||||||
#define TARIFF_BUSINESS_HOURS_H_INCLUDED
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Business hours (byte represents payment option id)
|
|
||||||
/// </summary>
|
|
||||||
enum BusinessHours
|
|
||||||
{
|
|
||||||
NoRestriction_24_7 = 0,
|
|
||||||
OnlyWorkingDays = 1, // [Monday-Friday]
|
|
||||||
OnlyWeekDays = 2, // [Monday-Saturday]
|
|
||||||
OnlyWeekEnd = 4, // [Saturday+Sunday]
|
|
||||||
OnlyOfficialHolidays = 8,
|
|
||||||
OnlySpecialDays = 16,
|
|
||||||
OnlySchoolHolidays = 32,
|
|
||||||
SpecialAndSchoolHolidays = 48,
|
|
||||||
OnlyOpenForBusinessDays = 64, // verkaufsoffen
|
|
||||||
NoBusinessHoursDefined = 255
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // TARIFF_BUSINESS_HOURS_H_INCLUDED
|
|
@ -1,41 +0,0 @@
|
|||||||
#ifndef TARIFF_CUSTOMER_H_INCLUDED
|
|
||||||
#define TARIFF_CUSTOMER_H_INCLUDED
|
|
||||||
|
|
||||||
#include <QString>
|
|
||||||
#include <QDebug>
|
|
||||||
#include <QDebugStateSaver>
|
|
||||||
|
|
||||||
struct ATBCustomer {
|
|
||||||
enum class CustomerType {ADULT=1000, CHILD, TEEN};
|
|
||||||
|
|
||||||
ATBCustomer() = default;
|
|
||||||
|
|
||||||
CustomerType cust_type;
|
|
||||||
QString cust_label;
|
|
||||||
|
|
||||||
friend QDebug operator<<(QDebug debug, ATBCustomer const &customer) {
|
|
||||||
QDebugStateSaver saver(debug);
|
|
||||||
|
|
||||||
switch(customer.cust_type) {
|
|
||||||
case ATBCustomer::CustomerType::ADULT:
|
|
||||||
debug.nospace()
|
|
||||||
<< " cust_type: " << "CustomerType::ADULT" << "\n"
|
|
||||||
<< "cust_label: " << customer.cust_label << "\n";
|
|
||||||
break;
|
|
||||||
case ATBCustomer::CustomerType::CHILD:
|
|
||||||
debug.nospace()
|
|
||||||
<< " cust_type: " << "CustomerType::CHILD" << "\n"
|
|
||||||
<< "cust_label: " << customer.cust_label << "\n";
|
|
||||||
break;
|
|
||||||
case ATBCustomer::CustomerType::TEEN:
|
|
||||||
debug.nospace()
|
|
||||||
<< " cust_type: " << "CustomerType::TEEN" << "\n"
|
|
||||||
<< "cust_label: " << customer.cust_label << "\n";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return debug;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // TARIFF_CUSTOMER_H_INCLUDED
|
|
@ -1,82 +0,0 @@
|
|||||||
#ifndef TARIFF_DAILY_TICKET_H_INCLUDED
|
|
||||||
#define TARIFF_DAILY_TICKET_H_INCLUDED
|
|
||||||
|
|
||||||
#include <QString>
|
|
||||||
#include <QDateTime>
|
|
||||||
#include <QDebug>
|
|
||||||
#include <QDebugStateSaver>
|
|
||||||
|
|
||||||
|
|
||||||
#include "tariff_customer.h"
|
|
||||||
#include "tariff_time_range.h"
|
|
||||||
#include "tariff_timebase.h"
|
|
||||||
|
|
||||||
struct ATBDailyTicket {
|
|
||||||
ATBDailyTicket() = default;
|
|
||||||
|
|
||||||
int daily_ticket_payment_option_id;
|
|
||||||
int daily_ticket_unit_id;
|
|
||||||
double daily_ticket_price;
|
|
||||||
|
|
||||||
ATBTimeBase::TimeBaseType daily_ticket_tbase_type;
|
|
||||||
// time base setting for ticket:
|
|
||||||
// absolute: using time stamps
|
|
||||||
// relative: use offsets from
|
|
||||||
// some reference time point,
|
|
||||||
// typically "start time".
|
|
||||||
|
|
||||||
ATBCustomer::CustomerType daily_ticket_clearance_customer_type;
|
|
||||||
// who is allowed to buy the ticket:
|
|
||||||
// list of customer types
|
|
||||||
|
|
||||||
int daily_ticket_weekday_range; // [mon-sun]
|
|
||||||
int daily_ticket_special_day_range;
|
|
||||||
|
|
||||||
|
|
||||||
friend QDebug operator<<(QDebug debug, ATBDailyTicket const &ticket) {
|
|
||||||
QDebugStateSaver saver(debug);
|
|
||||||
|
|
||||||
debug.nospace()
|
|
||||||
<< " daily_ticket_payment_option_id: " << ticket.daily_ticket_payment_option_id << "\n"
|
|
||||||
<< " daily_ticket_unit_id: " << ticket.daily_ticket_unit_id << "\n"
|
|
||||||
<< " daily_ticket_price: " << ticket.daily_ticket_price << "\n";
|
|
||||||
|
|
||||||
switch(ticket.daily_ticket_tbase_type) {
|
|
||||||
case ATBTimeBase::TimeBaseType::ABSOLUTE:
|
|
||||||
debug.nospace()
|
|
||||||
<< " daily_ticket_tbase_type: " << "TimeBaseType::ABSOLUTE" << "\n";
|
|
||||||
break;
|
|
||||||
case ATBTimeBase::TimeBaseType::RELATIVE:
|
|
||||||
debug.nospace()
|
|
||||||
<< " daily_ticket_tbase_type: " << "TimeBaseType::RELATIVE" << "\n";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch(ticket.daily_ticket_clearance_customer_type) {
|
|
||||||
case ATBCustomer::CustomerType::ADULT:
|
|
||||||
debug.nospace()
|
|
||||||
<< "daily_ticket_clearance_customer_type: " << "CustomerType::ADULT" << "\n";
|
|
||||||
break;
|
|
||||||
case ATBCustomer::CustomerType::CHILD:
|
|
||||||
debug.nospace()
|
|
||||||
<< "daily_ticket_clearance_customer_type: " << "CustomerType::CHILD" << "\n";
|
|
||||||
break;
|
|
||||||
case ATBCustomer::CustomerType::TEEN:
|
|
||||||
debug.nospace()
|
|
||||||
<< "daily_ticket_clearance_customer_type: " << "CustomerType::TEEN" << "\n";
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
debug.nospace()
|
|
||||||
<< "daily_ticket_clearance_customer_type: " << "CustomerType::???" << "\n";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
debug.nospace()
|
|
||||||
<< " daily_ticket_weekday_range: " << ticket.daily_ticket_weekday_range << "\n"
|
|
||||||
<< " daily_ticket_special_day_range: " << ticket.daily_ticket_special_day_range << "\n";
|
|
||||||
|
|
||||||
return debug;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // TARIFF_DAILY_TICKET_H_INCLUDED
|
|
@ -16,12 +16,6 @@ public:
|
|||||||
: m_time_from(QTime())
|
: m_time_from(QTime())
|
||||||
, m_time_until(QTime()) {}
|
, m_time_until(QTime()) {}
|
||||||
|
|
||||||
TariffTimeRange(QTime const& from, QTime const &until)
|
|
||||||
: m_time_from(from)
|
|
||||||
, m_time_until(until) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void setTimeRange(QTime const& from, QTime const &until) {
|
void setTimeRange(QTime const& from, QTime const &until) {
|
||||||
m_time_from = from;
|
m_time_from = from;
|
||||||
m_time_until = until;
|
m_time_until = until;
|
||||||
|
@ -1,40 +0,0 @@
|
|||||||
#ifndef TARIFF_TIME_BASE_H_INCLUDED
|
|
||||||
#define TARIFF_TIME_BASE_H_INCLUDED
|
|
||||||
|
|
||||||
#include <QString>
|
|
||||||
#include <QDebug>
|
|
||||||
#include <QDebugStateSaver>
|
|
||||||
|
|
||||||
struct ATBTimeBase {
|
|
||||||
enum class TimeBaseType {ABSOLUTE=0, RELATIVE=1};
|
|
||||||
|
|
||||||
ATBTimeBase() = default;
|
|
||||||
TimeBaseType tbase_type;
|
|
||||||
QString tbase_label;
|
|
||||||
|
|
||||||
friend QDebug operator<<(QDebug debug, ATBTimeBase const &timeBase) {
|
|
||||||
QDebugStateSaver saver(debug);
|
|
||||||
|
|
||||||
switch(timeBase.tbase_type) {
|
|
||||||
case ATBTimeBase::TimeBaseType::ABSOLUTE:
|
|
||||||
debug.nospace()
|
|
||||||
<< " tbase_type: " << "TimeBaseType::ABSOLUTE" << "\n"
|
|
||||||
<< "tbase_label: " << timeBase.tbase_label << "\n";
|
|
||||||
break;
|
|
||||||
case ATBTimeBase::TimeBaseType::RELATIVE:
|
|
||||||
debug.nospace()
|
|
||||||
<< " tbase_type: " << "TimeBaseType::RELATIVE" << "\n"
|
|
||||||
<< "tbase_label: " << timeBase.tbase_label << "\n";
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
debug.nospace()
|
|
||||||
<< " tbase_type: " << "TimeBaseType::???" << "\n";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return debug;
|
|
||||||
}
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // TARIFF_TIME_BASE_H_INCLUDED
|
|
@ -1,12 +1,8 @@
|
|||||||
#ifndef TIME_RANGE_H_INCLUDED
|
#pragma once
|
||||||
#define TIME_RANGE_H_INCLUDED
|
|
||||||
|
|
||||||
#include "time_range_header.h"
|
#include "time_range_header.h"
|
||||||
|
|
||||||
struct TimeRange {
|
struct TimeRange {
|
||||||
public:
|
public:
|
||||||
bool IsActive;
|
bool IsActive;
|
||||||
ATBTimeRange TimeRangeStructure;
|
ATBTimeRange TimeRangeStructure;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // TIME_RANGE_H_INCLUDED
|
|
@ -1,27 +1,8 @@
|
|||||||
#ifndef TIME_RANGE_HEADER_H_INCLUDED
|
#pragma once
|
||||||
#define TIME_RANGE_HEADER_H_INCLUDED
|
#include <ctime>
|
||||||
|
|
||||||
#include <QString>
|
class ATBTimeRange {
|
||||||
#include <QDateTime>
|
public:
|
||||||
#include <QDebug>
|
time_t time_from;
|
||||||
#include <QDebugStateSaver>
|
time_t time_to;
|
||||||
|
};
|
||||||
struct ATBTimeRange {
|
|
||||||
int time_range_id;
|
|
||||||
QTime time_range_from;
|
|
||||||
QTime time_range_to;
|
|
||||||
|
|
||||||
|
|
||||||
friend QDebug operator<<(QDebug debug, ATBTimeRange const &timeRange) {
|
|
||||||
QDebugStateSaver saver(debug);
|
|
||||||
|
|
||||||
debug.nospace()
|
|
||||||
<< " time_range_id: " << timeRange.time_range_id << "\n"
|
|
||||||
<< "time_range_from: " << timeRange.time_range_from.toString(Qt::ISODate) << "\n"
|
|
||||||
<< " time_range_to: " << timeRange.time_range_to.toString(Qt::ISODate) << "\n";
|
|
||||||
|
|
||||||
return debug;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // TIME_RANGE_HEADER_H_INCLUDED
|
|
@ -1,5 +1,6 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
|
#include <string.h>
|
||||||
#include <ctime>
|
#include <ctime>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
@ -8,7 +9,6 @@
|
|||||||
#include "configuration.h"
|
#include "configuration.h"
|
||||||
#include "time_range.h"
|
#include "time_range.h"
|
||||||
#include "payment_method.h"
|
#include "payment_method.h"
|
||||||
#include "tariff_business_hours.h"
|
|
||||||
|
|
||||||
#include <QDateTime>
|
#include <QDateTime>
|
||||||
|
|
||||||
@ -87,7 +87,4 @@ namespace Utilities {
|
|||||||
int getMaximalParkingTime(Configuration const *cfg, PaymentMethod methodId);
|
int getMaximalParkingTime(Configuration const *cfg, PaymentMethod methodId);
|
||||||
uint32_t getMinimalParkingPrice(Configuration const *cfg, PaymentMethod methodId);
|
uint32_t getMinimalParkingPrice(Configuration const *cfg, PaymentMethod methodId);
|
||||||
uint32_t getFirstDurationStep(Configuration const *cfg, PaymentMethod methodId);
|
uint32_t getFirstDurationStep(Configuration const *cfg, PaymentMethod methodId);
|
||||||
BusinessHours getBusinessHours(Configuration const *cfg, PaymentMethod methodId);
|
|
||||||
uint32_t computeWeekDaysPrice(Configuration const *cfg, PaymentMethod id);
|
|
||||||
double computeWeekDaysDurationUnit(Configuration const *cfg, PaymentMethod id);
|
|
||||||
}
|
}
|
||||||
|
@ -68,16 +68,9 @@ HEADERS += \
|
|||||||
include/mobilisis/tariff_log.h \
|
include/mobilisis/tariff_log.h \
|
||||||
include/mobilisis/calculate_price.h \
|
include/mobilisis/calculate_price.h \
|
||||||
include/mobilisis/atb_project.h \
|
include/mobilisis/atb_project.h \
|
||||||
include/mobilisis/ticket.h \
|
include/mobilisis/ticket.h
|
||||||
include/mobilisis/tariff_business_hours.h \
|
|
||||||
include/mobilisis/tariff_daily_ticket.h \
|
|
||||||
include/mobilisis/tariff_customer.h \
|
|
||||||
include/mobilisis/tariff_timebase.h
|
|
||||||
|
|
||||||
OTHER_FILES += src/main.cpp \
|
OTHER_FILES += src/main.cpp
|
||||||
../tariffs/tariff_korneuburg.json \
|
|
||||||
../tariffs/tariff_linsinger_maschinenbau.json \
|
|
||||||
../tariffs/tariff_naz.json
|
|
||||||
|
|
||||||
# Default rules for deployment.
|
# Default rules for deployment.
|
||||||
qnx: target.path = /tmp/$${TARGET}/bin
|
qnx: target.path = /tmp/$${TARGET}/bin
|
||||||
|
@ -173,9 +173,9 @@ int CALCULATE_LIBRARY_API compute_next_timestep(parking_tariff_t *tariff, int cu
|
|||||||
|
|
||||||
qCritical() << " compute_next_timestep() firstDurationStep:" << firstDurationStep;
|
qCritical() << " compute_next_timestep() firstDurationStep:" << firstDurationStep;
|
||||||
|
|
||||||
int const nextTimeStep = currentTimeMinutes + firstDurationStep;
|
int nextTimeStep = currentTimeMinutes + firstDurationStep;
|
||||||
|
|
||||||
if (nextTimeStep >= minParkingTime && nextTimeStep <= maxParkingTime) {
|
if (currentTimeMinutes >= minParkingTime && nextTimeStep <= maxParkingTime) {
|
||||||
qCritical() << " compute_next_timestep() nextTimeStep:" << nextTimeStep;
|
qCritical() << " compute_next_timestep() nextTimeStep:" << nextTimeStep;
|
||||||
return nextTimeStep;
|
return nextTimeStep;
|
||||||
}
|
}
|
||||||
|
@ -39,7 +39,7 @@ QDateTime Calculator::GetDailyTicketDuration(Configuration* cfg, const QDateTime
|
|||||||
|
|
||||||
int daily_card_price = cfg->PaymentOption.find(payment_option)->second.pop_daily_card_price;
|
int daily_card_price = cfg->PaymentOption.find(payment_option)->second.pop_daily_card_price;
|
||||||
if(daily_card_price <= 0) {
|
if(daily_card_price <= 0) {
|
||||||
qCritical() << "Calculator::GetDailyTicketDuration(): Daily ticket price zero or less";
|
LOG_ERROR("Calculator::GetDailyTicketDuration(): Daily ticket price zero or less");
|
||||||
return QDateTime();
|
return QDateTime();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -74,10 +74,12 @@ QDateTime Calculator::GetDailyTicketDuration(Configuration* cfg, const QDateTime
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Get day of week
|
// Get day of week
|
||||||
int const weekdayId = inputDateTime.date().dayOfWeek();
|
int weekdayId = 0;
|
||||||
|
weekdayId = Utilities::ZellersAlgorithm(inputDateTime.date().day(),inputDateTime.date().month(),inputDateTime.date().year());
|
||||||
|
|
||||||
// If no working day found, skip it (recursively call method again)
|
// If no working day found, skip it (recursively call method again)
|
||||||
size_t found = cfg->WeekDaysWorktime.count(weekdayId);
|
size_t found = 0;
|
||||||
|
found = cfg->WeekDaysWorktime.count(weekdayId);
|
||||||
|
|
||||||
// When no workday found, go to next available day
|
// When no workday found, go to next available day
|
||||||
if(found <=0)
|
if(found <=0)
|
||||||
@ -126,40 +128,14 @@ std::string Calculator::GetDurationFromCost(Configuration* cfg,
|
|||||||
// Get input date
|
// Get input date
|
||||||
QDateTime inputDate = QDateTime::fromString(start_datetime,Qt::ISODate);
|
QDateTime inputDate = QDateTime::fromString(start_datetime,Qt::ISODate);
|
||||||
|
|
||||||
static const PaymentMethod paymentMethodId = Utilities::getPaymentMethodId(cfg);
|
// use tariff with structure as for instance Schnau, Koenigsee:
|
||||||
if (paymentMethodId == PaymentMethod::Steps) {
|
// without given YearPeriod, SpecialDays and SpecialDaysWorktime
|
||||||
if (tariffIs24_7(cfg)) {
|
if (cfg->YearPeriod.size() == 0
|
||||||
// use tariff with structure as for instance Schoenau, Koenigsee:
|
&& cfg->SpecialDays.size() == 0
|
||||||
// without given YearPeriod, SpecialDays and SpecialDaysWorktime
|
&& cfg->SpecialDaysWorktime.size() == 0)
|
||||||
inputDate = inputDate.addSecs(GetDurationForPrice(cfg, price) * 60);
|
{
|
||||||
return inputDate.toString(Qt::ISODate).toStdString();
|
inputDate = inputDate.addSecs(GetDurationForPrice(cfg, price) * 60);
|
||||||
} else {
|
return inputDate.toString(Qt::ISODate).toStdString();
|
||||||
QDateTime const &start = QDateTime::fromString(start_datetime, Qt::ISODate);
|
|
||||||
if (Utilities::IsYearPeriodActive(cfg, start)) {
|
|
||||||
if (!prepaid) {
|
|
||||||
BusinessHours businessHours = Utilities::getBusinessHours(cfg, paymentMethodId);
|
|
||||||
if (businessHours == BusinessHours::OnlyWeekDays) {
|
|
||||||
int const weekdayId = start.date().dayOfWeek();
|
|
||||||
|
|
||||||
using WTIterator = std::multimap<int, ATBWeekDaysWorktime>::const_iterator;
|
|
||||||
std::pair<WTIterator, WTIterator> p = cfg->WeekDaysWorktime.equal_range(weekdayId);
|
|
||||||
|
|
||||||
for (WTIterator itr = p.first; itr != p.second; ++itr) {
|
|
||||||
QTime const &from = Utilities::WeekDaysWorkTimeFrom(itr);
|
|
||||||
QTime const &until = Utilities::WeekDaysWorkTimeUntil(itr);
|
|
||||||
QTime const& startTime = start.time();
|
|
||||||
|
|
||||||
if (from <= startTime && startTime <= until) {
|
|
||||||
return inputDate.addSecs(GetDurationForPrice(cfg, price) * 60).toString(Qt::ISODate).toStdString();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
qCritical() << __PRETTY_FUNCTION__ << "NOT YET IMPLEMENTED";
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Ticket t = private_GetDurationFromCost(cfg, inputDate, price, prepaid);
|
Ticket t = private_GetDurationFromCost(cfg, inputDate, price, prepaid);
|
||||||
@ -180,8 +156,9 @@ uint32_t Calculator::GetCostFromDuration(Configuration *cfg,
|
|||||||
quint64 timeStepInMinutes) const {
|
quint64 timeStepInMinutes) const {
|
||||||
// for instance, a tariff as used in Schoenau, Koenigssee: only steps, no
|
// for instance, a tariff as used in Schoenau, Koenigssee: only steps, no
|
||||||
// special days, nonstop.
|
// special days, nonstop.
|
||||||
static const PaymentMethod paymentMethodId = Utilities::getPaymentMethodId(cfg);
|
if (cfg->YearPeriod.size() == 0
|
||||||
if (paymentMethodId == PaymentMethod::Steps) {
|
&& cfg->SpecialDays.size() == 0
|
||||||
|
&& cfg->SpecialDaysWorktime.size() == 0) {
|
||||||
QDateTime const end = start.addSecs(timeStepInMinutes*60);
|
QDateTime const end = start.addSecs(timeStepInMinutes*60);
|
||||||
return GetCostFromDuration(cfg, start, end);
|
return GetCostFromDuration(cfg, start, end);
|
||||||
}
|
}
|
||||||
@ -191,8 +168,9 @@ uint32_t Calculator::GetCostFromDuration(Configuration *cfg,
|
|||||||
uint32_t Calculator::GetCostFromDuration(Configuration * cfg,
|
uint32_t Calculator::GetCostFromDuration(Configuration * cfg,
|
||||||
QDateTime const &start,
|
QDateTime const &start,
|
||||||
QDateTime const &end) const {
|
QDateTime const &end) const {
|
||||||
static const PaymentMethod paymentMethodId = Utilities::getPaymentMethodId(cfg);
|
if (cfg->YearPeriod.size() == 0
|
||||||
if (paymentMethodId == PaymentMethod::Steps) {
|
&& cfg->SpecialDays.size() == 0
|
||||||
|
&& cfg->SpecialDaysWorktime.size() == 0) {
|
||||||
int const timeStepInMinutes = start.secsTo(end) / 60;
|
int const timeStepInMinutes = start.secsTo(end) / 60;
|
||||||
return GetPriceForTimeStep(cfg, timeStepInMinutes);
|
return GetPriceForTimeStep(cfg, timeStepInMinutes);
|
||||||
}
|
}
|
||||||
@ -215,39 +193,12 @@ double Calculator::GetCostFromDuration(Configuration* cfg,
|
|||||||
Q_UNUSED(payment_option);
|
Q_UNUSED(payment_option);
|
||||||
Q_UNUSED(nextDay);
|
Q_UNUSED(nextDay);
|
||||||
|
|
||||||
static const PaymentMethod paymentMethodId = Utilities::getPaymentMethodId(cfg);
|
if (cfg->YearPeriod.size() == 0
|
||||||
if (paymentMethodId == PaymentMethod::Steps) {
|
&& cfg->SpecialDays.size() == 0
|
||||||
if (tariffIs24_7(cfg)) {
|
&& cfg->SpecialDaysWorktime.size() == 0)
|
||||||
end_datetime = start_datetime.addSecs(durationMinutes*60);
|
{
|
||||||
return GetCostFromDuration(cfg, start_datetime, end_datetime);
|
end_datetime = start_datetime.addSecs(durationMinutes*60);
|
||||||
} else {
|
return GetCostFromDuration(cfg, start_datetime, end_datetime);
|
||||||
if (Utilities::IsYearPeriodActive(cfg, start_datetime)) {
|
|
||||||
if (!prepaid) {
|
|
||||||
BusinessHours businessHours = Utilities::getBusinessHours(cfg, paymentMethodId);
|
|
||||||
if (businessHours == BusinessHours::OnlyWeekDays) {
|
|
||||||
int const weekdayId = start_datetime.date().dayOfWeek();
|
|
||||||
|
|
||||||
using WTIterator = std::multimap<int, ATBWeekDaysWorktime>::const_iterator;
|
|
||||||
std::pair<WTIterator, WTIterator> p = cfg->WeekDaysWorktime.equal_range(weekdayId);
|
|
||||||
|
|
||||||
for (WTIterator itr = p.first; itr != p.second; ++itr) {
|
|
||||||
QTime const &from = Utilities::WeekDaysWorkTimeFrom(itr);
|
|
||||||
QTime const &until = Utilities::WeekDaysWorkTimeUntil(itr);
|
|
||||||
QTime const &startTime = start_datetime.time();
|
|
||||||
|
|
||||||
if (from <= startTime && startTime <= until) {
|
|
||||||
end_datetime = start_datetime.addSecs(durationMinutes*60);
|
|
||||||
return GetCostFromDuration(cfg, start_datetime, end_datetime);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
qCritical() << __PRETTY_FUNCTION__ << "NOT YET IMPLEMENTED";
|
|
||||||
end_datetime = QDateTime();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QDateTime start = start_datetime;
|
QDateTime start = start_datetime;
|
||||||
@ -264,6 +215,18 @@ double Calculator::GetCostFromDuration(Configuration* cfg,
|
|||||||
return t.getPrice();
|
return t.getPrice();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int Calculator::getMinimalParkingTime(Configuration const *cfg, PaymentMethod methodId) {
|
||||||
|
return std::max((int)cfg->PaymentOption.find(methodId)->second.pop_min_time, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
int Calculator::getMaximalParkingTime(Configuration const *cfg, PaymentMethod methodId) {
|
||||||
|
return std::max((int)cfg->PaymentOption.find(methodId)->second.pop_max_time, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
uint32_t Calculator::getMinimalParkingPrice(Configuration const *cfg, PaymentMethod methodId) {
|
||||||
|
return std::max((int)cfg->PaymentOption.find(methodId)->second.pop_min_price, 0);
|
||||||
|
}
|
||||||
|
|
||||||
bool Calculator::checkDurationMinutes(int minParkingTime,
|
bool Calculator::checkDurationMinutes(int minParkingTime,
|
||||||
int maxParkingTime,
|
int maxParkingTime,
|
||||||
int durationMinutes) {
|
int durationMinutes) {
|
||||||
@ -308,6 +271,17 @@ int Calculator::findNextWorkTimeRange(QDateTime const &dt,
|
|||||||
return nextWorkTimeRange;
|
return nextWorkTimeRange;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint32_t Calculator::computeWeekDaysPrice(Configuration const *cfg, PaymentMethod id) const {
|
||||||
|
int pop_id = cfg->PaymentOption.find(id)->second.pop_id;
|
||||||
|
return cfg->PaymentRate.find(pop_id)->second.pra_price;
|
||||||
|
}
|
||||||
|
|
||||||
|
double Calculator::computeWeekDaysDurationUnit(Configuration const *cfg, PaymentMethod id) const {
|
||||||
|
int pop_id = cfg->PaymentOption.find(id)->second.pop_id;
|
||||||
|
int durationId = cfg->PaymentRate.find(pop_id)->second.pra_payment_unit_id;
|
||||||
|
return (double)(cfg->Duration.find(durationId)->second.pun_duration);
|
||||||
|
}
|
||||||
|
|
||||||
using namespace Utilities;
|
using namespace Utilities;
|
||||||
|
|
||||||
Ticket Calculator::private_GetCostFromDuration(Configuration const* cfg,
|
Ticket Calculator::private_GetCostFromDuration(Configuration const* cfg,
|
||||||
@ -317,12 +291,12 @@ Ticket Calculator::private_GetCostFromDuration(Configuration const* cfg,
|
|||||||
|
|
||||||
static const PaymentMethod paymentMethodId = Utilities::getPaymentMethodId(cfg);
|
static const PaymentMethod paymentMethodId = Utilities::getPaymentMethodId(cfg);
|
||||||
static const bool carryOverNotSet = isCarryOverNotSet(cfg, paymentMethodId);
|
static const bool carryOverNotSet = isCarryOverNotSet(cfg, paymentMethodId);
|
||||||
static const int minParkingTimeMinutes = Utilities::getMinimalParkingTime(cfg, paymentMethodId);
|
static const int minParkingTimeMinutes = getMinimalParkingTime(cfg, paymentMethodId);
|
||||||
static const int maxParkingTimeMinutes = Utilities::getMaximalParkingTime(cfg, paymentMethodId);
|
static const int maxParkingTimeMinutes = getMaximalParkingTime(cfg, paymentMethodId);
|
||||||
static const bool checkMinMaxMinutes = (minParkingTimeMinutes < maxParkingTimeMinutes);
|
static const bool checkMinMaxMinutes = (minParkingTimeMinutes < maxParkingTimeMinutes);
|
||||||
static const int durationMinutesNetto = durationMinutes;
|
static const int durationMinutesNetto = durationMinutes;
|
||||||
static const uint32_t weekDaysPrice = Utilities::computeWeekDaysPrice(cfg, paymentMethodId);
|
static const uint32_t weekDaysPrice = computeWeekDaysPrice(cfg, paymentMethodId);
|
||||||
static const double weekDaysDurationUnit = Utilities::computeWeekDaysDurationUnit(cfg, paymentMethodId);
|
static const double weekDaysDurationUnit = computeWeekDaysDurationUnit(cfg, paymentMethodId);
|
||||||
static const double specialDaysDurationUnit = 60.0;
|
static const double specialDaysDurationUnit = 60.0;
|
||||||
|
|
||||||
if (!checkMinMaxMinutes) {
|
if (!checkMinMaxMinutes) {
|
||||||
@ -506,14 +480,29 @@ Ticket Calculator::private_GetDurationFromCost(Configuration *cfg,
|
|||||||
// Get input date
|
// Get input date
|
||||||
QDateTime current = start;
|
QDateTime current = start;
|
||||||
|
|
||||||
|
// use tariff with structure as for instance Schnau, Koenigsee:
|
||||||
|
// without given YearPeriod, SpecialDays and SpecialDaysWorktime
|
||||||
|
if (cfg->YearPeriod.size() == 0
|
||||||
|
&& cfg->SpecialDays.size() == 0
|
||||||
|
&& cfg->SpecialDaysWorktime.size() == 0)
|
||||||
|
{
|
||||||
|
uint64_t const durationMinutes = GetDurationForPrice(cfg, cost);
|
||||||
|
uint64_t const durationSeconds = durationMinutes * 60;
|
||||||
|
current = current.addSecs(durationSeconds);
|
||||||
|
|
||||||
|
return
|
||||||
|
Ticket(start, current, durationMinutes, durationMinutes,
|
||||||
|
cost, Ticket::s[VALID]);
|
||||||
|
}
|
||||||
|
|
||||||
static const PaymentMethod paymentMethodId = Utilities::getPaymentMethodId(cfg);
|
static const PaymentMethod paymentMethodId = Utilities::getPaymentMethodId(cfg);
|
||||||
static const bool carryOverNotSet = isCarryOverNotSet(cfg, paymentMethodId);
|
static const bool carryOverNotSet = isCarryOverNotSet(cfg, paymentMethodId);
|
||||||
static const uint32_t minParkingTimeMinutes = std::max(Utilities::getMinimalParkingTime(cfg, paymentMethodId), 0);
|
static const uint32_t minParkingTimeMinutes = std::max(getMinimalParkingTime(cfg, paymentMethodId), 0);
|
||||||
static const uint32_t maxParkingTimeMinutes = std::max(Utilities::getMaximalParkingTime(cfg, paymentMethodId), 0);
|
static const uint32_t maxParkingTimeMinutes = std::max(getMaximalParkingTime(cfg, paymentMethodId), 0);
|
||||||
static const uint32_t minParkingPrice = getMinimalParkingPrice(cfg, paymentMethodId);
|
static const uint32_t minParkingPrice = getMinimalParkingPrice(cfg, paymentMethodId);
|
||||||
// static const bool checkMinMaxMinutes = (minParkingTimeMinutes < maxParkingTimeMinutes);
|
// static const bool checkMinMaxMinutes = (minParkingTimeMinutes < maxParkingTimeMinutes);
|
||||||
static const uint32_t weekDaysPrice = Utilities::computeWeekDaysPrice(cfg, paymentMethodId);
|
static const uint32_t weekDaysPrice = computeWeekDaysPrice(cfg, paymentMethodId);
|
||||||
static const uint32_t weekDaysDurationUnit = Utilities::computeWeekDaysDurationUnit(cfg, paymentMethodId);
|
static const uint32_t weekDaysDurationUnit = computeWeekDaysDurationUnit(cfg, paymentMethodId);
|
||||||
static const uint32_t specialDaysDurationUnit = 60;
|
static const uint32_t specialDaysDurationUnit = 60;
|
||||||
|
|
||||||
if(cost < minParkingPrice) {
|
if(cost < minParkingPrice) {
|
||||||
|
@ -1,9 +1,4 @@
|
|||||||
#include "configuration.h"
|
#include "configuration.h"
|
||||||
#include "tariff_timebase.h"
|
|
||||||
#include "time_range_header.h"
|
|
||||||
|
|
||||||
#include <QString>
|
|
||||||
#include <QDebug>
|
|
||||||
|
|
||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
MemberType Configuration::IdentifyJsonMember(const char* member_name)
|
MemberType Configuration::IdentifyJsonMember(const char* member_name)
|
||||||
@ -18,11 +13,7 @@ MemberType Configuration::IdentifyJsonMember(const char* member_name)
|
|||||||
if (strcmp(member_name, "SpecialDaysWorktime") == 0) return MemberType::SpecialDaysWorktimeType;
|
if (strcmp(member_name, "SpecialDaysWorktime") == 0) return MemberType::SpecialDaysWorktimeType;
|
||||||
if (strcmp(member_name, "SpecialDays") == 0) return MemberType::SpecialDaysType;
|
if (strcmp(member_name, "SpecialDays") == 0) return MemberType::SpecialDaysType;
|
||||||
if (strcmp(member_name, "PeriodYear") == 0) return MemberType::PeriodYearType;
|
if (strcmp(member_name, "PeriodYear") == 0) return MemberType::PeriodYearType;
|
||||||
if (strcmp(member_name, "DailyTicket") == 0) return MemberType::DailyTicketType;
|
else return MemberType::UnknownType;
|
||||||
if (strcmp(member_name, "TimeBase") == 0) return MemberType::TimeBaseType;
|
|
||||||
if (strcmp(member_name, "Customer") == 0) return MemberType::CustomerType;
|
|
||||||
if (strcmp(member_name, "TimeRange") == 0) return MemberType::TimeRangeType;
|
|
||||||
else return MemberType::UnknownType;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
@ -77,22 +68,17 @@ bool Configuration::ParseJson(Configuration* cfg, const char* json)
|
|||||||
}
|
}
|
||||||
printf("%s", "Valid JSON configuration identified\n");
|
printf("%s", "Valid JSON configuration identified\n");
|
||||||
|
|
||||||
ATBCurrency Currency;
|
ATBCurrency Currency;
|
||||||
ATBDuration Duration;
|
ATBDuration Duration;
|
||||||
ATBPaymentMethod PaymentMethod;
|
ATBPaymentMethod PaymentMethod;
|
||||||
ATBPaymentRate PaymentRate;
|
ATBPaymentRate PaymentRate;
|
||||||
ATBSpecialDaysWorktime SpecialDaysWorktime;
|
ATBSpecialDaysWorktime SpecialDaysWorktime;
|
||||||
ATBSpecialDays SpecialDays;
|
ATBSpecialDays SpecialDays;
|
||||||
ATBWeekDays WeekDays;
|
ATBWeekDays WeekDays;
|
||||||
ATBWeekDaysWorktime WeekDaysWorktime;
|
ATBWeekDaysWorktime WeekDaysWorktime;
|
||||||
ATBPaymentOption PaymentOption;
|
ATBPaymentOption PaymentOption;
|
||||||
ATBPeriodYear YearPeriod;
|
ATBPeriodYear YearPeriod;
|
||||||
ATBDailyTicket DailyTicket;
|
MemberType mb_type;
|
||||||
ATBTimeBase TimeBase;
|
|
||||||
ATBCustomer Customer;
|
|
||||||
ATBTimeRange TimeRange;
|
|
||||||
|
|
||||||
MemberType mb_type = MemberType::UnknownType;
|
|
||||||
|
|
||||||
// Get all JSON object members
|
// Get all JSON object members
|
||||||
// This code should run only once (to load JSON variables into memory)
|
// This code should run only once (to load JSON variables into memory)
|
||||||
@ -123,14 +109,14 @@ bool Configuration::ParseJson(Configuration* cfg, const char* json)
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
printf(" -%s\n", mb_name);
|
//printf(" -%s\n", mb_name);
|
||||||
|
|
||||||
// Get array for each JSON object member
|
// Get array for each JSON object member
|
||||||
auto mb_array = document[mb_name].GetArray();
|
auto mb_array = document[mb_name].GetArray();
|
||||||
if (mb_array.Size() <= 0) break;
|
if (mb_array.Size() <= 0) break;
|
||||||
|
|
||||||
//Iterate over provided array
|
//Iterate over provided array
|
||||||
for (rapidjson::SizeType j = 0; j < mb_array.Size(); j++)
|
for (auto j = 0; j < mb_array.Size(); j++)
|
||||||
{
|
{
|
||||||
// Get all inner objects, don't print name if NULL
|
// Get all inner objects, don't print name if NULL
|
||||||
auto inner_obj = mb_array[j].GetObject();
|
auto inner_obj = mb_array[j].GetObject();
|
||||||
@ -150,133 +136,12 @@ bool Configuration::ParseJson(Configuration* cfg, const char* json)
|
|||||||
// Identify member type
|
// Identify member type
|
||||||
mb_type = IdentifyJsonMember(mb_name);
|
mb_type = IdentifyJsonMember(mb_name);
|
||||||
|
|
||||||
|
//#pragma region Get_values
|
||||||
switch (mb_type)
|
switch (mb_type)
|
||||||
{
|
{
|
||||||
case MemberType::UnknownType:
|
case MemberType::UnknownType:
|
||||||
break;
|
break;
|
||||||
case MemberType::TimeRangeType:
|
case MemberType::CurrencyType:
|
||||||
if (QString(inner_obj_name) == QString("time_range_id")) {
|
|
||||||
if (k->value.IsInt()) {
|
|
||||||
TimeRange.time_range_id = k->value.GetInt();
|
|
||||||
}
|
|
||||||
} else
|
|
||||||
if (QString(inner_obj_name) == QString("time_range_from")) {
|
|
||||||
if (k->value.IsString()) {
|
|
||||||
QTime timeRangeFrom = QTime::fromString(QString::fromStdString(k->value.GetString()), Qt::ISODate);
|
|
||||||
TimeRange.time_range_from = timeRangeFrom;
|
|
||||||
}
|
|
||||||
} else
|
|
||||||
if (QString(inner_obj_name) == QString("time_range_to")) {
|
|
||||||
if (k->value.IsString()) {
|
|
||||||
QTime timeRangeTo = QTime::fromString(QString::fromStdString(k->value.GetString()), Qt::ISODate);
|
|
||||||
TimeRange.time_range_to = timeRangeTo;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case MemberType::TimeBaseType:
|
|
||||||
if (QString(inner_obj_name) == QString("tbase_type")) {
|
|
||||||
if (k->value.IsInt()) {
|
|
||||||
int timeBase = k->value.GetInt();
|
|
||||||
switch (timeBase) {
|
|
||||||
case (int)ATBTimeBase::TimeBaseType::ABSOLUTE:
|
|
||||||
TimeBase.tbase_type = ATBTimeBase::TimeBaseType::ABSOLUTE;
|
|
||||||
break;
|
|
||||||
case (int)ATBTimeBase::TimeBaseType::RELATIVE:
|
|
||||||
TimeBase.tbase_type = ATBTimeBase::TimeBaseType::RELATIVE;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case MemberType::DailyTicketType:
|
|
||||||
if (QString(inner_obj_name) == QString("daily_ticket_payment_option_id")) {
|
|
||||||
if (k->value.IsInt()) {
|
|
||||||
DailyTicket.daily_ticket_payment_option_id = k->value.GetInt();
|
|
||||||
}
|
|
||||||
} else
|
|
||||||
if (QString(inner_obj_name) == QString("daily_ticket_unit_id")) {
|
|
||||||
if (k->value.IsInt()) {
|
|
||||||
DailyTicket.daily_ticket_unit_id = k->value.GetInt();
|
|
||||||
}
|
|
||||||
} else
|
|
||||||
if (QString(inner_obj_name) == QString("daily_ticket_price")) {
|
|
||||||
if (k->value.IsInt()) {
|
|
||||||
DailyTicket.daily_ticket_price = k->value.GetInt();
|
|
||||||
}
|
|
||||||
} else
|
|
||||||
if (QString(inner_obj_name) == QString("daily_ticket_tbase_type")) {
|
|
||||||
if (k->value.IsInt()) {
|
|
||||||
int baseType = k->value.GetInt();
|
|
||||||
switch(baseType) {
|
|
||||||
case (int)ATBTimeBase::TimeBaseType::ABSOLUTE:
|
|
||||||
DailyTicket.daily_ticket_tbase_type = ATBTimeBase::TimeBaseType::ABSOLUTE;
|
|
||||||
break;
|
|
||||||
case (int)ATBTimeBase::TimeBaseType::RELATIVE:
|
|
||||||
DailyTicket.daily_ticket_tbase_type = ATBTimeBase::TimeBaseType::RELATIVE;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else
|
|
||||||
if (QString(inner_obj_name) == QString("daily_ticket_clearance_customer_type")) {
|
|
||||||
if (k->value.IsInt()) {
|
|
||||||
int CustomerType = k->value.GetInt();
|
|
||||||
switch (CustomerType) {
|
|
||||||
case (int)ATBCustomer::CustomerType::ADULT:
|
|
||||||
DailyTicket.daily_ticket_clearance_customer_type = ATBCustomer::CustomerType::ADULT;
|
|
||||||
break;
|
|
||||||
case (int)ATBCustomer::CustomerType::CHILD:
|
|
||||||
DailyTicket.daily_ticket_clearance_customer_type = ATBCustomer::CustomerType::CHILD;
|
|
||||||
break;
|
|
||||||
case (int)ATBCustomer::CustomerType::TEEN:
|
|
||||||
DailyTicket.daily_ticket_clearance_customer_type = ATBCustomer::CustomerType::TEEN;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else
|
|
||||||
if (QString(inner_obj_name) == QString("daily_ticket_weekday_range")) {
|
|
||||||
if (k->value.IsInt()) {
|
|
||||||
DailyTicket.daily_ticket_weekday_range = k->value.GetInt();
|
|
||||||
}
|
|
||||||
} else
|
|
||||||
if (QString(inner_obj_name) == QString("daily_ticket_special_day_range")) {
|
|
||||||
if (k->value.IsInt()) {
|
|
||||||
DailyTicket.daily_ticket_special_day_range = k->value.GetInt();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case MemberType::CustomerType:
|
|
||||||
if (QString(inner_obj_name) == QString("cust_type")) {
|
|
||||||
if (k->value.IsInt()) {
|
|
||||||
int cust_type = k->value.GetInt();
|
|
||||||
switch (cust_type) {
|
|
||||||
case (int)ATBCustomer::CustomerType::ADULT:
|
|
||||||
Customer.cust_type = ATBCustomer::CustomerType::ADULT;
|
|
||||||
break;
|
|
||||||
case (int)ATBCustomer::CustomerType::CHILD:
|
|
||||||
Customer.cust_type = ATBCustomer::CustomerType::CHILD;
|
|
||||||
break;
|
|
||||||
case (int)ATBCustomer::CustomerType::TEEN:
|
|
||||||
Customer.cust_type = ATBCustomer::CustomerType::TEEN;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else
|
|
||||||
if (QString(inner_obj_name) == QString("cust_label")) {
|
|
||||||
if (k->value.IsString()) {
|
|
||||||
QString label(QString::fromStdString(k->value.GetString()));
|
|
||||||
if (label.contains("ADULT", Qt::CaseInsensitive)) {
|
|
||||||
Customer.cust_label = label;
|
|
||||||
} else
|
|
||||||
if (label.contains("CHILD", Qt::CaseInsensitive)) {
|
|
||||||
Customer.cust_label = label;
|
|
||||||
} else
|
|
||||||
if (label.contains("TEEN", Qt::CaseInsensitive)) {
|
|
||||||
Customer.cust_label = label;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case MemberType::CurrencyType:
|
|
||||||
if (strcmp(inner_obj_name, "pcu_id") == 0) Currency.pcu_id = k->value.GetInt();
|
if (strcmp(inner_obj_name, "pcu_id") == 0) Currency.pcu_id = k->value.GetInt();
|
||||||
else if (strcmp(inner_obj_name, "pcu_sign") == 0) Currency.pcu_sign = k->value.GetString();
|
else if (strcmp(inner_obj_name, "pcu_sign") == 0) Currency.pcu_sign = k->value.GetString();
|
||||||
else if (strcmp(inner_obj_name, "pcu_major") == 0) Currency.pcu_major = k->value.GetString();
|
else if (strcmp(inner_obj_name, "pcu_major") == 0) Currency.pcu_major = k->value.GetString();
|
||||||
@ -304,7 +169,6 @@ bool Configuration::ParseJson(Configuration* cfg, const char* json)
|
|||||||
else if (strcmp(inner_obj_name, "pop_min_price") == 0) PaymentOption.pop_min_price = k->value.GetDouble();
|
else if (strcmp(inner_obj_name, "pop_min_price") == 0) PaymentOption.pop_min_price = k->value.GetDouble();
|
||||||
else if (strcmp(inner_obj_name, "pop_carry_over") == 0) PaymentOption.pop_carry_over = k->value.GetInt();
|
else if (strcmp(inner_obj_name, "pop_carry_over") == 0) PaymentOption.pop_carry_over = k->value.GetInt();
|
||||||
else if (strcmp(inner_obj_name, "pop_daily_card_price") == 0) PaymentOption.pop_daily_card_price = k->value.GetInt();
|
else if (strcmp(inner_obj_name, "pop_daily_card_price") == 0) PaymentOption.pop_daily_card_price = k->value.GetInt();
|
||||||
else if (strcmp(inner_obj_name, "pop_business_hours") == 0) PaymentOption.pop_business_hours = k->value.GetInt();
|
|
||||||
this->currentPaymentOptions = PaymentOption;
|
this->currentPaymentOptions = PaymentOption;
|
||||||
break;
|
break;
|
||||||
case MemberType::DurationType:
|
case MemberType::DurationType:
|
||||||
@ -329,8 +193,7 @@ bool Configuration::ParseJson(Configuration* cfg, const char* json)
|
|||||||
else if (strcmp(inner_obj_name, "pwd_period_week_day_id") == 0) WeekDaysWorktime.pwd_period_week_day_id = k->value.GetInt();
|
else if (strcmp(inner_obj_name, "pwd_period_week_day_id") == 0) WeekDaysWorktime.pwd_period_week_day_id = k->value.GetInt();
|
||||||
else if (strcmp(inner_obj_name, "pwd_period_day_in_week_id") == 0) WeekDaysWorktime.pwd_period_day_in_week_id = k->value.GetInt();
|
else if (strcmp(inner_obj_name, "pwd_period_day_in_week_id") == 0) WeekDaysWorktime.pwd_period_day_in_week_id = k->value.GetInt();
|
||||||
else if (strcmp(inner_obj_name, "pwd_time_from") == 0) WeekDaysWorktime.pwd_time_from = k->value.GetString();
|
else if (strcmp(inner_obj_name, "pwd_time_from") == 0) WeekDaysWorktime.pwd_time_from = k->value.GetString();
|
||||||
else if (strcmp(inner_obj_name, "pwd_time_to") == 0) WeekDaysWorktime.pwd_time_to = k->value.GetString();
|
else if (strcmp(inner_obj_name, "pwd_time_to") == 0) WeekDaysWorktime.pwd_time_to = k->value.GetString();
|
||||||
break;
|
|
||||||
case MemberType::SpecialDaysType:
|
case MemberType::SpecialDaysType:
|
||||||
if (strcmp(inner_obj_name, "ped_id") == 0) SpecialDays.ped_id = k->value.GetInt();
|
if (strcmp(inner_obj_name, "ped_id") == 0) SpecialDays.ped_id = k->value.GetInt();
|
||||||
else if (strcmp(inner_obj_name, "ped_label") == 0) SpecialDays.ped_label = k->value.GetString();
|
else if (strcmp(inner_obj_name, "ped_label") == 0) SpecialDays.ped_label = k->value.GetString();
|
||||||
@ -385,19 +248,7 @@ bool Configuration::ParseJson(Configuration* cfg, const char* json)
|
|||||||
case MemberType::PeriodYearType:
|
case MemberType::PeriodYearType:
|
||||||
cfg->YearPeriod.insert(pair<int, ATBPeriodYear>(YearPeriod.pye_id, YearPeriod));
|
cfg->YearPeriod.insert(pair<int, ATBPeriodYear>(YearPeriod.pye_id, YearPeriod));
|
||||||
break;
|
break;
|
||||||
case MemberType::DailyTicketType:
|
default:
|
||||||
qCritical() << DailyTicket;
|
|
||||||
break;
|
|
||||||
case MemberType::CustomerType:
|
|
||||||
qCritical() << Customer;
|
|
||||||
break;
|
|
||||||
case MemberType::TimeBaseType:
|
|
||||||
qCritical() << TimeBase;
|
|
||||||
break;
|
|
||||||
case MemberType::TimeRangeType:
|
|
||||||
qCritical() << TimeRange;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -197,8 +197,7 @@ bool Utilities::IsYearPeriodActive(Configuration* cfg, struct tm* currentDateTim
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool Utilities::IsYearPeriodActive(Configuration const *cfg, QDateTime const &dt) {
|
bool Utilities::IsYearPeriodActive(Configuration const *cfg, QDateTime const &dt) {
|
||||||
if ((cfg->YearPeriod.size() > 0) &&
|
if (std::none_of(cfg->YearPeriod.cbegin(),
|
||||||
std::none_of(cfg->YearPeriod.cbegin(),
|
|
||||||
cfg->YearPeriod.cend(),
|
cfg->YearPeriod.cend(),
|
||||||
[&dt](std::pair<int, ATBPeriodYear> const &year) {
|
[&dt](std::pair<int, ATBPeriodYear> const &year) {
|
||||||
QDate const d(2004, // 2004 is a leap year
|
QDate const d(2004, // 2004 is a leap year
|
||||||
@ -400,30 +399,3 @@ uint32_t Utilities::getFirstDurationStep(Configuration const *cfg, PaymentMethod
|
|||||||
|
|
||||||
return firstDurationStep;
|
return firstDurationStep;
|
||||||
}
|
}
|
||||||
|
|
||||||
BusinessHours Utilities::getBusinessHours(Configuration const *cfg, PaymentMethod methodId) {
|
|
||||||
int businessHours = cfg->PaymentOption.find(methodId)->second.pop_business_hours;
|
|
||||||
switch (businessHours) {
|
|
||||||
case NoRestriction_24_7: return NoRestriction_24_7;
|
|
||||||
case OnlyWorkingDays: return OnlyWorkingDays;
|
|
||||||
case OnlyWeekDays: return OnlyWeekDays;
|
|
||||||
case OnlyWeekEnd: return OnlyWeekEnd;
|
|
||||||
case OnlyOfficialHolidays: return OnlyOfficialHolidays;
|
|
||||||
case OnlySpecialDays: return OnlySpecialDays;
|
|
||||||
case OnlySchoolHolidays: return OnlySchoolHolidays;
|
|
||||||
case SpecialAndSchoolHolidays: return SpecialAndSchoolHolidays;
|
|
||||||
case OnlyOpenForBusinessDays: return OnlyOpenForBusinessDays;
|
|
||||||
}
|
|
||||||
return NoBusinessHoursDefined;
|
|
||||||
}
|
|
||||||
|
|
||||||
uint32_t Utilities::computeWeekDaysPrice(Configuration const *cfg, PaymentMethod id) {
|
|
||||||
int pop_id = cfg->PaymentOption.find(id)->second.pop_id;
|
|
||||||
return cfg->PaymentRate.find(pop_id)->second.pra_price;
|
|
||||||
}
|
|
||||||
|
|
||||||
double Utilities::computeWeekDaysDurationUnit(Configuration const *cfg, PaymentMethod id) {
|
|
||||||
int pop_id = cfg->PaymentOption.find(id)->second.pop_id;
|
|
||||||
int durationId = cfg->PaymentRate.find(pop_id)->second.pra_payment_unit_id;
|
|
||||||
return (double)(cfg->Duration.find(durationId)->second.pun_duration);
|
|
||||||
}
|
|
||||||
|
@ -33,73 +33,11 @@ extern "C" char* strptime(const char* s,
|
|||||||
#include "calculator_functions.h"
|
#include "calculator_functions.h"
|
||||||
#include <calculate_price.h>
|
#include <calculate_price.h>
|
||||||
|
|
||||||
#define SZEGED (0)
|
#define SZEGED (1)
|
||||||
#define NEUHAUSER_KORNEUBURG (0)
|
#define NEUHAUSER_KORNEUBURG (0)
|
||||||
#define NEUHAUSER_LINSINGER_MASCHINENBAU (0)
|
|
||||||
#define NEUHAUSER_NORDISCHES_AUSBILDUNGSZENTRUM (1)
|
|
||||||
|
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
#if NEUHAUSER_NORDISCHES_AUSBILDUNGSZENTRUM==1
|
|
||||||
std::ifstream input("/tmp/tariff_naz.json");
|
|
||||||
|
|
||||||
std::stringstream sstr;
|
|
||||||
while(input >> sstr.rdbuf());
|
|
||||||
std::string json(sstr.str());
|
|
||||||
|
|
||||||
Configuration cfg;
|
|
||||||
|
|
||||||
bool isParsed = cfg.ParseJson(&cfg, json.c_str());
|
|
||||||
cout << endl;
|
|
||||||
|
|
||||||
if (isParsed) {
|
|
||||||
// Calculator calculator;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if NEUHAUSER_LINSINGER_MASCHINENBAU==1
|
|
||||||
std::ifstream input("/tmp/tariff_linsinger_maschinenbau.json");
|
|
||||||
|
|
||||||
std::stringstream sstr;
|
|
||||||
while(input >> sstr.rdbuf());
|
|
||||||
std::string json(sstr.str());
|
|
||||||
|
|
||||||
Calculator calculator;
|
|
||||||
Configuration cfg;
|
|
||||||
|
|
||||||
bool isParsed = cfg.ParseJson(&cfg, json.c_str());
|
|
||||||
cout << endl;
|
|
||||||
|
|
||||||
if (isParsed) {
|
|
||||||
bool nextDay = false;
|
|
||||||
bool prePaid = false;
|
|
||||||
|
|
||||||
// zone 1 (lila)
|
|
||||||
QDateTime s(QDate(2023, 11, 30), QTime());
|
|
||||||
QDateTime end;
|
|
||||||
int marken[] = { 3*60, 5*60, 10*60};
|
|
||||||
for (int duration = 0; duration < 3; ++duration) {
|
|
||||||
for (int offset = 360; offset <= 1080; ++offset) {
|
|
||||||
QDateTime start = s.addSecs(offset * 60);
|
|
||||||
//qCritical() << "start" << start.toString(Qt::ISODate);
|
|
||||||
|
|
||||||
double cost = calculator.GetCostFromDuration(&cfg, 4, start, end, marken[duration], nextDay, prePaid);
|
|
||||||
//qCritical() << "";
|
|
||||||
//qCritical() << "start" << start.toString(Qt::ISODate)
|
|
||||||
// << "end" << end.toString(Qt::ISODate)
|
|
||||||
// << "duration" << marken[duration]
|
|
||||||
// << "cost" << cost;
|
|
||||||
|
|
||||||
std::string d = calculator.GetDurationFromCost(&cfg, 4, start.toString(Qt::ISODate).toStdString().c_str(), cost);
|
|
||||||
qCritical() << "start" << start.toString(Qt::ISODate)
|
|
||||||
<< "cost" << cost
|
|
||||||
<< "until" << d.c_str() << start.secsTo(QDateTime::fromString(d.c_str(), Qt::ISODate)) / 60;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if NEUHAUSER_KORNEUBURG==1
|
#if NEUHAUSER_KORNEUBURG==1
|
||||||
std::ifstream input("/tmp/tariff_korneuburg.json");
|
std::ifstream input("/tmp/tariff_korneuburg.json");
|
||||||
|
@ -1,629 +0,0 @@
|
|||||||
{
|
|
||||||
"Project" : "Korneuburg",
|
|
||||||
"Version" : "1.0.0",
|
|
||||||
"Info" : "",
|
|
||||||
"Currency": [
|
|
||||||
{
|
|
||||||
"pcu_id": 2,
|
|
||||||
"pcu_sign": "€",
|
|
||||||
"pcu_major": "EUR",
|
|
||||||
"pcu_minor": "",
|
|
||||||
"pcu_active": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"PaymentMethod": [
|
|
||||||
{
|
|
||||||
"pme_id": 1,
|
|
||||||
"pme_label": "progressive"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pme_id": 2,
|
|
||||||
"pme_label": "degressive"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pme_id": 3,
|
|
||||||
"pme_label": "linear"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pme_id": 4,
|
|
||||||
"pme_label": "steps"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"PaymentOption": [
|
|
||||||
{
|
|
||||||
"pop_id": 1049,
|
|
||||||
"pop_label": "Zone 1",
|
|
||||||
"pop_payment_method_id": 3,
|
|
||||||
"pop_day_end_time": "00:00:00",
|
|
||||||
"pop_day_night_end_time": "00:00:00",
|
|
||||||
"pop_price_night": 0,
|
|
||||||
"pop_min_time": 30,
|
|
||||||
"pop_max_time": 180,
|
|
||||||
"pop_min_price": 60,
|
|
||||||
"pop_carry_over": 1,
|
|
||||||
"pop_daily_card_price": 0
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"PaymentRate": [
|
|
||||||
{
|
|
||||||
"pra_payment_option_id": 1049,
|
|
||||||
"pra_payment_unit_id": 1,
|
|
||||||
"pra_price": 10
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"Duration": [
|
|
||||||
{
|
|
||||||
"pun_id": 1,
|
|
||||||
"pun_label": "5 min",
|
|
||||||
"pun_duration": 5
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pun_id": 3,
|
|
||||||
"pun_label": "15 min",
|
|
||||||
"pun_duration": 15
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pun_id": 4,
|
|
||||||
"pun_label": "1 min",
|
|
||||||
"pun_duration": 1
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"WeekDaysWorktime": [
|
|
||||||
{
|
|
||||||
"pwd_id": 621,
|
|
||||||
"pwd_period_week_day_id": 36,
|
|
||||||
"pwd_period_day_in_week_id": 1,
|
|
||||||
"pwd_time_from": "08:00:00",
|
|
||||||
"pwd_time_to": "12:00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pwd_id": 621,
|
|
||||||
"pwd_period_week_day_id": 36,
|
|
||||||
"pwd_period_day_in_week_id": 1,
|
|
||||||
"pwd_time_from": "14:00:00",
|
|
||||||
"pwd_time_to": "18:00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pwd_id": 622,
|
|
||||||
"pwd_period_week_day_id": 36,
|
|
||||||
"pwd_period_day_in_week_id": 2,
|
|
||||||
"pwd_time_from": "08:00:00",
|
|
||||||
"pwd_time_to": "12:00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pwd_id": 622,
|
|
||||||
"pwd_period_week_day_id": 36,
|
|
||||||
"pwd_period_day_in_week_id": 2,
|
|
||||||
"pwd_time_from": "14:00:00",
|
|
||||||
"pwd_time_to": "18:00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pwd_id": 623,
|
|
||||||
"pwd_period_week_day_id": 36,
|
|
||||||
"pwd_period_day_in_week_id": 3,
|
|
||||||
"pwd_time_from": "08:00:00",
|
|
||||||
"pwd_time_to": "12:00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pwd_id": 623,
|
|
||||||
"pwd_period_week_day_id": 36,
|
|
||||||
"pwd_period_day_in_week_id": 3,
|
|
||||||
"pwd_time_from": "14:00:00",
|
|
||||||
"pwd_time_to": "18:00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pwd_id": 624,
|
|
||||||
"pwd_period_week_day_id": 36,
|
|
||||||
"pwd_period_day_in_week_id": 4,
|
|
||||||
"pwd_time_from": "08:00:00",
|
|
||||||
"pwd_time_to": "12:00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pwd_id": 624,
|
|
||||||
"pwd_period_week_day_id": 36,
|
|
||||||
"pwd_period_day_in_week_id": 4,
|
|
||||||
"pwd_time_from": "14:00:00",
|
|
||||||
"pwd_time_to": "18:00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pwd_id": 625,
|
|
||||||
"pwd_period_week_day_id": 36,
|
|
||||||
"pwd_period_day_in_week_id": 5,
|
|
||||||
"pwd_time_from": "08:00:00",
|
|
||||||
"pwd_time_to": "12:00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pwd_id": 625,
|
|
||||||
"pwd_period_week_day_id": 36,
|
|
||||||
"pwd_period_day_in_week_id": 5,
|
|
||||||
"pwd_time_from": "14:00:00",
|
|
||||||
"pwd_time_to": "18:00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pwd_id": 626,
|
|
||||||
"pwd_period_week_day_id": 36,
|
|
||||||
"pwd_period_day_in_week_id": 6,
|
|
||||||
"pwd_time_from": "08:00:00",
|
|
||||||
"pwd_time_to": "12:00:00"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"SpecialDaysWorktime": [
|
|
||||||
{
|
|
||||||
"pedwt_id": 2156,
|
|
||||||
"pedwt_period_exc_day_id": 2024,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2158,
|
|
||||||
"pedwt_period_exc_day_id": 2025,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2160,
|
|
||||||
"pedwt_period_exc_day_id": 2026,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2162,
|
|
||||||
"pedwt_period_exc_day_id": 2027,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2164,
|
|
||||||
"pedwt_period_exc_day_id": 2028,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2170,
|
|
||||||
"pedwt_period_exc_day_id": 2030,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2172,
|
|
||||||
"pedwt_period_exc_day_id": 2032,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2174,
|
|
||||||
"pedwt_period_exc_day_id": 11,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2175,
|
|
||||||
"pedwt_period_exc_day_id": 13,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2178,
|
|
||||||
"pedwt_period_exc_day_id": 2022,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2179,
|
|
||||||
"pedwt_period_exc_day_id": 14,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2184,
|
|
||||||
"pedwt_period_exc_day_id": 2021,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2188,
|
|
||||||
"pedwt_period_exc_day_id": 2031,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2189,
|
|
||||||
"pedwt_period_exc_day_id": 2029,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2194,
|
|
||||||
"pedwt_period_exc_day_id": 2034,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2200,
|
|
||||||
"pedwt_period_exc_day_id": 2037,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2202,
|
|
||||||
"pedwt_period_exc_day_id": 2038,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2226,
|
|
||||||
"pedwt_period_exc_day_id": 2016,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2245,
|
|
||||||
"pedwt_period_exc_day_id": 2035,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2246,
|
|
||||||
"pedwt_period_exc_day_id": 2036,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2249,
|
|
||||||
"pedwt_period_exc_day_id": 2050,
|
|
||||||
"pedwt_time_from": "08:00:00",
|
|
||||||
"pedwt_time_to": "16:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2250,
|
|
||||||
"pedwt_period_exc_day_id": 2051,
|
|
||||||
"pedwt_time_from": "08:00:00",
|
|
||||||
"pedwt_time_to": "16:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2251,
|
|
||||||
"pedwt_period_exc_day_id": 2052,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2252,
|
|
||||||
"pedwt_period_exc_day_id": 2053,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2253,
|
|
||||||
"pedwt_period_exc_day_id": 2054,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2254,
|
|
||||||
"pedwt_period_exc_day_id": 2055,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2255,
|
|
||||||
"pedwt_period_exc_day_id": 2056,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2256,
|
|
||||||
"pedwt_period_exc_day_id": 2057,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2257,
|
|
||||||
"pedwt_period_exc_day_id": 2058,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2258,
|
|
||||||
"pedwt_period_exc_day_id": 2059,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2259,
|
|
||||||
"pedwt_period_exc_day_id": 2060,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"SpecialDays": [
|
|
||||||
{
|
|
||||||
"ped_id": 11,
|
|
||||||
"ped_label": "Mariae Empfaengnis",
|
|
||||||
"ped_date_start": "2023-12-08",
|
|
||||||
"ped_date_end": "2023-12-08",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 13,
|
|
||||||
"ped_label": "Christtag",
|
|
||||||
"ped_date_start": "2023-12-25",
|
|
||||||
"ped_date_end": "2023-12-25",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 14,
|
|
||||||
"ped_label": "Stefanitag",
|
|
||||||
"ped_date_start": "2023-12-26",
|
|
||||||
"ped_date_end": "2023-12-26",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2016,
|
|
||||||
"ped_label": "Neujahr",
|
|
||||||
"ped_date_start": "2024-01-01",
|
|
||||||
"ped_date_end": "2024-01-01",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2021,
|
|
||||||
"ped_label": "Heilig Drei Koenige",
|
|
||||||
"ped_date_start": "2024-01-06",
|
|
||||||
"ped_date_end": "2024-01-06",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2022,
|
|
||||||
"ped_label": "Ostermontag",
|
|
||||||
"ped_date_start": "2024-01-04",
|
|
||||||
"ped_date_end": "2024-01-04",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 2024
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2024,
|
|
||||||
"ped_label": "Staatsfeiertag",
|
|
||||||
"ped_date_start": "2024-05-01",
|
|
||||||
"ped_date_end": "2024-05-01",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2025,
|
|
||||||
"ped_label": "Christi Himmelfahrt",
|
|
||||||
"ped_date_start": "2024-05-09",
|
|
||||||
"ped_date_end": "2024-05-09",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 2024
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2026,
|
|
||||||
"ped_label": "Pfingst Montag",
|
|
||||||
"ped_date_start": "2024-05-20",
|
|
||||||
"ped_date_end": "2024-05-20",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 2024
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2027,
|
|
||||||
"ped_label": "Fronleichnam",
|
|
||||||
"ped_date_start": "2024-05-30",
|
|
||||||
"ped_date_end": "2024-05-30",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 2024
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2028,
|
|
||||||
"ped_label": "Maria Himmelfahrt",
|
|
||||||
"ped_date_start": "2024-08-15",
|
|
||||||
"ped_date_end": "2024-08-15",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2029,
|
|
||||||
"ped_label": "Nationalfeiertag",
|
|
||||||
"ped_date_start": "2024-10-26",
|
|
||||||
"ped_date_end": "2024-10-26",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2030,
|
|
||||||
"ped_label": "Allerheiligen",
|
|
||||||
"ped_date_start": "2024-11-01",
|
|
||||||
"ped_date_end": "2024-11-01",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2031,
|
|
||||||
"ped_label": "Mariae Empfaengnis",
|
|
||||||
"ped_date_start": "2024-08-12",
|
|
||||||
"ped_date_end": "2024-08-12",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2032,
|
|
||||||
"ped_label": "Christtag",
|
|
||||||
"ped_date_start": "2024-12-25",
|
|
||||||
"ped_date_end": "2024-12-25",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2034,
|
|
||||||
"ped_label": "Stefanitag",
|
|
||||||
"ped_date_start": "2024-12-26",
|
|
||||||
"ped_date_end": "2024-12-26",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2035,
|
|
||||||
"ped_label": "Neujahr",
|
|
||||||
"ped_date_start": "2025-01-01",
|
|
||||||
"ped_date_end": "2025-01-01",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2036,
|
|
||||||
"ped_label": "Heilig Drei Koenige",
|
|
||||||
"ped_date_start": "2025-06-01",
|
|
||||||
"ped_date_end": "2025-06-01",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2037,
|
|
||||||
"ped_label": "Ostermontag",
|
|
||||||
"ped_date_start": "2025-04-21",
|
|
||||||
"ped_date_end": "2025-04-21",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 2025
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2038,
|
|
||||||
"ped_label": "Staatsfeiertag",
|
|
||||||
"ped_date_start": "2025-05-01",
|
|
||||||
"ped_date_end": "2025-05-01",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 2025
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2050,
|
|
||||||
"ped_label": "Christi Himmelfahrt",
|
|
||||||
"ped_date_start": "2025-05-29",
|
|
||||||
"ped_date_end": "2025-05-29",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 2025
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2051,
|
|
||||||
"ped_label": "Pfingstmontag",
|
|
||||||
"ped_date_start": "2025-06-09",
|
|
||||||
"ped_date_end": "2025-06-09",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 2025
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2052,
|
|
||||||
"ped_label": "Fronlaeichnam",
|
|
||||||
"ped_date_start": "2025-06-19",
|
|
||||||
"ped_date_end": "2025-06-19",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 2025
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2053,
|
|
||||||
"ped_label": "Mariae Himmelfahrt",
|
|
||||||
"ped_date_start": "2025-08-15",
|
|
||||||
"ped_date_end": "2025-08-15",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2054,
|
|
||||||
"ped_label": "Nationalfeiertag",
|
|
||||||
"ped_date_start": "2025-10-26",
|
|
||||||
"ped_date_end": "2025-10-26",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2055,
|
|
||||||
"ped_label": "Allerheiligen",
|
|
||||||
"ped_date_start": "2025-11-01",
|
|
||||||
"ped_date_end": "2025-11-01",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2056,
|
|
||||||
"ped_label": "Mariae Empfaengnis",
|
|
||||||
"ped_date_start": "2025-12-08",
|
|
||||||
"ped_date_end": "2025-12-08",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2057,
|
|
||||||
"ped_label": "Christtag",
|
|
||||||
"ped_date_start": "2025-12-25",
|
|
||||||
"ped_date_end": "2025-12-25",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2058,
|
|
||||||
"ped_label": "Stefanitag",
|
|
||||||
"ped_date_start": "2025-12-26",
|
|
||||||
"ped_date_end": "2025-12-26",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2059,
|
|
||||||
"ped_label": "Neujahr",
|
|
||||||
"ped_date_start": "2026-01-01",
|
|
||||||
"ped_date_end": "2026-01-01",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2060,
|
|
||||||
"ped_label": "Heilige Drei Koenige",
|
|
||||||
"ped_date_start": "2026-01-06",
|
|
||||||
"ped_date_end": "2026-01-06",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 0
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"PeriodYear": [
|
|
||||||
{
|
|
||||||
"pye_id": 8,
|
|
||||||
"pye_label": "Whole year",
|
|
||||||
"pye_start_month": 1,
|
|
||||||
"pye_start_day": 1,
|
|
||||||
"pye_end_month": 12,
|
|
||||||
"pye_end_day": 31
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
@ -1,598 +0,0 @@
|
|||||||
{
|
|
||||||
"Project" : "Linsinger Maschinenbau",
|
|
||||||
"Version" : "1.0.0",
|
|
||||||
"Info" : "",
|
|
||||||
"Currency": [
|
|
||||||
{
|
|
||||||
"pcu_id": 1,
|
|
||||||
"pcu_sign": "€",
|
|
||||||
"pcu_major": "EUR",
|
|
||||||
"pcu_minor": "",
|
|
||||||
"pcu_active": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"PaymentMethod": [
|
|
||||||
{
|
|
||||||
"pme_id": 1,
|
|
||||||
"pme_label": "progressive"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pme_id": 2,
|
|
||||||
"pme_label": "degressive"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pme_id": 3,
|
|
||||||
"pme_label": "linear"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pme_id": 4,
|
|
||||||
"pme_label": "steps"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"PaymentOption": [
|
|
||||||
{
|
|
||||||
"pop_id": 1049,
|
|
||||||
"pop_label": "Zone 1",
|
|
||||||
"pop_payment_method_id": 4,
|
|
||||||
"pop_day_end_time": "00:00:00",
|
|
||||||
"pop_day_night_end_time": "00:00:00",
|
|
||||||
"pop_price_night": 0,
|
|
||||||
"pop_min_time": 1,
|
|
||||||
"pop_max_time": 2,
|
|
||||||
"pop_min_price": 900,
|
|
||||||
"pop_carry_over": 0,
|
|
||||||
"pop_daily_card_price": 0,
|
|
||||||
"pop_business_hours": 2
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"PaymentRate": [
|
|
||||||
{
|
|
||||||
"pra_payment_option_id": 1049,
|
|
||||||
"pra_payment_unit_id": 1,
|
|
||||||
"pra_price": 900
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pra_payment_option_id": 1049,
|
|
||||||
"pra_payment_unit_id": 2,
|
|
||||||
"pra_price": 1500
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pra_payment_option_id": 1049,
|
|
||||||
"pra_payment_unit_id": 3,
|
|
||||||
"pra_price": 3000
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"Duration": [
|
|
||||||
{
|
|
||||||
"pun_id": 1,
|
|
||||||
"pun_label": "3 Marken",
|
|
||||||
"pun_duration": 180
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pun_id": 2,
|
|
||||||
"pun_label": "5 Marken",
|
|
||||||
"pun_duration": 300
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pun_id": 3,
|
|
||||||
"pun_label": "10 Marken",
|
|
||||||
"pun_duration": 600
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"WeekDaysWorktime": [
|
|
||||||
{
|
|
||||||
"pwd_id": 621,
|
|
||||||
"pwd_period_week_day_id": 36,
|
|
||||||
"pwd_period_day_in_week_id": 1,
|
|
||||||
"pwd_time_from": "06:00:00",
|
|
||||||
"pwd_time_to": "18:00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pwd_id": 622,
|
|
||||||
"pwd_period_week_day_id": 36,
|
|
||||||
"pwd_period_day_in_week_id": 2,
|
|
||||||
"pwd_time_from": "06:00:00",
|
|
||||||
"pwd_time_to": "18:00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pwd_id": 623,
|
|
||||||
"pwd_period_week_day_id": 36,
|
|
||||||
"pwd_period_day_in_week_id": 3,
|
|
||||||
"pwd_time_from": "06:00:00",
|
|
||||||
"pwd_time_to": "18:00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pwd_id": 624,
|
|
||||||
"pwd_period_week_day_id": 36,
|
|
||||||
"pwd_period_day_in_week_id": 4,
|
|
||||||
"pwd_time_from": "06:00:00",
|
|
||||||
"pwd_time_to": "18:00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pwd_id": 625,
|
|
||||||
"pwd_period_week_day_id": 36,
|
|
||||||
"pwd_period_day_in_week_id": 5,
|
|
||||||
"pwd_time_from": "06:00:00",
|
|
||||||
"pwd_time_to": "12:00:00"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"SpecialDaysWorktime": [
|
|
||||||
{
|
|
||||||
"pedwt_id": 2156,
|
|
||||||
"pedwt_period_exc_day_id": 2024,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2158,
|
|
||||||
"pedwt_period_exc_day_id": 2025,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2160,
|
|
||||||
"pedwt_period_exc_day_id": 2026,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2162,
|
|
||||||
"pedwt_period_exc_day_id": 2027,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2164,
|
|
||||||
"pedwt_period_exc_day_id": 2028,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2170,
|
|
||||||
"pedwt_period_exc_day_id": 2030,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2172,
|
|
||||||
"pedwt_period_exc_day_id": 2032,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2174,
|
|
||||||
"pedwt_period_exc_day_id": 11,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2175,
|
|
||||||
"pedwt_period_exc_day_id": 13,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2178,
|
|
||||||
"pedwt_period_exc_day_id": 2022,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2179,
|
|
||||||
"pedwt_period_exc_day_id": 14,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2184,
|
|
||||||
"pedwt_period_exc_day_id": 2021,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2188,
|
|
||||||
"pedwt_period_exc_day_id": 2031,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2189,
|
|
||||||
"pedwt_period_exc_day_id": 2029,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2194,
|
|
||||||
"pedwt_period_exc_day_id": 2034,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2200,
|
|
||||||
"pedwt_period_exc_day_id": 2037,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2202,
|
|
||||||
"pedwt_period_exc_day_id": 2038,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2226,
|
|
||||||
"pedwt_period_exc_day_id": 2016,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2245,
|
|
||||||
"pedwt_period_exc_day_id": 2035,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2246,
|
|
||||||
"pedwt_period_exc_day_id": 2036,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2249,
|
|
||||||
"pedwt_period_exc_day_id": 2050,
|
|
||||||
"pedwt_time_from": "08:00:00",
|
|
||||||
"pedwt_time_to": "16:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2250,
|
|
||||||
"pedwt_period_exc_day_id": 2051,
|
|
||||||
"pedwt_time_from": "08:00:00",
|
|
||||||
"pedwt_time_to": "16:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2251,
|
|
||||||
"pedwt_period_exc_day_id": 2052,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2252,
|
|
||||||
"pedwt_period_exc_day_id": 2053,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2253,
|
|
||||||
"pedwt_period_exc_day_id": 2054,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2254,
|
|
||||||
"pedwt_period_exc_day_id": 2055,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2255,
|
|
||||||
"pedwt_period_exc_day_id": 2056,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2256,
|
|
||||||
"pedwt_period_exc_day_id": 2057,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2257,
|
|
||||||
"pedwt_period_exc_day_id": 2058,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2258,
|
|
||||||
"pedwt_period_exc_day_id": 2059,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pedwt_id": 2259,
|
|
||||||
"pedwt_period_exc_day_id": 2060,
|
|
||||||
"pedwt_time_from": "00:00:00",
|
|
||||||
"pedwt_time_to": "00:00:00",
|
|
||||||
"pedwt_price": 0
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"SpecialDays": [
|
|
||||||
{
|
|
||||||
"ped_id": 11,
|
|
||||||
"ped_label": "Mariae Empfaengnis",
|
|
||||||
"ped_date_start": "2023-12-08",
|
|
||||||
"ped_date_end": "2023-12-08",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 13,
|
|
||||||
"ped_label": "Christtag",
|
|
||||||
"ped_date_start": "2023-12-25",
|
|
||||||
"ped_date_end": "2023-12-25",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 14,
|
|
||||||
"ped_label": "Stefanitag",
|
|
||||||
"ped_date_start": "2023-12-26",
|
|
||||||
"ped_date_end": "2023-12-26",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2016,
|
|
||||||
"ped_label": "Neujahr",
|
|
||||||
"ped_date_start": "2024-01-01",
|
|
||||||
"ped_date_end": "2024-01-01",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2021,
|
|
||||||
"ped_label": "Heilig Drei Koenige",
|
|
||||||
"ped_date_start": "2024-01-06",
|
|
||||||
"ped_date_end": "2024-01-06",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2022,
|
|
||||||
"ped_label": "Ostermontag",
|
|
||||||
"ped_date_start": "2024-01-04",
|
|
||||||
"ped_date_end": "2024-01-04",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 2024
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2024,
|
|
||||||
"ped_label": "Staatsfeiertag",
|
|
||||||
"ped_date_start": "2024-05-01",
|
|
||||||
"ped_date_end": "2024-05-01",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2025,
|
|
||||||
"ped_label": "Christi Himmelfahrt",
|
|
||||||
"ped_date_start": "2024-05-09",
|
|
||||||
"ped_date_end": "2024-05-09",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 2024
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2026,
|
|
||||||
"ped_label": "Pfingst Montag",
|
|
||||||
"ped_date_start": "2024-05-20",
|
|
||||||
"ped_date_end": "2024-05-20",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 2024
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2027,
|
|
||||||
"ped_label": "Fronleichnam",
|
|
||||||
"ped_date_start": "2024-05-30",
|
|
||||||
"ped_date_end": "2024-05-30",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 2024
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2028,
|
|
||||||
"ped_label": "Maria Himmelfahrt",
|
|
||||||
"ped_date_start": "2024-08-15",
|
|
||||||
"ped_date_end": "2024-08-15",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2029,
|
|
||||||
"ped_label": "Nationalfeiertag",
|
|
||||||
"ped_date_start": "2024-10-26",
|
|
||||||
"ped_date_end": "2024-10-26",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2030,
|
|
||||||
"ped_label": "Allerheiligen",
|
|
||||||
"ped_date_start": "2024-11-01",
|
|
||||||
"ped_date_end": "2024-11-01",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2031,
|
|
||||||
"ped_label": "Mariae Empfaengnis",
|
|
||||||
"ped_date_start": "2024-08-12",
|
|
||||||
"ped_date_end": "2024-08-12",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2032,
|
|
||||||
"ped_label": "Christtag",
|
|
||||||
"ped_date_start": "2024-12-25",
|
|
||||||
"ped_date_end": "2024-12-25",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2034,
|
|
||||||
"ped_label": "Stefanitag",
|
|
||||||
"ped_date_start": "2024-12-26",
|
|
||||||
"ped_date_end": "2024-12-26",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2035,
|
|
||||||
"ped_label": "Neujahr",
|
|
||||||
"ped_date_start": "2025-01-01",
|
|
||||||
"ped_date_end": "2025-01-01",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2036,
|
|
||||||
"ped_label": "Heilig Drei Koenige",
|
|
||||||
"ped_date_start": "2025-06-01",
|
|
||||||
"ped_date_end": "2025-06-01",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2037,
|
|
||||||
"ped_label": "Ostermontag",
|
|
||||||
"ped_date_start": "2025-04-21",
|
|
||||||
"ped_date_end": "2025-04-21",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 2025
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2038,
|
|
||||||
"ped_label": "Staatsfeiertag",
|
|
||||||
"ped_date_start": "2025-05-01",
|
|
||||||
"ped_date_end": "2025-05-01",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 2025
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2050,
|
|
||||||
"ped_label": "Christi Himmelfahrt",
|
|
||||||
"ped_date_start": "2025-05-29",
|
|
||||||
"ped_date_end": "2025-05-29",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 2025
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2051,
|
|
||||||
"ped_label": "Pfingstmontag",
|
|
||||||
"ped_date_start": "2025-06-09",
|
|
||||||
"ped_date_end": "2025-06-09",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 2025
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2052,
|
|
||||||
"ped_label": "Fronlaeichnam",
|
|
||||||
"ped_date_start": "2025-06-19",
|
|
||||||
"ped_date_end": "2025-06-19",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 2025
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2053,
|
|
||||||
"ped_label": "Mariae Himmelfahrt",
|
|
||||||
"ped_date_start": "2025-08-15",
|
|
||||||
"ped_date_end": "2025-08-15",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2054,
|
|
||||||
"ped_label": "Nationalfeiertag",
|
|
||||||
"ped_date_start": "2025-10-26",
|
|
||||||
"ped_date_end": "2025-10-26",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2055,
|
|
||||||
"ped_label": "Allerheiligen",
|
|
||||||
"ped_date_start": "2025-11-01",
|
|
||||||
"ped_date_end": "2025-11-01",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2056,
|
|
||||||
"ped_label": "Mariae Empfaengnis",
|
|
||||||
"ped_date_start": "2025-12-08",
|
|
||||||
"ped_date_end": "2025-12-08",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2057,
|
|
||||||
"ped_label": "Christtag",
|
|
||||||
"ped_date_start": "2025-12-25",
|
|
||||||
"ped_date_end": "2025-12-25",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2058,
|
|
||||||
"ped_label": "Stefanitag",
|
|
||||||
"ped_date_start": "2025-12-26",
|
|
||||||
"ped_date_end": "2025-12-26",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2059,
|
|
||||||
"ped_label": "Neujahr",
|
|
||||||
"ped_date_start": "2026-01-01",
|
|
||||||
"ped_date_end": "2026-01-01",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ped_id": 2060,
|
|
||||||
"ped_label": "Heilige Drei Koenige",
|
|
||||||
"ped_date_start": "2026-01-06",
|
|
||||||
"ped_date_end": "2026-01-06",
|
|
||||||
"ped_period_special_day_id": 1,
|
|
||||||
"ped_year": 0
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"PeriodYear": [
|
|
||||||
{
|
|
||||||
"pye_id": 8,
|
|
||||||
"pye_label": "Whole year",
|
|
||||||
"pye_start_month": 1,
|
|
||||||
"pye_start_day": 1,
|
|
||||||
"pye_end_month": 12,
|
|
||||||
"pye_end_day": 31
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
@ -1,182 +0,0 @@
|
|||||||
{
|
|
||||||
"Project" : "Nordisches Ausbildungszentrum",
|
|
||||||
"Version" : "1.0.0",
|
|
||||||
"Info" : "",
|
|
||||||
"Currency": [
|
|
||||||
{
|
|
||||||
"pcu_id": 1,
|
|
||||||
"pcu_sign": "€",
|
|
||||||
"pcu_major": "EUR",
|
|
||||||
"pcu_minor": "",
|
|
||||||
"pcu_active": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"PaymentMethod": [
|
|
||||||
{
|
|
||||||
"pme_id": 1,
|
|
||||||
"pme_label": "progressive"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pme_id": 2,
|
|
||||||
"pme_label": "degressive"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pme_id": 3,
|
|
||||||
"pme_label": "linear"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pme_id": 4,
|
|
||||||
"pme_label": "steps"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"TimeBase": [
|
|
||||||
{
|
|
||||||
"tbase_type": 0,
|
|
||||||
"tbase_label": "absolute time"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"tbase_type": 1,
|
|
||||||
"tbase_label": "relative time"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"Customer": [
|
|
||||||
{
|
|
||||||
"cust_type": 1000,
|
|
||||||
"cust_label": "Adult"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"cust_type": 1001,
|
|
||||||
"cust_label": "Child"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"cust_type": 1002,
|
|
||||||
"cust_label": "Teen"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"PaymentOption": [
|
|
||||||
{
|
|
||||||
"pop_id": 1049,
|
|
||||||
"pop_label": "Zone 1",
|
|
||||||
"pop_payment_method_id": 4,
|
|
||||||
"pop_day_end_time": "00:00:00",
|
|
||||||
"pop_day_night_end_time": "00:00:00",
|
|
||||||
"pop_price_night": 0,
|
|
||||||
"pop_min_time": 1,
|
|
||||||
"pop_max_time": 2,
|
|
||||||
"pop_min_price": 900,
|
|
||||||
"pop_carry_over": 0,
|
|
||||||
"pop_daily_card_price": 0,
|
|
||||||
"pop_business_hours": 2
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"PaymentRate": [
|
|
||||||
{
|
|
||||||
"pop_comment":"Unused"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"DailyTicket": [
|
|
||||||
{
|
|
||||||
"daily_ticket_payment_option_id": 1049,
|
|
||||||
"daily_ticket_unit_id": 1,
|
|
||||||
"daily_ticket_price": 400,
|
|
||||||
|
|
||||||
"daily_ticket_tbase_type": 0,
|
|
||||||
"daily_ticket_tbase_type_comment": "absolute or relative to offset",
|
|
||||||
|
|
||||||
"daily_ticket_clearance_customer_type": 1002,
|
|
||||||
"daily_ticket_clearance_customer_type_comment": "who is allowed to buy a ticket",
|
|
||||||
|
|
||||||
"daily_ticket_weekday_range" : 1,
|
|
||||||
"daily_ticket_weekday_ranges_comment" : "ticket valid on week day id and associated time range",
|
|
||||||
"daily_ticket_special_day_range": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"daily_ticket_payment_option_id": 1049,
|
|
||||||
"daily_ticket_unit_id": 2,
|
|
||||||
"daily_ticket_price": 800,
|
|
||||||
|
|
||||||
"daily_ticket_tbase_type": 0,
|
|
||||||
"daily_ticket_tbase_type_comment": "absolute or relative to offset",
|
|
||||||
|
|
||||||
"daily_ticket_clearance_customer_type": 1000,
|
|
||||||
"daily_ticket_clearance_customer_type_comment": "who is allowed to buy a ticket",
|
|
||||||
|
|
||||||
"daily_ticket_weekday_ranges" : 1,
|
|
||||||
"daily_ticket_weekday_ranges_comment" : "ticket valid on week day id and associated time range",
|
|
||||||
"daily_ticket_special_day_ranges": 0
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"Duration": [
|
|
||||||
{
|
|
||||||
"pun_comment":"Unused"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"TimeRange" : [
|
|
||||||
{
|
|
||||||
"time_range_id": 1,
|
|
||||||
"time_range_from": "08:00:00",
|
|
||||||
"time_range_to": "20:00:00"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"WeekDaysWorktime": [
|
|
||||||
{
|
|
||||||
"pwd_id": 621,
|
|
||||||
"pwd_period_week_day_id": 36,
|
|
||||||
"pwd_period_day_in_week_id": 1,
|
|
||||||
"pwd_time_from": "08:00:00",
|
|
||||||
"pwd_time_to": "20:00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pwd_id": 622,
|
|
||||||
"pwd_period_week_day_id": 36,
|
|
||||||
"pwd_period_day_in_week_id": 2,
|
|
||||||
"pwd_time_from": "08:00:00",
|
|
||||||
"pwd_time_to": "20:00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pwd_id": 623,
|
|
||||||
"pwd_period_week_day_id": 36,
|
|
||||||
"pwd_period_day_in_week_id": 3,
|
|
||||||
"pwd_time_from": "08:00:00",
|
|
||||||
"pwd_time_to": "20:00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pwd_id": 624,
|
|
||||||
"pwd_period_week_day_id": 36,
|
|
||||||
"pwd_period_day_in_week_id": 4,
|
|
||||||
"pwd_time_from": "08:00:00",
|
|
||||||
"pwd_time_to": "20:00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pwd_id": 625,
|
|
||||||
"pwd_period_week_day_id": 36,
|
|
||||||
"pwd_period_day_in_week_id": 5,
|
|
||||||
"pwd_time_from": "08:00:00",
|
|
||||||
"pwd_time_to": "20:00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pwd_id": 626,
|
|
||||||
"pwd_period_week_day_id": 36,
|
|
||||||
"pwd_period_day_in_week_id": 6,
|
|
||||||
"pwd_time_from": "08:00:00",
|
|
||||||
"pwd_time_to": "20:00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"pwd_id": 627,
|
|
||||||
"pwd_period_week_day_id": 36,
|
|
||||||
"pwd_period_day_in_week_id": 1,
|
|
||||||
"pwd_time_from": "08:00:00",
|
|
||||||
"pwd_time_to": "20:00:00"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"PeriodYear": [
|
|
||||||
{
|
|
||||||
"pye_id": 8,
|
|
||||||
"pye_label": "Whole year",
|
|
||||||
"pye_start_month": 1,
|
|
||||||
"pye_start_day": 1,
|
|
||||||
"pye_end_month": 12,
|
|
||||||
"pye_end_day": 31
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user