64 lines
1.7 KiB
C++
64 lines
1.7 KiB
C++
#pragma once
|
|
#include <map>
|
|
#include <variant>
|
|
#include <cstddef>
|
|
#include <stdio.h>
|
|
#include <algorithm>
|
|
#include <rapidjson/rapidjson.h>
|
|
#include <rapidjson/document.h>
|
|
#include <rapidjson/error/en.h>
|
|
#include "member_type.h"
|
|
#include "currency.h"
|
|
#include "duration.h"
|
|
#include "payment_mtd.h"
|
|
#include "payment_opt.h"
|
|
#include "spec_days.h"
|
|
#include "payment_opt.h"
|
|
#include "weekdays.h"
|
|
#include "weekdays_worktime.h"
|
|
#include "spec_days_worktime.h"
|
|
#include "member_type.h"
|
|
#include "period_year.h"
|
|
#include "payment_rate.h"
|
|
#include "atb_project.h"
|
|
|
|
using namespace std;
|
|
using namespace rapidjson;
|
|
|
|
class Configuration
|
|
{
|
|
public:
|
|
ATBProject project;
|
|
ATBCurrency Currency;
|
|
ATBDuration duration;
|
|
|
|
multimap<int, ATBDuration> Duration;
|
|
multimap<int, ATBPaymentMethod> PaymentMethod;
|
|
multimap<int, ATBPaymentRate> PaymentRate;
|
|
multimap<int, ATBSpecialDaysWorktime> SpecialDaysWorktime;
|
|
multimap<int, ATBSpecialDays> SpecialDays;
|
|
multimap<int, ATBWeekDays> WeekDays;
|
|
multimap<int, ATBPeriodYear> YearPeriod;
|
|
multimap<int, ATBWeekDaysWorktime> WeekDaysWorktime;
|
|
multimap<int, ATBPaymentOption> PaymentOption;
|
|
|
|
/// <summary>
|
|
/// Parse JSON string
|
|
/// </summary>
|
|
/// <param name="json"></param>
|
|
/// <returns>Returns operation status bool (OK | FAIL) </returns>
|
|
bool ParseJson(Configuration* cfg, const char* json);
|
|
|
|
ATBPaymentOption const & getPaymentOptions();
|
|
|
|
private:
|
|
/// <summary>
|
|
/// Identify type of JSON member
|
|
/// </summary>
|
|
/// <param name="member_name"></param>
|
|
/// <returns></returns>
|
|
MemberType IdentifyJsonMember(const char* member_name);
|
|
|
|
ATBPaymentOption currentPaymentOptions;
|
|
};
|