Subversion Repositories Integrator Subversion

Rev

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