43 lines
1.3 KiB
PHP
43 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace App\Traits\PlayerProps;
|
|
|
|
trait PlayerDataMerge
|
|
{
|
|
public function mergeData(array $filtered_part_1, array $filtered_part_2): void
|
|
{
|
|
foreach ($this->players as $k => $record) {
|
|
|
|
$players_id = $record['id'];
|
|
|
|
$part1 = $filtered_part_1[$players_id] ?? [];
|
|
|
|
$part2 = $filtered_part_2[$players_id] ?? [];
|
|
|
|
$this->players[$k]['active'] = $part1['active'] ?? 0;
|
|
if (! $this->players[$k]['active'] && isset($part2['active']) && $part2['active'] == 1) {
|
|
$this->players[$k]['active'] = 1;
|
|
}
|
|
|
|
$bets = ['gls', 'crn', 'fls', 'ofs', 'crd', 'snt', 'tsh', 'wfl'];
|
|
foreach ($bets as $bet) {
|
|
$this->players[$k][$bet] = $this->calc($bet, $part1, $part2);
|
|
}
|
|
}
|
|
}
|
|
|
|
private function calc(string $bettype, array $part1, array $part2)
|
|
{
|
|
$val1 = $part1[$bettype] ?? 0;
|
|
$val2 = $part2[$bettype] ?? 0;
|
|
|
|
if ($val1 && $val1) {
|
|
return number_format(($val2 * (100 - $this->part_1_value) + $val1 * $this->part_1_value) / 100, 3);
|
|
} elseif ($val1) {
|
|
return number_format($val1, 3);
|
|
} elseif ($val2) {
|
|
return number_format($val2, 3);
|
|
}
|
|
}
|
|
}
|