From 91177ffc0b9b5eae751dd39bfb7419a2cb0fceb4 Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Mon, 11 Mar 2024 07:25:45 +0800 Subject: [PATCH] fix rounded method two decimal places --- public/js/rounded-methods.js | 21 +++++++++ resources/views/gadaian/v2/edit.blade.php | 50 ++++++++++++++-------- resources/views/gadaian/v2/index.blade.php | 9 ++-- 3 files changed, 59 insertions(+), 21 deletions(-) create mode 100644 public/js/rounded-methods.js diff --git a/public/js/rounded-methods.js b/public/js/rounded-methods.js new file mode 100644 index 0000000..d7ac038 --- /dev/null +++ b/public/js/rounded-methods.js @@ -0,0 +1,21 @@ +function getRoundedMethod(number = 0.0) { + const numberString = (Math.floor(number * 100) / 100).toFixed(2); + let rounded = numberString.slice(0, -1); + const lastDigit = parseInt(numberString.slice(-1), 10); + + if (lastDigit >= 0 && lastDigit <= 2) { + rounded = rounded.replace(',', ''); // Remove commas + return parseFloat(rounded); + } else if (lastDigit >= 3 && lastDigit <= 7) { + rounded += '5'; + rounded = rounded.replace(',', ''); // Remove commas + return parseFloat(rounded); + } else { + return customRound(number); + } +} +function customRound(number) { + const precision = 1; // Round to one decimal place + const factor = Math.pow(10, precision); + return Math.ceil(number * factor) / factor; +} \ No newline at end of file diff --git a/resources/views/gadaian/v2/edit.blade.php b/resources/views/gadaian/v2/edit.blade.php index cd955cb..eb11ba1 100644 --- a/resources/views/gadaian/v2/edit.blade.php +++ b/resources/views/gadaian/v2/edit.blade.php @@ -76,13 +76,28 @@ 'nilaimarhun' => $gadaiannorujukan['nilaimarhun'], 'kodcaw' => $gadaiannorujukan['kodcaw'] ])->json(); - // if($gadaiannorujukan['nilaimarhun'] > 0 && $gadaiannorujukan['nilaimarhun'] < 401){ - // $kadarupah = 1.2/100; - // }else if($gadaiannorujukan['nilaimarhun'] >= 401 && $gadaiannorujukan['nilaimarhun'] < 2001){ - // $kadarupah = 1.5/100; - // }else if($gadaiannorujukan['nilaimarhun'] >= 2001 ){ - // $kadarupah = 1.7/100; - // } + + function getRoundedMethod(float $number = 0.0) : Float{ + $number_string = number_format(floor($number * 100)/100,2); + + $rounded = substr($number_string, 0, -1); + $lastDigit = substr($number_string, -1); + + if ($lastDigit >= 0 && $lastDigit <= 2) { + if(strpos($rounded,',')){ + $rounded = str_replace(',','',$rounded); + } + return $rounded; + } elseif ($lastDigit >= 3 && $lastDigit <= 7) { + $rounded = $rounded . '5'; + if(strpos($rounded,',')){ + $rounded = str_replace(',','',$rounded); + } + return $rounded; + } else { + return round($number,PHP_ROUND_HALF_UP); + } + } $array_keuntungan = Http::post(config('api.url'). '/api/onepercent',[ 'nilaimarhun' => $gadaiannorujukan['nilaimarhun'], @@ -92,10 +107,10 @@ 'kodcaw' => $gadaiannorujukan['kodcaw'] ]); - $keuntungan_sebulan = $array_keuntungan['keuntungan']; - $keuntungan_6bln = $keuntungan_sebulan * 6; - $ujrah = $array_keuntungan['ujrah']; - $onepercent = $array_keuntungan['onepercent']; + $keuntungan_sebulan = getRoundedMethod($array_keuntungan['keuntungan']); + $keuntungan_6bln = getRoundedMethod($keuntungan_sebulan * 6); + $ujrah = getRoundedMethod($array_keuntungan['ujrah']); + $onepercent = getRoundedMethod($array_keuntungan['onepercent']); @endphp
@@ -249,6 +264,7 @@
+