Subversion Repositories Integrator Subversion

Rev

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

Rev 565 Rev 566
Line 344... Line 344...
344
                       
344
                       
345
                        sql.append("," + adicionarConsultaEstoqueRankingPorEstilo("estoque_estilo_a", TipoProduto.CAPA.getValor(), TipoGenero.UNISSEX.getValor()));
345
                        sql.append("," + adicionarConsultaEstoqueRankingPorEstilo("estoque_estilo_a", TipoProduto.CAPA.getValor(), TipoGenero.UNISSEX.getValor()));
346
                        sql.append("," + adicionarConsultaEstoqueRankingPorEstilo("estoque_estilo_b", TipoProduto.CAPA.getValor(), TipoGenero.MASCULINO.getValor()));
346
                        sql.append("," + adicionarConsultaEstoqueRankingPorEstilo("estoque_estilo_b", TipoProduto.CAPA.getValor(), TipoGenero.MASCULINO.getValor()));
347
                        sql.append("," + adicionarConsultaEstoqueRankingPorEstilo("estoque_estilo_c", TipoProduto.CAPA.getValor(), TipoGenero.FEMININO.getValor()));
347
                        sql.append("," + adicionarConsultaEstoqueRankingPorEstilo("estoque_estilo_c", TipoProduto.CAPA.getValor(), TipoGenero.FEMININO.getValor()));
348
                       
348
                       
349
                        sql.append("FROM sc_sec.sec_lancamento AS l ");
-
 
350
                        sql.append("LEFT JOIN sc_sec.sec_venda v ON l.seq_venda = v.seq_venda ");
-
 
351
                        sql.append("LEFT JOIN sc_sec.sec_produto p ON p.seq_produto = l.seq_produto ");
-
 
-
 
349
                        sql.append("FROM sc_sec.sec_produto_loja AS pl ");
-
 
350
                        sql.append("LEFT JOIN sc_sec.sec_produto p ON p.seq_produto = pl.seq_produto ");
352
                        sql.append("LEFT JOIN sc_sec.sec_modelo m ON m.seq_modelo = p.seq_modelo ");
351
                        sql.append("LEFT JOIN sc_sec.sec_modelo m ON m.seq_modelo = p.seq_modelo ");
353
                        sql.append("WHERE v.dth_venda <= :dataFinal AND v.dth_venda >= :dataInicial ");
-
 
-
 
352
                        sql.append("WHERE m.seq_modelo = :sequencialModelo ");
354
                        sql.append("AND p.tip_produto = '" + TipoProduto.CAPA.getValor() + "' ");
353
                        sql.append("AND p.tip_produto = '" + TipoProduto.CAPA.getValor() + "' ");
355
                        sql.append("AND m.seq_modelo = :sequencialModelo ");
-
 
356
                        sql.append("GROUP BY p.tip_estilo ");
354
                        sql.append("GROUP BY p.tip_estilo ");
357
                       
355
                       
358
                        String orderSql = "ORDER BY (";
356
                        String orderSql = "ORDER BY (";
359
                        for (TipoEstiloProduto estiloProduto : TipoEstiloProduto.values()) {
357
                        for (TipoEstiloProduto estiloProduto : TipoEstiloProduto.values()) {
360
                                orderSql = orderSql + "p.tip_estilo = '" + estiloProduto.getValor() + "', ";
358
                                orderSql = orderSql + "p.tip_estilo = '" + estiloProduto.getValor() + "', ";
361
                        }
359
                        }
362
                        orderSql = orderSql + ") DESC ";
360
                        orderSql = orderSql + ") DESC ";
363
                        sql.append(orderSql.replace(", )", ")"));
361
                        sql.append(orderSql.replace(", )", ")"));
364
//                      sql.append("p.tip_estilo = 'T', p.tip_estilo = 'S', p.tip_estilo = 'O', ");
-
 
365
//                      sql.append("p.tip_estilo = 'P', p.tip_estilo = 'C', p.tip_estilo = 'F', p.tip_estilo = 'L') DESC ");
-
 
366
//                      sql.append("ORDER BY p.tip_estilo IN ('T', 'S', 'O', 'P', 'C', 'A', 'F', 'L') DESC ");
-
 
367
//                      sql.append("ORDER BY p.tip_estilo IN :tiposEstilos");
362
//                      sql.append("ORDER BY p.tip_estilo IN :tiposEstilos");
368
                       
363
                       
369
                        Query query = getEntityManager().createNativeQuery(sql.toString());
364
                        Query query = getEntityManager().createNativeQuery(sql.toString());
370
                        Date dataInicial = DataUtils.getDataComHorarioMinimo(parametrosConsultaPorPeriodoDTO.getDataInicial());
365
                        Date dataInicial = DataUtils.getDataComHorarioMinimo(parametrosConsultaPorPeriodoDTO.getDataInicial());
371
                        Date dataFinal = DataUtils.getDataComHorarioMaximo(parametrosConsultaPorPeriodoDTO.getDataFinal());
366
                        Date dataFinal = DataUtils.getDataComHorarioMaximo(parametrosConsultaPorPeriodoDTO.getDataFinal());
372
                        query.setParameter("dataInicial", dataInicial);
367
                        query.setParameter("dataInicial", dataInicial);
373
                        query.setParameter("dataFinal", dataFinal);
368
                        query.setParameter("dataFinal", dataFinal);
374
                        query.setParameter("sequencialModelo", sequencialModelo);
369
                        query.setParameter("sequencialModelo", sequencialModelo);
375
//                      query.setParameter("tiposEstilos", TipoEstiloProduto.values());
370
//                      query.setParameter("tiposEstilos", TipoEstiloProduto.values());
-
 
371
                       
-
 
372
                        if (sequencialModelo.equals(new Long(141))) {
-
 
373
                                System.out.println("TESTE");
-
 
374
                        }
376
                       
375
                       
377
                        List<Object[]> resultList = query.getResultList();
376
                        List<Object[]> resultList = query.getResultList();
378
                        for (Object[] objects : resultList) {
377
                        for (Object[] objects : resultList) {
379
                                RankingComprasTransferenciasEstiloDTO rankingEstiloDTO = new RankingComprasTransferenciasEstiloDTO();
378
                                RankingComprasTransferenciasEstiloDTO rankingEstiloDTO = new RankingComprasTransferenciasEstiloDTO();
380
                                rankingEstiloDTO.setEstilo(TipoEstiloProduto.parse(objects[0].toString()));
-
 
381
                                rankingEstiloDTO.setQuantidadeVendasUnissex(Integer.valueOf(retornarValorSeExitir(objects[1])));
-
 
382
                                rankingEstiloDTO.setQuantidadeVendasMasculino(Integer.valueOf(retornarValorSeExitir(objects[2])));
-
 
383
                                rankingEstiloDTO.setQuantidadeVendasFeminino(Integer.valueOf(retornarValorSeExitir(objects[3])));
-
 
384
                                rankingEstiloDTO.setQuantidadeEstoqueUnissex(Integer.valueOf(retornarValorSeExitir(objects[4])));
-
 
385
                                rankingEstiloDTO.setQuantidadeEstoqueMasculino(Integer.valueOf(retornarValorSeExitir(objects[5])));
-
 
386
                                rankingEstiloDTO.setQuantidadeEstoqueFeminino(Integer.valueOf(retornarValorSeExitir(objects[6])));
-
 
387
                                rankingPorEstilo.add(rankingEstiloDTO);
-
 
-
 
379
                                if (VerificadorUtil.naoEstaNuloOuVazio(objects[0])) {
-
 
380
                                        rankingEstiloDTO.setEstilo(TipoEstiloProduto.parse(objects[0].toString()));
-
 
381
                                        rankingEstiloDTO.setQuantidadeVendasUnissex(Integer.valueOf(retornarValorSeExitir(objects[1])));
-
 
382
                                        rankingEstiloDTO.setQuantidadeVendasMasculino(Integer.valueOf(retornarValorSeExitir(objects[2])));
-
 
383
                                        rankingEstiloDTO.setQuantidadeVendasFeminino(Integer.valueOf(retornarValorSeExitir(objects[3])));
-
 
384
                                        rankingEstiloDTO.setQuantidadeEstoqueUnissex(Integer.valueOf(retornarValorSeExitir(objects[4])));
-
 
385
                                        rankingEstiloDTO.setQuantidadeEstoqueMasculino(Integer.valueOf(retornarValorSeExitir(objects[5])));
-
 
386
                                        rankingEstiloDTO.setQuantidadeEstoqueFeminino(Integer.valueOf(retornarValorSeExitir(objects[6])));
-
 
387
                                        rankingPorEstilo.add(rankingEstiloDTO);
-
 
388
                                }
388
                        }
389
                        }
389
                } catch(Exception ex) {
390
                } catch(Exception ex) {
390
                        ex.printStackTrace();
391
                        ex.printStackTrace();
391
                        return null;
392
                        return null;
392
                }
393
                }
393
                return rankingPorEstilo;
394
                return rankingPorEstilo;
394
        }
395
        }
395
       
396
       
396
        private String adicionarConsultaVendasRankingPorEstilo(String alias, String tipoProduto, String tipoGenero) {
397
        private String adicionarConsultaVendasRankingPorEstilo(String alias, String tipoProduto, String tipoGenero) {
397
                StringBuilder sql = new StringBuilder();
398
                StringBuilder sql = new StringBuilder();
398
                sql.append("(SELECT COUNT(*) FROM sc_sec.sec_lancamento l ");
-
 
399
                sql.append("LEFT JOIN sc_sec.sec_venda v ON l.seq_venda = v.seq_venda ");
-
 
400
                sql.append("LEFT JOIN sc_sec.sec_produto p ON p.seq_produto = l.seq_produto ");
-
 
401
                sql.append("LEFT JOIN sc_sec.sec_modelo m ON m.seq_modelo = p.seq_modelo ");
-
 
402
                sql.append("WHERE v.dth_venda <= :dataFinal AND v.dth_venda >= :dataInicial ");
-
 
403
                sql.append("AND m.seq_modelo = :sequencialModelo AND p.tip_estilo = p.tip_estilo ");
-
 
404
                sql.append("AND p.tip_produto = '" + tipoProduto + "' AND p.tip_genero LIKE '" + tipoGenero + "') ");
-
 
-
 
399
                sql.append("(SELECT COUNT(*) FROM sc_sec.sec_lancamento ll ");
-
 
400
                sql.append("LEFT JOIN sc_sec.sec_venda vv ON ll.seq_venda = vv.seq_venda ");
-
 
401
                sql.append("LEFT JOIN sc_sec.sec_produto pp ON pp.seq_produto = ll.seq_produto ");
-
 
402
                sql.append("LEFT JOIN sc_sec.sec_modelo mm ON mm.seq_modelo = pp.seq_modelo ");
-
 
403
                sql.append("WHERE vv.dth_venda <= :dataFinal AND vv.dth_venda >= :dataInicial ");
-
 
404
                sql.append("AND mm.seq_modelo = :sequencialModelo AND pp.tip_estilo = p.tip_estilo ");
-
 
405
                sql.append("AND pp.tip_produto = '" + tipoProduto + "' AND pp.tip_genero LIKE '" + tipoGenero + "') ");
405
                sql.append("AS " + alias + " ");
406
                sql.append("AS " + alias + " ");
406
                return sql.toString();
407
                return sql.toString();
407
        }
408
        }
408
       
409
       
409
        private String adicionarConsultaEstoqueRankingPorEstilo(String alias, String tipoProduto, String tipoGenero) {
410
        private String adicionarConsultaEstoqueRankingPorEstilo(String alias, String tipoProduto, String tipoGenero) {
410
                StringBuilder sql = new StringBuilder();
411
                StringBuilder sql = new StringBuilder();
411
                sql.append("(SELECT SUM(pl.qtd_estoque) FROM sc_sec.sec_produto_loja pl ");
-
 
412
                sql.append("LEFT JOIN sc_sec.sec_produto pp ON pp.seq_produto = pl.seq_produto ");
-
 
-
 
412
                sql.append("(SELECT SUM(pll.qtd_estoque) FROM sc_sec.sec_produto_loja pll ");
-
 
413
                sql.append("LEFT JOIN sc_sec.sec_produto pp ON pp.seq_produto = pll.seq_produto ");
413
                sql.append("LEFT JOIN sc_sec.sec_modelo mm ON mm.seq_modelo = pp.seq_modelo ");
414
                sql.append("LEFT JOIN sc_sec.sec_modelo mm ON mm.seq_modelo = pp.seq_modelo ");
414
                sql.append("WHERE mm.seq_modelo = :sequencialModelo AND pp.tip_estilo = p.tip_estilo ");
415
                sql.append("WHERE mm.seq_modelo = :sequencialModelo AND pp.tip_estilo = p.tip_estilo ");
415
                sql.append("AND pp.tip_produto = '" + tipoProduto + "' AND pp.tip_genero LIKE '" + tipoGenero + "') ");
416
                sql.append("AND pp.tip_produto = '" + tipoProduto + "' AND pp.tip_genero LIKE '" + tipoGenero + "') ");
416
                sql.append("AS " + alias + " ");
417
                sql.append("AS " + alias + " ");
417
                return sql.toString();
418
                return sql.toString();
Line 421... Line 422...
421
        public List<RankingComprasTransferenciasEstiloPorLojaDTO> consultarRankingPorEstiloPorLoja(Long sequencialModelo,
422
        public List<RankingComprasTransferenciasEstiloPorLojaDTO> consultarRankingPorEstiloPorLoja(Long sequencialModelo,
422
                        String tipoEstilo, ParametrosConsultaPorPeriodoDTO parametrosConsultaPorPeriodoDTO) {
423
                        String tipoEstilo, ParametrosConsultaPorPeriodoDTO parametrosConsultaPorPeriodoDTO) {
423
                List<RankingComprasTransferenciasEstiloPorLojaDTO> rankingPorEstiloPorLoja = new ArrayList<RankingComprasTransferenciasEstiloPorLojaDTO>();
424
                List<RankingComprasTransferenciasEstiloPorLojaDTO> rankingPorEstiloPorLoja = new ArrayList<RankingComprasTransferenciasEstiloPorLojaDTO>();
424
                try {  
425
                try {  
425
                        StringBuilder sql = new StringBuilder();
426
                        StringBuilder sql = new StringBuilder();
426
                        sql.append("SELECT v.seq_loja, lj.dsc_loja ");
-
 
-
 
427
                        sql.append("SELECT pl.seq_loja, lj.dsc_loja ");
427
                       
428
                       
428
                        sql.append("," + adicionarConsultaVendasRankingPorEstiloPorLoja("vendas_estilo_loja_a", TipoProduto.CAPA.getValor(), TipoGenero.UNISSEX.getValor()));
429
                        sql.append("," + adicionarConsultaVendasRankingPorEstiloPorLoja("vendas_estilo_loja_a", TipoProduto.CAPA.getValor(), TipoGenero.UNISSEX.getValor()));
429
                        sql.append("," + adicionarConsultaVendasRankingPorEstiloPorLoja("vendas_estilo_loja_b", TipoProduto.CAPA.getValor(), TipoGenero.MASCULINO.getValor()));
430
                        sql.append("," + adicionarConsultaVendasRankingPorEstiloPorLoja("vendas_estilo_loja_b", TipoProduto.CAPA.getValor(), TipoGenero.MASCULINO.getValor()));
430
                        sql.append("," + adicionarConsultaVendasRankingPorEstiloPorLoja("vendas_estilo_loja_c", TipoProduto.CAPA.getValor(), TipoGenero.FEMININO.getValor()));
431
                        sql.append("," + adicionarConsultaVendasRankingPorEstiloPorLoja("vendas_estilo_loja_c", TipoProduto.CAPA.getValor(), TipoGenero.FEMININO.getValor()));
431
                       
432
                       
432
                        sql.append("," + adicionarConsultaEstoqueRankingPorEstiloPorLoja("estoque_estilo_loja_a", TipoProduto.CAPA.getValor(), TipoGenero.UNISSEX.getValor()));
433
                        sql.append("," + adicionarConsultaEstoqueRankingPorEstiloPorLoja("estoque_estilo_loja_a", TipoProduto.CAPA.getValor(), TipoGenero.UNISSEX.getValor()));
433
                        sql.append("," + adicionarConsultaEstoqueRankingPorEstiloPorLoja("estoque_estilo_loja_b", TipoProduto.CAPA.getValor(), TipoGenero.MASCULINO.getValor()));
434
                        sql.append("," + adicionarConsultaEstoqueRankingPorEstiloPorLoja("estoque_estilo_loja_b", TipoProduto.CAPA.getValor(), TipoGenero.MASCULINO.getValor()));
434
                        sql.append("," + adicionarConsultaEstoqueRankingPorEstiloPorLoja("estoque_estilo_loja_c", TipoProduto.CAPA.getValor(), TipoGenero.FEMININO.getValor()));
435
                        sql.append("," + adicionarConsultaEstoqueRankingPorEstiloPorLoja("estoque_estilo_loja_c", TipoProduto.CAPA.getValor(), TipoGenero.FEMININO.getValor()));
435
                       
436
                       
436
                        sql.append("FROM sc_sec.sec_lancamento l ");
-
 
437
                        sql.append("LEFT JOIN sc_sec.sec_venda v ON l.seq_venda = v.seq_venda ");
-
 
438
                        sql.append("LEFT JOIN sc_sec.sec_loja lj ON lj.seq_loja = v.seq_loja ");
-
 
439
                        sql.append("LEFT JOIN sc_sec.sec_produto p ON p.seq_produto = l.seq_produto ");
-
 
-
 
437
                        sql.append("FROM sc_sec.sec_produto_loja pl ");
-
 
438
                        sql.append("LEFT JOIN sc_sec.sec_loja lj ON lj.seq_loja = pl.seq_loja ");
-
 
439
                        sql.append("LEFT JOIN sc_sec.sec_produto p ON p.seq_produto = pl.seq_produto ");
440
                        sql.append("LEFT JOIN sc_sec.sec_modelo m ON m.seq_modelo = p.seq_modelo ");
440
                        sql.append("LEFT JOIN sc_sec.sec_modelo m ON m.seq_modelo = p.seq_modelo ");
441
                        sql.append("WHERE v.dth_venda <= :dataFinal AND v.dth_venda >= :dataInicial ");
-
 
-
 
441
                        sql.append("WHERE m.seq_modelo = :sequencialModelo ");
442
                        sql.append("AND p.tip_produto = '" + TipoProduto.CAPA.getValor() + "' ");
442
                        sql.append("AND p.tip_produto = '" + TipoProduto.CAPA.getValor() + "' ");
443
                        sql.append("AND m.seq_modelo = :sequencialModelo ");
-
 
444
                        sql.append("AND p.tip_estilo = :tipoEstilo ");
443
                        sql.append("AND p.tip_estilo = :tipoEstilo ");
445
                        sql.append("AND lj.ind_ativo IS TRUE ");
444
                        sql.append("AND lj.ind_ativo IS TRUE ");
446
                        sql.append("GROUP BY lj.num_ordem, v.seq_loja, lj.dsc_loja ");
-
 
-
 
445
                        sql.append("GROUP BY lj.num_ordem, pl.seq_loja, lj.dsc_loja ");
447
                        sql.append("ORDER BY lj.num_ordem ");
446
                        sql.append("ORDER BY lj.num_ordem ");
448
                       
447
                       
449
                        Query query = getEntityManager().createNativeQuery(sql.toString());
448
                        Query query = getEntityManager().createNativeQuery(sql.toString());
450
                        Date dataInicial = DataUtils.getDataComHorarioMinimo(parametrosConsultaPorPeriodoDTO.getDataInicial());
449
                        Date dataInicial = DataUtils.getDataComHorarioMinimo(parametrosConsultaPorPeriodoDTO.getDataInicial());
451
                        Date dataFinal = DataUtils.getDataComHorarioMaximo(parametrosConsultaPorPeriodoDTO.getDataFinal());
450
                        Date dataFinal = DataUtils.getDataComHorarioMaximo(parametrosConsultaPorPeriodoDTO.getDataFinal());
Line 479... Line 478...
479
                sql.append("(SELECT COUNT(*) FROM sc_sec.sec_lancamento ll ");
478
                sql.append("(SELECT COUNT(*) FROM sc_sec.sec_lancamento ll ");
480
                sql.append("LEFT JOIN sc_sec.sec_venda vv ON ll.seq_venda = vv.seq_venda ");
479
                sql.append("LEFT JOIN sc_sec.sec_venda vv ON ll.seq_venda = vv.seq_venda ");
481
                sql.append("LEFT JOIN sc_sec.sec_produto pp ON pp.seq_produto = ll.seq_produto ");
480
                sql.append("LEFT JOIN sc_sec.sec_produto pp ON pp.seq_produto = ll.seq_produto ");
482
                sql.append("LEFT JOIN sc_sec.sec_modelo mm ON mm.seq_modelo = pp.seq_modelo ");
481
                sql.append("LEFT JOIN sc_sec.sec_modelo mm ON mm.seq_modelo = pp.seq_modelo ");
483
                sql.append("WHERE vv.dth_venda <= :dataFinal AND vv.dth_venda >= :dataInicial ");
482
                sql.append("WHERE vv.dth_venda <= :dataFinal AND vv.dth_venda >= :dataInicial ");
484
                sql.append("AND vv.seq_loja = v.seq_loja ");
-
 
-
 
483
                sql.append("AND vv.seq_loja = pl.seq_loja ");
485
                sql.append("AND mm.seq_modelo = :sequencialModelo AND pp.tip_estilo = :tipoEstilo ");
484
                sql.append("AND mm.seq_modelo = :sequencialModelo AND pp.tip_estilo = :tipoEstilo ");
486
                sql.append("AND pp.tip_produto = '" + tipoProduto + "' AND pp.tip_genero LIKE '" + tipoGenero + "') ");
485
                sql.append("AND pp.tip_produto = '" + tipoProduto + "' AND pp.tip_genero LIKE '" + tipoGenero + "') ");
487
                sql.append("AS " + alias + " ");
486
                sql.append("AS " + alias + " ");
488
                return sql.toString();
487
                return sql.toString();
489
        }
488
        }
490
       
489
       
491
        private String adicionarConsultaEstoqueRankingPorEstiloPorLoja(String alias, String tipoProduto, String tipoGenero) {
490
        private String adicionarConsultaEstoqueRankingPorEstiloPorLoja(String alias, String tipoProduto, String tipoGenero) {
492
                StringBuilder sql = new StringBuilder();
491
                StringBuilder sql = new StringBuilder();
493
                sql.append("(SELECT SUM(pl.qtd_estoque) FROM sc_sec.sec_produto_loja pl ");
-
 
494
                sql.append("LEFT JOIN sc_sec.sec_produto pp ON pp.seq_produto = pl.seq_produto ");
-
 
-
 
492
                sql.append("(SELECT SUM(pll.qtd_estoque) FROM sc_sec.sec_produto_loja pll ");
-
 
493
                sql.append("LEFT JOIN sc_sec.sec_produto pp ON pp.seq_produto = pll.seq_produto ");
495
                sql.append("LEFT JOIN sc_sec.sec_modelo mm ON mm.seq_modelo = pp.seq_modelo ");
494
                sql.append("LEFT JOIN sc_sec.sec_modelo mm ON mm.seq_modelo = pp.seq_modelo ");
496
                sql.append("WHERE pl.seq_loja = v.seq_loja AND mm.seq_modelo = :sequencialModelo ");
-
 
-
 
495
                sql.append("WHERE pll.seq_loja = pl.seq_loja AND mm.seq_modelo = :sequencialModelo ");
497
                sql.append("AND pp.tip_estilo = :tipoEstilo ");
496
                sql.append("AND pp.tip_estilo = :tipoEstilo ");
498
                sql.append("AND pp.tip_produto = '" + tipoProduto + "' AND pp.tip_genero LIKE '" + tipoGenero + "') ");
497
                sql.append("AND pp.tip_produto = '" + tipoProduto + "' AND pp.tip_genero LIKE '" + tipoGenero + "') ");
499
                sql.append("AS " + alias + " ");
498
                sql.append("AS " + alias + " ");
500
                return sql.toString();
499
                return sql.toString();
501
        }
500
        }