Subversion Repositories Integrator Subversion

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 espaco 1
package br.gov.al.saude.scs.util;
2
 
3
import java.util.Set;
4
 
5
import br.gov.al.saude.framework.core.util.VerificadorUtil;
6
import br.gov.al.saude.scs.model.Frequencia;
7
import br.gov.al.saude.scs.model.Presenca;
8
import br.gov.al.saude.scs.model.TurmaParticipante;
9
 
10
 
11
public class FrequenciaUtils {
12
 
13
        private static final double ERRO_RETORNAR_PERCENTUAL_ZERO = 0.0;
14
 
15
        public static Double calcularPercentualPresencasParticipante(final Set<Frequencia> frequencias, final TurmaParticipante participante){
16
                try {
17
                        Integer quantidadeDePresencasOuAusenciasJustificadas = calcularQuantidadeDePresencasOuAusenciasJustificadas(frequencias, participante);
18
                        Integer quantidadeTotalDeFrequenciasValidadas = calcularQuantideDeFrenquenciasValidadas(frequencias);
19
                        return calcularQuantidadeTotalDeFrequenciasValidadas(quantidadeDePresencasOuAusenciasJustificadas, quantidadeTotalDeFrequenciasValidadas);
20
                } catch (Exception e) {
21
                        return ERRO_RETORNAR_PERCENTUAL_ZERO;
22
                }
23
        }
24
 
25
        private static Integer calcularQuantidadeDePresencasOuAusenciasJustificadas(Set<Frequencia> frequencias, TurmaParticipante participante) {
26
                Integer contadorQuantidadePresencasOuAusenciasJustificadas = 0;
27
                for (Frequencia frequencia : frequencias) {
28
                        if (frequencia.getIndicadorValidado() && frequencia.getIndicadorAtivo()) {
29
                                Set<Presenca> presencas = frequencia.getPresencas();
30
                                for (Presenca presenca : presencas) {
31
                                        if(presenca.getTurmaParticipante().equals(participante)){
32
                                                if (presenca.getIndicadorPresenca()) {
33
                                                        contadorQuantidadePresencasOuAusenciasJustificadas += 1;
34
                                                }else {
35
                                                        if (VerificadorUtil.naoEstaNuloOuVazio(presenca.getJustificativa())) {
36
                                                                contadorQuantidadePresencasOuAusenciasJustificadas += 1;
37
                                                        }
38
                                                }
39
                                        }
40
                                }
41
                        }
42
                }
43
                return contadorQuantidadePresencasOuAusenciasJustificadas;
44
        }
45
 
46
        private static Integer calcularQuantideDeFrenquenciasValidadas(Set<Frequencia> frequencias) {
47
                Integer contadorQuantidadeDeFrequenciasValidadas = 0;
48
                for (Frequencia frequencia : frequencias) {
49
                        if (frequencia.getIndicadorValidado() && frequencia.getIndicadorAtivo()) {
50
                                contadorQuantidadeDeFrequenciasValidadas += 1;
51
                        }
52
                }
53
                return contadorQuantidadeDeFrequenciasValidadas;
54
        }
55
 
56
        private static Double calcularQuantidadeTotalDeFrequenciasValidadas(Integer quantidadeDePresencasOuAusenciasJustificadas, Integer quantidadeTotalDeFrequenciasValidadas) {
57
                double porcentagemTotalDeFrequencia = 0;
58
                porcentagemTotalDeFrequencia = ((quantidadeDePresencasOuAusenciasJustificadas * 100) / quantidadeTotalDeFrequenciasValidadas);
59
                return porcentagemTotalDeFrequencia;
60
        }
61
}