X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/25c5bd4fe8c9fd7c4898e7dfbbdbf68dc172dcd7..086e44c60b861d665fe2a3e1cd7d691201e91c8c:/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 0fd3f2cd..325e7d7f 100644 --- a/projects/stargazer/plugins/store/firebird/firebird_store_tariffs.cpp +++ b/projects/stargazer/plugins/store/firebird/firebird_store_tariffs.cpp @@ -32,14 +32,14 @@ #include "stg/ibpp.h" //----------------------------------------------------------------------------- -int FIREBIRD_STORE::GetTariffsList(vector * tariffsList) const +int FIREBIRD_STORE::GetTariffsList(std::vector * tariffsList) const { STG_LOCKER lock(&mutex, __FILE__, __LINE__); IBPP::Transaction tr = IBPP::TransactionFactory(db, IBPP::amRead, til, tlr); IBPP::Statement st = IBPP::StatementFactory(db, tr); -string name; +std::string name; try { @@ -64,7 +64,7 @@ catch (IBPP::Exception & ex) return 0; } //----------------------------------------------------------------------------- -int FIREBIRD_STORE::AddTariff(const string & name) const +int FIREBIRD_STORE::AddTariff(const std::string & name) const { STG_LOCKER lock(&mutex, __FILE__, __LINE__); @@ -92,7 +92,7 @@ catch (IBPP::Exception & ex) return 0; } //----------------------------------------------------------------------------- -int FIREBIRD_STORE::DelTariff(const string & name) const +int FIREBIRD_STORE::DelTariff(const std::string & name) const { STG_LOCKER lock(&mutex, __FILE__, __LINE__); @@ -120,7 +120,7 @@ return 0; } //----------------------------------------------------------------------------- int FIREBIRD_STORE::SaveTariff(const TARIFF_DATA & td, - const string & tariffName) const + const std::string & tariffName) const { STG_LOCKER lock(&mutex, __FILE__, __LINE__); @@ -146,17 +146,36 @@ try } st->Get(1, id); st->Close(); - st->Prepare("update tb_tariffs set \ - fee = ?, \ - free = ?, \ - passive_cost = ?, \ - traff_type = ? \ - where pk_tariff = ?"); - st->Set(1, td.tariffConf.fee); - st->Set(2, td.tariffConf.free); - st->Set(3, td.tariffConf.passiveCost); - st->Set(4, td.tariffConf.traffType); - st->Set(5, id); + if (schemaVersion > 0) + { + st->Prepare("update tb_tariffs set \ + fee = ?, \ + free = ?, \ + passive_cost = ?, \ + traff_type = ?, \ + period = ? \ + where pk_tariff = ?"); + st->Set(1, td.tariffConf.fee); + st->Set(2, td.tariffConf.free); + st->Set(3, td.tariffConf.passiveCost); + st->Set(4, td.tariffConf.traffType); + st->Set(5, TARIFF::PeriodToString(td.tariffConf.period)); + st->Set(6, id); + } + else + { + st->Prepare("update tb_tariffs set \ + fee = ?, \ + free = ?, \ + passive_cost = ?, \ + traff_type = ? \ + where pk_tariff = ?"); + st->Set(1, td.tariffConf.fee); + st->Set(2, td.tariffConf.free); + st->Set(3, td.tariffConf.passiveCost); + st->Set(4, td.tariffConf.traffType); + st->Set(5, id); + } st->Execute(); st->Close(); @@ -200,7 +219,7 @@ try threshold = ?, \ time_day_begins = ?, \ time_day_ends = ? \ - where fk_tariff = ? and dir_num = ?"); + where fk_tariff = ? and dir_num = ?"); st->Set(1, pda); st->Set(2, pdb); st->Set(3, pna); @@ -228,7 +247,7 @@ return 0; } //----------------------------------------------------------------------------- int FIREBIRD_STORE::RestoreTariff(TARIFF_DATA * td, - const string & tariffName) const + const std::string & tariffName) const { STG_LOCKER lock(&mutex, __FILE__, __LINE__); @@ -246,7 +265,7 @@ td->tariffConf.name = tariffName; try { tr->Start(); - st->Prepare("select * from tb_tariffs where name = ?"); + st->Prepare("select * from tb_tariffs where name = ?"); // TODO: explicit field order! st->Set(1, tariffName); st->Execute(); if (!st->Fetch()) @@ -261,6 +280,12 @@ try st->Get(4, td->tariffConf.free); st->Get(5, td->tariffConf.passiveCost); st->Get(6, td->tariffConf.traffType); + if (schemaVersion > 0) + { + std::string period; + st->Get(7, period); + td->tariffConf.period = TARIFF::StringToPeriod(period); + } st->Close(); st->Prepare("select * from tb_tariffs_params where fk_tariff = ?"); st->Set(1, id);