Subversion Repositories Integrator Subversion

Rev

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
}