Passed
Push — main ( be62d9...6b4ffd )
by Osvaldo
01:37
created

Liderazgo::obtenerRiesgosCualitativos()   A

Complexity

Conditions 4
Paths 3

Size

Total Lines 13
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 6
c 1
b 0
f 0
dl 0
loc 13
rs 10
cc 4
nc 3
nop 0
1
<?php
2
namespace src\dominios;
3
4
use Exception;
5
use src\dimensiones\{EscasaClaridadDeFunciones,CaracteristicasDelLiderazgo};
6
7
class Liderazgo
8
{
9
    private $_escasaClaridadDeFunciones;
10
    private $_caracteristicasDelLiderazgo;
11
    private $_niveles = array(
12
        '0-3' => 'Nulo o despreciable',
13
        '3-5' => 'Bajo',
14
        '5-8' => 'Medio',
15
        '8-11' => 'Alto',
16
        '11-99' => 'Muy alto'
17
    );
18
19
    public function __construct
20
    (
21
        EscasaClaridadDeFunciones $EscasaClaridadDeFunciones,
22
        CaracteristicasDelLiderazgo $CaracteristicasDelLiderazgo
23
    )
24
    {
25
        $this->_escasaClaridadDeFunciones = $EscasaClaridadDeFunciones;
26
        $this->_caracteristicasDelLiderazgo = $CaracteristicasDelLiderazgo;
27
    }
28
29
    public function liderazgo(): int
30
    {
31
        return 
32
        $this->escasaClaridadDeFunciones()->escasaClaridadDeFunciones() +
33
        $this->caracteristicasDelLiderazgo()->caracteristicasDelLiderazgo();
34
    }
35
36
    public function escasaClaridadDeFunciones(): EscasaClaridadDeFunciones
37
    {
38
        return $this->_escasaClaridadDeFunciones;
39
    }
40
41
    public function caracteristicasDelLiderazgo(): CaracteristicasDelLiderazgo
42
    {
43
        return $this->_caracteristicasDelLiderazgo;
44
    }
45
46
    public function obtenerRiesgosCualitativos(): string
47
    {
48
        foreach ($this->_niveles as $k => $v)
49
        {
50
            $uno = explode('-',$k)[0];
51
            $dos = explode('-',$k)[1];
52
            if($this->liderazgo() >= $uno && $this->liderazgo() < $dos)
53
            {
54
                return $v;
55
            }
56
        }
57
58
        throw new Exception("Error para obtener riesgo cualitativo");
59
    }
60
}