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.rhd.web.managebean.avaliacao;
2
 
3
import java.io.Serializable;
4
import java.util.ArrayList;
5
import java.util.Iterator;
6
import java.util.List;
7
 
8
import javax.faces.bean.ManagedBean;
9
import javax.faces.model.DataModel;
10
import javax.faces.model.ListDataModel;
11
 
12
import org.springframework.beans.factory.annotation.Autowired;
13
import org.springframework.context.annotation.Scope;
14
import org.springframework.stereotype.Component;
15
 
16
import br.gov.al.saude.framework.core.util.VerificadorUtil;
17
import br.gov.al.saude.framework.web.exception.VerificadorLancamentoException;
18
import br.gov.al.saude.framework.web.exception.VerificadorLancamentoException.CommandBean;
19
import br.gov.al.saude.framework.web.message.LancadorMensagem;
20
import br.gov.al.saude.framework.web.util.ConstantesWebHelper;
21
import br.gov.al.saude.rhd.core.application.avaliacao.AvaliacaoFacade;
22
import br.gov.al.saude.rhd.core.application.avaliacaodesempenho.AvaliacaoDesempenhoFacade;
23
import br.gov.al.saude.rhd.core.application.servidoravaliacao.ServidorAvaliacaoFacade;
24
import br.gov.al.saude.rhd.model.Avaliacao;
25
import br.gov.al.saude.rhd.model.QuestaoAvaliacaoDesempenho;
26
import br.gov.al.saude.rhd.model.RevisaoAvaliacao;
27
import br.gov.al.saude.rhd.model.RevisaoAvaliacaoDesempenho;
28
import br.gov.al.saude.rhd.model.RevisaoAvaliacaoDesempenhoId;
29
import br.gov.al.saude.rhd.model.ServidorAvaliacao;
30
import br.gov.al.saude.rhd.model.ServidorAvaliacaoId;
31
import br.gov.al.saude.rhd.model.view.ServidorDadoFuncionalView;
32
import br.gov.al.saude.rhd.tipo.TipoAvaliacao;
33
import br.gov.al.saude.rhd.web.managebean.sessao.SessaoBean;
34
 
35
@Component
36
@ManagedBean
37
@Scope("view")
38
public class AvaliacaoBean implements Serializable {
39
 
40
        private static final long serialVersionUID = 1L;
41
 
42
        private AvaliacaoFacade avaliacaoFacade;
43
        private AvaliacaoDesempenhoFacade avaliacaoDesempenhoFacade;
44
 
45
        private List<Avaliacao> avaliacoes;
46
        private List<ServidorDadoFuncionalView> listaDadoFuncional;
47
 
48
        private Avaliacao avaliacao;
49
        private RevisaoAvaliacao revisaoAvaliacao;
50
        private List<QuestaoAvaliacaoDesempenhoRevisao> listaQuestaoAvaliacaoDesempenhoRevisao;
51
        private DataModel<QuestaoAvaliacaoDesempenhoRevisao> questaoAvaliacaoDesempenhoRevisaoDataModel;
52
 
53
        @Autowired
54
        public AvaliacaoBean(AvaliacaoFacade avaliacaoFacade, ServidorAvaliacaoFacade servidorAvaliacaoFacade, AvaliacaoDesempenhoFacade avaliacaoDesempenhoFacade, SessaoBean sessaoBean) {
55
                this.avaliacaoFacade = avaliacaoFacade;
56
                this.avaliacaoDesempenhoFacade = avaliacaoDesempenhoFacade;
57
                this.avaliacoes = new ArrayList<Avaliacao>();
58
                listaDadoFuncional = new ArrayList<ServidorDadoFuncionalView>();
59
                listaDadoFuncional.addAll(sessaoBean.getServidor().getListaDadosFuncionaisView());
60
                for (ServidorDadoFuncionalView dadoFuncional : listaDadoFuncional) {
61
                        ServidorAvaliacaoId servidorAvaliacaoId = new ServidorAvaliacaoId();
62
                        servidorAvaliacaoId.setNumeroAno(sessaoBean.getCronogramaCorrente().getNumeroAno());
63
                        servidorAvaliacaoId.setSequencialDadoFuncionalServidor(dadoFuncional.getSequencial());
64
 
65
                        ServidorAvaliacao avaliacaoServidor = new ServidorAvaliacao();
66
                        avaliacaoServidor.setId(servidorAvaliacaoId);
67
                        avaliacaoServidor = servidorAvaliacaoFacade.consultarPorId(avaliacaoServidor);
68
                        if (VerificadorUtil.naoEstaNulo(avaliacaoServidor)) {
69
                                avaliacao = avaliacaoFacade.visualizarNotaAvaliacao(avaliacaoServidor);
70
                                avaliacoes.add(avaliacao);
71
                        }
72
                }
73
                limparEntidade();
74
        }
75
 
76
        public List<Avaliacao> getAvaliacoes() {
77
                return avaliacoes;
78
        }
79
        public void setAvaliacoes(List<Avaliacao> avaliacoes) {
80
                this.avaliacoes = avaliacoes;
81
        }
82
 
83
        public Avaliacao getAvaliacao() {
84
                return avaliacao;
85
        }
86
 
87
        public void setAvaliacao(Avaliacao avaliacao) {
88
                this.avaliacao = avaliacao;
89
        }
90
 
91
        public RevisaoAvaliacao getRevisaoAvaliacao() {
92
                if(VerificadorUtil.estaNulo(revisaoAvaliacao)){
93
                        revisaoAvaliacao = new RevisaoAvaliacao();
94
                }
95
                return revisaoAvaliacao;
96
        }
97
 
98
        public void setRevisaoAvaliacao(RevisaoAvaliacao revisaoAvaliacao) {
99
                this.revisaoAvaliacao = revisaoAvaliacao;
100
        }
101
 
102
        public List<QuestaoAvaliacaoDesempenhoRevisao> getListaQuestaoAvaliacaoDesempenhoRevisao() {
103
                if (listaQuestaoAvaliacaoDesempenhoRevisao == null) {
104
                        listaQuestaoAvaliacaoDesempenhoRevisao = new ArrayList<QuestaoAvaliacaoDesempenhoRevisao>();
105
                }
106
                return listaQuestaoAvaliacaoDesempenhoRevisao;
107
        }
108
 
109
        public void setListaQuestaoAvaliacaoDesempenhoRevisao(List<QuestaoAvaliacaoDesempenhoRevisao> listaQuestaoAvaliacaoDesempenhoRevisao) {
110
                this.listaQuestaoAvaliacaoDesempenhoRevisao = listaQuestaoAvaliacaoDesempenhoRevisao;
111
        }
112
 
113
        public void setQuestaoAvaliacaoDesempenhoRevisaoDataModel(DataModel<QuestaoAvaliacaoDesempenhoRevisao> questaoAvaliacaoDesempenhoRevisaoDataModel) {
114
                this.questaoAvaliacaoDesempenhoRevisaoDataModel = questaoAvaliacaoDesempenhoRevisaoDataModel;
115
        }
116
 
117
        public DataModel<QuestaoAvaliacaoDesempenhoRevisao> getQuestaoAvaliacaoDesempenhoRevisaoDataModel() {
118
                return questaoAvaliacaoDesempenhoRevisaoDataModel;
119
        }
120
 
121
        public void solicitarRevisaoDeAssiduidade() {
122
                solicitarRevisao(TipoAvaliacao.ASSIDUIDADE.getValue(), avaliacao.getNotaAssiduidade());
123
        }
124
 
125
        public void solicitarRevisaoDeQualificacao() {
126
                solicitarRevisao(TipoAvaliacao.QUALIFICACAO.getValue(), avaliacao.getNotaQualificacao());
127
        }
128
 
129
        public void listarQuestoes(Avaliacao avaliacao) {
130
                selecionarAvaliacao(avaliacao);
131
                List<QuestaoAvaliacaoDesempenho> questoesAvaliacaoDesempenho = avaliacaoDesempenhoFacade.listarQuestaoAvaliacao(avaliacao.getServidorAvaliacao());
132
                for (QuestaoAvaliacaoDesempenho questaoAvaliacaoDesempenho : questoesAvaliacaoDesempenho) {
133
                        if(questaoAvaliacaoDesempenho.isQuestaoMultiplaEscolha() && questaoAvaliacaoDesempenho.getAvaliacaoDesempenho() != null) {
134
                                getListaQuestaoAvaliacaoDesempenhoRevisao().add(new QuestaoAvaliacaoDesempenhoRevisao(questaoAvaliacaoDesempenho));
135
                        }
136
                }
137
                setQuestaoAvaliacaoDesempenhoRevisaoDataModel(new ListDataModel<QuestaoAvaliacaoDesempenhoRevisao>(getListaQuestaoAvaliacaoDesempenhoRevisao()));
138
        }
139
 
140
        public void listarQuestoesRecurso(Avaliacao avaliacao) {
141
                selecionarAvaliacao(avaliacao);
142
                List<QuestaoAvaliacaoDesempenho> questoesAvaliacaoDesempenho = avaliacaoDesempenhoFacade.listarQuestoesRecurso(avaliacao.getServidorAvaliacao());
143
                for (QuestaoAvaliacaoDesempenho questaoAvaliacaoDesempenho : questoesAvaliacaoDesempenho) {
144
                        if(questaoAvaliacaoDesempenho.isQuestaoMultiplaEscolha() && questaoAvaliacaoDesempenho.getAvaliacaoDesempenho() != null) {
145
                                getListaQuestaoAvaliacaoDesempenhoRevisao().add(new QuestaoAvaliacaoDesempenhoRevisao(questaoAvaliacaoDesempenho));
146
                        }
147
                }
148
                setQuestaoAvaliacaoDesempenhoRevisaoDataModel(new ListDataModel<QuestaoAvaliacaoDesempenhoRevisao>(getListaQuestaoAvaliacaoDesempenhoRevisao()));
149
        }
150
 
151
        public Boolean isAvaliacaoDesempenhoNaoFoiAvaliada(Avaliacao avaliacao) {
152
                List<QuestaoAvaliacaoDesempenho> questoesAvaliacaoDesempenho = avaliacaoDesempenhoFacade.listarQuestaoAvaliacao(avaliacao.getServidorAvaliacao());
153
                for (QuestaoAvaliacaoDesempenho questaoAvaliacaoDesempenho : questoesAvaliacaoDesempenho) {
154
                        if(questaoAvaliacaoDesempenho.isQuestaoMultiplaEscolha() && questaoAvaliacaoDesempenho.getAvaliacaoDesempenho() != null) {
155
                                return false;
156
                        }
157
                }
158
                return true;
159
        }
160
 
161
        public void solicitarRevisaoDeDesempenho() {
162
                revisaoAvaliacao.setTipoAvaliacao(TipoAvaliacao.DESEMPENHO.getValue());
163
                revisaoAvaliacao.setServidorAvaliacao(avaliacao.getServidorAvaliacao());
164
                revisaoAvaliacao.setNota(avaliacao.getNotaDesempenho());
165
 
166
                Iterator<QuestaoAvaliacaoDesempenhoRevisao> iteratorQuestaoAvaliacaoDesempenhoRevisao = questaoAvaliacaoDesempenhoRevisaoDataModel.iterator();
167
 
168
                while(iteratorQuestaoAvaliacaoDesempenhoRevisao.hasNext()) {
169
                        QuestaoAvaliacaoDesempenhoRevisao questaoAvaliacaoDesempenhoRevisao = iteratorQuestaoAvaliacaoDesempenhoRevisao.next();
170
 
171
                        if(isCampoSolicitacaoInformado(questaoAvaliacaoDesempenhoRevisao)) {
172
                                RevisaoAvaliacaoDesempenho revisaoAvaliacaoDesempenho = new RevisaoAvaliacaoDesempenho();
173
                                revisaoAvaliacaoDesempenho.setRevisaoAvaliacao(revisaoAvaliacao);
174
                                revisaoAvaliacaoDesempenho.setAvaliacaoDesempenho(questaoAvaliacaoDesempenhoRevisao.getQuestaoAvaliacaoDesempenho().getAvaliacaoDesempenho());                 
175
                                revisaoAvaliacaoDesempenho.setSolicitacao(questaoAvaliacaoDesempenhoRevisao.getSolicitacao());
176
 
177
                                RevisaoAvaliacaoDesempenhoId revisaoAvaliacaoDesempenhoId = new RevisaoAvaliacaoDesempenhoId();
178
                                revisaoAvaliacaoDesempenhoId.setSequencialAvaliacaoDesempenho(revisaoAvaliacaoDesempenho.getAvaliacaoDesempenho().getSequencial());
179
 
180
                                revisaoAvaliacaoDesempenho.setReviAvaliacaoDesempenhoId(revisaoAvaliacaoDesempenhoId);
181
                                revisaoAvaliacao.adicionarRevisaoAvaliacaoDesempenho(revisaoAvaliacaoDesempenho);
182
                        }
183
                }
184
 
185
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
186
                        @Override
187
                        public void execute() {
188
                                avaliacaoFacade.solicitarRevisaoAvaliacao(revisaoAvaliacao);
189
                                limparEntidade();
190
                                LancadorMensagem.lancarSucessoRedirecionandoTela(ConstantesWebHelper.Mensagem.REGISTRO_CADASTRADO_COM_SUCESSO, "/paginas/nota_avaliacao.xhtml");
191
                        }
192
                });
193
        }
194
 
195
        public void selecionarAvaliacao(Avaliacao avaliacao){
196
                setAvaliacao(avaliacao);
197
        }
198
 
199
        private void solicitarRevisao(String tipoAvaliacao, Double nota) {
200
                revisaoAvaliacao.setTipoAvaliacao(tipoAvaliacao);
201
                revisaoAvaliacao.setServidorAvaliacao(avaliacao.getServidorAvaliacao());
202
                revisaoAvaliacao.setNota(nota);
203
 
204
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
205
                        @Override
206
                        public void execute() {
207
                                avaliacaoFacade.solicitarRevisaoAvaliacao(revisaoAvaliacao);
208
                                limparEntidade();
209
                                LancadorMensagem.lancarSucessoRedirecionandoTela(ConstantesWebHelper.Mensagem.REGISTRO_CADASTRADO_COM_SUCESSO, "/paginas/nota_avaliacao.xhtml");
210
                        }
211
                });
212
        }
213
 
214
        private boolean isCampoSolicitacaoInformado(QuestaoAvaliacaoDesempenhoRevisao questaoAvaliacaoDesempenhoRevisao) {
215
                return VerificadorUtil.naoEstaNuloOuVazio(questaoAvaliacaoDesempenhoRevisao.getSolicitacao());
216
        }
217
 
218
        public void limparEntidade() {
219
                revisaoAvaliacao = null;
220
                avaliacao = null;
221
                listaQuestaoAvaliacaoDesempenhoRevisao = null;
222
        }
223
 
224
}