Subversion Repositories Integrator Subversion

Rev

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

Rev Author Line No. Line
357 espaco 1
package br.com.ec.domain.service.impl;
2
 
3
import java.util.List;
4
 
5
import org.springframework.beans.factory.annotation.Autowired;
6
import org.springframework.stereotype.Service;
7
 
8
import br.com.ec.core.exception.NegocioException;
9
import br.com.ec.core.generic.AbstractService;
10
import br.com.ec.core.generic.GenericRepository;
11
import br.com.ec.core.util.VerificadorUtil;
12
import br.com.ec.core.validador.Validador;
648 blopes 13
import br.com.ec.domain.dto.AvaliacaoDTO;
357 espaco 14
import br.com.ec.domain.model.Avaliacao;
15
import br.com.ec.domain.model.AvaliacaoProduto;
16
import br.com.ec.domain.model.Produto;
17
import br.com.ec.domain.service.AvaliacaoProdutoService;
18
import br.com.ec.domain.service.AvaliacaoService;
19
import br.com.ec.domain.service.PendenciaService;
20
import br.com.ec.domain.service.ProdutoService;
21
import br.com.ec.domain.service.UsuarioService;
22
import br.com.ec.repository.AvaliacaoRepository;
23
 
24
@Service
25
public class AvaliacaoServiceImpl extends AbstractService<Avaliacao> implements AvaliacaoService {
26
 
27
        private AvaliacaoRepository avaliacaoRepository;
28
 
29
        private PendenciaService pendenciaService;
30
        private UsuarioService usuarioService;
31
        private ProdutoService produtoService;
32
        private AvaliacaoProdutoService avaliacaoProdutoService;
33
 
34
        @Autowired
35
        public AvaliacaoServiceImpl(Validador validador, AvaliacaoRepository avaliacaoRepository, PendenciaService pendenciaService,
36
                        UsuarioService usuarioService, ProdutoService produtoService, AvaliacaoProdutoService avaliacaoProdutoService) {
37
                super(validador);
38
                this.avaliacaoRepository = avaliacaoRepository;
39
                this.pendenciaService = pendenciaService;
40
                this.usuarioService = usuarioService;
41
                this.produtoService = produtoService;
42
                this.avaliacaoProdutoService = avaliacaoProdutoService;
43
        }
44
 
45
        @Override
46
        protected GenericRepository<Avaliacao> getRepository() {
47
                return avaliacaoRepository;
48
        }
49
 
50
        @Override
648 blopes 51
        public AvaliacaoDTO consultarAvaliacao(Long sequencialVigencia) {
52
                return avaliacaoRepository.consultarAvaliacao(sequencialVigencia);
53
        }
54
 
55
        @Override
357 espaco 56
        public List<AvaliacaoProduto> consultarProdutosPromocaoInterna(Long sequencialAvaliacao) {
57
                return avaliacaoRepository.consultarProdutosPromocaoInterna(sequencialAvaliacao);
58
        }
59
 
60
        @Override
61
        public void excluirProdutoPromocaoInterna(AvaliacaoProduto avaliacaoProduto) {
62
                avaliacaoRepository.excluirProdutoPromocaoInterna(avaliacaoProduto);
63
        }
64
 
65
        @Override
66
        public void cadastrarProdutoPromocaoInterna(Avaliacao avaliacao, String codigoProduto) {
67
                Produto produto = produtoService.consultarProdutoPorCodigo(codigoProduto);
68
                if (VerificadorUtil.estaNulo(produto)) {
69
                        throw new NegocioException("Produto não identificado");
70
                }
71
                AvaliacaoProduto avaliacaoProduto = new AvaliacaoProduto();
72
                avaliacaoProduto.setProduto(produto);
73
                avaliacaoProduto.setAvaliacao(avaliacaoRepository.consultarPorId(avaliacao));
74
                avaliacaoProdutoService.cadastrar(avaliacaoProduto);
75
        }
76
 
77
        /*
78
        @Override
79
        public Avaliacao detalhar(Avaliacao avaliacao) {
80
                return avaliacaoRepository.detalhar(avaliacao);
81
        }
82
 
83
        @Override
84
        public Avaliacao consultarAvaliacaoDaVigencia(Vigencia vigencia) {
85
                return avaliacaoRepository.consultarAvaliacaoDaVigencia(vigencia);
86
        }
87
 
88
        @Override
89
        public List<Avaliacao> consultarAvaliacoesDivulgadas() {
90
                return avaliacaoRepository.consultarAvaliacoesDivulgadas();
91
        }
92
 
93
        @Override
94
        public void solicitarReavaliacao(RankingVendedorDTO rankingVendedor, String solicitacao) {
95
                StringBuilder conteudo = new StringBuilder();
96
                conteudo.append("SOLICITANTE: " + rankingVendedor.getVendedor().getNomeDaPessoa() + "\n");
97
                conteudo.append("DATA DA SOLICITAÇÃO: " + DataUtil.retornarDataFormatadaEmFormatoTexto("dd/MM/yyyy 'às' HH:mm", DataUtils.getDataAtual()) + "\n");
98
                conteudo.append("OBSERVAÇÕES: \n");
99
                conteudo.append(solicitacao);
100
 
101
                Pendencia pendencia = new Pendencia();
102
                pendencia.setDescricao("SOLICITAÇÃO DE REAVALIAÇÃO: " + rankingVendedor.getVendedor().getNomeDaPessoa());
103
                pendencia.setUsuario(usuarioService.consultarUsuarioPorPessoa(rankingVendedor.getVendedor().getPessoa()));
104
                pendencia.setData(DataUtils.getDataAtual());
105
                if (VerificadorUtil.estaNulo(rankingVendedor.getVendedor().getLoja())) {
106
                        pendencia.setLoja(new Loja(ConstantesSEC.SEQUENCIAL_MATRIZ_ESTOQUE_9.longValue()));
107
                } else {
108
                        pendencia.setLoja(rankingVendedor.getVendedor().getLoja());
109
                }
110
                Perfil perfilRh = new Perfil();
111
                perfilRh.setCodigo(ConstantesSEC.PERFIL_RECURSOS_HUMANOS_11);
112
                pendencia.setPerfil(perfilRh);
113
                pendenciaService.cadastrar(pendencia);
114
 
115
                new GerenciadorEmailImpl()
116
                        .comEmailsDestino(ConstantesSEC.DESTINATARIOS_EMAIL_SUPERVISAO)
117
                        .comAssunto("SOLICITAÇÃO DE REAVALIAÇÃO")
118
                        .comConteudo(conteudo.toString())
119
                        .enviar();
120
        }
121
 
122
        @Override
123
        public byte[] emitirRelatorioImportacaoFolhaPagamento(ServletContext contexto, Avaliacao avaliacao, Long empresa) {
124
                ByteArrayOutputStream baos = new ByteArrayOutputStream();
125
 
126
                try {
127
                        String caminhoArquivo = "/arquivos/modelos/Relatório de Importação - Folha de Pagamento Espaço Case.xls";
128
                        InputStream arquivo = FacesContext.getCurrentInstance().getExternalContext().getResourceAsStream(caminhoArquivo);
129
                        HSSFWorkbook workbook = new HSSFWorkbook(arquivo);
130
                        HSSFSheet sheet = workbook.getSheetAt(0);
131
 
132
                        Iterator rowIterator = sheet.rowIterator();
133
                        while (rowIterator.hasNext()) {
134
                                Row row = (Row) rowIterator.next();
135
                                if (row.getRowNum() < 11) {
136
                                        continue;
137
                                } else {
138
                                        Iterator cellIterator = row.cellIterator();
139
                                        Integer codigoFolha = null;
140
                                        while (cellIterator.hasNext()) {
141
                                                Boolean atualizar = true;
142
                                                Cell cell = (Cell) cellIterator.next();
143
                                                switch (cell.getColumnIndex()) {
144
                                                        case 1:
145
                                                                Integer tipoCelula = cell.getCellType();
146
                                                                if (tipoCelula.equals(Cell.CELL_TYPE_NUMERIC)) {
147
                                                                        Double codigo = cell.getNumericCellValue();
148
                                                                        codigoFolha = codigo.intValue();
149
                                                                } else {
150
                                                                        atualizar = false;
151
                                                                }
152
                                                                break;
153
                                                        case 3:
154
                                                                if (atualizar) {
155
                                                                        for (AvaliacaoFuncionario avaliacaoFunc : avaliacao.getParticipantes()) {
156
                                                                                if (VerificadorUtil.estaNulo(avaliacaoFunc.getFuncionario().getCodigoContabilidade())) {
157
                                                                                        throw new NegocioException("Participante " + avaliacaoFunc.getFuncionario().getNomeDaPessoa() + " sem código contábil cadastrado");
158
                                                                                }
159
                                                                                if (avaliacaoFunc.getFuncionario().getTipoComissionamento().equals(TipoComissionamento.parse(empresa).getValor()) &&
160
                                                                                        avaliacaoFunc.getFuncionario().getCodigoContabilidade().equals(codigoFolha)) {
161
                                                                                        Double valorComissao = avaliacaoFunc.getValorComissao();
162
                                                                                        if (VerificadorUtil.estaNulo(valorComissao)) {
163
                                                                                                throw new NegocioException("Obrigatório informar todas as comissões");
164
                                                                                        }
165
                                                                                        String valor = StringUtil.formatarValorComDoisDigitos(valorComissao.toString());
166
                                                                                        cell.setCellValue(valor.replace(".", ","));
167
                                                                                        break;
168
                                                                                }
169
                                                                        }
170
                                                                }
171
                                                                break;
172
                                                }
173
                                        }
174
                                }
175
                        }
176
 
177
                        try {
178
                        workbook.write(baos);
179
                        return baos.toByteArray();
180
                } catch (FileNotFoundException e) {
181
                        e.printStackTrace();
182
                } catch (IOException e) {
183
                        e.printStackTrace();
184
                } finally {
185
                                baos.close();
186
                                arquivo.close();
187
                                workbook.close();
188
                        }
189
                } catch (FileNotFoundException e) {
190
                        e.printStackTrace();
191
                } catch (NegocioException ne) {
192
                        throw new NegocioException(ne.getMessage());
193
                } catch (Exception e) {
194
                        e.printStackTrace();
195
                }
196
 
197
        return null;
198
        }
199
        */
200
}