ParseJson():
Add parsing for prepaid-options.
This commit is contained in:
		| @@ -591,6 +591,49 @@ bool Configuration::ParseJson(Configuration* cfg, const char* json) | ||||
|                                 QTime const &t = QTime::fromString(k->value.GetString(), Qt::ISODate); | ||||
|                                 TariffPrepaidOption.static_end = t; | ||||
|                             } | ||||
|                         } else | ||||
|                         if (QString(inner_obj_name) == QString("prepaid_week")) { | ||||
|                             if (k->value.IsArray()) { | ||||
|                                 auto days = k->value.GetArray(); | ||||
|                                 for (rapidjson::SizeType j=0; j < days.Size(); ++j) { | ||||
|                                     if (days[j].IsObject()) { | ||||
|                                         auto weekday = days[j].GetObject(); | ||||
|                                         for (auto w = weekday.MemberBegin(); w != weekday.MemberEnd(); ++w) { | ||||
|                                             int day = j+1; // 8 entries | ||||
|  | ||||
|                                             TariffPrepaidOption.prepaid[day].day = 0; | ||||
|  | ||||
|                                             QString member(QString::fromStdString(w->name.GetString())); | ||||
|                                             if (member == "prepaid_day") { | ||||
|                                                 if (w->value.IsInt()) { | ||||
|                                                     rapidjson::SizeType const d = w->value.GetInt(); | ||||
|                                                     if (d != (j+1)) { | ||||
|                                                         qCritical() << "ERROR: misconfigured jsonfile" << d << "!=" << (j+1); | ||||
|                                                     } | ||||
|                                                     TariffPrepaidOption.prepaid[day].day = day; | ||||
|                                                 } | ||||
|                                             } else | ||||
|                                             if (member == "prepaid_duration") { | ||||
|                                                 if (w->value.IsInt()) { | ||||
|                                                     TariffPrepaidOption.prepaid[day].duration = w->value.GetInt(); | ||||
|                                                 } | ||||
|                                             } else | ||||
|                                             if (member == "prepaid_static_start") { | ||||
|                                                 if (w->value.IsString()) { | ||||
|                                                     QTime const &t = QTime::fromString(w->value.GetString(), Qt::ISODate); | ||||
|                                                     TariffPrepaidOption.prepaid[day].static_start = t; | ||||
|                                                 } | ||||
|                                             } else | ||||
|                                             if (member == "prepaid_static_end") { | ||||
|                                                 if (w->value.IsString()) { | ||||
|                                                     QTime const &t = QTime::fromString(w->value.GetString(), Qt::ISODate); | ||||
|                                                     TariffPrepaidOption.prepaid[day].static_end = t; | ||||
|                                                 } | ||||
|                                             } | ||||
|                                         } | ||||
|                                     } | ||||
|                                 } | ||||
|                             } | ||||
|                         } | ||||
|                     } break; | ||||
|                     case MemberType::InterpolationType: { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user