Собственно проблема в том, что в личном кабинете стоимость звонка округляется до двух символов. Как итоге когда пользователи считают сумму всех звонков они получают несколько меньшую цыфру чем в счёте, в котором стоит цыфра хоть и округлённая до 2х знаков, но округлённая уже после ссуммирования всех стоимостей звонков.
Тоесть для примера.
В биллинге будет так:
5,919
5,189
10,569
итог 21,677 после округления в счёт идёт 21.67
В ЛК будет так:
5,91
5,18
10,56
итог 21,65
Если звонков несколько тысяч эта погрешность выливается в десятки и даже сотни рублей.
Как убрать округление до 2х знаков в личном кабинете?
Прошу прощения. Сам раскопал.
Нашол в файле 34_telephony_report.php строчку
и с особым ценизмом избавился от функции roundDouble() доводя строку до исходной наготы вида:
Также я разбавил блок
нехитрой конструкцией вида
+добавил вывод общей суммы округлив её до 2х знаков и получив конструкцию вида
Делалось на скорую руку, поэтому не совсем оптимизированно.
Нашол в файле 34_telephony_report.php строчку
Код: Выделить всё
$tmp['total_cost'] = roundDouble($this->urfa->get_double());
Код: Выделить всё
$tmp['total_cost'] = $this->urfa->get_double();
Код: Выделить всё
foreach($this->report as $id => $rep) {
$table->addRow(array(
$rep['start_time'],$rep['end_time'],$rep['called_station'],
$rep['calling_station'],$rep['direction'],
$rep['session_time'],$rep['total_cost']));
}
Код: Выделить всё
$sum_cost = $sum_cost + $rep['total_cost'];
Код: Выделить всё
foreach($this->report as $id => $rep) {
$show = true;
$sum_cost = $sum_cost + $rep['total_cost'];
$table->addRow(array(
$rep['start_time'],$rep['end_time'],$rep['called_station'],
$rep['calling_station'],$rep['direction'],
$rep['session_time'],$rep['total_cost']));
}
$table->addRow(array('Общая сумма',round($sum_cost,2)));
Код: Выделить всё
$sum = round($row[balance]*100)/100;