This commit is contained in:
salam committed 2026-05-23 18:25:25 +02:00
1 parent 850d916b5b
commit d519cfdb40
2 files changed
+86 -3

No files matched your search

+4 -3
View File
@@ -3,6 +3,7 @@
namespace App\Filament\Widgets;
use App\Filament\Widgets\Data\LoadEvents;
use App\Utilities\Round;
use Filament\Widgets\Concerns\InteractsWithPageFilters;
use Filament\Widgets\StatsOverviewWidget;
use Filament\Widgets\StatsOverviewWidget\Stat;
@@ -58,9 +59,9 @@ class StatsMedianAverage extends StatsOverviewWidget
Stat::make('Number of events', $total),
Stat::make('Average', round($summe / $total, 1)),
Stat::make('Median', $median),
Stat::make('Win', $data['results']['w']),
Stat::make('Draw', $data['results']['d']),
Stat::make('Lost', $data['results']['l']),
Stat::make('Win', $data['results']['w'])->description(Round::odd($total / $data['results']['w'])),
Stat::make('Draw', $data['results']['d'])->description(Round::odd($total / $data['results']['d'])),
Stat::make('Lost', $data['results']['l'])->description(Round::odd($total / $data['results']['l'])),
];
}
}
+82
View File
@@ -0,0 +1,82 @@
<?php
namespace App\Utilities;
class Round
{
public static function odd($value)
{
// $value = 1 / $value;
if ($value) {
if ($value <= 1) {
// to 0.01
$fac = pow(10, 2);
$value = round($value * $fac) / $fac;
} elseif ($value > 1 && $value <= 3) {
// to 0.01
$fac = pow(10, 2);
$value = round($value * $fac) / $fac;
} elseif ($value > 3 && $value <= 5) {
// to 0.05,
$value *= 20;
$value = ($value - floor($value) > 0.5) ? ceil($value) : floor($value);
$value /= 20;
$fac = pow(10, 2);
$value = round($value * $fac) / $fac;
} elseif ($value > 5 && $value <= 10) {
// to 0.1
$fac = pow(10, 1);
$value = round($value * $fac) / $fac;
} elseif ($value > 10 && $value <= 20) {
// to 0.25
$value *= 4;
$value = ($value - floor($value) > 0.5) ? ceil($value) : floor($value);
$value /= 4;
$fac = pow(10, 2);
$value = round($value * $fac) / $fac;
} elseif ($value > 20 && $value < 30) {
// to 0.5
$value *= 2;
$value = ($value - floor($value) > 0.5) ? ceil($value) : floor($value);
$value /= 2;
$fac = pow(10, 2);
$value = round($value * $fac) / $fac;
} elseif ($value > 30 && $value < 75) {
// to => 1
$value = ($value - floor($value) > 0.5) ? ceil($value) : floor($value);
} elseif ($value > 75 && $value < 150) {
// to => 5
$value /= 5;
$value = ($value - floor($value) > 0.5) ? ceil($value) : floor($value);
$value *= 5;
} elseif ($value > 150 && $value < 300) {
// to => 10
$value /= 10;
$value = ($value - floor($value) > 0.5) ? ceil($value) : floor($value);
$value *= 10;
} elseif ($value > 300 && $value < 500) {
// to => 25
$value /= 25;
$value = ($value - floor($value) > 0.5) ? ceil($value) : floor($value);
$value *= 25;
} elseif ($value > 500 && $value < 1000) {
// to => 50
$value /= 50;
$value = ($value - floor($value) > 0.5) ? ceil($value) : floor($value);
$value *= 50;
} else {
// to => 50
$value /= 100;
$value = ($value - floor($value) > 0.5) ? ceil($value) : floor($value);
$value *= 100;
}
}
$value = round($value * 100) / 100;
// min max quote
if ($value < 1.01) {
$value = 1;
}
return $value;
}
}