X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/7dc3852ce6e3c2344e2de0815c1c79fc6b849bcf..f6eb7e68d3af08757b683092705dcd72ba1f4796:/projects/stargazer/plugins/store/firebird/firebird_store_tariffs.cpp diff --git a/projects/stargazer/plugins/store/firebird/firebird_store_tariffs.cpp b/projects/stargazer/plugins/store/firebird/firebird_store_tariffs.cpp index 3e82e16f..c3aecbec 100644 --- a/projects/stargazer/plugins/store/firebird/firebird_store_tariffs.cpp +++ b/projects/stargazer/plugins/store/firebird/firebird_store_tariffs.cpp @@ -160,22 +160,37 @@ try if (schemaVersion > 0) query += ", period = ?"; if (schemaVersion > 1) - query += ", change_policy = ?"; + query += ", change_policy = ?, \ + change_policy_timeout = ?"; query += " where pk_tariff = ?"; + unsigned num = 5; st->Prepare(query); st->Set(1, td.tariffConf.fee); st->Set(2, td.tariffConf.free); st->Set(3, td.tariffConf.passiveCost); st->Set(4, td.tariffConf.traffType); + if (schemaVersion == 0) + st->Set(num, id); if (schemaVersion > 0) + { st->Set(5, TARIFF::PeriodToString(td.tariffConf.period)); + if (schemaVersion == 1) + st->Set(num + 1, id); + } + if (schemaVersion > 1) + { st->Set(6, TARIFF::ChangePolicyToString(td.tariffConf.changePolicy)); + IBPP::Timestamp policyTimeout; + time_t2ts(td.tariffConf.changePolicyTimeout, &policyTimeout); + st->Set(7, policyTimeout); + if (schemaVersion == 2) + st->Set(num + 3, id); + } - st->Set(7, id); st->Execute(); st->Close(); @@ -283,7 +298,10 @@ try if (schemaVersion > 0) td->tariffConf.period = TARIFF::StringToPeriod(Get(st, 7)); if (schemaVersion > 1) + { td->tariffConf.changePolicy = TARIFF::StringToChangePolicy(Get(st, 8)); + td->tariffConf.changePolicyTimeout = ts2time_t(Get(st, 9)); + } st->Close(); st->Prepare("select * from tb_tariffs_params where fk_tariff = ?"); st->Set(1, id);