From: Elena Mamontova Date: Fri, 5 Aug 2016 16:41:39 +0000 (+0300) Subject: Ticket 37. In the ProcessNewMonth() function switch construction changed X-Git-Tag: 2.409~134 X-Git-Url: https://git.stg.codes/stg.git/commitdiff_plain/e3c5fe3cce7be5d2b48bfcf11a1de20ca12fc7e0?ds=sidebyside;hp=532591d204b34bd5d666b2e40eeeb6b047fd279c Ticket 37. In the ProcessNewMonth() function switch construction changed to TariffChangelsAllowed() function call. --- diff --git a/projects/stargazer/user_impl.cpp b/projects/stargazer/user_impl.cpp index afd70b60..72a3378f 100644 --- a/projects/stargazer/user_impl.cpp +++ b/projects/stargazer/user_impl.cpp @@ -1178,48 +1178,22 @@ if (nextTariff.ConstData() != "") { const TARIFF * nt = tariffs->FindByName(nextTariff); if (nt == NULL) + { WriteServLog("Cannot change tariff for user %s. Tariff %s not exist.", login.c_str(), property.tariffName.Get().c_str()); + } else { - switch (tariff->GetChangePolicy()) + if (tariff->TariffChangelsAllowed(*nt) == "") { - case TARIFF::ALLOW: - { - property.tariffName.Set(nextTariff, sysAdmin, login, store); - break; - } - case TARIFF::TO_CHEAP: - { - if (nt->GetFee() < tariff->GetFee()) - property.tariffName.Set(nextTariff, sysAdmin, login, store); - else - WriteServLog("Tariff change is prohibited for user %s due to the policy %s. Current tariff %s is more cheap than new tariff %s.", - login.c_str(), - TARIFF::ChangePolicyToString(tariff->GetChangePolicy()).c_str(), - property.tariffName.Get().c_str(), - property.nextTariff.Get().c_str()); - break; - } - case TARIFF::TO_EXPENSIVE: - { - if (nt->GetFee() > tariff->GetFee()) - property.tariffName.Set(nextTariff, sysAdmin, login, store); - else - WriteServLog("Tariff change is prohibited for user %s due to the policy %s. Current tariff %s is more expensive than new tariff %s.", - login.c_str(), - TARIFF::ChangePolicyToString(tariff->GetChangePolicy()).c_str(), - property.tariffName.Get().c_str(), - property.nextTariff.Get().c_str()); - break; - } - case TARIFF::DENY: - { - WriteServLog("Tariff change is prohibited for user %s. Tariff %s.", - login.c_str(), - property.tariffName.Get().c_str()); - break; - } + property.tariffName.Set(nextTariff, sysAdmin, login, store); + } + else + { + std::string message = tariff->TariffChangelsAllowed(*nt); + WriteServLog("Tariff change is prohibited for user %s. %s", + login.c_str(), + message.c_str()); } } ResetNextTariff();