Subversion Repositories Integrator Subversion

Rev

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