From 03c5f9e41cd15de8dcec369303d3a1ceb412df0f Mon Sep 17 00:00:00 2001 From: "alexandre.lima" Date: Tue, 24 Oct 2017 16:55:58 +0000 Subject: [PATCH] Fixes Bug #0009921 git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@75625 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../ventaboletos/dao/SisdapDAO.java | 2 +- .../dao/hibernate/SisdapHibernateDAO.java | 51 ++++++++++++++----- .../ventaboletos/service/SisdapService.java | 4 +- .../service/impl/SisdapServiceImpl.java | 6 ++- 4 files changed, 47 insertions(+), 16 deletions(-) diff --git a/src/com/rjconsultores/ventaboletos/dao/SisdapDAO.java b/src/com/rjconsultores/ventaboletos/dao/SisdapDAO.java index 1fa210b80..1b1edffd5 100644 --- a/src/com/rjconsultores/ventaboletos/dao/SisdapDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/SisdapDAO.java @@ -5,5 +5,5 @@ import java.util.List; public interface SisdapDAO { public List getMovimentoLinhas(Date fecInicio, Date fecFinal, Integer empresaId); - public List getMovimentoSecoes(Date fecInicio, Date fecFinal, Integer empresaId); + public List getMovimentoSecoes(Date fecInicio, Date fecFinal, Integer empresaId, List pesquisaDescontoIdoso, List pesquisaGratuidadeIdoso, List pesquisaDescontoJovem, List pesquisaGratuidadeJovem); } diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/SisdapHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/SisdapHibernateDAO.java index 23a37f923..9b4bb2711 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/SisdapHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/SisdapHibernateDAO.java @@ -8,6 +8,7 @@ import java.util.Comparator; import java.util.Date; import java.util.HashMap; import java.util.List; +import java.util.Set; import javax.sql.DataSource; @@ -19,6 +20,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; import com.rjconsultores.ventaboletos.dao.SisdapDAO; +import com.rjconsultores.ventaboletos.entidad.Categoria; import com.rjconsultores.ventaboletos.relatorios.MovimentoLinha; import com.rjconsultores.ventaboletos.relatorios.MovimentoSecoes; import com.rjconsultores.ventaboletos.relatorios.PrefixoAntt; @@ -213,8 +215,8 @@ public class SisdapHibernateDAO implements SisdapDAO { @SuppressWarnings({ "rawtypes", "unchecked" }) @Override - public List getMovimentoSecoes(Date fecInicio, Date fecFinal, Integer empresaId) { - List listResultConsulta = consultaMovimentoSecoes(fecInicio, fecFinal, empresaId); + public List getMovimentoSecoes(Date fecInicio, Date fecFinal, Integer empresaId, List pesquisaDescontoIdoso, List pesquisaGratuidadeIdoso, List pesquisaDescontoJovem, List pesquisaGratuidadeJovem) { + List listResultConsulta = consultaMovimentoSecoes(fecInicio, fecFinal, empresaId, pesquisaDescontoIdoso, pesquisaGratuidadeIdoso, pesquisaDescontoJovem, pesquisaGratuidadeJovem); List listResultIdaVoltaInvertida = new ArrayList(); List listVoltasSemIda = new ArrayList(); @@ -373,10 +375,34 @@ public class SisdapHibernateDAO implements SisdapDAO { return (somaVolta.intValue() == 0) && (somaIda.intValue() > 0); } - private List consultaMovimentoSecoes(Date fecInicio, Date fecFinal, Integer empresaId) { + private List consultaMovimentoSecoes(Date fecInicio, Date fecFinal, Integer empresaId, List pesquisaDescontoIdoso, List pesquisaGratuidadeIdoso, List pesquisaDescontoJovem, List pesquisaGratuidadeJovem) { SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); - + + String gratuidadeIdoso = ""; + for (Object categoria : pesquisaGratuidadeIdoso) { + gratuidadeIdoso += ((Categoria) categoria).getCategoriaId() + ","; + } + gratuidadeIdoso = gratuidadeIdoso.substring(0, gratuidadeIdoso.length()-1); + + String descontoIdoso = ""; + for (Object categoria : pesquisaDescontoIdoso) { + descontoIdoso += ((Categoria) categoria).getCategoriaId() + ","; + } + descontoIdoso = descontoIdoso.substring(0, descontoIdoso.length()-1); + + String gratuidadeJovem = ""; + for (Object categoria : pesquisaGratuidadeJovem) { + gratuidadeJovem += ((Categoria) categoria).getCategoriaId() + ","; + } + gratuidadeJovem = gratuidadeJovem.substring(0, gratuidadeJovem.length()-1); + + String descontoJovem = ""; + for (Object categoria : pesquisaDescontoJovem) { + descontoJovem += ((Categoria) categoria).getCategoriaId() + ","; + } + descontoJovem = descontoJovem.substring(0, descontoJovem.length()-1); + StringBuilder sb = new StringBuilder(); sb.append("SELECT subAlias.antt, "); sb.append(" subAlias.prefixo, "); @@ -430,15 +456,16 @@ public class SisdapHibernateDAO implements SisdapDAO { sb.append(" Nvl(CASE WHEN r.indsentidoida = 0 AND b.categoria_id IN (SELECT categoria_id FROM categoria WHERE grupocategoria_id IS NULL) THEN Count(*) END, 0) passageirosvolta, "); sb.append(" Nvl(CASE WHEN r.indsentidoida = 1 AND b.categoria_id IN (SELECT categoria_id FROM categoria WHERE grupocategoria_id IN ( 2 )) THEN Count(*) END, 0) gratuidadepasselivreida, "); sb.append(" Nvl(CASE WHEN r.indsentidoida = 0 AND b.categoria_id IN (SELECT categoria_id FROM categoria WHERE grupocategoria_id IN ( 2 )) THEN Count(*) END, 0) gratuidadepasselivrevolta, "); - sb.append(" Nvl(CASE WHEN r.indsentidoida = 1 AND b.categoria_id IN (SELECT categoria_id FROM categoria WHERE grupocategoria_id IN ( 1 )) THEN Count(*) END, 0) gratuidadeidosoida, "); - sb.append(" Nvl(CASE WHEN r.indsentidoida = 0 AND b.categoria_id IN (SELECT categoria_id FROM categoria WHERE grupocategoria_id IN ( 1 )) THEN Count(*) END, 0) gratuidadeidosovolta, "); - sb.append(" Nvl(CASE WHEN r.indsentidoida = 1 AND b.categoria_id IN (SELECT categoria_id FROM categoria WHERE grupocategoria_id IN ( 3 )) THEN Count(*) END, 0) descontoidosoida, "); - sb.append(" Nvl(CASE WHEN r.indsentidoida = 0 AND b.categoria_id IN (SELECT categoria_id FROM categoria WHERE grupocategoria_id IN ( 3 )) THEN Count(*) END, 0) descontoidosovolta, "); - sb.append(" Nvl(CASE WHEN r.indsentidoida = 1 AND b.categoria_id IN (SELECT categoria_id FROM categoria WHERE grupocategoria_id IN ( 10 )) THEN Count(*) END, 0) gratuidadejovenida, "); - sb.append(" Nvl(CASE WHEN r.indsentidoida = 0 AND b.categoria_id IN (SELECT categoria_id FROM categoria WHERE grupocategoria_id IN ( 10 )) THEN Count(*) END, 0) gratuidadejovenvolta, "); - sb.append(" Nvl(CASE WHEN r.indsentidoida = 1 AND b.categoria_id IN (SELECT categoria_id FROM categoria WHERE grupocategoria_id IN ( 11 )) THEN Count(*) END, 0) descontojovenida, "); - sb.append(" Nvl(CASE WHEN r.indsentidoida = 0 AND b.categoria_id IN (SELECT categoria_id FROM categoria WHERE grupocategoria_id IN ( 11 )) THEN Count(*) END, 0) descontojovenvolta "); + sb.append(" Nvl(CASE WHEN r.indsentidoida = 1 AND b.categoria_id IN (SELECT categoria_id FROM categoria WHERE grupocategoria_id IN ( " + gratuidadeIdoso + " )) THEN Count(*) END, 0) gratuidadeidosoida, "); + sb.append(" Nvl(CASE WHEN r.indsentidoida = 0 AND b.categoria_id IN (SELECT categoria_id FROM categoria WHERE grupocategoria_id IN ( " + gratuidadeIdoso + " )) THEN Count(*) END, 0) gratuidadeidosovolta, "); + sb.append(" Nvl(CASE WHEN r.indsentidoida = 1 AND b.categoria_id IN (SELECT categoria_id FROM categoria WHERE grupocategoria_id IN ( " + descontoIdoso + " )) THEN Count(*) END, 0) descontoidosoida, "); + sb.append(" Nvl(CASE WHEN r.indsentidoida = 0 AND b.categoria_id IN (SELECT categoria_id FROM categoria WHERE grupocategoria_id IN ( " + descontoIdoso + " )) THEN Count(*) END, 0) descontoidosovolta, "); + + sb.append(" Nvl(CASE WHEN r.indsentidoida = 1 AND b.categoria_id IN (SELECT categoria_id FROM categoria WHERE grupocategoria_id IN ( " + gratuidadeJovem + " )) THEN Count(*) END, 0) gratuidadejovenida, "); + sb.append(" Nvl(CASE WHEN r.indsentidoida = 0 AND b.categoria_id IN (SELECT categoria_id FROM categoria WHERE grupocategoria_id IN ( " + gratuidadeJovem + " )) THEN Count(*) END, 0) gratuidadejovenvolta, "); + sb.append(" Nvl(CASE WHEN r.indsentidoida = 1 AND b.categoria_id IN (SELECT categoria_id FROM categoria WHERE grupocategoria_id IN ( " + descontoJovem + " )) THEN Count(*) END, 0) descontojovenida, "); + sb.append(" Nvl(CASE WHEN r.indsentidoida = 0 AND b.categoria_id IN (SELECT categoria_id FROM categoria WHERE grupocategoria_id IN ( " + descontoJovem + " )) THEN Count(*) END, 0) descontojovenvolta "); sb.append(" FROM ruta_empresa re "); sb.append(" left join marca m ON m.empresa_id = re.empresa_id "); diff --git a/src/com/rjconsultores/ventaboletos/service/SisdapService.java b/src/com/rjconsultores/ventaboletos/service/SisdapService.java index c481936ce..c9b8dc793 100644 --- a/src/com/rjconsultores/ventaboletos/service/SisdapService.java +++ b/src/com/rjconsultores/ventaboletos/service/SisdapService.java @@ -3,9 +3,11 @@ package com.rjconsultores.ventaboletos.service; import java.util.Date; import java.util.List; +import com.rjconsultores.ventaboletos.entidad.Categoria; + public interface SisdapService { public List getMovimentoLinhas(Date fecInicio, Date fecFinal, Integer empresaId); - public List getMovimentoSecoes(Date fecInicio, Date fecFinal, Integer empresaId); + public List getMovimentoSecoes(Date fecInicio, Date fecFinal, Integer empresaId, List pesquisaDescontoIdoso, List pesquisaGratuidadeIdoso, List pesquisaDescontoJovem, List pesquisaGratuidadeJovem); } diff --git a/src/com/rjconsultores/ventaboletos/service/impl/SisdapServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/SisdapServiceImpl.java index 63a32f56c..7d2cc61f1 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/SisdapServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/SisdapServiceImpl.java @@ -2,11 +2,13 @@ package com.rjconsultores.ventaboletos.service.impl; import java.util.Date; import java.util.List; +import java.util.Set; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.rjconsultores.ventaboletos.dao.SisdapDAO; +import com.rjconsultores.ventaboletos.entidad.Categoria; import com.rjconsultores.ventaboletos.service.SisdapService; @Service("sisdapService") @@ -21,8 +23,8 @@ public class SisdapServiceImpl implements SisdapService{ } @Override - public List getMovimentoSecoes(Date fecInicio, Date fecFinal, Integer empresaId) { - return sisdapDAO.getMovimentoSecoes(fecInicio, fecFinal, empresaId); + public List getMovimentoSecoes(Date fecInicio, Date fecFinal, Integer empresaId, List pesquisaDescontoIdoso, List pesquisaGratuidadeIdoso, List pesquisaDescontoJovem, List pesquisaGratuidadeJovem) { + return sisdapDAO.getMovimentoSecoes(fecInicio, fecFinal, empresaId, pesquisaDescontoIdoso, pesquisaGratuidadeIdoso, pesquisaDescontoJovem, pesquisaGratuidadeJovem); } }