Subversion Repositories Integrator Subversion

Rev

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

Rev Author Line No. Line
424 blopes 1
package br.com.ec.controller;
2
 
648 blopes 3
import java.io.IOException;
424 blopes 4
import java.io.Serializable;
553 blopes 5
import java.util.ArrayList;
434 espaco 6
import java.util.Date;
553 blopes 7
import java.util.List;
424 blopes 8
 
648 blopes 9
import javax.annotation.PostConstruct;
424 blopes 10
import javax.inject.Inject;
11
import javax.inject.Named;
12
 
430 espaco 13
import org.primefaces.event.FileUploadEvent;
14
import org.primefaces.model.StreamedContent;
15
import org.primefaces.model.file.UploadedFile;
424 blopes 16
import org.springframework.context.annotation.Scope;
17
 
18
import br.com.ec.controller.consultademanda.AvaliacaoConsultaPorDemanda;
19
import br.com.ec.core.consulta.ParametrosConsulta;
20
import br.com.ec.core.generic.GenericService;
430 espaco 21
import br.com.ec.core.util.VerificadorUtil;
22
import br.com.ec.domain.dto.AvaliacaoDTO;
429 espaco 23
import br.com.ec.domain.dto.FolhaPagamentoDTO;
430 espaco 24
import br.com.ec.domain.dto.FolhaPagamentoFuncionarioDTO;
553 blopes 25
import br.com.ec.domain.dto.FolhaPagamentoFuncionarioExtraidoDTO;
721 blopes 26
import br.com.ec.domain.dto.ParcelaDTO;
648 blopes 27
import br.com.ec.domain.dto.VigenciaDTO;
424 blopes 28
import br.com.ec.domain.model.Avaliacao;
698 blopes 29
import br.com.ec.domain.model.tipos.TipoSituacoesVigencia;
648 blopes 30
import br.com.ec.domain.service.AvaliacaoService;
427 espaco 31
import br.com.ec.domain.service.FolhaPagamentoService;
439 espaco 32
import br.com.ec.domain.service.ParcelaService;
648 blopes 33
import br.com.ec.domain.service.VigenciaService;
424 blopes 34
import br.com.ec.web.exception.VerificadorLancamentoException;
35
import br.com.ec.web.exception.VerificadorLancamentoException.CommandBean;
430 espaco 36
import br.com.ec.web.exception.VerificadorLancamentoException.CommandRelatorioStreamedContent;
424 blopes 37
import br.com.ec.web.generic.AbstractBean;
430 espaco 38
import br.com.ec.web.message.LancadorMensagem;
424 blopes 39
import br.com.ec.web.util.TipoOperacao;
40
 
41
@Named
42
@Scope("view")
43
public class FolhaPagamentoBean extends AbstractBean<Avaliacao> implements Serializable {
44
 
45
        private static final long serialVersionUID = 1L;
46
 
429 espaco 47
        private FolhaPagamentoDTO folhaPagamentoDTO;
648 blopes 48
        private VigenciaDTO vigenciaSelecionada;
429 espaco 49
 
648 blopes 50
        private FolhaPagamentoService folhaPagamentoService;
51
        private VigenciaService vigenciaService;
52
        private AvaliacaoService avaliacaoService;
53
 
430 espaco 54
        private UploadedFile arquivoParaImportacao;
55
        private String tituloEmail = "CONTRACHEQUE";
434 espaco 56
        private Date dataPagamento = new Date();
430 espaco 57
 
439 espaco 58
        private ParcelaService parcelaService;
427 espaco 59
 
424 blopes 60
        private AvaliacaoConsultaPorDemanda lazy;
61
        private ParametrosConsulta<Avaliacao> parametrosConsultaAvaliacao;
62
 
63
        @Inject
648 blopes 64
        public FolhaPagamentoBean(AvaliacaoConsultaPorDemanda lazy, FolhaPagamentoService folhaPagamentoService, VigenciaService vigenciaService,
65
                        AvaliacaoService avaliacaoService, ParcelaService parcelaService) {
424 blopes 66
                this.lazy = lazy;
427 espaco 67
                this.folhaPagamentoService = folhaPagamentoService;
648 blopes 68
                this.vigenciaService= vigenciaService;
69
                this.avaliacaoService = avaliacaoService;
439 espaco 70
                this.parcelaService = parcelaService;
424 blopes 71
        }
72
 
73
        @Override
74
        public void preCarregamento() {
75
                parametrosConsultaAvaliacao = new ParametrosConsulta<Avaliacao>();
76
                parametrosConsultaAvaliacao.setEntidade(new Avaliacao());
77
                prepararConsultaDemanda();
78
                limparEntidade();
79
        }
648 blopes 80
 
81
        @PostConstruct
82
        private void posCarregamento() {
698 blopes 83
                if (VerificadorUtil.naoEstaNulo(getParametro("vigencia"))) {
84
                        setVigenciaSelecionada(vigenciaService.consultarVigencia(new Long(getParametro("vigencia").toString())));
85
                        if (VerificadorUtil.naoEstaNulo(getVigenciaSelecionada())) {
86
                                detalharFolhaPagamento();
648 blopes 87
                        }
88
                }
698 blopes 89
        }
90
 
91
        private void detalharFolhaPagamento() {
648 blopes 92
                AvaliacaoDTO avaliacaoDTO = avaliacaoService.consultarAvaliacao(getVigenciaSelecionada().getSequencial());
93
                if (VerificadorUtil.naoEstaNulo(avaliacaoDTO)) {
94
                        setFolhaPagamentoDTO(folhaPagamentoService.detalharFolhaPagamento(avaliacaoDTO));
95
                }
96
        }
424 blopes 97
 
98
        @Override
99
        public void limparEntidade() {
100
                setEntidade(new Avaliacao());
101
        }
102
 
103
        @Override
104
        public GenericService<Avaliacao> getService() {
427 espaco 105
                return folhaPagamentoService;
424 blopes 106
        }
107
 
108
        @Override
109
        public Avaliacao getEntidade() {
110
                return entidade;
111
        }
112
 
113
        @Override
114
        public void preConsultar() {
115
                setTipoOperacao(TipoOperacao.CONSULTAR);
116
        }
429 espaco 117
 
118
        @Override
119
        public void preAlterar(Avaliacao avaliacao) {
120
                super.preAlterar(avaliacao);
430 espaco 121
                setFolhaPagamentoDTO(folhaPagamentoService.detalharFolhaPagamento(new AvaliacaoDTO(avaliacao.getSequencial(), avaliacao.getSequencialDaVigencia(), avaliacao.getDescricaoDaVigencia())));
429 espaco 122
        }
424 blopes 123
 
124
        @Override
125
        public Avaliacao getId() {
126
                return getEntidade();
127
        }
128
 
129
        public AvaliacaoConsultaPorDemanda getLazy() {
130
                return lazy;
131
        }
132
        public void setLazy(AvaliacaoConsultaPorDemanda lazy) {
133
                this.lazy = lazy;
134
        }
135
        public void prepararConsultaDemanda() {
136
                lazy.setarParametrosConsulta(getParametrosConsultaAvaliacao());
137
        }
138
 
139
        public ParametrosConsulta<Avaliacao> getParametrosConsultaAvaliacao() {
140
                return parametrosConsultaAvaliacao;
141
        }
142
        public void setParametrosConsultaAvaliacao(ParametrosConsulta<Avaliacao> parametrosConsultaAvaliacao) {
143
                this.parametrosConsultaAvaliacao = parametrosConsultaAvaliacao;
144
        }
145
 
429 espaco 146
        public FolhaPagamentoDTO getFolhaPagamentoDTO() {
147
                return folhaPagamentoDTO;
148
        }
149
        public void setFolhaPagamentoDTO(FolhaPagamentoDTO folhaPagamentoDTO) {
150
                this.folhaPagamentoDTO = folhaPagamentoDTO;
151
        }
152
 
648 blopes 153
        public VigenciaDTO getVigenciaSelecionada() {
154
                return vigenciaSelecionada;
155
        }
156
        public void setVigenciaSelecionada(VigenciaDTO vigenciaSelecionada) {
157
                this.vigenciaSelecionada = vigenciaSelecionada;
158
        }
159
 
430 espaco 160
        public UploadedFile getArquivoParaImportacao() {
161
                return arquivoParaImportacao;
162
        }
163
        public void setArquivoParaImportacao(UploadedFile arquivoParaImportacao) {
164
                this.arquivoParaImportacao = arquivoParaImportacao;
165
        }
166
 
167
        public String getTituloEmail() {
168
                return tituloEmail;
169
        }
170
        public void setTituloEmail(String tituloEmail) {
171
                this.tituloEmail = tituloEmail;
172
        }
173
 
434 espaco 174
        public Date getDataPagamento() {
175
                return dataPagamento;
176
        }
177
        public void setDataPagamento(Date dataPagamento) {
178
                this.dataPagamento = dataPagamento;
179
        }
180
 
553 blopes 181
        public List<FolhaPagamentoFuncionarioExtraidoDTO> funcionariosExtraidosForaDaAvaliacao() {
182
                List<FolhaPagamentoFuncionarioExtraidoDTO> extraidosForaDaAvaliacao = new ArrayList<FolhaPagamentoFuncionarioExtraidoDTO>();
183
                if (VerificadorUtil.naoEstaNuloOuVazio(getFolhaPagamentoDTO().getFuncionariosExtraidos())) {
184
                        for (FolhaPagamentoFuncionarioExtraidoDTO extraido : getFolhaPagamentoDTO().getFuncionariosExtraidos()) {
185
                                if (!extraido.getAdicionado()) {
186
                                        extraidosForaDaAvaliacao.add(extraido);
187
                                }
188
                        }
189
                }
190
                return extraidosForaDaAvaliacao;
191
        }
192
 
717 blopes 193
        public Double valorTotalImportadoSemAusentes() {
194
                Double valorTotalForaDaAvaliacao = new Double(0.0);
195
                List<FolhaPagamentoFuncionarioExtraidoDTO> extraidosForaDaAvaliacao = new ArrayList<FolhaPagamentoFuncionarioExtraidoDTO>();
196
                if (VerificadorUtil.naoEstaNuloOuVazio(getFolhaPagamentoDTO().getFuncionariosExtraidos())) {
197
                        for (FolhaPagamentoFuncionarioExtraidoDTO extraido : getFolhaPagamentoDTO().getFuncionariosExtraidos()) {
198
                                if (!extraido.getAdicionado()) {
199
                                        valorTotalForaDaAvaliacao += extraido.getValorVencimentos();
200
                                        extraidosForaDaAvaliacao.add(extraido);
201
                                }
202
                        }
203
                        return getFolhaPagamentoDTO().getValorTotalImportado() - valorTotalForaDaAvaliacao;
204
                }
205
                return valorTotalForaDaAvaliacao;
206
        }
207
 
424 blopes 208
        /**************************************************/
209
 
648 blopes 210
        public void redirecionarGestaoMensal() {
211
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
212
                        public void execute() {
213
                                try {
214
                                        LancadorMensagem.redirecionarTela("/sistema/gestao_mensal/gestao_mensal.xhtml");
215
                                } catch (IOException e) {
216
                                        e.printStackTrace();
217
                                }
218
                        }
219
                });
220
        }
221
 
430 espaco 222
        public void uploadArquivoEspacoCase() {
223
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
224
                        public void execute() {
225
                                setFolhaPagamentoDTO(folhaPagamentoService.importarFolhaPagamento(getArquivoParaImportacao().getContent(), getFolhaPagamentoDTO()));
439 espaco 226
                                setTituloEmail(getTituloEmail() + " " + getFolhaPagamentoDTO().getAvaliacaoDTO().getVigenciaDTO().getDescricao());
430 espaco 227
                                LancadorMensagem.lancarSucesso("ARQUIVO IMPORTADO COM SUCESSO!");
228
                        }
229
                });
230
        }
231
 
232
        public void selecionarTodosParaEnviarEmail() {
233
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
234
                        public void execute() {
235
                                for (FolhaPagamentoFuncionarioDTO folhaPagamentoFuncionario : getFolhaPagamentoDTO().getFuncionarios()) {
236
                                        if (folhaPagamentoFuncionario.getEnviarEmail()) {
237
                                                folhaPagamentoFuncionario.setEnviarEmail(false);
238
                                        } else {
239
                                                folhaPagamentoFuncionario.setEnviarEmail(true);
240
                                        }
241
                                }
242
                        }
243
                });
244
        }
245
 
246
        public void uploadArquivoEspacoCase(final FileUploadEvent e) {
247
        new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
248
                        public void execute() {
249
                                setFolhaPagamentoDTO(folhaPagamentoService.importarFolhaPagamento(e.getFile().getContent(), getFolhaPagamentoDTO()));
250
                        }
251
                });
252
    }
253
 
254
        public void atualizarValoresImportados() {
255
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
256
                        public void execute() {
257
                                for (FolhaPagamentoFuncionarioDTO folhaPagamentoFuncionario : getFolhaPagamentoDTO().getFuncionarios()) {
258
                                        if (VerificadorUtil.naoEstaNulo(folhaPagamentoFuncionario.getValorSalarioImportado()) &&
439 espaco 259
                                                        !VerificadorUtil.isListaNulaOuVazia(folhaPagamentoFuncionario.getParcelas())) {
260
                                                folhaPagamentoFuncionario.getParcelas().get(0).setValor(folhaPagamentoFuncionario.getValorSalarioImportado());
261
                                                folhaPagamentoService.atualizarValorParcela(folhaPagamentoFuncionario.getParcelas().get(0));
430 espaco 262
                                        }
263
                                }
264
                                LancadorMensagem.lancarSucesso("VALORES ATUALIZADOS COM SUCESSO");
265
                        }
266
                });
267
        }
268
 
721 blopes 269
        public void atualizarCentrosDeCustos() {
270
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
271
                        public void execute() {
272
                                for (FolhaPagamentoFuncionarioDTO folhaPagamentoFuncionario : getFolhaPagamentoDTO().getFuncionarios()) {
722 blopes 273
                                        if (!VerificadorUtil.isListaNulaOuVazia(folhaPagamentoFuncionario.getParcelas())) {
721 blopes 274
                                                if (VerificadorUtil.naoEstaNulo(folhaPagamentoFuncionario.getParcelas().get(0))) {
275
                                                        ParcelaDTO parcela = folhaPagamentoFuncionario.getParcelas().get(0);
276
                                                        Long sequencialConta = parcela.getContaDTO().getSequencial();
277
                                                        folhaPagamentoService.atualizarCentroDeCustos(sequencialConta, folhaPagamentoFuncionario.getAvaliacaoFuncionarioDTO().getSequencialDaLoja());
278
                                                }
279
                                        }
280
                                }
281
                                detalharFolhaPagamento();
722 blopes 282
                                setArquivoParaImportacao(null);
283
                                LancadorMensagem.lancarSucesso("CENTROS DE CUSTOS ATUALIZADOS COM SUCESSO");
721 blopes 284
                        }
285
                });
286
        }
287
 
434 espaco 288
        public void efetuarPagamentos() {
289
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
290
                        public void execute() {
439 espaco 291
                                for (FolhaPagamentoFuncionarioDTO folhaPagamentoFuncionario : getFolhaPagamentoDTO().getFuncionarios()) {
292
                                        if (!VerificadorUtil.isListaNulaOuVazia(folhaPagamentoFuncionario.getParcelas())) {
293
                                                parcelaService.efetuarPagamentoRecebimento(folhaPagamentoFuncionario.getParcelas().get(0), getDataPagamento());
698 blopes 294
                                                vigenciaService.alterarSituacaoFolha(getVigenciaSelecionada().getSequencial(), TipoSituacoesVigencia.EM_ANDAMENTO_A.getValor());
439 espaco 295
                                        }
296
                                }
722 blopes 297
                                detalharFolhaPagamento();
439 espaco 298
                                setArquivoParaImportacao(null);
434 espaco 299
                                LancadorMensagem.lancarSucesso("PAGAMENTOS EFETUADOS COM SUCESSO");
300
                        }
301
                });
302
        }
303
 
698 blopes 304
        public void finalizarFolhaPagamento() {
305
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
306
                        public void execute() {
307
                                vigenciaService.alterarSituacaoFolha(getVigenciaSelecionada().getSequencial(), TipoSituacoesVigencia.FINALIZADO_F.getValor());
308
                                setArquivoParaImportacao(null);
309
                                redirecionarGestaoMensal();
310
                                LancadorMensagem.lancarSucesso("FOLHA DE PAGAMENTO FINALIZADA COM SUCESSO");
311
                        }
312
                });
313
        }
314
 
430 espaco 315
        public StreamedContent downloadRecibos() throws Exception {
316
                return new VerificadorLancamentoException().verificarLancamentoException(new CommandRelatorioStreamedContent() {
317
                        @Override
318
                        public StreamedContent execute() {
439 espaco 319
                                return folhaPagamentoService.downloadRecibos(getFolhaPagamentoDTO());
430 espaco 320
                        }
321
                });
322
        }
323
 
439 espaco 324
        public void enviarRecibos() throws Exception {
325
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
326
                        public void execute() {
327
                                folhaPagamentoService.enviarRecibosPorEmail(getFolhaPagamentoDTO(), getTituloEmail());
328
                                LancadorMensagem.lancarSucesso("RECIBOS ENVIADOS COM SUCESSO!");
329
                        }
330
                });
331
        }
332
 
333
        public StreamedContent downloadArquivoFolhaBanco(String codigoBanco) throws Exception {
430 espaco 334
                return new VerificadorLancamentoException().verificarLancamentoException(new CommandRelatorioStreamedContent() {
335
                        @Override
336
                        public StreamedContent execute() {
439 espaco 337
                                return folhaPagamentoService.downloadArquivoFolhaBanco(getFolhaPagamentoDTO(), codigoBanco);
430 espaco 338
                        }
339
                });
340
        }
341
 
424 blopes 342
}