Passed
Push — main ( be62d9...6b4ffd )
by Osvaldo
01:37
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\dominios;
3
4
use Exception;
5
use src\dimensiones\{CondicionesDeficientesEInsalubres,CondicionesPeligrosasEInseguras,TrabajosPeligrosos};
6
7
class CondicionesEnElAmbienteDeTrabajo
8
{
9
    private $_condicionesDeficientesEInsalubres;
10
    private $_condicionesPeligrosasEInseguras;
11
    private $_trabajosPeligrosos;
12
    private $_niveles = array(
13
        '0-3' => 'Nulo o despreciable',
14
        '3-5' => 'Bajo',
15
        '5-7' => 'Medio',
16
        '7-9' => 'Alto',
17
        '9-99' => 'Muy alto'
18
    );
19
20
    public function __construct
21
    (
22
        CondicionesDeficientesEInsalubres $CondicionesDeficientesEInsalubres,
23
        CondicionesPeligrosasEInseguras $CondicionesPeligrosasEInseguras,
24
        TrabajosPeligrosos $TrabajosPeligrosos
25
    )
26
    {
27
        $this->_condicionesDeficientesEInsalubres = $CondicionesDeficientesEInsalubres;
28
        $this->_condicionesPeligrosasEInseguras = $CondicionesPeligrosasEInseguras;
29
        $this->_trabajosPeligrosos = $TrabajosPeligrosos;
30
    }
31
32
    public function condicionesEnElAmbienteDeTrabajo(): int
33
    {
34
        return 
35
        $this->condicionesDeficientesEInsalubres()->condicionesDeficientesEInsalubres() +
36
        $this->condicionesPeligrosasEInseguras()->condicionesPeligrosasEInseguras() + 
37
        $this->trabajosPeligrosos()->trabajosPeligrosos();
38
    }
39
40
    public function condicionesDeficientesEInsalubres(): CondicionesDeficientesEInsalubres
41
    {
42
        return $this->_condicionesDeficientesEInsalubres;
43
    }
44
45
    public function condicionesPeligrosasEInseguras(): CondicionesPeligrosasEInseguras
46
    {
47
        return $this->_condicionesPeligrosasEInseguras;
48
    }
49
50
    public function trabajosPeligrosos(): TrabajosPeligrosos
51
    {
52
        return $this->_trabajosPeligrosos;
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->condicionesEnElAmbienteDeTrabajo() >= $uno && $this->condicionesEnElAmbienteDeTrabajo() < $dos)
62
            {
63
                return $v;
64
            }
65
        }
66
67
        throw new Exception("Error para obtener riesgo cualitativo");
68
    }
69
70
71
}