Subversion Repositories Integrator Subversion

Rev

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