Subversion Repositories Integrator Subversion

Rev

Rev 724 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 724 Rev 740
Line 1... Line 1...
1
package br.com.ec.domain.service.impl;
1
package br.com.ec.domain.service.impl;
2
2
-
 
3
import java.io.ByteArrayInputStream;
-
 
4
import java.io.ByteArrayOutputStream;
-
 
5
import java.io.FileNotFoundException;
-
 
6
import java.io.IOException;
-
 
7
import java.io.InputStream;
3
import java.util.ArrayList;
8
import java.util.ArrayList;
-
 
9
import java.util.Iterator;
4
import java.util.List;
10
import java.util.List;
5
11
-
 
12
import javax.faces.context.FacesContext;
-
 
13
-
 
14
import org.apache.poi.hssf.usermodel.HSSFSheet;
-
 
15
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-
 
16
import org.apache.poi.ss.usermodel.Cell;
-
 
17
import org.apache.poi.ss.usermodel.Row;
-
 
18
import org.primefaces.model.DefaultStreamedContent;
-
 
19
import org.primefaces.model.StreamedContent;
6
import org.springframework.beans.factory.annotation.Autowired;
20
import org.springframework.beans.factory.annotation.Autowired;
7
import org.springframework.stereotype.Service;
21
import org.springframework.stereotype.Service;
8
22
9
import br.com.ec.core.exception.NegocioException;
23
import br.com.ec.core.exception.NegocioException;
10
import br.com.ec.core.generic.AbstractService;
24
import br.com.ec.core.generic.AbstractService;
11
import br.com.ec.core.generic.GenericRepository;
25
import br.com.ec.core.generic.GenericRepository;
-
 
26
import br.com.ec.core.util.ArquivoUtil;
-
 
27
import br.com.ec.core.util.StringUtil;
12
import br.com.ec.core.util.VerificadorUtil;
28
import br.com.ec.core.util.VerificadorUtil;
13
import br.com.ec.core.validador.Validador;
29
import br.com.ec.core.validador.Validador;
14
import br.com.ec.domain.dto.AvaliacaoDTO;
30
import br.com.ec.domain.dto.AvaliacaoDTO;
15
import br.com.ec.domain.dto.AvaliacaoFuncionarioDTO;
31
import br.com.ec.domain.dto.AvaliacaoFuncionarioDTO;
16
import br.com.ec.domain.dto.AvaliacaoLojaDTO;
32
import br.com.ec.domain.dto.AvaliacaoLojaDTO;
17
import br.com.ec.domain.dto.AvaliacaoLojaFuncionarioDTO;
33
import br.com.ec.domain.dto.AvaliacaoLojaFuncionarioDTO;
-
 
34
import br.com.ec.domain.dto.FolhaPagamentoFuncionarioDTO;
18
import br.com.ec.domain.dto.FuncionarioDTO;
35
import br.com.ec.domain.dto.FuncionarioDTO;
19
import br.com.ec.domain.dto.LojaDTO;
36
import br.com.ec.domain.dto.LojaDTO;
20
import br.com.ec.domain.dto.VigenciaDTO;
37
import br.com.ec.domain.dto.VigenciaDTO;
21
import br.com.ec.domain.model.Avaliacao;
38
import br.com.ec.domain.model.Avaliacao;
22
import br.com.ec.domain.model.AvaliacaoFuncionario;
39
import br.com.ec.domain.model.AvaliacaoFuncionario;
Line 25... Line 42...
25
import br.com.ec.domain.model.AvaliacaoProduto;
42
import br.com.ec.domain.model.AvaliacaoProduto;
26
import br.com.ec.domain.model.Funcionario;
43
import br.com.ec.domain.model.Funcionario;
27
import br.com.ec.domain.model.Loja;
44
import br.com.ec.domain.model.Loja;
28
import br.com.ec.domain.model.Produto;
45
import br.com.ec.domain.model.Produto;
29
import br.com.ec.domain.model.Vigencia;
46
import br.com.ec.domain.model.Vigencia;
-
 
47
import br.com.ec.domain.model.tipos.TipoComissionamento;
30
import br.com.ec.domain.service.AvaliacaoFuncionarioService;
48
import br.com.ec.domain.service.AvaliacaoFuncionarioService;
31
import br.com.ec.domain.service.AvaliacaoLojaService;
49
import br.com.ec.domain.service.AvaliacaoLojaService;
32
import br.com.ec.domain.service.AvaliacaoProdutoService;
50
import br.com.ec.domain.service.AvaliacaoProdutoService;
33
import br.com.ec.domain.service.AvaliacaoService;
51
import br.com.ec.domain.service.AvaliacaoService;
34
import br.com.ec.domain.service.FuncionarioService;
52
import br.com.ec.domain.service.FuncionarioService;
Line 204... Line 222...
204
        public void removerParticipanteDaAvaliacao(AvaliacaoFuncionarioDTO avaliacaoFuncionarioDTO) {
222
        public void removerParticipanteDaAvaliacao(AvaliacaoFuncionarioDTO avaliacaoFuncionarioDTO) {
205
                AvaliacaoFuncionarioId avaliacaoFuncionarioId = new AvaliacaoFuncionarioId();
223
                AvaliacaoFuncionarioId avaliacaoFuncionarioId = new AvaliacaoFuncionarioId();
206
                avaliacaoFuncionarioId.setSequencialAvaliacao(avaliacaoFuncionarioDTO.getSequencialDaAvaliacao());
224
                avaliacaoFuncionarioId.setSequencialAvaliacao(avaliacaoFuncionarioDTO.getSequencialDaAvaliacao());
207
                avaliacaoFuncionarioId.setSequencialFuncionario(avaliacaoFuncionarioDTO.getSequencialDoFuncionario());
225
                avaliacaoFuncionarioId.setSequencialFuncionario(avaliacaoFuncionarioDTO.getSequencialDoFuncionario());
208
                avaliacaoFuncionarioService.excluir(avaliacaoFuncionarioId);
226
                avaliacaoFuncionarioService.excluir(avaliacaoFuncionarioId);
-
 
227
        }
-
 
228
       
-
 
229
        @Override
-
 
230
        public StreamedContent emitirRelatorioImportacaoFolhaPagamento(AvaliacaoDTO avaliacao) {
-
 
231
                ByteArrayOutputStream baos = new ByteArrayOutputStream();
-
 
232
               
-
 
233
                try {
-
 
234
                        String caminhoArquivo = "/arquivos_padrao/folhadepagamento_contabilidade.xls";
-
 
235
                        InputStream arquivo = FacesContext.getCurrentInstance().getExternalContext().getResourceAsStream(caminhoArquivo);
-
 
236
                        HSSFWorkbook workbook = new HSSFWorkbook(arquivo);
-
 
237
                        HSSFSheet sheet = workbook.getSheetAt(0);
-
 
238
       
-
 
239
                        Iterator rowIterator = sheet.rowIterator();
-
 
240
                        while (rowIterator.hasNext()) {
-
 
241
                                Row row = (Row) rowIterator.next();
-
 
242
                                if (row.getRowNum() < 11) {
-
 
243
                                        continue;
-
 
244
                                } else {
-
 
245
                                        Iterator cellIterator = row.cellIterator();
-
 
246
                                        Integer codigoFolha = null;
-
 
247
                                        while (cellIterator.hasNext()) {
-
 
248
                                                Boolean atualizar = true;
-
 
249
                                                Cell cell = (Cell) cellIterator.next();
-
 
250
                                                switch (cell.getColumnIndex()) {
-
 
251
                                                        case 1:
-
 
252
                                                                Integer tipoCelula = cell.getCellType();
-
 
253
                                                                if (tipoCelula.equals(Cell.CELL_TYPE_NUMERIC)) {
-
 
254
                                                                        Double codigo = cell.getNumericCellValue();
-
 
255
                                                                        codigoFolha = codigo.intValue();
-
 
256
                                                                } else {
-
 
257
                                                                        atualizar = false;
-
 
258
                                                                }
-
 
259
                                                                break;
-
 
260
                                                        case 3:
-
 
261
                                                                if (atualizar) {
-
 
262
                                                                        for (AvaliacaoLojaFuncionarioDTO avaliacaoLojaDTO : avaliacao.getAvaliacoesLojas()) {
-
 
263
                                                                                for (AvaliacaoFuncionarioDTO avaliacaoFuncionarioDTO : avaliacaoLojaDTO.getFuncionarios()) {
-
 
264
                                                                                        if (VerificadorUtil.estaNulo(avaliacaoFuncionarioDTO.getFuncionarioDTO().getCodigoContabilidade())) {
-
 
265
                                                                                                throw new NegocioException("Participante " + avaliacaoFuncionarioDTO.getFuncionarioDTO().getNomeDaPessoa() + " sem código contábil cadastrado");
-
 
266
                                                                                        }
-
 
267
                                                                                        if (avaliacaoFuncionarioDTO.getFuncionarioDTO().getCodigoContabilidade().equals(codigoFolha)) {
-
 
268
                                                                                                Double valorComissao = avaliacaoFuncionarioDTO.getValorComissao();
-
 
269
                                                                                                if (VerificadorUtil.estaNulo(valorComissao)) {
-
 
270
                                                                                                        throw new NegocioException("Obrigatório informar todas as comissões");
-
 
271
                                                                                                }
-
 
272
                                                                                                String valor = StringUtil.formatarValorComDoisDigitos(valorComissao.toString());
-
 
273
                                                                                                cell.setCellValue(valor.replace(".", ","));
-
 
274
                                                                                                break;
-
 
275
                                                                                        }
-
 
276
                                                                                }
-
 
277
                                                                        }
-
 
278
                                                                }
-
 
279
                                                                break;
-
 
280
                                                }
-
 
281
                                        }
-
 
282
                                }
-
 
283
                        }
-
 
284
               
-
 
285
                        try {
-
 
286
                        workbook.write(baos);
-
 
287
                        return DefaultStreamedContent.builder()
-
 
288
                                .name("folha_pagamento")
-
 
289
                                .contentType(ArquivoUtil.retornarContentTypeArquivo("xls"))
-
 
290
                                .stream(() -> new java.io.ByteArrayInputStream(baos.toByteArray()))
-
 
291
                                .build();
-
 
292
                } catch (FileNotFoundException e) {
-
 
293
                        e.printStackTrace();
-
 
294
                } catch (IOException e) {
-
 
295
                        e.printStackTrace();
-
 
296
                } finally {
-
 
297
                                baos.close();
-
 
298
                                arquivo.close();
-
 
299
                                workbook.close();
-
 
300
                        }
-
 
301
                } catch (FileNotFoundException e) {
-
 
302
                        e.printStackTrace();
-
 
303
                } catch (NegocioException ne) {
-
 
304
                        throw new NegocioException(ne.getMessage());
-
 
305
                } catch (Exception e) {
-
 
306
                        e.printStackTrace();
-
 
307
                }
-
 
308
               
-
 
309
                return null;
-
 
310
                /*
-
 
311
                try {
-
 
312
                        List<byte[]> arquivos = new ArrayList<byte[]>();
-
 
313
                        for (FolhaPagamentoFuncionarioDTO funcionarioFolhaPagamento : folhaPagamentoDTO.getFuncionarios()) {
-
 
314
                                arquivos.add(funcionarioFolhaPagamento.getArquivo().getArquivo());
-
 
315
                        }
-
 
316
                        ByteArrayInputStream input = new ByteArrayInputStream(ArquivoUtil.compactarArquivos(arquivos, "recibo"));
-
 
317
                        return DefaultStreamedContent.builder().contentType(ArquivoUtil.retornarContentTypeArquivo("zip")).name("recibos.zip").stream(() -> input).build();
-
 
318
                } catch (IOException e) {
-
 
319
                        e.printStackTrace();
-
 
320
                }
-
 
321
                return null;
-
 
322
                */
209
        }
323
        }
210
       
324
       
211
        /*
325
        /*
212
        @Override
326
        @Override
213
        public Avaliacao detalhar(Avaliacao avaliacao) {
327
        public Avaliacao detalhar(Avaliacao avaliacao) {