X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/7dc3852ce6e3c2344e2de0815c1c79fc6b849bcf..7ef8de40e0bcdd931f5a400fd586fee3a1aaaeea:/projects/stargazer/plugins/store/postgresql/postgresql_store_tariffs.cpp diff --git a/projects/stargazer/plugins/store/postgresql/postgresql_store_tariffs.cpp b/projects/stargazer/plugins/store/postgresql/postgresql_store_tariffs.cpp index c509c39c..1b68da80 100644 --- a/projects/stargazer/plugins/store/postgresql/postgresql_store_tariffs.cpp +++ b/projects/stargazer/plugins/store/postgresql/postgresql_store_tariffs.cpp @@ -26,6 +26,12 @@ * */ +#include "postgresql_store.h" + +#include "stg/tariff_conf.h" +#include "stg/common.h" +#include "stg/locker.h" + #include #include #include @@ -33,9 +39,6 @@ #include -#include "postgresql_store.h" -#include "stg/locker.h" - namespace { @@ -226,7 +229,7 @@ if (CommitTransaction()) return 0; } //----------------------------------------------------------------------------- -int POSTGRESQL_STORE::SaveTariff(const TARIFF_DATA & td, +int POSTGRESQL_STORE::SaveTariff(const STG::TariffData & td, const std::string & tariffName) const { STG_LOCKER lock(&mutex); @@ -315,10 +318,11 @@ int32_t id; traff_type = " << td.tariffConf.traffType; if (version > 6) - query << ", period = '" << TARIFF::PeriodToString(td.tariffConf.period) << "'"; + query << ", period = '" << STG::Tariff::toString(td.tariffConf.period) << "'"; if (version > 7) - query << ", change_policy = '" << TARIFF::ChangePolicyToString(td.tariffConf.changePolicy) << "'"; + query << ", change_policy = '" << STG::Tariff::toString(td.tariffConf.changePolicy) << "', \ + change_policy_timeout = CAST('" << formatTime(td.tariffConf.changePolicyTimeout) << "' AS TIMESTAMP)"; query << " WHERE pk_tariff = " << id; @@ -410,8 +414,8 @@ if (CommitTransaction()) return 0; } //----------------------------------------------------------------------------- -int POSTGRESQL_STORE::RestoreTariff(TARIFF_DATA * td, - const std::string & tariffName) const +int POSTGRESQL_STORE::RestoreTariff(STG::TariffData * td, + const std::string & tariffName) const { STG_LOCKER lock(&mutex); @@ -459,7 +463,8 @@ if (version > 6) query << ", period"; if (version > 7) - query << ", change_policy"; + query << ", change_policy \ + , change_policy_timeout"; query << " FROM tb_tariffs WHERE name = '" << ename << "'"; @@ -505,14 +510,19 @@ int id; tuple >> td->tariffConf.fee; tuple >> td->tariffConf.free; tuple >> td->tariffConf.passiveCost; - tuple >> td->tariffConf.traffType; + unsigned traffType; + tuple >> traffType; + td->tariffConf.traffType = static_cast(traffType); } if (version > 6) - td->tariffConf.period = TARIFF::StringToPeriod(PQgetvalue(result, 0, 5)); + td->tariffConf.period = STG::Tariff::parsePeriod(PQgetvalue(result, 0, 5)); if (version > 7) - td->tariffConf.changePolicy = TARIFF::StringToChangePolicy(PQgetvalue(result, 0, 6)); + { + td->tariffConf.changePolicy = STG::Tariff::parseChangePolicy(PQgetvalue(result, 0, 6)); + td->tariffConf.changePolicyTimeout = readTime(PQgetvalue(result, 0, 7)); + } PQclear(result); @@ -593,7 +603,7 @@ for (int i = 0; i < std::min(tuples, DIR_NUM); ++i) { td->dirPrice[dir].singlePrice = false; } - if (td->dirPrice[dir].threshold == (int)0xffFFffFF) + if (td->dirPrice[dir].threshold == static_cast(0xffFFffFF)) { td->dirPrice[dir].noDiscount = true; }