Fixed people prices recalculation.
This commit is contained in:
+18
-14
@@ -238,10 +238,26 @@ void CampService::calcPeople(CampDataPtr data)
|
|||||||
first = first.addDays(daysEnd);
|
first = first.addDays(daysEnd);
|
||||||
int endAge = first.year() - 1;
|
int endAge = first.year() - 1;
|
||||||
|
|
||||||
|
auto setTotal = [&](){
|
||||||
|
if (sale != QDecDouble(0) && !fixedSale)
|
||||||
|
{
|
||||||
|
QDecDouble itemSale = (item->price() * sale) / 100;
|
||||||
|
item->setSale(itemSale);
|
||||||
|
item->setTotalPrice(item->price() - itemSale);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
item->setSale(0);
|
||||||
|
item->setTotalPrice(item->price());
|
||||||
|
}
|
||||||
|
|
||||||
|
addAccFee(data, item, startAge, endAge, days);
|
||||||
|
};
|
||||||
|
|
||||||
if (!item->personPrice().isNull())
|
if (!item->personPrice().isNull())
|
||||||
{
|
{
|
||||||
item->setPrice(item->personPrice()->price() * days);
|
item->setPrice(item->personPrice()->price() * days);
|
||||||
addAccFee(data, item, startAge, endAge, days);
|
setTotal();
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -258,19 +274,7 @@ void CampService::calcPeople(CampDataPtr data)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sale != QDecDouble(0) && !fixedSale)
|
setTotal();
|
||||||
{
|
|
||||||
QDecDouble itemSale = (item->price() * sale) / 100;
|
|
||||||
item->setSale(itemSale);
|
|
||||||
item->setTotalPrice(item->price() - itemSale);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
item->setSale(0);
|
|
||||||
item->setTotalPrice(item->price());
|
|
||||||
}
|
|
||||||
|
|
||||||
addAccFee(data, item, startAge, endAge, days);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user