Subversion Repositories Integrator Subversion

Rev

Rev 279 | Rev 353 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
259 espaco 1
package br.com.ec.controller;
2
 
3
import java.io.Serializable;
268 espaco 4
import java.util.ArrayList;
261 espaco 5
import java.util.Arrays;
279 espaco 6
import java.util.Date;
259 espaco 7
import java.util.List;
8
 
9
import javax.inject.Inject;
10
import javax.inject.Named;
11
 
12
import org.primefaces.model.charts.bar.BarChartModel;
13
import org.primefaces.model.charts.pie.PieChartModel;
14
import org.springframework.context.annotation.Scope;
15
 
16
import br.com.ec.core.generic.GenericService;
279 espaco 17
import br.com.ec.core.util.DataUtils;
18
import br.com.ec.domain.dto.AtestadoFuncionarioDTO;
19
import br.com.ec.domain.dto.AvaliacaoFuncionarioDTO;
20
import br.com.ec.domain.dto.ExameFuncionarioDTO;
21
import br.com.ec.domain.dto.FuncionarioFeriasDTO;
268 espaco 22
import br.com.ec.domain.dto.FormaPagamentoDTO;
259 espaco 23
import br.com.ec.domain.dto.FuncionarioDTO;
268 espaco 24
import br.com.ec.domain.dto.LojaDTO;
279 espaco 25
import br.com.ec.domain.dto.PessoaDTO;
26
import br.com.ec.domain.dto.PontoDTO;
268 espaco 27
import br.com.ec.domain.dto.consulta.ParametrosConsultaVendasDTO;
259 espaco 28
import br.com.ec.domain.dto.consulta.ParametrosPeriodoDTO;
268 espaco 29
import br.com.ec.domain.dto.grafico.GraficoBarraDTO;
297 espaco 30
import br.com.ec.domain.model.FuncionarioFerias;
261 espaco 31
import br.com.ec.domain.model.tipos.TipoProduto;
279 espaco 32
import br.com.ec.domain.service.AvaliacaoFuncionarioService;
297 espaco 33
import br.com.ec.domain.service.FuncionarioFeriasService;
259 espaco 34
import br.com.ec.domain.service.FuncionarioService;
268 espaco 35
import br.com.ec.domain.service.GraficoService;
279 espaco 36
import br.com.ec.web.exception.VerificadorLancamentoException;
37
import br.com.ec.web.exception.VerificadorLancamentoException.CommandBean;
259 espaco 38
import br.com.ec.web.generic.AbstractBean;
39
 
40
@Named
41
@Scope("view")
42
public class RelatorioAnaliticoBean extends AbstractBean<FuncionarioDTO> implements Serializable {
43
 
44
        private static final long serialVersionUID = 1L;
45
 
268 espaco 46
        private FuncionarioService funcionarioService;
47
        private GraficoService graficoService;
279 espaco 48
        private AvaliacaoFuncionarioService avaliacaoFuncionarioService;
297 espaco 49
        private FuncionarioFeriasService funcionarioFeriasService;
268 espaco 50
 
259 espaco 51
        private List<FuncionarioDTO> listaFuncionariosDTO;
52
        private Long sequencialFuncionarioSelecionado;
53
        private FuncionarioDTO funcionarioSelecionado;
54
        private ParametrosPeriodoDTO parametrosPeriodoDTO;
268 espaco 55
        private Boolean graficoConsultado;
56
        private GraficoBarraDTO graficoVendas;
57
        private GraficoBarraDTO graficoPercentuaisMeta;
279 espaco 58
        private AvaliacaoFuncionarioDTO avaliacaoFuncionarioSelecionada;
297 espaco 59
        private FuncionarioFeriasDTO funcionarioFeriasSelecionado;
259 espaco 60
 
61
        @Inject
297 espaco 62
        public RelatorioAnaliticoBean(FuncionarioService funcionarioService, GraficoService graficoService, AvaliacaoFuncionarioService avaliacaoFuncionarioService,
63
                        FuncionarioFeriasService funcionarioFeriasService) {
259 espaco 64
                this.funcionarioService = funcionarioService;
268 espaco 65
                this.graficoService = graficoService;
279 espaco 66
                this.avaliacaoFuncionarioService = avaliacaoFuncionarioService;
297 espaco 67
                this.funcionarioFeriasService = funcionarioFeriasService;
259 espaco 68
        }
69
 
70
        @Override
71
        public GenericService<FuncionarioDTO> getService() {
72
                return null;
73
        }
74
 
75
        @Override
76
        public FuncionarioDTO getId() {
77
                return null;
78
        }
79
 
80
        @Override
81
        public void preCarregamento() {
82
                limparEntidade();
83
                consultarFuncionariosAdmitidos();
84
        }
85
 
86
        @Override
87
        public void limparEntidade() {
88
                setEntidade(new FuncionarioDTO());
89
                setParametrosPeriodoDTO(new ParametrosPeriodoDTO());
90
                setFuncionarioSelecionado(null);
268 espaco 91
                setGraficoConsultado(false);
259 espaco 92
        }
93
 
268 espaco 94
        public TipoProduto[] getTiposProduto() {
95
                return TipoProduto.values();
96
        }
97
 
259 espaco 98
        public List<FuncionarioDTO> getListaFuncionariosDTO() {
99
                return listaFuncionariosDTO;
100
        }
101
        public void setListaFuncionariosDTO(List<FuncionarioDTO> listaFuncionariosDTO) {
102
                this.listaFuncionariosDTO = listaFuncionariosDTO;
103
        }
104
 
105
        public Long getSequencialFuncionarioSelecionado() {
106
                return sequencialFuncionarioSelecionado;
107
        }
108
        public void setSequencialFuncionarioSelecionado(Long sequencialFuncionarioSelecionado) {
109
                this.sequencialFuncionarioSelecionado = sequencialFuncionarioSelecionado;
110
        }
111
 
112
        public FuncionarioDTO getFuncionarioSelecionado() {
113
                return funcionarioSelecionado;
114
        }
115
        public void setFuncionarioSelecionado(FuncionarioDTO funcionarioSelecionado) {
116
                this.funcionarioSelecionado = funcionarioSelecionado;
117
        }
118
 
119
        public ParametrosPeriodoDTO getParametrosPeriodoDTO() {
120
                return parametrosPeriodoDTO;
121
        }
122
        public void setParametrosPeriodoDTO(ParametrosPeriodoDTO parametrosPeriodoDTO) {
123
                this.parametrosPeriodoDTO = parametrosPeriodoDTO;
124
        }
125
 
268 espaco 126
        public Boolean getGraficoConsultado() {
127
                return graficoConsultado;
261 espaco 128
        }
268 espaco 129
        public void setGraficoConsultado(Boolean graficoConsultado) {
130
                this.graficoConsultado = graficoConsultado;
131
        }
261 espaco 132
 
268 espaco 133
        public GraficoBarraDTO getGraficoVendas() {
134
                return graficoVendas;
135
        }
136
        public void setGraficoVendas(GraficoBarraDTO graficoVendas) {
137
                this.graficoVendas = graficoVendas;
138
        }
139
 
140
        public GraficoBarraDTO getGraficoPercentuaisMeta() {
141
                return graficoPercentuaisMeta;
142
        }
143
        public void setGraficoPercentuaisMeta(GraficoBarraDTO graficoPercentuaisMeta) {
144
                this.graficoPercentuaisMeta = graficoPercentuaisMeta;
145
        }
146
 
279 espaco 147
        public AvaliacaoFuncionarioDTO getAvaliacaoFuncionarioSelecionada() {
148
                return avaliacaoFuncionarioSelecionada;
149
        }
150
        public void setAvaliacaoFuncionarioSelecionada(AvaliacaoFuncionarioDTO avaliacaoFuncionarioSelecionada) {
151
                this.avaliacaoFuncionarioSelecionada = avaliacaoFuncionarioSelecionada;
152
        }
153
 
297 espaco 154
        public FuncionarioFeriasDTO getFuncionarioFeriasSelecionado() {
155
                return funcionarioFeriasSelecionado;
156
        }
157
        public void setFuncionarioFeriasSelecionado(FuncionarioFeriasDTO funcionarioFeriasSelecionado) {
158
                this.funcionarioFeriasSelecionado = funcionarioFeriasSelecionado;
159
        }
160
 
259 espaco 161
        /**********************************/
162
 
163
        public void consultarFuncionariosAdmitidos() {
164
                setListaFuncionariosDTO(funcionarioService.consultarFuncionariosAdmitidos());
165
        }
166
 
167
        public void analisarFuncionario() {
279 espaco 168
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
169
                        public void execute() {
170
                                FuncionarioDTO funcionarioDTO = funcionarioService.analisarFuncionario(getFuncionarioSelecionado());
171
                                setFuncionarioSelecionado(funcionarioDTO);
172
                        }
173
                });
259 espaco 174
        }
175
 
176
        public void gerarGraficosFuncionario() {
268 espaco 177
                setGraficoConsultado(true);
261 espaco 178
 
268 espaco 179
                ParametrosConsultaVendasDTO parametrosConsulta = new ParametrosConsultaVendasDTO();
180
                parametrosConsulta.setParametrosPeriodoDTO(getParametrosPeriodoDTO());
181
                parametrosConsulta.setVendedorSelecionado(getFuncionarioSelecionado().getVendedorDTO());
182
                parametrosConsulta.setFormasDePagamentoDTO(new FormaPagamentoDTO[0]);
183
 
184
                setGraficoVendas(new GraficoBarraDTO(parametrosConsulta));
185
                setGraficoVendas(graficoService.gerarGraficoVendas(getGraficoVendas().getParametrosConsulta(), null));
186
                setGraficoPercentuaisMeta(graficoService.gerarGraficoPercentuaisMeta(getGraficoVendas().getParametrosConsulta()));
187
 
188
                /*********************/
189
 
261 espaco 190
                BarChartModel graficoComparativoCustosLucro = funcionarioService.consultarGraficoComparativoCustosLucro(getFuncionarioSelecionado().getSequencialFuncionario(), getParametrosPeriodoDTO());
191
                getFuncionarioSelecionado().setGraficoComparativoCustosLucro(graficoComparativoCustosLucro);
192
 
193
                PieChartModel graficoTiposProdutos = funcionarioService.consultarGraficoTiposProdutos(getFuncionarioSelecionado().getSequencialFuncionario(), getParametrosPeriodoDTO(), Arrays.asList(getTiposProduto()));
259 espaco 194
                getFuncionarioSelecionado().setGraficoTiposProdutos(graficoTiposProdutos);
195
 
196
                PieChartModel graficoFormasPagamento = funcionarioService.consultarGraficoFormasPagamento(getFuncionarioSelecionado().getSequencialFuncionario(), getParametrosPeriodoDTO());
197
                getFuncionarioSelecionado().setGraficoFormasPagamento(graficoFormasPagamento);
198
        }
199
 
279 espaco 200
        public void consultarAvaliacoes() {
201
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
202
                        public void execute() {
203
                                getFuncionarioSelecionado().setAvaliacoesDTO(avaliacaoFuncionarioService.consultarAvaliacoesFuncionario(getFuncionarioSelecionado().getSequencialFuncionario()));
204
                        }
205
                });
206
        }
207
 
208
        public void detalharAvaliacao(final AvaliacaoFuncionarioDTO avaliacaoFuncionarioDTO) {
209
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
210
                        public void execute() {
211
                                avaliacaoFuncionarioDTO.setItensAvaliacao(avaliacaoFuncionarioService.consultarItensDaAvaliacao(avaliacaoFuncionarioDTO.getSequencialFuncionario(), avaliacaoFuncionarioDTO.getSequencialAvaliacao()));
212
                                setAvaliacaoFuncionarioSelecionada(avaliacaoFuncionarioDTO);
213
                        }
214
                });
215
        }
216
 
217
        // TODO: IMPLEMENTAÇÃO PENDENTE
218
        public void consultarFerias() {
219
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
220
                        public void execute() {
297 espaco 221
                                getFuncionarioSelecionado().setFeriasDTO(funcionarioFeriasService.consultarFerias(getFuncionarioSelecionado().getSequencialFuncionario()));
222
                                /*
279 espaco 223
                                List<FuncionarioFeriasDTO> feriasDTO = new ArrayList<FuncionarioFeriasDTO>();
224
                                FuncionarioFeriasDTO funcionarioFeriasDTO = new FuncionarioFeriasDTO();
297 espaco 225
                                funcionarioFeriasDTO.setDataInicial(DataUtils.converterStringParaData("01/09/2021"));
226
                                funcionarioFeriasDTO.setDataFinal(DataUtils.converterStringParaData("30/09/2021"));
227
                                funcionarioFeriasDTO.setDataInicialAquisicao(DataUtils.converterStringParaData("02/07/2019"));
228
                                funcionarioFeriasDTO.setDataFinalAquisicao(DataUtils.converterStringParaData("01/07/2020"));
279 espaco 229
                                funcionarioFeriasDTO.setConfirmada(true);
230
                                funcionarioFeriasDTO.setObservacao("");
231
                                feriasDTO.add(funcionarioFeriasDTO);
232
 
233
                                funcionarioFeriasDTO = new FuncionarioFeriasDTO();
297 espaco 234
                                funcionarioFeriasDTO.setDataInicial(DataUtils.converterStringParaData("01/10/2019"));
235
                                funcionarioFeriasDTO.setDataFinal(DataUtils.converterStringParaData("30/10/2019"));
236
                                funcionarioFeriasDTO.setDataInicialAquisicao(DataUtils.converterStringParaData("02/07/2018"));
237
                                funcionarioFeriasDTO.setDataFinalAquisicao(DataUtils.converterStringParaData("01/07/2019"));
279 espaco 238
                                funcionarioFeriasDTO.setConfirmada(true);
239
                                funcionarioFeriasDTO.setObservacao("");
240
                                feriasDTO.add(funcionarioFeriasDTO);
241
 
242
                                getFuncionarioSelecionado().setFeriasDTO(feriasDTO);
297 espaco 243
                                */
279 espaco 244
                        }
245
                });
246
        }
247
 
248
        // TODO: IMPLEMENTAÇÃO PENDENTE
249
        public void consultarExames() {
250
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
251
                        public void execute() {
252
                                List<ExameFuncionarioDTO> examesDTO = new ArrayList<ExameFuncionarioDTO>();
253
                                ExameFuncionarioDTO exameDTO = new ExameFuncionarioDTO();
254
                                exameDTO.setDataPrevista(DataUtils.converterStringParaData("01/05/2021"));
255
                                exameDTO.setTipoExame("P");
256
                                examesDTO.add(exameDTO);
257
 
258
                                exameDTO = new ExameFuncionarioDTO();
259
                                exameDTO.setDataPrevista(DataUtils.converterStringParaData("01/05/2020"));
260
                                exameDTO.setDataRealizada(DataUtils.converterStringParaData("01/05/2020"));
261
                                exameDTO.setTipoExame("P");
262
                                examesDTO.add(exameDTO);
263
 
264
                                exameDTO = new ExameFuncionarioDTO();
265
                                exameDTO.setDataRealizada(DataUtils.converterStringParaData("01/05/2019"));
266
                                exameDTO.setTipoExame("A");
267
                                examesDTO.add(exameDTO);
268
 
269
                                getFuncionarioSelecionado().setExamesDTO(examesDTO);
270
                        }
271
                });
272
        }
273
 
274
        // TODO: IMPLEMENTAÇÃO PENDENTE
275
        public void consultarAtestados() {
276
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
277
                        public void execute() {
278
                                List<AtestadoFuncionarioDTO> atestadosDTO = new ArrayList<AtestadoFuncionarioDTO>();
279
                                AtestadoFuncionarioDTO atestadoDTO = new AtestadoFuncionarioDTO();
280
                                atestadoDTO.setDataAtestado(DataUtils.converterStringParaData("01/11/2020"));
281
                                atestadoDTO.setQuantidadeDias(new Long(15));
282
                                atestadoDTO.setCodigoCid("Y71");
283
                                atestadoDTO.setObservacao("COVID");
284
                                atestadosDTO.add(atestadoDTO);
285
 
286
                                atestadoDTO = new AtestadoFuncionarioDTO();
287
                                atestadoDTO.setDataAtestado(DataUtils.converterStringParaData("01/09/2020"));
288
                                atestadoDTO.setQuantidadeDias(new Long(3));
289
                                atestadoDTO.setCodigoCid("Y59");
290
                                atestadoDTO.setObservacao("");
291
                                atestadosDTO.add(atestadoDTO);
292
 
293
                                getFuncionarioSelecionado().setAtestadosDTO(atestadosDTO);
294
                        }
295
                });
296
        }
297
 
298
        // TODO: IMPLEMENTAÇÃO PENDENTE
299
        public void consultarPontoEletronico() {
300
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
301
                        public void execute() {
302
                                List<PontoDTO> pontosDTO = new ArrayList<PontoDTO>();
303
                                PontoDTO pontoDTO = new PontoDTO();
304
                                LojaDTO lojaDTO = new LojaDTO();
305
                                lojaDTO.setDescricao("QUIOSQUE BIG GRUTA");
306
                                pontoDTO.setLojaDTO(lojaDTO);
307
 
308
                                PessoaDTO pessoaDTO = new PessoaDTO();
309
                                pessoaDTO.setNome(getFuncionarioSelecionado().getNome());
310
                                pontoDTO.setPessoaDTO(pessoaDTO);
311
 
312
                                pontoDTO.setDataPonto(DataUtils.converterStringParaData("13/08/2021"));
313
                                pontoDTO.setDataHoraPontoInicio(DataUtils.converterStringParaDataComHorario("13/08/2021 16:00:00"));
314
                                pontoDTO.setDataHoraPontoFim(DataUtils.converterStringParaDataComHorario("13/08/2021 16:00:00"));
315
                                pontoDTO.setDataHoraIntervaloInicio(DataUtils.converterStringParaDataComHorario("13/08/2021 16:00:00"));
316
                                pontoDTO.setDataHoraIntervaloFim(DataUtils.converterStringParaDataComHorario("13/08/2021 16:00:00"));
317
                                pontoDTO.setObservacao("");
318
                                pontosDTO.add(pontoDTO);
319
 
320
                                getFuncionarioSelecionado().setPontosDTO(pontosDTO);
321
                        }
322
                });
323
        }
324
 
259 espaco 325
}