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

CargaDeTrabajo::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
6
use src\dimensiones\{
7
    CargasCuantitativas,
8
    RitmoDeTrabajoAcelerado,
9
    CargaMental,
10
    CargasPsicologicasEmocionales,
11
    CargasDeAltaResponsabilidad,
12
    CargasContradictoriasOInconsistentes
13
};
14
15
class CargaDeTrabajo
16
{
17
    private $_cargasCuantitativas;
18
    private $_ritmoDeTrabajoAcelerado;
19
    private $_cargaMental;
20
    private $_cargasPsicologicasEmocionales;
21
    private $_cargasDeAltaResponsabilidad;
22
    private $_cargasContradictoriasOIncosistentes;
23
    private $_niveles = array(
24
        '0-12' => 'Nulo o despreciable',
25
        '12-16' => 'Bajo',
26
        '16-20' => 'Medio',
27
        '20-24' => 'Alto',
28
        '24-99' => 'Muy alto'
29
    );
30
31
    public function __construct
32
    (
33
        CargasCuantitativas $CargasCuantitativas,
34
        RitmoDeTrabajoAcelerado $RitmoDeTrabajoAcelerado,
35
        CargaMental $CargaMental,
36
        CargasPsicologicasEmocionales $CargasPsicologicasEmocionales,
37
        CargasDeAltaResponsabilidad $CargasDeAltaResponsabilidad,
38
        CargasContradictoriasOInconsistentes $CargasContradictoriasOIncosistentes
39
    )
40
    {
41
        $this->_cargasCuantitativas = $CargasCuantitativas;
42
        $this->_ritmoDeTrabajoAcelerado = $RitmoDeTrabajoAcelerado;
43
        $this->_cargaMental = $CargaMental;
44
        $this->_cargasPsicologicasEmocionales = $CargasPsicologicasEmocionales;
45
        $this->_cargasDeAltaResponsabilidad = $CargasDeAltaResponsabilidad;
46
        $this->_cargasContradictoriasOIncosistentes = $CargasContradictoriasOIncosistentes;
47
    }
48
49
    public function cargaDeTrabajo(): int
50
    {
51
        return
52
        $this->cargasCuantitativas()->cargasCuantitativas() + 
53
        $this->ritmoDeTrabajoAcelerado()->ritmoDeTrabajoAcelerado() + 
54
        $this->cargaMental()->cargaMental() + 
55
        $this->cargasPsicologicasEmocionales()->cargasPsicologicasEmocionales() + 
56
        $this->cargasDeAltaResponsabilidad()->cargasDeAltaResponsabilidad() + 
57
        $this->cargasContradictoriasOIncosistentes()->cargasContradictoriasOInconsistentes();
58
    }
59
60
    public function cargasCuantitativas(): CargasCuantitativas
61
    {
62
        return $this->_cargasCuantitativas;
63
    }
64
65
    public function ritmoDeTrabajoAcelerado(): RitmoDeTrabajoAcelerado
66
    {
67
        return $this->_ritmoDeTrabajoAcelerado;
68
    }
69
70
    public function cargaMental(): CargaMental
71
    {
72
        return $this->_cargaMental;
73
    }
74
75
    public function cargasPsicologicasEmocionales(): CargasPsicologicasEmocionales
76
    {
77
        return $this->_cargasPsicologicasEmocionales;
78
    }
79
80
    public function cargasDeAltaResponsabilidad(): CargasDeAltaResponsabilidad
81
    {
82
        return $this->_cargasDeAltaResponsabilidad;
83
    }
84
85
    public function cargasContradictoriasOIncosistentes(): CargasContradictoriasOInconsistentes
86
    {
87
        return $this->_cargasContradictoriasOIncosistentes;
88
    }
89
90
    public function obtenerRiesgosCualitativos(): string
91
    {
92
        foreach ($this->_niveles as $k => $v)
93
        {
94
            $uno = explode('-',$k)[0];
95
            $dos = explode('-',$k)[1];
96
            if($this->cargaDeTrabajo() >= $uno && $this->cargaDeTrabajo() < $dos)
97
            {
98
                return $v;
99
            }
100
        }
101
102
        throw new Exception("Error para obtener riesgo cualitativo");
103
    }
104
}