X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/f907011b4827e85763372cdea76944b3b1cc3fd2..8ae4c5e8f4f88c52eb2947f9c9195f132785b46a:/include/stg/tariff_conf.h diff --git a/include/stg/tariff_conf.h b/include/stg/tariff_conf.h index 376ed378..ae40c128 100644 --- a/include/stg/tariff_conf.h +++ b/include/stg/tariff_conf.h @@ -34,14 +34,6 @@ #include #include -//----------------------------------------------------------------------------- -enum -{ - TRAFF_UP = 0, - TRAFF_DOWN, - TRAFF_UP_DOWN, - TRAFF_MAX -}; //----------------------------------------------------------------------------- struct DIRPRICE_DATA { @@ -103,24 +95,39 @@ struct DIRPRICE_DATA_RES return *this; } - DIRPRICE_DATA GetData() + DIRPRICE_DATA GetData() const { DIRPRICE_DATA dd; - dd.hDay = hDay; - dd.hNight = hNight; - dd.mDay = mDay; - dd.mNight = mNight; - dd.noDiscount = noDiscount; - dd.priceDayA = priceDayA; - dd.priceDayB = priceDayB; - - dd.priceNightA = priceNightA; - dd.priceNightB = priceNightB; - dd.singlePrice = singlePrice; - dd.threshold = threshold; + dd.hDay = hDay.data(); + dd.hNight = hNight.data(); + dd.mDay = mDay.data(); + dd.mNight = mNight.data(); + dd.noDiscount = noDiscount.data(); + dd.priceDayA = priceDayA.data(); + dd.priceDayB = priceDayB.data(); + + dd.priceNightA = priceNightA.data(); + dd.priceNightB = priceNightB.data(); + dd.singlePrice = singlePrice.data(); + dd.threshold = threshold.data(); return dd; } + void Splice(const DIRPRICE_DATA_RES & rhs) + { + hDay.splice(rhs.hDay); + mDay.splice(rhs.mDay); + hNight.splice(rhs.hNight); + mNight.splice(rhs.mNight); + priceDayA.splice(rhs.priceDayA); + priceNightA.splice(rhs.priceNightA); + priceDayB.splice(rhs.priceDayB); + priceNightB.splice(rhs.priceNightB); + threshold.splice(rhs.threshold); + singlePrice.splice(rhs.singlePrice); + noDiscount.splice(rhs.noDiscount); + } + RESETABLE hDay; RESETABLE mDay; RESETABLE hNight; @@ -136,17 +143,17 @@ struct DIRPRICE_DATA_RES //----------------------------------------------------------------------------- struct TARIFF_CONF { - double fee; - double free; - int traffType; - double passiveCost; - std::string name; - TARIFF::PERIOD period; + double fee; + double free; + TARIFF::TRAFF_TYPE traffType; + double passiveCost; + std::string name; + TARIFF::PERIOD period; TARIFF_CONF() : fee(0), free(0), - traffType(TRAFF_UP_DOWN), + traffType(TARIFF::TRAFF_UP_DOWN), passiveCost(0), name(), period(TARIFF::MONTH) @@ -155,7 +162,7 @@ struct TARIFF_CONF TARIFF_CONF(const std::string & n) : fee(0), free(0), - traffType(TRAFF_UP_DOWN), + traffType(TARIFF::TRAFF_UP_DOWN), passiveCost(0), name(n), period(TARIFF::MONTH) @@ -184,24 +191,24 @@ struct TARIFF_CONF_RES return *this; } - TARIFF_CONF GetData() + TARIFF_CONF GetData() const { TARIFF_CONF tc; - tc.fee = fee; - tc.free = free; - tc.name = name; - tc.passiveCost = passiveCost; - tc.traffType = traffType; - tc.period = period; + tc.fee = fee.data(); + tc.free = free.data(); + tc.name = name.data(); + tc.passiveCost = passiveCost.data(); + tc.traffType = traffType.data(); + tc.period = period.data(); return tc; } - RESETABLE fee; - RESETABLE free; - RESETABLE traffType; - RESETABLE passiveCost; - RESETABLE name; - RESETABLE period; + RESETABLE fee; + RESETABLE free; + RESETABLE traffType; + RESETABLE passiveCost; + RESETABLE name; + RESETABLE period; }; //----------------------------------------------------------------------------- struct TARIFF_DATA @@ -242,7 +249,7 @@ struct TARIFF_DATA_RES dirPrice(DIR_NUM) {} - TARIFF_DATA GetData() + TARIFF_DATA GetData() const { TARIFF_DATA td; td.tariffConf = tariffConf.GetData();