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); |