Passed
Push — main ( 6b4ffd...956b11 )
by Osvaldo
02:06
created

ObtenerRiesgos::obtenerRiesgosCualitativos()   A

Complexity

Conditions 4
Paths 3

Size

Total Lines 13
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
eloc 6
c 2
b 0
f 0
dl 0
loc 13
rs 10
cc 4
nc 3
nop 0
1
<?php
2
namespace src;
3
4
use Exception;
5
6
use src\categorias\{
7
    AmbienteDeTrabajo,
8
    FactoresPropiosDeLaActividad,
9
    LiderazgoYRelacionesEnElTrabajo,
10
    OrganizacionDelTiempoDelTrabajo
11
};
12
13
class ObtenerRiesgos
14
{
15
    private $_ambienteDeTrabajo;
16
    private $_factoresPropiosDeLaActividad;
17
    private $_liderazgoYRelacionesEnElTrabajo;
18
    private $_organizacionDelTiempoDelTrabajo;
19
    private $_niveles = array(
20
        '0-20' => 'Nulo o despreciable',
21
        '20-45' => 'Bajo',
22
        '45-70' => 'Medio',
23
        '70-90' => 'Alto',
24
        '90-99' => 'Muy alto'
25
    );
26
27
    public function __construct
28
    (
29
        AmbienteDeTrabajo $AmbienteDeTrabajo,
30
        FactoresPropiosDeLaActividad $FactoresPropiosDeLaActividad,
31
        LiderazgoYRelacionesEnElTrabajo $LiderazgoYRelacionesEnElTrabajo,
32
        OrganizacionDelTiempoDelTrabajo $OrganizacionDelTiempoDelTrabajo
33
    )
34
    {
35
        $this->_ambienteDeTrabajo = $AmbienteDeTrabajo;
36
        $this->_factoresPropiosDeLaActividad = $FactoresPropiosDeLaActividad;
37
        $this->_liderazgoYRelacionesEnElTrabajo = $LiderazgoYRelacionesEnElTrabajo;
38
        $this->_organizacionDelTiempoDelTrabajo = $OrganizacionDelTiempoDelTrabajo;
39
    }
40
41
    public function obtenerRiesgos(): int
42
    {
43
        return 
44
        $this->ambienteDeTrabajo()->ambienteDeTrabajo() + 
45
        $this->factoresPropiosDeLaActividad()->factoresPropiosDeLaActividad() + 
46
        $this->liderazgoYRelacionesEnElTrabajo()->liderazgoYRelacionesEnElTrabajo() + 
47
        $this->organizacionDelTiempoDelTrabajo()->organizacionDelTiempoDelTrabajo();
48
    }
49
50
    public function obtenerRiesgosCualitativos(): string
51
    {
52
        foreach ($this->_niveles as $k => $v)
53
        {
54
            $uno = explode('-',$k)[0];
55
            $dos = explode('-',$k)[1];
56
            if($this->obtenerRiesgos() >= $uno && $this->obtenerRiesgos() < $dos)
57
            {
58
                return $v;
59
            }
60
        }
61
62
        throw new Exception("Error para obtener riesgo cualitativo", 1);
63
    }
64
65
    public function organizacionDelTiempoDelTrabajo(): OrganizacionDelTiempoDelTrabajo
66
    {
67
        return $this->_organizacionDelTiempoDelTrabajo;
68
    }
69
70
    public function liderazgoYRelacionesEnElTrabajo(): LiderazgoYRelacionesEnElTrabajo
71
    {
72
        return $this->_liderazgoYRelacionesEnElTrabajo;
73
    }
74
75
    public function factoresPropiosDeLaActividad(): FactoresPropiosDeLaActividad
76
    {
77
        return $this->_factoresPropiosDeLaActividad;
78
    }
79
80
    public function ambienteDeTrabajo(): AmbienteDeTrabajo
81
    {
82
        return $this->_ambienteDeTrabajo;
83
    }
84
        
85
}