Passed
Push — main ( 458bf3...d901ee )
by N.
04:20
created

Hamta::spara_reduktion()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 12
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 1.0787

Importance

Changes 0
Metric Value
cc 1
eloc 6
nc 1
nop 0
dl 0
loc 12
ccs 4
cts 7
cp 0.5714
crap 1.0787
rs 10
c 0
b 0
f 0
1
<?php
2
3
/**
4
 * Klass Hamta.
5
 * @author Niklas Dougherty
6
 */
7
8
declare(strict_types=1);
9
10
namespace Tips\Moduler\System;
11
12
use PDO;
13
14
/**
15
 * Klass Hamta.
16
 * Hämta garderingar från databas och packa upp.
17
 */
18
class Hamta extends Preferenser {
19
	/**
20
	 * @var array<int, string[]> $reduktion
21
	 */
22
	public array $reduktion;
23
24
	/**
25
	 * Hämta garderingar från databas
26
	 */
27 20
	protected function hämta_system(): void {
28 20
		$garderingar = '';
29 20
		$andel_garderingar = '';
30 20
		$sats = $this->odds->spel->db->instans->prepare('SELECT `garderingar`, `andel_garderingar`
31 20
			FROM `system` WHERE `omgång`=:omgang AND `speltyp`=:speltyp AND `sekvens`=:sekvens LIMIT 1');
32 20
		$sats->bindValue(':omgang', $this->odds->spel->omgång, PDO::PARAM_INT);
33 20
		$sats->bindValue(':speltyp', $this->odds->spel->speltyp->value, PDO::PARAM_INT);
34 20
		$sats->bindValue(':sekvens', $this->odds->spel->sekvens, PDO::PARAM_INT);
35 20
		$sats->bindColumn('garderingar', $garderingar, PDO::PARAM_STR);
36 20
		$sats->bindColumn('andel_garderingar', $andel_garderingar, PDO::PARAM_STR);
37 20
		$sats->execute();
38
39
		/**
40
		 * Packa upp garderingar.
41
		 */
42 20
		if ($sats->fetch()) {
43 16
			if ($garderingar) {
44 16
				$this->garderingar = array_chunk(array_chunk(explode(',', $garderingar), 3), MATCHANTAL);
45
			}
46
47 16
			if ($andel_garderingar) {
48 16
				$this->andel_garderingar = array_map('intval', explode(',', $andel_garderingar));
49
			}
50
		}
51
52
		/**
53
		 * Extrahera halvgarderingar, spara reduktion.
54
		 */
55 20
		$this->extrahera_halvgarderingar();
56 20
		$this->spara_reduktion();
57
	}
58
59
	/**
60
	 * Extrahera halvgarderingar.
61
	 */
62 20
	private function extrahera_halvgarderingar(): void {
63 20
		foreach ($this->garderingar as $index => $gardering) {
64 20
			foreach ($gardering as $match) {
65
				/**
66
				 * Halvgardering = en ruta tom.
67
				 */
68 20
				if (count(array_unique($match)) > 1) {
69 16
					$this->antal_garderingar[$index]++;
70
				}
71
			}
72
73
			/**
74
			 * Villor för garderingar.
75
			 */
76 20
			$this->antal_garderingar[$index] = max($this->antal_garderingar[$index], $this->andel_garderingar[$index]);
77
		}
78
	}
79
80
	/**
81
	 * Spara reduktion.
82
	 */
83 20
	private function spara_reduktion(): void {
84 20
		$reduktion = $this->db_preferenser->hämta_preferens("system.reduktion");
85
86
		/**
87
		 * Finns reduktion i preferenser är allt väl.
88
		 * Annars sparas en tom datastruktur.
89
		 */
90 20
		match ($reduktion !== '') {
91 20
			true => $this->reduktion = array_chunk(explode(',', $reduktion), 3),
92
			false => $this->db_preferenser->spara_preferens(
0 ignored issues
show
Bug introduced by
Are you sure the usage of $this->db_preferenser->s...m\TOM_STRÄNGVEKTOR)))) targeting Tips\Klasser\DBPreferens...nOut::spara_preferens() seems to always return null.

This check looks for function or method calls that always return null and whose return value is used.

class A
{
    function getObject()
    {
        return null;
    }

}

$a = new A();
if ($a->getObject()) {

The method getObject() can return nothing but null, so it makes no sense to use the return value.

The reason is most likely that a function or method is imcomplete or has been reduced for debug purposes.

Loading history...
93
				"system.reduktion",
94
				implode(',', array_merge([], ...array_fill(0, MATCHANTAL, TOM_STRÄNGVEKTOR)))
95
			)
96 20
		};
97
	}
98
}
99