Subversion Repositories Integrator Subversion

Rev

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