Subversion Repositories Integrator Subversion

Rev

Rev 564 | Rev 567 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 564 Rev 566
Line 13... Line 13...
13
import br.com.ec.core.util.VerificadorUtil;
13
import br.com.ec.core.util.VerificadorUtil;
14
import br.com.ec.core.validador.Validador;
14
import br.com.ec.core.validador.Validador;
15
import br.com.ec.domain.dto.AuditoriaVendaDTO;
15
import br.com.ec.domain.dto.AuditoriaVendaDTO;
16
import br.com.ec.domain.dto.FormaPagamentoDTO;
16
import br.com.ec.domain.dto.FormaPagamentoDTO;
17
import br.com.ec.domain.dto.LojaDTO;
17
import br.com.ec.domain.dto.LojaDTO;
-
 
18
import br.com.ec.domain.dto.ModeloDTO;
18
import br.com.ec.domain.dto.RankingComprasTransferenciasDTO;
19
import br.com.ec.domain.dto.RankingComprasTransferenciasDTO;
19
import br.com.ec.domain.dto.RankingComprasTransferenciasEstiloDTO;
20
import br.com.ec.domain.dto.RankingComprasTransferenciasEstiloDTO;
20
import br.com.ec.domain.dto.RankingComprasTransferenciasEstiloPorLojaDTO;
21
import br.com.ec.domain.dto.RankingComprasTransferenciasEstiloPorLojaDTO;
21
import br.com.ec.domain.dto.RankingModeloDTO;
22
import br.com.ec.domain.dto.RankingModeloDTO;
22
import br.com.ec.domain.dto.consulta.ParametrosConsultaModelosMaisVendidosDTO;
23
import br.com.ec.domain.dto.consulta.ParametrosConsultaModelosMaisVendidosDTO;
23
import br.com.ec.domain.dto.consulta.ParametrosConsultaPorPeriodoDTO;
24
import br.com.ec.domain.dto.consulta.ParametrosConsultaPorPeriodoDTO;
24
import br.com.ec.domain.dto.consulta.ParametrosConsultaVendasDTO;
25
import br.com.ec.domain.dto.consulta.ParametrosConsultaVendasDTO;
25
import br.com.ec.domain.model.Venda;
26
import br.com.ec.domain.model.Venda;
-
 
27
import br.com.ec.domain.model.tipos.TipoEstiloProduto;
26
import br.com.ec.domain.model.tipos.TipoSituacaoVenda;
28
import br.com.ec.domain.model.tipos.TipoSituacaoVenda;
27
import br.com.ec.domain.service.LojaService;
29
import br.com.ec.domain.service.LojaService;
-
 
30
import br.com.ec.domain.service.ModeloService;
28
import br.com.ec.domain.service.VendaService;
31
import br.com.ec.domain.service.VendaService;
29
import br.com.ec.repository.VendaRepository;
32
import br.com.ec.repository.VendaRepository;
30
33
31
@Service
34
@Service
32
public class VendaServiceImpl extends AbstractService<Venda> implements VendaService {
35
public class VendaServiceImpl extends AbstractService<Venda> implements VendaService {
33
36
34
        private LojaService lojaService;
37
        private LojaService lojaService;
-
 
38
        private ModeloService modeloService;
35
        private VendaRepository vendaRepository;
39
        private VendaRepository vendaRepository;
36
       
40
       
37
        public VendaServiceImpl(Validador validador, LojaService lojaService, VendaRepository vendaRepository) {
-
 
-
 
41
        public VendaServiceImpl(Validador validador, LojaService lojaService, ModeloService modeloService, VendaRepository vendaRepository) {
38
                super(validador);
42
                super(validador);
39
                this.lojaService = lojaService;
43
                this.lojaService = lojaService;
-
 
44
                this.modeloService = modeloService;
40
                this.vendaRepository = vendaRepository;
45
                this.vendaRepository = vendaRepository;
41
        }
46
        }
42
47
43
        @Override
48
        @Override
44
        protected GenericRepository<Venda> getRepository() {
49
        protected GenericRepository<Venda> getRepository() {
Line 95... Line 100...
95
                }
100
                }
96
                return vendaRepository.consultarAuditoriaVenda(dataSelecionada, sequencialLojaSelecionada);
101
                return vendaRepository.consultarAuditoriaVenda(dataSelecionada, sequencialLojaSelecionada);
97
        }
102
        }
98
       
103
       
99
        @Override
104
        @Override
100
        public List<RankingComprasTransferenciasDTO> consultarRankingComprasTransferencias(Integer quantidadeDiasReposicao) {
-
 
-
 
105
        public List<RankingComprasTransferenciasDTO> consultarRankingComprasTransferencias(Integer quantidadeDiasReposicao, List<RankingModeloDTO> modelosMaisVendidos) {
101
                List<RankingComprasTransferenciasDTO> ranking = new ArrayList<RankingComprasTransferenciasDTO>();
106
                List<RankingComprasTransferenciasDTO> ranking = new ArrayList<RankingComprasTransferenciasDTO>();
102
               
107
               
103
                ParametrosConsultaPorPeriodoDTO parametrosConsultaPorPeriodoDTO = new ParametrosConsultaPorPeriodoDTO();
108
                ParametrosConsultaPorPeriodoDTO parametrosConsultaPorPeriodoDTO = new ParametrosConsultaPorPeriodoDTO();
104
                parametrosConsultaPorPeriodoDTO.setDataFinal(DataUtils.getDataAtual());
109
                parametrosConsultaPorPeriodoDTO.setDataFinal(DataUtils.getDataAtual());
105
                parametrosConsultaPorPeriodoDTO.setDataInicial(DataUtils.acrescentarDias(DataUtils.getDataAtual(), quantidadeDiasReposicao*-1));
110
                parametrosConsultaPorPeriodoDTO.setDataInicial(DataUtils.acrescentarDias(DataUtils.getDataAtual(), quantidadeDiasReposicao*-1));
106
               
-
 
107
                // CONSULTAR MODELOS MAIS VENDIDOS
-
 
108
                List<RankingModeloDTO> modelosMaisVendidos = new ArrayList<RankingModeloDTO>();
-
 
109
                ParametrosConsultaModelosMaisVendidosDTO parametrosConsulta = new ParametrosConsultaModelosMaisVendidosDTO();
-
 
110
                parametrosConsulta.setDataFinal(DataUtils.getDataAtual());
-
 
111
                parametrosConsulta.setDataInicial(DataUtils.acrescentarDias(DataUtils.getDataAtual(), quantidadeDiasReposicao*-1));
-
 
112
                modelosMaisVendidos.addAll(consultarRankingModelos(parametrosConsulta));
-
 
113
               
111
               
114
                for (RankingModeloDTO rankingModelo : modelosMaisVendidos) {
112
                for (RankingModeloDTO rankingModelo : modelosMaisVendidos) {
115
                        RankingComprasTransferenciasDTO rankingComprasTransferenciasDTO = new RankingComprasTransferenciasDTO();
113
                        RankingComprasTransferenciasDTO rankingComprasTransferenciasDTO = new RankingComprasTransferenciasDTO();
116
                        rankingComprasTransferenciasDTO.setRankingModelo(rankingModelo);
114
                        rankingComprasTransferenciasDTO.setRankingModelo(rankingModelo);
117
115
118
                        // CONSULTAR POR ESTILO
116
                        // CONSULTAR POR ESTILO
-
 
117
                        List<RankingComprasTransferenciasEstiloDTO> rankEstiloDTO = new ArrayList<RankingComprasTransferenciasEstiloDTO>();
-
 
118
                        rankEstiloDTO.addAll(consultarRankingPorEstilo(rankingModelo.getModelo().getSequencial(), parametrosConsultaPorPeriodoDTO));
-
 
119
                       
-
 
120
                        // PREENCHER COM ESTILOS QUE NÃO FORAM CONSULTADOS
119
                        List<RankingComprasTransferenciasEstiloDTO> rankingEstiloDTO = new ArrayList<RankingComprasTransferenciasEstiloDTO>();
121
                        List<RankingComprasTransferenciasEstiloDTO> rankingEstiloDTO = new ArrayList<RankingComprasTransferenciasEstiloDTO>();
120
                        rankingEstiloDTO.addAll(consultarRankingPorEstilo(rankingModelo.getModelo().getSequencial(), parametrosConsultaPorPeriodoDTO));
-
 
-
 
122
                        for (TipoEstiloProduto tipoEstilo : TipoEstiloProduto.values()) {      
-
 
123
                                Boolean adicionarEstilo = true;
-
 
124
                                for (RankingComprasTransferenciasEstiloDTO rankingEstilo : rankEstiloDTO) {
-
 
125
                                        if (rankingEstilo.getEstilo().equals(tipoEstilo)) {
-
 
126
                                                rankingEstiloDTO.add(rankingEstilo);
-
 
127
                                                adicionarEstilo = false;
-
 
128
                                                break;
-
 
129
                                        }
-
 
130
                                }
-
 
131
                                if (adicionarEstilo) {
-
 
132
                                        RankingComprasTransferenciasEstiloDTO rankingEstilo = new RankingComprasTransferenciasEstiloDTO();
-
 
133
                                        rankingEstilo.setEstilo(tipoEstilo);
-
 
134
                                        rankingEstiloDTO.add(rankingEstilo);
-
 
135
                                }
-
 
136
                        }
121
                       
137
                       
122
                        // CONSULTAR ESTILO POR LOJA
138
                        // CONSULTAR ESTILO POR LOJA
123
                        for (RankingComprasTransferenciasEstiloDTO rankingEstilo : rankingEstiloDTO) {
139
                        for (RankingComprasTransferenciasEstiloDTO rankingEstilo : rankingEstiloDTO) {
124
                                rankingEstilo.setRankingsPorLoja(consultarRankingPorEstiloPorLoja(rankingModelo.getModelo().getSequencial(), rankingEstilo.getEstilo().getValor(), parametrosConsultaPorPeriodoDTO));
-
 
-
 
140
                                List<RankingComprasTransferenciasEstiloPorLojaDTO> rankingPorLoja = new ArrayList<RankingComprasTransferenciasEstiloPorLojaDTO>();
-
 
141
                                rankingPorLoja.addAll(consultarRankingPorEstiloPorLoja(rankingModelo.getModelo().getSequencial(), rankingEstilo.getEstilo().getValor(), parametrosConsultaPorPeriodoDTO));
-
 
142
                               
-
 
143
                                // PREENCHER COM LOJAS ATIVAS
-
 
144
                                List<RankingComprasTransferenciasEstiloPorLojaDTO> rankingEstiloPorLoja = new ArrayList<RankingComprasTransferenciasEstiloPorLojaDTO>();
-
 
145
                                List<LojaDTO> lojasDTO = lojaService.consultarLojasAtivas();
-
 
146
                                for (LojaDTO lojaDTO : lojasDTO) {
-
 
147
                                        Boolean adicionarRankingLoja = true;
-
 
148
                                        for (RankingComprasTransferenciasEstiloPorLojaDTO rk : rankingPorLoja) {
-
 
149
                                                if (rk.getLojaDTO().equals(lojaDTO)) {
-
 
150
                                                        rankingEstiloPorLoja.add(rk);
-
 
151
                                                        adicionarRankingLoja = false;
-
 
152
                                                        break;
-
 
153
                                                }
-
 
154
                                        }
-
 
155
                                        if (adicionarRankingLoja) {
-
 
156
                                                RankingComprasTransferenciasEstiloPorLojaDTO rank = new RankingComprasTransferenciasEstiloPorLojaDTO();
-
 
157
                                                rank.setLojaDTO(lojaDTO);
-
 
158
                                                rankingEstiloPorLoja.add(rank);
-
 
159
                                        }
-
 
160
                                }
-
 
161
                                rankingEstilo.setRankingsPorLoja(rankingEstiloPorLoja);
125
                                rankingComprasTransferenciasDTO.getEstilos().add(rankingEstilo);
162
                                rankingComprasTransferenciasDTO.getEstilos().add(rankingEstilo);
126
                        }
163
                        }
127
                       
164
                       
128
                        // CONSULTAR ALERTAS
165
                        // CONSULTAR ALERTAS
129
                        rankingComprasTransferenciasDTO.setAlertas(rankingComprasTransferenciasDTO.verificarAlertas());
166
                        rankingComprasTransferenciasDTO.setAlertas(rankingComprasTransferenciasDTO.verificarAlertas());
Line 146... Line 183...
146
        public List<RankingComprasTransferenciasEstiloPorLojaDTO> consultarRankingPorEstiloPorLoja(Long sequencialModelo, String tipoEstilo, ParametrosConsultaPorPeriodoDTO parametrosConsultaPorPeriodoDTO) {
183
        public List<RankingComprasTransferenciasEstiloPorLojaDTO> consultarRankingPorEstiloPorLoja(Long sequencialModelo, String tipoEstilo, ParametrosConsultaPorPeriodoDTO parametrosConsultaPorPeriodoDTO) {
147
                return vendaRepository.consultarRankingPorEstiloPorLoja(sequencialModelo, tipoEstilo, parametrosConsultaPorPeriodoDTO);
184
                return vendaRepository.consultarRankingPorEstiloPorLoja(sequencialModelo, tipoEstilo, parametrosConsultaPorPeriodoDTO);
148
        }
185
        }
149
186
150
        @Override
187
        @Override
151
        public List<RankingModeloDTO> consultarRankingModelos(ParametrosConsultaModelosMaisVendidosDTO parametrosConsulta) {
-
 
152
                return vendaRepository.consultarModelosMaisVendidos(parametrosConsulta);
-
 
-
 
188
        public List<RankingModeloDTO> consultarRankingModelos(ParametrosConsultaModelosMaisVendidosDTO parametrosConsulta, Boolean adicionarTodosModelosFavoritos) {
-
 
189
                List<RankingModeloDTO> rankingModelosMaisVendidos = new ArrayList<RankingModeloDTO>();
-
 
190
                rankingModelosMaisVendidos.addAll(vendaRepository.consultarModelosMaisVendidos(parametrosConsulta));
-
 
191
               
-
 
192
                if (adicionarTodosModelosFavoritos) {
-
 
193
                        // PREENCHER COM MODELOS FAVORITOS SEM VENDAS
-
 
194
                        ModeloDTO modeloDTO = new ModeloDTO();
-
 
195
                        modeloDTO.setAtivo(true);
-
 
196
                        modeloDTO.setIndicadorFavorito(true);
-
 
197
                        List<ModeloDTO> modelosFavoritos = modeloService.consultarModelos(modeloDTO);
-
 
198
                        List<RankingModeloDTO> modelosFavoritosSemVendas = new ArrayList<RankingModeloDTO>();
-
 
199
                        for (ModeloDTO modeloFavorito : modelosFavoritos) {
-
 
200
                                Boolean adicionarModelo = true;
-
 
201
                                for (RankingModeloDTO ranking : rankingModelosMaisVendidos) {
-
 
202
                                        if (ranking.getModelo().equals(modeloFavorito)) {
-
 
203
                                                adicionarModelo = false;
-
 
204
                                                break;
-
 
205
                                        }
-
 
206
                                }
-
 
207
                                if (adicionarModelo) {
-
 
208
                                        RankingModeloDTO rankingModeloDTO = new RankingModeloDTO();
-
 
209
                                        rankingModeloDTO.setModelo(modeloFavorito);
-
 
210
                                        modelosFavoritosSemVendas.add(rankingModeloDTO);
-
 
211
                                }
-
 
212
                        }
-
 
213
                        rankingModelosMaisVendidos.addAll(modelosFavoritosSemVendas);
-
 
214
                }
-
 
215
               
-
 
216
                return rankingModelosMaisVendidos;
153
        }
217
        }
154
       
218
       
155
        @Override
219
        @Override
156
        public List<RankingComprasTransferenciasEstiloDTO> consultarRankingPorEstilo(Long sequencialModelo, ParametrosConsultaPorPeriodoDTO parametrosConsultaPorPeriodoDTO) {
220
        public List<RankingComprasTransferenciasEstiloDTO> consultarRankingPorEstilo(Long sequencialModelo, ParametrosConsultaPorPeriodoDTO parametrosConsultaPorPeriodoDTO) {
157
                return vendaRepository.consultarRankingPorEstilo(sequencialModelo, parametrosConsultaPorPeriodoDTO);
221
                return vendaRepository.consultarRankingPorEstilo(sequencialModelo, parametrosConsultaPorPeriodoDTO);