Rev 582 | Rev 588 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 582 | Rev 583 | ||
|---|---|---|---|
| Line 17... | Line 17... | ||
| 17 | import br.com.ec.domain.dto.ModeloDTO; |
17 | import br.com.ec.domain.dto.ModeloDTO; |
| 18 | import br.com.ec.domain.dto.RankingComprasTransferenciasEstiloDTO; |
18 | import br.com.ec.domain.dto.RankingComprasTransferenciasEstiloDTO; |
| 19 | import br.com.ec.domain.dto.RankingComprasTransferenciasEstiloPorLojaDTO; |
19 | import br.com.ec.domain.dto.RankingComprasTransferenciasEstiloPorLojaDTO; |
| 20 | import br.com.ec.domain.dto.RankingModeloDTO; |
20 | import br.com.ec.domain.dto.RankingModeloDTO; |
| 21 | import br.com.ec.domain.dto.RankingProdutoDTO; |
21 | import br.com.ec.domain.dto.RankingProdutoDTO; |
| - | 22 | import br.com.ec.domain.dto.RankingProdutoDTONovo; |
|
| 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.ParametrosConsultaProdutosVendidosDTO; |
25 | import br.com.ec.domain.dto.consulta.ParametrosConsultaProdutosVendidosDTO; |
| 25 | import br.com.ec.domain.dto.consulta.ParametrosConsultaVendasDTO; |
26 | import br.com.ec.domain.dto.consulta.ParametrosConsultaVendasDTO; |
| 26 | import br.com.ec.domain.model.Venda; |
27 | import br.com.ec.domain.model.Venda; |
| Line 1171... | Line 1172... | ||
| 1171 | } else { |
1172 | } else { |
| 1172 | sql.append("ORDER BY l.venda.dataVenda DESC "); |
1173 | sql.append("ORDER BY l.venda.dataVenda DESC "); |
| 1173 | }
|
1174 | }
|
| 1174 | try { |
1175 | try { |
| 1175 | TypedQuery<RankingProdutoDTO> query = getEntityManager().createQuery(sql.toString(), RankingProdutoDTO.class) |
1176 | TypedQuery<RankingProdutoDTO> query = getEntityManager().createQuery(sql.toString(), RankingProdutoDTO.class) |
| - | 1177 | .setParameter("dataInicial", DataUtils.getDataComHorarioMinimo(parametrosConsulta.getDataInicial())) |
|
| - | 1178 | .setParameter("dataFinal", DataUtils.getDataComHorarioMaximo(parametrosConsulta.getDataFinal())); |
|
| - | 1179 | if (VerificadorUtil.naoEstaNulo(parametrosConsulta.getQuantidadeProdutos())) { |
|
| - | 1180 | query.setMaxResults(parametrosConsulta.getQuantidadeProdutos()); |
|
| - | 1181 | }
|
|
| - | 1182 | if (VerificadorUtil.naoEstaNulo(parametrosConsulta.getLoja())) { |
|
| - | 1183 | query.setParameter("sequencialLoja", parametrosConsulta.getLoja().getSequencial()); |
|
| - | 1184 | }
|
|
| - | 1185 | if (VerificadorUtil.naoEstaNulo(parametrosConsulta.getTipoProduto())) { |
|
| - | 1186 | query.setParameter("tipoProduto", parametrosConsulta.getTipoProduto()); |
|
| - | 1187 | }
|
|
| - | 1188 | if (VerificadorUtil.naoEstaNulo(parametrosConsulta.getProduto())) { |
|
| - | 1189 | if (VerificadorUtil.naoEstaNuloOuVazio(parametrosConsulta.getProduto().getCodigo())) { |
|
| - | 1190 | query.setParameter("codigo", parametrosConsulta.getProduto().getCodigoProdutoPadrao()); |
|
| - | 1191 | }
|
|
| - | 1192 | if (VerificadorUtil.naoEstaNuloOuVazio(parametrosConsulta.getProduto().getDescricao())) { |
|
| - | 1193 | query.setParameter("descricao", "%" + removerAcentuacao(parametrosConsulta.getProduto().getDescricao()) + "%"); |
|
| - | 1194 | }
|
|
| - | 1195 | if (VerificadorUtil.naoEstaNuloOuVazio(parametrosConsulta.getProduto().getEstilo())) { |
|
| - | 1196 | query.setParameter("tipoEstilo", parametrosConsulta.getProduto().getEstilo()); |
|
| - | 1197 | }
|
|
| - | 1198 | if (VerificadorUtil.naoEstaNuloOuVazio(parametrosConsulta.getProduto().getCor())) { |
|
| - | 1199 | query.setParameter("tipoCor", parametrosConsulta.getProduto().getCor()); |
|
| - | 1200 | }
|
|
| - | 1201 | if (VerificadorUtil.naoEstaNuloOuVazio(parametrosConsulta.getProduto().getGenero())) { |
|
| - | 1202 | query.setParameter("tipoGenero", parametrosConsulta.getProduto().getGenero()); |
|
| - | 1203 | }
|
|
| - | 1204 | }
|
|
| - | 1205 | if (VerificadorUtil.naoEstaNulo(parametrosConsulta.getMarca())) { |
|
| - | 1206 | query.setParameter("sequencialMarcaDoModelo", parametrosConsulta.getMarca().getSequencial()); |
|
| - | 1207 | }
|
|
| - | 1208 | if (VerificadorUtil.naoEstaNulo(parametrosConsulta.getModelo())) { |
|
| - | 1209 | query.setParameter("sequencialModelo", parametrosConsulta.getModelo().getSequencial()); |
|
| - | 1210 | }
|
|
| - | 1211 | if (VerificadorUtil.naoEstaNulo(parametrosConsulta.getFornecedor())) { |
|
| - | 1212 | query.setParameter("fornecedor", parametrosConsulta.getFornecedor()); |
|
| - | 1213 | }
|
|
| - | 1214 | if (VerificadorUtil.naoEstaNulo(parametrosConsulta.getVendedor())) { |
|
| - | 1215 | query.setParameter("vendedor", parametrosConsulta.getVendedor()); |
|
| - | 1216 | }
|
|
| - | 1217 | ||
| - | 1218 | /*if (VerificadorUtil.naoEstaNulo(parametrosConsulta.getSomenteParaComprar())) {
|
|
| - | 1219 | query.setParameter("quantidadeMinimaComprar", parametrosConsulta.getQuantidadeMinimaComprar());
|
|
| - | 1220 | }*/
|
|
| - | 1221 | /*if (VerificadorUtil.naoEstaNuloOuVazio(parametrosConsulta.getTipoOrdenacao())) {
|
|
| - | 1222 | if (!parametrosConsulta.getTipoOrdenacao().equals(TipoOrdenacaoMaisVendidos.DATA.getValor())) {
|
|
| - | 1223 | query.setParameter("dataDoisMesesAnterior", DataUtils.acrescentarMeses(DataUtils.getDataComHorarioMinimo(DataUtils.getDataAtual()), -2));
|
|
| - | 1224 | }
|
|
| - | 1225 | }*/
|
|
| - | 1226 | ||
| - | 1227 | return query.getResultList(); |
|
| - | 1228 | } catch(Exception ex) { |
|
| - | 1229 | ex.printStackTrace(); |
|
| - | 1230 | return null; |
|
| - | 1231 | }
|
|
| - | 1232 | }
|
|
| - | 1233 | ||
| - | 1234 | @Override |
|
| - | 1235 | public List<RankingProdutoDTONovo> consultarProdutosVendidosDTO(ParametrosConsultaProdutosVendidosDTO parametrosConsulta) { |
|
| - | 1236 | StringBuilder sql = new StringBuilder(); |
|
| - | 1237 | sql.append("SELECT new br.com.ec.domain.dto.RankingProdutoDTO(l.produto, SUM(l.valorVenda), SUM(l.valorCompra), SUM(l.valorVarejo - l.valorVenda), COUNT(l.produto), MAX(l.venda.dataVenda)"); |
|
| - | 1238 | sql.append(adicionarEstoque(parametrosConsulta)); |
|
| - | 1239 | sql.append(adicionarSolicitacaoCompraProduto()); |
|
| - | 1240 | sql.append(") FROM Lancamento l "); |
|
| - | 1241 | sql.append("WHERE l.venda.dataVenda >= :dataInicial AND l.venda.dataVenda <= :dataFinal "); |
|
| - | 1242 | if (VerificadorUtil.naoEstaNulo(parametrosConsulta.getLoja())) { |
|
| - | 1243 | sql.append("AND l.venda.loja.sequencial = :sequencialLoja "); |
|
| - | 1244 | }
|
|
| - | 1245 | if (VerificadorUtil.naoEstaNulo(parametrosConsulta.getTipoProduto())) { |
|
| - | 1246 | sql.append("AND l.produto.tipo = :tipoProduto "); |
|
| - | 1247 | }
|
|
| - | 1248 | if (VerificadorUtil.naoEstaNulo(parametrosConsulta.getProduto())) { |
|
| - | 1249 | if (VerificadorUtil.naoEstaNuloOuVazio(parametrosConsulta.getProduto().getCodigo())) { |
|
| - | 1250 | sql.append("AND l.produto.codigo = :codigo "); |
|
| - | 1251 | }
|
|
| - | 1252 | if (VerificadorUtil.naoEstaNuloOuVazio(parametrosConsulta.getProduto().getDescricao())) { |
|
| - | 1253 | sql.append("AND "); |
|
| - | 1254 | sql.append(sqlConsultarSemAcento("l.produto.descricao")); |
|
| - | 1255 | sql.append(" like upper(:descricao) "); |
|
| - | 1256 | }
|
|
| - | 1257 | if (VerificadorUtil.naoEstaNuloOuVazio(parametrosConsulta.getProduto().getEstilo())) { |
|
| - | 1258 | sql.append("AND l.produto.estilo = :tipoEstilo "); |
|
| - | 1259 | }
|
|
| - | 1260 | if (VerificadorUtil.naoEstaNuloOuVazio(parametrosConsulta.getProduto().getCor())) { |
|
| - | 1261 | sql.append("AND l.produto.cor = :tipoCor "); |
|
| - | 1262 | }
|
|
| - | 1263 | if (VerificadorUtil.naoEstaNuloOuVazio(parametrosConsulta.getProduto().getGenero())) { |
|
| - | 1264 | sql.append("AND l.produto.genero = :tipoGenero "); |
|
| - | 1265 | }
|
|
| - | 1266 | }
|
|
| - | 1267 | if (VerificadorUtil.naoEstaNulo(parametrosConsulta.getMarca())) { |
|
| - | 1268 | sql.append("AND l.produto.modelo.marca.sequencial = :sequencialMarcaDoModelo "); |
|
| - | 1269 | }
|
|
| - | 1270 | if (VerificadorUtil.naoEstaNulo(parametrosConsulta.getModelo())) { |
|
| - | 1271 | sql.append("AND l.produto.modelo.sequencial = :sequencialModelo "); |
|
| - | 1272 | }
|
|
| - | 1273 | if (VerificadorUtil.naoEstaNulo(parametrosConsulta.getFornecedor())) { |
|
| - | 1274 | sql.append("AND :fornecedor in (SELECT fp.fornecedor FROM FornecedorProduto fp WHERE fp.produto.sequencial = l.produto.sequencial) "); |
|
| - | 1275 | }
|
|
| - | 1276 | if (VerificadorUtil.naoEstaNulo(parametrosConsulta.getVendedor())) { |
|
| - | 1277 | sql.append("AND l.venda.vendedor = :vendedor "); |
|
| - | 1278 | }
|
|
| - | 1279 | ||
| - | 1280 | sql.append("GROUP BY l.produto "); |
|
| - | 1281 | sql.append("ORDER BY COUNT(l.produto) DESC "); |
|
| - | 1282 | try { |
|
| - | 1283 | TypedQuery<RankingProdutoDTONovo> query = getEntityManager().createQuery(sql.toString(), RankingProdutoDTONovo.class) |
|
| 1176 | .setParameter("dataInicial", DataUtils.getDataComHorarioMinimo(parametrosConsulta.getDataInicial())) |
1284 | .setParameter("dataInicial", DataUtils.getDataComHorarioMinimo(parametrosConsulta.getDataInicial())) |
| 1177 | .setParameter("dataFinal", DataUtils.getDataComHorarioMaximo(parametrosConsulta.getDataFinal())); |
1285 | .setParameter("dataFinal", DataUtils.getDataComHorarioMaximo(parametrosConsulta.getDataFinal())); |
| 1178 | if (VerificadorUtil.naoEstaNulo(parametrosConsulta.getQuantidadeProdutos())) { |
1286 | if (VerificadorUtil.naoEstaNulo(parametrosConsulta.getQuantidadeProdutos())) { |
| 1179 | query.setMaxResults(parametrosConsulta.getQuantidadeProdutos()); |
1287 | query.setMaxResults(parametrosConsulta.getQuantidadeProdutos()); |
| 1180 | }
|
1288 | }
|
| Line 2015... | Line 2123... | ||
| 2015 | ex.printStackTrace();
|
2123 | ex.printStackTrace();
|
| 2016 | return null;
|
2124 | return null;
|
| 2017 | }
|
2125 | }
|
| 2018 | }
|
2126 | }
|
| 2019 | */
|
2127 | */
|
| - | 2128 | ||
| 2020 | }
|
2129 | }
|