X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/ede91934442fd804d7b818971a44e3ad795cb01f..dda964a76b486001f0debf38deb594ad7c13f416:/projects/stargazer/plugins/configuration/sgconfig/parser_tariff.cpp?ds=inline diff --git a/projects/stargazer/plugins/configuration/sgconfig/parser_tariff.cpp b/projects/stargazer/plugins/configuration/sgconfig/parser_tariff.cpp index e2daa336..a4531703 100644 --- a/projects/stargazer/plugins/configuration/sgconfig/parser_tariff.cpp +++ b/projects/stargazer/plugins/configuration/sgconfig/parser_tariff.cpp @@ -1,8 +1,8 @@ #include // snprintf #include +#include "stg/tariffs.h" #include "parser.h" -#include "tariffs.h" const int pt_mega = 1024 * 1024; //----------------------------------------------------------------------------- @@ -29,7 +29,7 @@ return -1; //----------------------------------------------------------------------------- void PARSER_GET_TARIFFS::CreateAnswer() { -string s; +std::string s; char vs[100]; int hd, hn, md, mn; @@ -145,6 +145,8 @@ for (; it != dataList.end(); ++it) break; } + answerList->push_back("tariffConf.period) + "\"/>"); + answerList->push_back(""); } answerList->push_back(""); @@ -180,13 +182,13 @@ void PARSER_ADD_TARIFF::CreateAnswer() //answerList->clear(); answerList->erase(answerList->begin(), answerList->end()); -if (tariffs->Add(tariffToAdd, *currAdmin) == 0) +if (tariffs->Add(tariffToAdd, currAdmin) == 0) { answerList->push_back(""); } else { - string s; + std::string s; strprintf(&s, "", tariffs->GetStrError().c_str()); answerList->push_back(s); } @@ -222,19 +224,19 @@ answerList->erase(answerList->begin(), answerList->end()); if (users->TariffInUse(tariffToDel)) { - string s; + std::string s; strprintf(&s, "", tariffToDel.c_str()); answerList->push_back(s); return; } -if (tariffs->Del(tariffToDel, *currAdmin) == 0) +if (tariffs->Del(tariffToDel, currAdmin) == 0) { answerList->push_back(""); } else { - string s; + std::string s; strprintf(&s, "", tariffs->GetStrError().c_str()); answerList->push_back(s); } @@ -244,7 +246,7 @@ else // CHG TARIFF //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- -int PARSER_CHG_TARIFF::ParseSlashedIntParams(int paramsNum, const string & s, int * params) +int PARSER_CHG_TARIFF::ParseSlashedIntParams(int paramsNum, const std::string & s, int * params) { char * str = new char[s.size() + 1]; char * p; @@ -272,7 +274,7 @@ delete[] str; return 0; } //----------------------------------------------------------------------------- -int PARSER_CHG_TARIFF::ParseSlashedDoubleParams(int paramsNum, const string & s, double * params) +int PARSER_CHG_TARIFF::ParseSlashedDoubleParams(int paramsNum, const std::string & s, double * params) { char * str = new char[s.size() + 1]; char * p; @@ -302,7 +304,6 @@ return 0; //----------------------------------------------------------------------------- int PARSER_CHG_TARIFF::ParseStart(void *, const char * el, const char ** attr) { -char st[50]; double price[DIR_NUM]; int t[DIR_NUM]; depth++; @@ -317,7 +318,7 @@ if (depth == 1) } else { - string s; + std::string s; if (strcasecmp(el, "PriceDayA") == 0) { @@ -385,10 +386,14 @@ else for (int j = 0; j < DIR_NUM; j++) { + char st[50]; snprintf(st, 50, "Time%d", j); if (strcasecmp(el, st) == 0) { - int h1, m1, h2, m2; + int h1 = 0; + int m1 = 0; + int h2 = 0; + int m2 = 0; if (ParseTariffTimeStr(attr[1], h1, m1, h2, m2) == 0) { td.dirPrice[j].hDay = h1; @@ -448,6 +453,12 @@ else } return 0; } + + if (strcasecmp(el, "Period") == 0) + { + td.tariffConf.period = TARIFF::StringToPeriod(attr[1]); + return 0; + } } return -1; } @@ -475,14 +486,14 @@ answerList->erase(answerList->begin(), answerList->end()); if (!td.tariffConf.name.data().empty()) { TARIFF_DATA tariffData = td.GetData(); - if (tariffs->Chg(tariffData, *currAdmin) == 0) + if (tariffs->Chg(tariffData, currAdmin) == 0) { answerList->push_back(""); return; } else { - string s; + std::string s; strprintf(&s, "", tariffs->GetStrError().c_str()); answerList->push_back(s); return;