Use api_float_val and api_number_format to handle float convertions

See BT#12133
pull/2487/head
jmontoyaa 8 years ago
parent 85136e7095
commit a924900d52
  1. 2
      main/gradebook/gradebook_edit_link.php
  2. 4
      main/gradebook/gradebook_edit_result.php
  3. 4
      main/gradebook/gradebook_view_result.php
  4. 2
      main/gradebook/lib/GradebookUtils.php
  5. 7
      main/gradebook/lib/be/category.class.php
  6. 2
      main/gradebook/lib/be/evaluation.class.php
  7. 3
      main/gradebook/lib/fe/displaygradebook.php
  8. 2
      main/gradebook/lib/scoredisplay.class.php
  9. 35
      main/inc/lib/api.lib.php

@ -70,7 +70,7 @@ if ($form->validate()) {
$row_attendance = Database::fetch_array($rs_attendance);
$attendance_id = $row_attendance['ref_id'];
$sql = 'UPDATE '.$tbl_attendance.' SET
attendance_weight ='.floatval($final_weight).'
attendance_weight ='.api_float_val($final_weight).'
WHERE c_id = '.$course_id.' AND id = '.intval($attendance_id);
Database::query($sql);
}

@ -29,10 +29,10 @@ if ($edit_result_form->validate()) {
$values = $edit_result_form->exportValues();
$scores = ($values['score']);
foreach ($scores as $row) {
$resultedit = Result :: load (key($scores));
$resultedit = Result:: load(key($scores));
$row_value = $row;
if ($row_value != '' ) {
$resultedit[0]->set_score(floatval(number_format($row_value, api_get_setting('gradebook_number_decimals'))));
$resultedit[0]->set_score(api_number_format($row_value, api_get_setting('gradebook_number_decimals')));
$resultedit[0]->save();
}
next($scores);

@ -75,7 +75,7 @@ if (isset($_GET['editres'])) {
$result->set_evaluation_id($select_eval);
$row_value = isset($values['score']) ? (float) $values['score'] : 0;
if (!empty($row_value) || $row_value == 0) {
$result->set_score(floatval(number_format($row_value, api_get_setting('gradebook_number_decimals'))));
$result->set_score(api_number_format($row_value, api_get_setting('gradebook_number_decimals')));
}
$result->save();
unset($result);
@ -162,7 +162,7 @@ if (isset($_GET['import'])) {
$result = new Result();
$result->set_user_id($importedresult['user_id']);
if (!empty($importedresult['score'])) {
$result->set_score(floatval(number_format($importedresult['score'], api_get_setting('gradebook_number_decimals'))));
$result->set_score(api_number_format($importedresult['score'], api_get_setting('gradebook_number_decimals')));
}
if (!empty($importedresult['date'])) {
$result->set_date(api_get_utc_datetime($importedresult['date']));

@ -1152,7 +1152,7 @@ class GradebookUtils
public static function updateLinkWeight($linkId, $name, $weight)
{
$linkId = intval($linkId);
$weight = floatval($weight);
$weight = api_float_val($weight);
$course_id = api_get_course_int_id();
AbstractLink::add_link_log($linkId, $name);

@ -2254,11 +2254,8 @@ class Category implements GradebookItem
$courseEvaluations = $category->get_evaluations($userId, true);
$courseLinks = $category->get_links($userId, true);
$evaluationsAndLinks = array_merge($courseEvaluations, $courseLinks);
$categoryScore = 0;
for ($i = 0; $i < count($evaluationsAndLinks); $i++) {
$item = $evaluationsAndLinks[$i];
$score = $item->calc_score($userId);
@ -2272,7 +2269,7 @@ class Category implements GradebookItem
$categoryScore += $itemValue;
}
return floatval($categoryScore);
return api_float_val($categoryScore);
}
/**
@ -2289,7 +2286,7 @@ class Category implements GradebookItem
[
'category_id' => intval($categoryId),
'user_id' => intval($userId),
'score' => floatval($score),
'score' => api_float_val($score),
'registered_at' => api_get_utc_datetime()
]
);

@ -329,7 +329,7 @@ class Evaluation implements GradebookItem
$sql .= ',type';
$sql .= ") VALUES ('".Database::escape_string($this->get_name())."'"
.','.intval($this->get_user_id())
.','.floatval($this->get_weight())
.','.api_float_val($this->get_weight())
.','.intval($this->get_max())
.','.intval($this->is_visible());
if (isset($this->description)) {

@ -528,11 +528,10 @@ class DisplayGradebook
$item_value+=$score[0] / $my_score_denom * $item->get_weight();
$item_total+=$item->get_weight();
}
$item_value = number_format($item_value, 2, '.', ' ');
$item_value = api_number_format($item_value, 2);
$total_score = array($item_value, $item_total);
$scorecourse_display = $scoredisplay->display_score($total_score, SCORE_DIV_PERCENT);
//$scorecourse_display = (isset($scorecourse) ? $scoredisplay->display_score($scorecourse,SCORE_AVERAGE) : get_lang('NoResultsAvailable'));
$cattotal = Category :: load(0);
$scoretotal = $cattotal[0]->calc_score($user_id);
$scoretotal_display = (isset($scoretotal) ? $scoredisplay->display_score($scoretotal, SCORE_PERCENT) : get_lang('NoResultsAvailable'));

@ -281,7 +281,7 @@ class ScoreDisplay
*/
public function format_score($score)
{
return floatval(number_format($score, $this->get_number_decimals()));
return api_number_format($score, $this->get_number_decimals());
}
/**

@ -8034,26 +8034,19 @@ function api_remove_uploaded_file($type, $file)
}
/**
* Converts values to float value
* Converts string value to float value
*
* 3.141516 => 3.141516
* 3,141516 => 3.141516
* @todo WIP
*
* @param $number
* @return false|float|int|mixed
* @param string $number
* @return float
*/
function api_parse_float_val($number)
function api_float_val($number)
{
if (INTL_INSTALLED) {
$iso = api_get_language_isocode();
$iso = 'fr';
$formatter = new NumberFormatter($iso, NumberFormatter::DECIMAL);
return $formatter->parse($number);
} else {
return floatval($number);
}
$number = (float) str_replace(',', '.', trim($number));
return $number;
}
/**
@ -8071,15 +8064,7 @@ function api_parse_float_val($number)
*/
function api_number_format($number, $decimals = 0)
{
if (INTL_INSTALLED) {
$iso = api_get_language_isocode();
$iso = 'fr';
$formatter = new NumberFormatter($iso, NumberFormatter::DECIMAL);
$formatter->setAttribute(NumberFormatter::MAX_FRACTION_DIGITS, $decimals);
$formatter->setAttribute(NumberFormatter::GROUPING_SEPARATOR_SYMBOL, '');
return $formatter->format($number);
} else {
return number_format($number, $decimals);
}
}
$number = api_float_val($number);
return number_format($number, $decimals);
}

Loading…
Cancel
Save