Merge branch 'moransBranch'
This commit is contained in:
@@ -182,8 +182,12 @@ std::string Calculator::GetDurationFromCost(Configuration* cfg,
|
||||
else
|
||||
{
|
||||
// Set new price for the normal day
|
||||
day_price = cfg->PaymentRate.find(payment_option)->second.pra_price;
|
||||
price_per_unit = Utilities::CalculatePricePerUnit(day_price);
|
||||
int pop_id = cfg->PaymentOption.find(payment_option)->second.pop_id;
|
||||
day_price = cfg->PaymentRate.find(pop_id)->second.pra_price;
|
||||
|
||||
int durationId = cfg->PaymentRate.find(pop_id)->second.pra_payment_unit_id;
|
||||
double durationUnit = cfg->Duration.find(durationId)->second.pun_duration;
|
||||
price_per_unit = Utilities::CalculatePricePerUnit(day_price,durationUnit);
|
||||
|
||||
// If no working day found, skip it (recursively call method again)
|
||||
size_t found = 0;
|
||||
@@ -202,16 +206,9 @@ std::string Calculator::GetDurationFromCost(Configuration* cfg,
|
||||
|
||||
if (price_per_unit < 0) price_per_unit = 1.0f;
|
||||
|
||||
if((price/price_per_unit) < minMin) return "PARKING NOT ALLOWED";
|
||||
// if((price/price_per_unit) < minMin) return "PARKING NOT ALLOWED";
|
||||
LOG_DEBUG("Calculated price per minute: ", price_per_unit);
|
||||
|
||||
if (price_per_unit < 0)
|
||||
{
|
||||
inputDate = inputDate.addDays(1);
|
||||
inputDate.setTime(worktime_from);
|
||||
return GetDurationFromCost(cfg, payment_option, inputDate.toString(Qt::ISODate).toStdString().c_str(), money_left, true);
|
||||
}
|
||||
|
||||
// If overtime flag is set
|
||||
if (overtime || nextDay)
|
||||
{
|
||||
@@ -315,12 +312,12 @@ std::string Calculator::GetDurationFromCost(Configuration* cfg,
|
||||
// }
|
||||
|
||||
double ret_val = 0;
|
||||
double calc_price = (int)total_duration_min - (int)price / price_per_unit;
|
||||
// double calc_price = (int)total_duration_min - (int)price / price_per_unit;
|
||||
|
||||
if (calc_price > 0 && total_duration_min > 0)
|
||||
{
|
||||
inputDate = inputDate.addSecs(-(int)ceil(calc_price) * 60);
|
||||
}
|
||||
//if (calc_price > 0 && total_duration_min > 0)
|
||||
//{
|
||||
// inputDate = inputDate.addSecs(-(int)ceil(calc_price) * 60);
|
||||
//}
|
||||
|
||||
if(price >= min_price && total_duration_min >= minMin)
|
||||
qDebug() << "GetDurationFromCost(): Valid until: " << inputDate.toString(Qt::ISODate);
|
||||
@@ -415,8 +412,13 @@ double Calculator::GetCostFromDuration(Configuration* cfg, uint8_t payment_optio
|
||||
else
|
||||
{
|
||||
// Set new price for the normal day
|
||||
day_price = cfg->PaymentRate.find(payment_option)->second.pra_price;
|
||||
price_per_unit = Utilities::CalculatePricePerUnit(day_price);
|
||||
|
||||
int pop_id = cfg->PaymentOption.find(payment_option)->second.pop_id;
|
||||
day_price = cfg->PaymentRate.find(pop_id)->second.pra_price;
|
||||
|
||||
int durationId = cfg->PaymentRate.find(pop_id)->second.pra_payment_unit_id;
|
||||
double durationUnit = cfg->Duration.find(durationId)->second.pun_duration;
|
||||
price_per_unit = Utilities::CalculatePricePerUnit(day_price,durationUnit);
|
||||
|
||||
// If no working day found, skip it (recursively call method again)
|
||||
size_t found = 0;
|
||||
@@ -511,11 +513,12 @@ double Calculator::GetCostFromDuration(Configuration* cfg, uint8_t payment_optio
|
||||
return 0.0f;
|
||||
}
|
||||
|
||||
int carry_over_status = 0;
|
||||
carry_over_status = cfg->PaymentOption.find(payment_option)->second.pop_carry_over;
|
||||
|
||||
// Go to next day if minutes not spent
|
||||
if(inputDate.time() >= worktime_to)
|
||||
{
|
||||
int carry_over_status = 0;
|
||||
carry_over_status = cfg->PaymentOption.find(payment_option)->second.pop_carry_over;
|
||||
if (carry_over_status < 1) break;
|
||||
|
||||
LOG_DEBUG("Reached end of worktime, searching for the next working day");
|
||||
|
Reference in New Issue
Block a user