Passed
Push — main ( 6e277c...be62d9 )
by Osvaldo
01:32
created

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\categorias;
3
4
use Exception;
5
use src\dominios\{Liderazgo,RelacionesEnElTrabajo,Violencia};
6
7
class LiderazgoYRelacionesEnElTrabajo
8
{
9
    private $_liderazgo;
10
    private $_relacionesEnElTrabajo;
11
    private $_violencia;
12
    private $_niveles = array(
13
        '0-10' => 'Nulo o despreciable',
14
        '10-18' => 'Bajo',
15
        '18-28' => 'Medio',
16
        '28-38' => 'Alto',
17
        '38-99' => 'Muy alto'
18
    );
19
20
    public function __construct
21
    (
22
        Liderazgo $Liderazgo,
23
        RelacionesEnElTrabajo $RelacionesEnElTrabajo,
24
        Violencia $Violencia
25
    )
26
    {
27
        $this->_liderazgo = $Liderazgo;
28
        $this->_relacionesEnElTrabajo = $RelacionesEnElTrabajo;
29
        $this->_violencia = $Violencia;
30
    }
31
32
    public function liderazgoYRelacionesEnElTrabajo(): int
33
    {
34
        return 
35
        $this->liderazgo()->liderazgo() + 
36
        $this->relacionesEnElTrabajo()->relacionesEnElTrabajo() + 
37
        $this->violencia()->violencia();
38
    }
39
40
    public function liderazgo(): Liderazgo
41
    {
42
        return $this->_liderazgo;
43
    }
44
45
    public function relacionesEnElTrabajo(): RelacionesEnElTrabajo
46
    {
47
        return $this->_relacionesEnElTrabajo;
48
    }
49
50
    public function violencia(): Violencia
51
    {
52
        return $this->_violencia;
53
    }
54
55
    public function obtenerRiesgosCualitativos(): string
56
    {
57
        foreach ($this->_niveles as $k => $v)
58
        {
59
            $uno = explode('-',$k)[0];
60
            $dos = explode('-',$k)[1];
61
            if($this->liderazgoYRelacionesEnElTrabajo() >= $uno && $this->liderazgoYRelacionesEnElTrabajo() < $dos)
62
            {
63
                return $v;
64
            }
65
        }
66
67
        throw new Exception("Error para obtener riesgo cualitativo", 1);
68
    }
69
}