Subversion Repositories Integrator Subversion

Rev

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

Rev Author Line No. Line
623 blopes 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
 
630 blopes 8
import br.com.ec.core.exception.NegocioException;
623 blopes 9
import br.com.ec.core.generic.AbstractService;
10
import br.com.ec.core.generic.GenericRepository;
630 blopes 11
import br.com.ec.core.util.DataUtils;
12
import br.com.ec.core.util.VerificadorUtil;
623 blopes 13
import br.com.ec.core.validador.Validador;
630 blopes 14
import br.com.ec.domain.dto.ComercialPosVendaDTO;
15
import br.com.ec.domain.dto.NpsPosVendaDTO;
623 blopes 16
import br.com.ec.domain.dto.PosVendaDTO;
17
import br.com.ec.domain.model.PosVenda;
630 blopes 18
import br.com.ec.domain.model.tipos.TipoNpsPosVenda;
19
import br.com.ec.domain.service.NpsPosVendaService;
623 blopes 20
import br.com.ec.domain.service.PosVendaService;
631 blopes 21
import br.com.ec.domain.service.VendaService;
623 blopes 22
import br.com.ec.repository.PosVendaRepository;
636 blopes 23
import br.com.ec.web.message.LancadorMensagem;
24
import br.com.ec.web.util.ConstantesWebHelper.Mensagem;
623 blopes 25
 
26
@Service
27
public class PosVendaServiceImpl extends AbstractService<PosVenda> implements PosVendaService {
630 blopes 28
 
623 blopes 29
        private PosVendaRepository posVendaRepository;
630 blopes 30
        private NpsPosVendaService npsPosVendaService;
631 blopes 31
        private VendaService vendaService;
623 blopes 32
 
33
        @Autowired
631 blopes 34
        public PosVendaServiceImpl(Validador validador, PosVendaRepository posVendaRepository, NpsPosVendaService npsPosVendaService,
35
                        VendaService vendaService) {
623 blopes 36
                super(validador);
37
                this.posVendaRepository = posVendaRepository;
630 blopes 38
                this.npsPosVendaService = npsPosVendaService;
631 blopes 39
                this.vendaService = vendaService;
623 blopes 40
        }
41
 
42
        @Override
43
        protected GenericRepository<PosVenda> getRepository() {
44
                return posVendaRepository;
45
        }
46
 
47
        @Override
630 blopes 48
        public ComercialPosVendaDTO consultarPosVendaEmAndamento() {
49
                ComercialPosVendaDTO comercialPosVendaDTO = new ComercialPosVendaDTO();
50
                List<PosVendaDTO> listaPosVendaNaoFinalizadas = posVendaRepository.consultarNaoFinalizadas();
51
                for (PosVendaDTO posVendaNaoFinalizada : listaPosVendaNaoFinalizadas) {
631 blopes 52
                        if (VerificadorUtil.naoEstaNulo(posVendaNaoFinalizada.getSequencialDaVenda())) {
53
                                posVendaNaoFinalizada.setVendaDTO(vendaService.detalharPorSequencial(posVendaNaoFinalizada.getSequencialDaVenda()));
54
                        }
630 blopes 55
                        NpsPosVendaDTO npsPosVendaAgradecimento = npsPosVendaService.consultarPorPosVendaEeTipo(posVendaNaoFinalizada.getSequencial(), TipoNpsPosVenda.ATENDIMENTO_A.getValor());
56
                        if (VerificadorUtil.naoEstaNulo(npsPosVendaAgradecimento)) {
57
                                if (VerificadorUtil.estaNulo(npsPosVendaAgradecimento.getDataFinalizacao())) {
58
                                        posVendaNaoFinalizada.setNpsPosVendaAgradecimento(npsPosVendaAgradecimento);
59
                                        comercialPosVendaDTO.getListaPosVendaAgradecimento().add(posVendaNaoFinalizada);
60
                                }
631 blopes 61
                        } else {
62
                                comercialPosVendaDTO.getListaPosVendaAgradecimento().add(posVendaNaoFinalizada);
630 blopes 63
                        }
64
                        posVendaNaoFinalizada.setNpsPosVendaAgradecimento(npsPosVendaService.consultarPorPosVendaEeTipo(posVendaNaoFinalizada.getSequencial(), TipoNpsPosVenda.ATENDIMENTO_A.getValor()));
65
                }
66
                comercialPosVendaDTO.setListaEmAndamento(listaPosVendaNaoFinalizadas);
67
                return comercialPosVendaDTO;
623 blopes 68
        }
69
 
630 blopes 70
        @Override
71
        public void iniciarAtendimento(PosVendaDTO posVendaDTO) {
72
                try {
73
                        PosVenda posVendaParaAlterar = this.consultarPorId(new PosVenda(posVendaDTO.getSequencial()));
74
                        posVendaParaAlterar.setDataInicio(DataUtils.getDataAtual());
75
                        posVendaParaAlterar.setObservacao(posVendaDTO.getObservacao());
76
                        posVendaParaAlterar.setTipoFinalizacao(posVendaDTO.getTipoFinalizacao());
77
//                      NpsPosVendaDTO npsPosVendaDTO = npsPosVendaService.consultarPorPosVendaEeTipo(posVendaDTO.getSequencial(), TipoNpsPosVenda.ATENDIMENTO_A.getValor());
78
//                      NpsPosVenda npsPosVenda = npsPosVendaService.consultarPorId(new NpsPosVenda(npsPosVendaDTO.getSequencial()));
79
//                      npsPosVendaService.alterar(npsPosVenda);
80
                        this.alterar(posVendaParaAlterar);
81
                } catch (Exception e) {
82
                        throw new NegocioException(e.getMessage());
83
                }
84
        }
85
 
636 blopes 86
        @Override
87
        public void finalizarAtendimento(PosVendaDTO posVendaDTO) {
88
                try {
89
                        PosVenda posVendaParaFinalizar = this.consultarPorId(new PosVenda(posVendaDTO.getSequencial()));
90
                        if (VerificadorUtil.estaNulo(posVendaParaFinalizar.getDataInicio())) {
91
                                posVendaParaFinalizar.setDataInicio(DataUtils.getDataAtual());
92
                        }
93
                        posVendaParaFinalizar.setDataFinalizacao(DataUtils.getDataAtual());
94
                        posVendaParaFinalizar.setObservacao(posVendaDTO.getObservacao());
95
                        if (VerificadorUtil.estaNulo(posVendaDTO.getTipoFinalizacao())) {
96
                                throw new NegocioException("OBRIGATÓRIO INFORMAR O TIPO DE FINALIZAÇÃO");
97
                        }
98
                        posVendaParaFinalizar.setTipoFinalizacao(posVendaDTO.getTipoFinalizacao());
99
//                      NpsPosVendaDTO npsPosVendaDTO = npsPosVendaService.consultarPorPosVendaEeTipo(posVendaDTO.getSequencial(), TipoNpsPosVenda.ATENDIMENTO_A.getValor());
100
//                      NpsPosVenda npsPosVenda = npsPosVendaService.consultarPorId(new NpsPosVenda(npsPosVendaDTO.getSequencial()));
101
//                      npsPosVendaService.alterar(npsPosVenda);
102
                        this.alterar(posVendaParaFinalizar);
103
                } catch (Exception e) {
104
                        throw new NegocioException(e.getMessage());
105
                }
106
        }
107
 
623 blopes 108
}