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.test.formatador;
2
 
3
import static br.gov.al.saude.test.ConstantesTestHelper.UtilConstantes.ESPACO;
4
import static br.gov.al.saude.test.ConstantesTestHelper.UtilConstantes.PONTO_VIRGULA;
5
import static br.gov.al.saude.test.util.ConversorDeTipo.FORMAT_DATE_DD_MM_YYYY_HH_MM_SS;
6
import static br.gov.al.saude.test.util.ConversorDeTipo.converterDateParaString;
7
 
8
import java.text.MessageFormat;
9
import java.util.ArrayList;
10
import java.util.List;
11
import java.util.Set;
12
 
13
import br.gov.al.saude.framework.core.util.ConversorDeTipo;
14
import br.gov.al.saude.framework.core.util.VerificadorUtil;
15
import br.gov.al.saude.scg.model.view.PessoaDocumentoView;
16
import br.gov.al.saude.scg.model.view.PessoaFisicaView;
17
import br.gov.al.saude.scs.model.Frequencia;
18
import br.gov.al.saude.scs.model.Turma;
19
import br.gov.al.saude.scs.model.TurmaParticipante;
20
import br.gov.al.saude.scs.model.TurmaPeriodo;
21
import br.gov.al.saude.scs.model.TurmaProcesso;
22
import br.gov.al.saude.scs.model.view.ProcessoOrcamentoView;
23
import br.gov.al.saude.test.util.formatador.impl.AbstractFormatadorDeMensagem;
24
 
25
public class FormatadorTurmaDetalhado extends AbstractFormatadorDeMensagem<Turma>  {
26
 
27
        @Override
28
        protected String obterPadrao() {
29
 
30
                StringBuilder mensagemPadrao = new StringBuilder();
31
                mensagemPadrao.append("Turma: ");
32
                mensagemPadrao.append("Capacitação: ''{0}'', Identificador da Turma: ''{1}'', Ano de Exercício: ''{2}'', ");
33
                mensagemPadrao.append("Unidade Solicitante: ''{3}'', ");
34
                mensagemPadrao.append("Representantes: [{4}], ");
35
                mensagemPadrao.append("Situação da Turma: ''{5}'', Carga Horária: ''{6}'', Unidade Federativa: ''{7}'', Município: ''{8}'', ");
36
                mensagemPadrao.append("Observação: ''{9}'', Ementa: ''{10}'', Ativo: ''{11}'', ");
37
                mensagemPadrao.append("Processos: [{12}], ");
38
                mensagemPadrao.append("Participantes - Organizadores: [{13}], ");
39
                mensagemPadrao.append("Participantes: [{14}], ");
40
                mensagemPadrao.append("Períodos: [{15}], ");
41
                mensagemPadrao.append("Frequências: [{16}]");
42
 
43
                return mensagemPadrao.toString();
44
        }
45
 
46
        @Override
47
        protected List<Object> gerarParametros(Turma turma) {
48
                List<Object> listaParametros = new ArrayList<Object>();
49
 
50
                listaParametros.add(turma.getCapacitacao().getDescricao());
51
                listaParametros.add(turma.getSequencial());
52
                listaParametros.add(String.valueOf(turma.getAnoExercicio()));
53
                listaParametros.add(turma.getUnidadeSolicitante().getDescricao());
54
                listaParametros.add(gerarStringRepresentantes(turma.getRepresentantes()));
55
                listaParametros.add(turma.getSituacaoTurma());
56
                listaParametros.add(turma.getCargaHoraria());
57
                listaParametros.add(turma.getUf().getCodigo());
58
                listaParametros.add(turma.getMunicipio().getNomeMunicipio());
59
                listaParametros.add(VerificadorUtil.naoEstaNuloOuVazio(turma.getObservacao())?turma.getObservacao():"");
60
                listaParametros.add(VerificadorUtil.naoEstaNuloOuVazio(turma.getEmenta())?turma.getEmenta():"");
61
                listaParametros.add(turma.getIndicadorAtivo()?"SIM":"NÃO");
62
                listaParametros.add(gerarStringProcessos(turma.getProcessos()));
63
                listaParametros.add(gerarStringParticipantesOrganizadores(turma.getParticipantes()));
64
                listaParametros.add(gerarStringParticipantes(turma.getParticipantes()));
65
                listaParametros.add(gerarStringPeriodos(turma.getPeriodos()));
66
                listaParametros.add(gerarStringFrequencias(turma.getFrequencias()));
67
 
68
                return listaParametros;
69
        }
70
 
71
        private String gerarStringFrequencias(Set<Frequencia> frequencias) {
72
                StringBuilder mensagemFrequencias = new StringBuilder();
73
                for (Frequencia frequencia : frequencias){
74
                        mensagemFrequencias.append(MessageFormat.format("Data e Hora: ''{0}'', Validado: ''{1}'', Ativo: ''{2}''",
75
                                        converterDateParaString(frequencia.getData(), FORMAT_DATE_DD_MM_YYYY_HH_MM_SS),
76
                                        frequencia.getIndicadorValidado()?"SIM":"NÃO",
77
                                        frequencia.getIndicadorAtivo()?"SIM":"NÃO"))
78
                        .append(PONTO_VIRGULA)
79
                        .append(ESPACO);
80
                }
81
                return retirarUltimoPontoIhVirgulaComEspaco(mensagemFrequencias.toString());
82
        }
83
 
84
        private String gerarStringPeriodos(Set<TurmaPeriodo> periodos) {
85
                StringBuilder mensagemPeriodos = new StringBuilder();
86
                for (TurmaPeriodo periodo : periodos){
87
                        mensagemPeriodos.append(MessageFormat.format("Data e Hora Inicial: ''{0}'', Data e Hora Final: ''{1}''",
88
                                        converterDateParaString(periodo.getDataInicial(), FORMAT_DATE_DD_MM_YYYY_HH_MM_SS),
89
                                        converterDateParaString(periodo.getDataFinal(), FORMAT_DATE_DD_MM_YYYY_HH_MM_SS)))
90
                        .append(PONTO_VIRGULA)
91
                        .append(ESPACO);
92
                }
93
                return retirarUltimoPontoIhVirgulaComEspaco(mensagemPeriodos.toString());
94
        }
95
 
96
        private String gerarStringRepresentantes(Set<PessoaFisicaView> representantes) {
97
                StringBuilder mensagemRepresentantes = new StringBuilder();
98
                for (PessoaFisicaView representante : representantes){
99
                        mensagemRepresentantes.append(MessageFormat.format("Nome: ''{0}''",
100
                                        VerificadorUtil.naoEstaNuloOuVazio(representante)?representante.getNomePessoa():""))
101
                        .append(PONTO_VIRGULA)
102
                        .append(ESPACO);
103
                }
104
                return retirarUltimoPontoIhVirgulaComEspaco(mensagemRepresentantes.toString());
105
        }
106
 
107
        private String gerarStringProcessos(Set<TurmaProcesso> processos) {
108
                StringBuilder mensagemProcessos = new StringBuilder();
109
                for (TurmaProcesso processo : processos){
110
                        mensagemProcessos.append(MessageFormat.format("Órgão: ''{0}'', Número do Processo: ''{1}'', Ano: ''{2}'', "
111
                                        + "Despesas: [{3}]",
112
                                                        VerificadorUtil.naoEstaNuloOuVazio(processo.getOrgao())?String.valueOf(processo.getOrgao().getCodigo()):"",
113
                                                        VerificadorUtil.naoEstaNuloOuVazio(processo.getNumeroProcesso())?String.valueOf(processo.getNumeroProcesso()):"",
114
                                                        VerificadorUtil.naoEstaNuloOuVazio(processo.getAno())?String.valueOf(processo.getAno()):"",
115
                                                        gerarStringProcessosElementosDespesa(processo.getDespesasTurma().getElementosDespesa())))
116
                                        .append(PONTO_VIRGULA)
117
                                        .append(ESPACO);
118
                }
119
                return retirarUltimoPontoIhVirgulaComEspaco(mensagemProcessos.toString());
120
        }
121
 
122
        private String gerarStringProcessosElementosDespesa(List<ProcessoOrcamentoView> elementosDespesa) {
123
                StringBuilder mensagemElementosDespesa = new StringBuilder();
124
                for (ProcessoOrcamentoView elemento : elementosDespesa){
125
                        mensagemElementosDespesa.append(MessageFormat.format("Elemento de Despesa: ''{0}'', Fonte de Recurso: ''{1}'', Valor Orçado: ''{2}''",
126
                                                        VerificadorUtil.naoEstaNuloOuVazio(elemento.getElementoDespesa())?elemento.getElementoDespesa():"",
127
                                                        VerificadorUtil.naoEstaNuloOuVazio(elemento.getFonteRecurso())?elemento.getFonteRecurso():"",
128
                                                        VerificadorUtil.naoEstaNuloOuVazio(elemento.getValorOrcado())?String.valueOf(elemento.getValorOrcado()):""))
129
                                        .append(PONTO_VIRGULA)
130
                                        .append(ESPACO);
131
                }
132
                return retirarUltimoPontoIhVirgulaComEspaco(mensagemElementosDespesa.toString());
133
        }
134
 
135
        private String gerarStringParticipantesOrganizadores(Set<TurmaParticipante> participantesOrganizadores) {
136
                StringBuilder mensagemParticipantesOrganizadores = new StringBuilder();
137
                for (TurmaParticipante participante : participantesOrganizadores){
138
                        if (participante.getPerfil().getIndicadorOrganizador()) {
139
                                mensagemParticipantesOrganizadores.append(MessageFormat.format("Nome: ''{0}'', CPF: ''{1}'', Perfil: ''{2}'', Indicador de Servidor: ''{3}'', "
140
                                                + "Indicador de Remuneração: ''{4}'', Carga Horária Específica: ''{5}''",
141
                                                VerificadorUtil.naoEstaNuloOuVazio(participante.getPessoa())?participante.getPessoa().getNomePessoa():"",
142
                                                recuperarCpfPessoa(participante.getPessoa().getDocumentos()),
143
                                                participante.getPerfil().getDescricao(),
144
                                                ConversorDeTipo.formatarBooleanParaString(participante.getIndicadorServidor(), "SIM", "NÃO"),
145
                                                ConversorDeTipo.formatarBooleanParaString(participante.getIndicadorRemunerado(), "SIM", "NÃO"),
146
                                                VerificadorUtil.naoEstaNuloOuVazio(participante.getCargaHorariaEspecifica())?participante.getCargaHorariaEspecifica():""))
147
                                                .append(PONTO_VIRGULA)
148
                                                .append(ESPACO);
149
 
150
                        }
151
                }
152
                return retirarUltimoPontoIhVirgulaComEspaco(mensagemParticipantesOrganizadores.toString());
153
        }
154
 
155
        private String gerarStringParticipantes(Set<TurmaParticipante> participantes) {
156
                StringBuilder mensagemParticipantesOrganizadores = new StringBuilder();
157
                for (TurmaParticipante participante : participantes){
158
                        if (participante.getPerfil().getIndicadorOrganizador() == false) {
159
                                mensagemParticipantesOrganizadores.append(MessageFormat.format("Nome: ''{0}'', CPF: ''{1}'', Perfil: ''{2}'', Indicador de Servidor: ''{3}'', "
160
                                                + "Indicador de Remuneração: ''{4}'', Carga Horária Específica: ''{5}''",
161
                                                VerificadorUtil.naoEstaNuloOuVazio(participante.getPessoa())?participante.getPessoa().getNomePessoa():"",
162
                                                                recuperarCpfPessoa(participante.getPessoa().getDocumentos()),
163
                                                                participante.getPerfil().getDescricao(),
164
                                                                ConversorDeTipo.formatarBooleanParaString(participante.getIndicadorServidor(), "SIM", "NÃO"),
165
                                                                ConversorDeTipo.formatarBooleanParaString(participante.getIndicadorRemunerado(), "SIM", "NÃO"),
166
                                                                VerificadorUtil.naoEstaNuloOuVazio(participante.getCargaHorariaEspecifica())?participante.getCargaHorariaEspecifica():""))
167
                                                                .append(PONTO_VIRGULA)
168
                                                                .append(ESPACO);
169
 
170
                        }
171
                }
172
                return retirarUltimoPontoIhVirgulaComEspaco(mensagemParticipantesOrganizadores.toString());
173
        }
174
 
175
        private String recuperarCpfPessoa(Set<PessoaDocumentoView> documentos) {
176
                for (PessoaDocumentoView documento : documentos) {
177
                        if (documento.getSiglaTipoDocumento().equals("CPF")) {
178
                                return documento.getNumero();
179
                        }
180
                }
181
                return null;
182
        }
183
 
184
}