diff --git a/pom.xml b/pom.xml
index 5a819b524..f76ebaed9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
4.0.0
br.com.rjconsultores
ventaboletosadm
- 1.147.3
+ 1.148.0
war
diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioBilhetesVendidos.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioBilhetesVendidos.java
index c2b7ff1c2..fb5034143 100644
--- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioBilhetesVendidos.java
+++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioBilhetesVendidos.java
@@ -38,210 +38,7 @@ public class RelatorioBilhetesVendidos extends Relatorio {
Connection conexao = this.relatorio.getConexao();
Map parametros = this.relatorio.getParametros();
- StringBuilder sql = new StringBuilder();
-
- if (parametros.get("IDAVOLTA").equals("1")) {
- sql.append(" select ");
- sql.append(" u.CVEUSUARIO CVEBILHETEIRO, ");
- sql.append(" uc.CVEUSUARIO CVEBILHETEIRO_CANCELADO, ");
- sql.append(" B.indstatusboleto IMPRESSAO_POSTERIOR, ");
- sql.append(" B.NUMFOLIOSISTEMA NUMERO_PASSAGEM, ");
- sql.append(" B.NUMSERIEPREIMPRESA SERIE, ");
- sql.append(" B.NUMSERIEPREIMPRESA SUB_SERIE, ");
- sql.append(" B.NUMFOLIOPREIMPRESO PRE_IMPRESSO, ");
- sql.append(" p_origen.PARADA_ID COD_ORIGEM, ");
- sql.append(" p_origen.DESCPARADA ORIGEM, ");
- sql.append(" p_destino.PARADA_ID COD_DESTINO, ");
- sql.append(" p_destino.DESCPARADA DESTINO, ");
- sql.append(" pv.NUMPUNTOVENTA COD_AGENCIA, ");
- sql.append(" pv.NOMBPUNTOVENTA NOME_AGENCIA, ");
- sql.append(" CASE WHEN B.indstatusboleto = 'E' THEN utilizado.fechorventa_h ELSE B.fechorventa_h END DATA_VENDA, ");
- sql.append(" CASE WHEN b.fechorventa is null THEN utilizado.fechorventa ELSE b.fechorventa_h END DATA_EMISSAO, ");
- sql.append(" B.fechorviaje DATA_VIAGEM, ");
- sql.append(" B.CORRIDA_ID SERVICO, ");
- sql.append(" to_char(B.fechorviaje, 'hh24:mi:ss') HORA, ");
- sql.append(" B.NUMASIENTO NUMASIENTO, ");
- sql.append(" ct.DESCCATEGORIA CATEGORIA, ");
- sql.append(" R.INDSENTIDOIDA SENTIDO, ");
- sql.append(" R.NUMRUTA COD_LINHA, ");
- sql.append(" R.DESCRUTA DESC_LINHA, ");
- sql.append(" CASE WHEN b.MOTIVOCANCELACION_ID IS NULL THEN 'V' ELSE 'C' END STATUS_PASSAGEM, ");
- sql.append(" B.PRECIOPAGADO TARIFA, ");
- sql.append(" B.IMPORTETAXAEMBARQUE TX_EMBARQUE, ");
- sql.append(" B.IMPORTEPEDAGIO PEDAGIO, ");
- sql.append(" B.IMPORTESEGURO SEGURO, ");
- sql.append(" u.NOMBUSUARIO BILHETEIRO, ");
- sql.append(" uc.NOMBUSUARIO BILHETEIRO_CANCELAMENTO, ");
- sql.append(" B.NOMBPASAJERO AS PASSAGEIRO, ");
- sql.append(" B.DESCNUMDOC AS DOC, ");
- sql.append(" COALESCE(b.NUMOPERACION, bo.NUMOPERACION) AS LOCALIZADOR ");
-
- sql.append(" FROM caja B ");
- sql.append(" LEFT JOIN boleto bo ON (bo.boleto_id = b.transacaooriginal_id AND b.indstatusboleto = 'C') ");
- sql.append(" JOIN RUTA R ON R.RUTA_ID = B.RUTA_ID ");
- sql.append(" JOIN PUNTO_VENTA pv on B.PUNTOVENTA_ID = pv.PUNTOVENTA_ID ");
- sql.append(" JOIN USUARIO u on u.USUARIO_ID = B.USUARIO_ID ");
- sql.append(" LEFT JOIN USUARIO uc ON uc.USUARIO_ID = bo.USUARIO_ID ");
- sql.append(" JOIN PARADA p_origen on p_origen.PARADA_ID = B.ORIGEN_ID ");
- sql.append(" JOIN PARADA p_destino on p_destino.PARADA_ID = B.DESTINO_ID ");
- sql.append(" JOIN CATEGORIA ct on ct.CATEGORIA_ID = B.CATEGORIA_ID ");
- sql.append(" JOIN CLASE_SERVICIO cs on cs.CLASESERVICIO_ID = B.CLASESERVICIO_ID ");
- sql.append(" JOIN MARCA m on m.marca_id = b.marca_id ");
- sql.append(" left join ciudad co ON co.ciudad_id = p_origen.ciudad_id ");
- sql.append(" left join estado est ON est.estado_id = co.estado_id ");
- sql.append(" LEFT JOIN boleto utilizado ON (utilizado.boleto_id = b.transacaooriginal_id AND b.INDSTATUSBOLETO = 'E') ");
-
- sql.append(" WHERE ");
- sql.append(" (b.indreimpresion = 0 OR b.INDSTATUSBOLETO = 'E') ");
- sql.append(" and m.EMPRESA_ID = :EMPRESA_ID ");
- if (parametros.get(DATA_INICIAL) != null && parametros.get(DATA_FINAL) != null) {
- if (parametros.get(TIPO_DATA) != null) {
- if ((parametros.get(TIPO_DATA).toString().equals(DATA_VENDA))) {
- sql.append(" and b.FECHORVENTA_H >= :DATA_INICIAL ");
- sql.append(" and b.FECHORVENTA_H <= :DATA_FINAL ");
- }
-
- if ((parametros.get(TIPO_DATA).toString().equals("DATA_EMISSAO"))) {
- sql.append(" and utilizado.FECHORVENTA >= :DATA_INICIAL ");
- sql.append(" and utilizado.FECHORVENTA <= :DATA_FINAL ");
- }
-
- if ((parametros.get(TIPO_DATA).toString().equals("DATA_VIAGEM"))) {
- sql.append(" and b.FECCORRIDA >= :DATA_INICIAL ");
- sql.append(" and b.FECCORRIDA <= :DATA_FINAL ");
- }
- }
- }
-
- if (parametros.get("NUMPUNTOVENTA") != null && !parametros.get("NUMPUNTOVENTA").equals("-1")) {
- sql.append(" and pv.PUNTOVENTA_ID IN (" + parametros.get("NUMPUNTOVENTA").toString() + ")");
- }
-
- if (parametros.get("MOEDA_ID") != null) {
- sql.append(" and NVL(B.MONEDA_ID, 1) = "+parametros.get("MOEDA_ID") );
- }
-
- if (parametros.get("ESTADO_ID") != null && !parametros.get("ESTADO_ID").equals("-1")) {
- sql.append(" and est.estado_id = " + parametros.get("ESTADO_ID").toString() + "");
- }
-
- sql.append(" AND b.INDVIAJEREDONDO = 1 ");
- }
-
-
- if (parametros.get("STATUS").toString().contains("C")||parametros.get("STATUS").toString().contains("V")) {
- if (parametros.get("IDAVOLTA").equals("1")) {
- sql.append(" UNION ALL ");
- }
- sql.append(" select ");
- sql.append(" u.CVEUSUARIO CVEBILHETEIRO, ");
- sql.append(" uc.CVEUSUARIO CVEBILHETEIRO_CANCELADO, ");
- sql.append(" B.indstatusboleto IMPRESSAO_POSTERIOR, ");
- sql.append(" B.NUMFOLIOSISTEMA NUMERO_PASSAGEM, ");
- sql.append(" B.NUMSERIEPREIMPRESA SERIE, ");
- sql.append(" B.NUMSERIEPREIMPRESA SUB_SERIE, ");
- sql.append(" B.NUMFOLIOPREIMPRESO PRE_IMPRESSO, ");
- sql.append(" p_origen.PARADA_ID COD_ORIGEM, ");
- sql.append(" p_origen.DESCPARADA ORIGEM, ");
- sql.append(" p_destino.PARADA_ID COD_DESTINO, ");
- sql.append(" p_destino.DESCPARADA DESTINO, ");
- sql.append(" pv.NUMPUNTOVENTA COD_AGENCIA, ");
- sql.append(" pv.NOMBPUNTOVENTA NOME_AGENCIA, ");
- sql.append(" CASE WHEN B.indstatusboleto = 'E' THEN utilizado.fechorventa_h ELSE B.fechorventa_h END DATA_VENDA, ");
- sql.append(" CASE WHEN b.fechorventa is null THEN utilizado.fechorventa ELSE b.fechorventa_h END DATA_EMISSAO, ");
- sql.append(" B.fechorviaje DATA_VIAGEM, ");
- sql.append(" B.CORRIDA_ID SERVICO, ");
- sql.append(" to_char(B.fechorviaje, 'hh24:mi:ss') HORA, ");
- sql.append(" B.NUMASIENTO NUMASIENTO, ");
- sql.append(" ct.DESCCATEGORIA CATEGORIA, ");
- sql.append(" R.INDSENTIDOIDA SENTIDO, ");
- sql.append(" R.NUMRUTA COD_LINHA, ");
- sql.append(" R.DESCRUTA DESC_LINHA, ");
- sql.append(" CASE WHEN b.MOTIVOCANCELACION_ID IS NULL THEN 'V' ELSE 'C' END STATUS_PASSAGEM, ");
- sql.append(" B.PRECIOPAGADO TARIFA, ");
- sql.append(" B.IMPORTETAXAEMBARQUE TX_EMBARQUE, ");
- sql.append(" B.IMPORTEPEDAGIO PEDAGIO, ");
- sql.append(" B.IMPORTESEGURO SEGURO, ");
- sql.append(" u.NOMBUSUARIO BILHETEIRO, ");
- sql.append(" uc.NOMBUSUARIO BILHETEIRO_CANCELAMENTO, ");
- sql.append(" B.NOMBPASAJERO AS PASSAGEIRO, ");
- sql.append(" B.DESCNUMDOC AS DOC, ");
- sql.append(" COALESCE(b.NUMOPERACION, bo.NUMOPERACION) AS LOCALIZADOR ");
-
- sql.append(" FROM caja B ");
- sql.append(" LEFT JOIN boleto bo ON (bo.boleto_id = b.transacaooriginal_id AND b.indstatusboleto = 'C') ");
- sql.append(" JOIN RUTA R ON R.RUTA_ID = B.RUTA_ID ");
- sql.append(" JOIN PUNTO_VENTA pv on B.PUNTOVENTA_ID = pv.PUNTOVENTA_ID ");
- sql.append(" JOIN USUARIO u on u.USUARIO_ID = B.USUARIO_ID ");
- sql.append(" LEFT JOIN USUARIO uc ON uc.USUARIO_ID = bo.USUARIO_ID ");
- sql.append(" JOIN PARADA p_origen on p_origen.PARADA_ID = B.ORIGEN_ID ");
- sql.append(" JOIN PARADA p_destino on p_destino.PARADA_ID = B.DESTINO_ID ");
- sql.append(" JOIN CATEGORIA ct on ct.CATEGORIA_ID = B.CATEGORIA_ID ");
- sql.append(" JOIN CLASE_SERVICIO cs on cs.CLASESERVICIO_ID = B.CLASESERVICIO_ID ");
- sql.append(" JOIN MARCA m on m.marca_id = b.marca_id ");
- sql.append(" left join ciudad co ON co.ciudad_id = p_origen.ciudad_id ");
- sql.append(" left join estado est ON est.estado_id = co.estado_id ");
- sql.append(" LEFT JOIN boleto utilizado ON (utilizado.boleto_id = b.transacaooriginal_id AND b.INDSTATUSBOLETO = 'E') ");
-
- sql.append(" WHERE ");
- sql.append(" (b.indreimpresion = 0 OR b.INDSTATUSBOLETO = 'E') ");
- sql.append(" and m.EMPRESA_ID = :EMPRESA_ID ");
- if (parametros.get(DATA_INICIAL) != null && parametros.get(DATA_FINAL) != null) {
- if (parametros.get(TIPO_DATA) != null) {
- if ((parametros.get(TIPO_DATA).toString().equals(DATA_VENDA))) {
- sql.append(" and b.FECHORVENTA_H >= :DATA_INICIAL ");
- sql.append(" and b.FECHORVENTA_H <= :DATA_FINAL ");
- }
-
- if ((parametros.get(TIPO_DATA).toString().equals("DATA_EMISSAO"))) {
- sql.append(" and utilizado.FECHORVENTA >= :DATA_INICIAL ");
- sql.append(" and utilizado.FECHORVENTA <= :DATA_FINAL ");
- }
-
- if ((parametros.get(TIPO_DATA).toString().equals("DATA_VIAGEM"))) {
- sql.append(" and b.FECCORRIDA >= :DATA_INICIAL ");
- sql.append(" and b.FECCORRIDA <= :DATA_FINAL ");
- }
- }
- }
-
- if (parametros.get("NUMPUNTOVENTA") != null && !parametros.get("NUMPUNTOVENTA").equals("-1")) {
- sql.append(" and pv.PUNTOVENTA_ID IN (" + parametros.get("NUMPUNTOVENTA").toString() + ")");
- }
-
- if (parametros.get("MOEDA_ID") != null) {
- sql.append(" and NVL(B.MONEDA_ID, 1) = "+parametros.get("MOEDA_ID") );
- }
-
- if (parametros.get("ESTADO_ID") != null && !parametros.get("ESTADO_ID").equals("-1")) {
- sql.append(" and est.estado_id = " + parametros.get("ESTADO_ID").toString() + "");
- }
-
- if ( !(parametros.get("STATUS").toString().contains("V") && parametros.get("STATUS").toString().contains("C")) ) {
- if (parametros.get("STATUS").toString().contains("C")) {
- sql.append(" AND b.motivocancelacion_id is not null ");
- } else if (parametros.get("STATUS").toString().contains("V")) {
- sql.append(" AND b.motivocancelacion_id is null ");
- }
- }
- sql.append(" and B.ACTIVO = 1 AND b.INDVIAJEREDONDO IS NULL ");
- }
- sql.append(" order by ");
- if (parametros.get("IDAVOLTA").equals("1")) {
- sql.append(" BILHETEIRO, ");
- sql.append(" DATA_EMISSAO, ");
- }else {
- sql.append(" DATA_EMISSAO, ");
- sql.append(" BILHETEIRO, ");
- }
- sql.append(" COD_AGENCIA, ");
- sql.append(" NOME_AGENCIA, ");
- sql.append(" NUMERO_PASSAGEM, ");
- sql.append(" ORIGEM, ");
- sql.append(" DESTINO, ");
- sql.append(" CATEGORIA, ");
- sql.append(" IMPRESSAO_POSTERIOR, ");
- sql.append(" SERVICO ");
+ StringBuilder sql = getSQL(parametros);
NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql.toString());
@@ -305,8 +102,218 @@ public class RelatorioBilhetesVendidos extends Relatorio {
this.resultSet = rset;
}
+
+
});
}
+
+ private StringBuilder getSQL(Map parametros) {
+ StringBuilder sql = new StringBuilder();
+
+ if (parametros.get("IDAVOLTA").equals("1")) {
+ sql.append(" select ");
+ sql.append(" u.CVEUSUARIO CVEBILHETEIRO, ");
+ sql.append(" uc.CVEUSUARIO CVEBILHETEIRO_CANCELADO, ");
+ sql.append(" B.indstatusboleto IMPRESSAO_POSTERIOR, ");
+ sql.append(" B.NUMFOLIOSISTEMA NUMERO_PASSAGEM, ");
+ sql.append(" B.NUMSERIEPREIMPRESA SERIE, ");
+ sql.append(" B.NUMSERIEPREIMPRESA SUB_SERIE, ");
+ sql.append(" B.NUMFOLIOPREIMPRESO PRE_IMPRESSO, ");
+ sql.append(" p_origen.PARADA_ID COD_ORIGEM, ");
+ sql.append(" p_origen.DESCPARADA ORIGEM, ");
+ sql.append(" p_destino.PARADA_ID COD_DESTINO, ");
+ sql.append(" p_destino.DESCPARADA DESTINO, ");
+ sql.append(" pv.NUMPUNTOVENTA COD_AGENCIA, ");
+ sql.append(" pv.NOMBPUNTOVENTA NOME_AGENCIA, ");
+ sql.append(" CASE WHEN B.indstatusboleto = 'E' THEN utilizado.fechorventa_h ELSE B.fechorventa_h END DATA_VENDA, ");
+ sql.append(" CASE WHEN b.fechorventa is null THEN utilizado.fechorventa ELSE b.fechorventa_h END DATA_EMISSAO, ");
+ sql.append(" B.fechorviaje DATA_VIAGEM, ");
+ sql.append(" B.CORRIDA_ID SERVICO, ");
+ sql.append(" to_char(B.fechorviaje, 'hh24:mi:ss') HORA, ");
+ sql.append(" B.NUMASIENTO NUMASIENTO, ");
+ sql.append(" ct.DESCCATEGORIA CATEGORIA, ");
+ sql.append(" R.INDSENTIDOIDA SENTIDO, ");
+ sql.append(" R.NUMRUTA COD_LINHA, ");
+ sql.append(" R.DESCRUTA DESC_LINHA, ");
+ sql.append(" CASE WHEN b.MOTIVOCANCELACION_ID IS NULL THEN 'V' ELSE 'C' END STATUS_PASSAGEM, ");
+ sql.append(" B.PRECIOPAGADO TARIFA, ");
+ sql.append(" B.IMPORTETAXAEMBARQUE TX_EMBARQUE, ");
+ sql.append(" B.IMPORTEPEDAGIO PEDAGIO, ");
+ sql.append(" B.IMPORTESEGURO SEGURO, ");
+ sql.append(" u.NOMBUSUARIO BILHETEIRO, ");
+ sql.append(" uc.NOMBUSUARIO BILHETEIRO_CANCELAMENTO, ");
+ sql.append(" B.NOMBPASAJERO AS PASSAGEIRO, ");
+ sql.append(" B.DESCNUMDOC AS DOC, ");
+ sql.append(" COALESCE(b.NUMOPERACION, bo.NUMOPERACION) AS LOCALIZADOR ");
+
+ sql.append(" FROM caja B ");
+ sql.append(" LEFT JOIN boleto bo ON (bo.boleto_id = b.transacaooriginal_id AND b.indstatusboleto = 'C') ");
+ sql.append(" JOIN RUTA R ON R.RUTA_ID = B.RUTA_ID ");
+ sql.append(" JOIN PUNTO_VENTA pv on B.PUNTOVENTA_ID = pv.PUNTOVENTA_ID ");
+ sql.append(" JOIN USUARIO u on u.USUARIO_ID = B.USUARIO_ID ");
+ sql.append(" LEFT JOIN USUARIO uc ON uc.USUARIO_ID = bo.USUARIO_ID ");
+ sql.append(" JOIN PARADA p_origen on p_origen.PARADA_ID = B.ORIGEN_ID ");
+ sql.append(" JOIN PARADA p_destino on p_destino.PARADA_ID = B.DESTINO_ID ");
+ sql.append(" JOIN CATEGORIA ct on ct.CATEGORIA_ID = B.CATEGORIA_ID ");
+ sql.append(" JOIN CLASE_SERVICIO cs on cs.CLASESERVICIO_ID = B.CLASESERVICIO_ID ");
+ sql.append(" JOIN MARCA m on m.marca_id = b.marca_id ");
+ sql.append(" left join ciudad co ON co.ciudad_id = p_origen.ciudad_id ");
+ sql.append(" left join estado est ON est.estado_id = co.estado_id ");
+ sql.append(" LEFT JOIN boleto utilizado ON (utilizado.boleto_id = b.transacaooriginal_id AND b.INDSTATUSBOLETO = 'E') ");
+
+ sql.append(" WHERE ");
+ sql.append(" (b.indreimpresion = 0 OR b.INDSTATUSBOLETO = 'E') ");
+ sql.append(" and m.EMPRESA_ID = :EMPRESA_ID ");
+ if (parametros.get(DATA_INICIAL) != null && parametros.get(DATA_FINAL) != null) {
+ if (parametros.get(TIPO_DATA) != null) {
+ if ((parametros.get(TIPO_DATA).toString().equals(DATA_VENDA))) {
+ sql.append(" and b.FECHORVENTA_H >= :DATA_INICIAL ");
+ sql.append(" and b.FECHORVENTA_H <= :DATA_FINAL ");
+ }
+
+ if ((parametros.get(TIPO_DATA).toString().equals("DATA_EMISSAO"))) {
+ sql.append(" and utilizado.FECHORVENTA >= :DATA_INICIAL ");
+ sql.append(" and utilizado.FECHORVENTA <= :DATA_FINAL ");
+ }
+
+ if ((parametros.get(TIPO_DATA).toString().equals("DATA_VIAGEM"))) {
+ sql.append(" and b.FECCORRIDA >= :DATA_INICIAL ");
+ sql.append(" and b.FECCORRIDA <= :DATA_FINAL ");
+ }
+ }
+ }
+
+ if (parametros.get("NUMPUNTOVENTA") != null && !parametros.get("NUMPUNTOVENTA").equals("-1")) {
+ sql.append(" and pv.PUNTOVENTA_ID IN (" + parametros.get("NUMPUNTOVENTA").toString() + ")");
+ }
+
+ if (parametros.get("MOEDA_ID") != null) {
+ sql.append(" and NVL(B.MONEDA_ID, 1) = "+parametros.get("MOEDA_ID") );
+ }
+
+ if (parametros.get("ESTADO_ID") != null && !parametros.get("ESTADO_ID").equals("-1")) {
+ sql.append(" and est.estado_id = " + parametros.get("ESTADO_ID").toString() + "");
+ }
+
+ sql.append(" AND b.INDVIAJEREDONDO = 1 ");
+ }
+
+
+ if (parametros.get("STATUS").toString().contains("C")||parametros.get("STATUS").toString().contains("V")) {
+ if (parametros.get("IDAVOLTA").equals("1")) {
+ sql.append(" UNION ALL ");
+ }
+ sql.append(" select ");
+ sql.append(" u.CVEUSUARIO CVEBILHETEIRO, ");
+ sql.append(" uc.CVEUSUARIO CVEBILHETEIRO_CANCELADO, ");
+ sql.append(" B.indstatusboleto IMPRESSAO_POSTERIOR, ");
+ sql.append(" B.NUMFOLIOSISTEMA NUMERO_PASSAGEM, ");
+ sql.append(" B.NUMSERIEPREIMPRESA SERIE, ");
+ sql.append(" B.NUMSERIEPREIMPRESA SUB_SERIE, ");
+ sql.append(" B.NUMFOLIOPREIMPRESO PRE_IMPRESSO, ");
+ sql.append(" p_origen.PARADA_ID COD_ORIGEM, ");
+ sql.append(" p_origen.DESCPARADA ORIGEM, ");
+ sql.append(" p_destino.PARADA_ID COD_DESTINO, ");
+ sql.append(" p_destino.DESCPARADA DESTINO, ");
+ sql.append(" pv.NUMPUNTOVENTA COD_AGENCIA, ");
+ sql.append(" pv.NOMBPUNTOVENTA NOME_AGENCIA, ");
+ sql.append(" CASE WHEN B.indstatusboleto = 'E' THEN utilizado.fechorventa_h ELSE B.fechorventa_h END DATA_VENDA, ");
+ sql.append(" CASE WHEN b.fechorventa is null THEN utilizado.fechorventa ELSE b.fechorventa_h END DATA_EMISSAO, ");
+ sql.append(" B.fechorviaje DATA_VIAGEM, ");
+ sql.append(" B.CORRIDA_ID SERVICO, ");
+ sql.append(" to_char(B.fechorviaje, 'hh24:mi:ss') HORA, ");
+ sql.append(" B.NUMASIENTO NUMASIENTO, ");
+ sql.append(" ct.DESCCATEGORIA CATEGORIA, ");
+ sql.append(" R.INDSENTIDOIDA SENTIDO, ");
+ sql.append(" R.NUMRUTA COD_LINHA, ");
+ sql.append(" R.DESCRUTA DESC_LINHA, ");
+ sql.append(" CASE WHEN b.MOTIVOCANCELACION_ID IS NULL THEN 'V' ELSE 'C' END STATUS_PASSAGEM, ");
+ sql.append(" B.PRECIOPAGADO TARIFA, ");
+ sql.append(" B.IMPORTETAXAEMBARQUE TX_EMBARQUE, ");
+ sql.append(" B.IMPORTEPEDAGIO PEDAGIO, ");
+ sql.append(" B.IMPORTESEGURO SEGURO, ");
+ sql.append(" u.NOMBUSUARIO BILHETEIRO, ");
+ sql.append(" uc.NOMBUSUARIO BILHETEIRO_CANCELAMENTO, ");
+ sql.append(" B.NOMBPASAJERO AS PASSAGEIRO, ");
+ sql.append(" B.DESCNUMDOC AS DOC, ");
+ sql.append(" COALESCE(b.NUMOPERACION, bo.NUMOPERACION) AS LOCALIZADOR ");
+
+ sql.append(" FROM caja B ");
+ sql.append(" LEFT JOIN boleto bo ON (bo.boleto_id = b.transacaooriginal_id AND b.indstatusboleto = 'C') ");
+ sql.append(" JOIN RUTA R ON R.RUTA_ID = B.RUTA_ID ");
+ sql.append(" JOIN PUNTO_VENTA pv on B.PUNTOVENTA_ID = pv.PUNTOVENTA_ID ");
+ sql.append(" JOIN USUARIO u on u.USUARIO_ID = B.USUARIO_ID ");
+ sql.append(" LEFT JOIN USUARIO uc ON uc.USUARIO_ID = bo.USUARIO_ID ");
+ sql.append(" JOIN PARADA p_origen on p_origen.PARADA_ID = B.ORIGEN_ID ");
+ sql.append(" JOIN PARADA p_destino on p_destino.PARADA_ID = B.DESTINO_ID ");
+ sql.append(" JOIN CATEGORIA ct on ct.CATEGORIA_ID = B.CATEGORIA_ID ");
+ sql.append(" JOIN CLASE_SERVICIO cs on cs.CLASESERVICIO_ID = B.CLASESERVICIO_ID ");
+ sql.append(" JOIN MARCA m on m.marca_id = b.marca_id ");
+ sql.append(" left join ciudad co ON co.ciudad_id = p_origen.ciudad_id ");
+ sql.append(" left join estado est ON est.estado_id = co.estado_id ");
+ sql.append(" LEFT JOIN boleto utilizado ON (utilizado.boleto_id = b.transacaooriginal_id AND b.INDSTATUSBOLETO = 'E') ");
+
+ sql.append(" WHERE ");
+ sql.append(" (b.indreimpresion = 0 OR b.INDSTATUSBOLETO = 'E') ");
+ sql.append(" and m.EMPRESA_ID = :EMPRESA_ID ");
+ if (parametros.get(DATA_INICIAL) != null && parametros.get(DATA_FINAL) != null) {
+ if (parametros.get(TIPO_DATA) != null) {
+ if ((parametros.get(TIPO_DATA).toString().equals(DATA_VENDA))) {
+ sql.append(" and b.FECHORVENTA_H >= :DATA_INICIAL ");
+ sql.append(" and b.FECHORVENTA_H <= :DATA_FINAL ");
+ }
+
+ if ((parametros.get(TIPO_DATA).toString().equals("DATA_EMISSAO"))) {
+ sql.append(" and utilizado.FECHORVENTA >= :DATA_INICIAL ");
+ sql.append(" and utilizado.FECHORVENTA <= :DATA_FINAL ");
+ }
+
+ if ((parametros.get(TIPO_DATA).toString().equals("DATA_VIAGEM"))) {
+ sql.append(" and b.FECCORRIDA >= :DATA_INICIAL ");
+ sql.append(" and b.FECCORRIDA <= :DATA_FINAL ");
+ }
+ }
+ }
+
+ if (parametros.get("NUMPUNTOVENTA") != null && !parametros.get("NUMPUNTOVENTA").equals("-1")) {
+ sql.append(" and pv.PUNTOVENTA_ID IN (" + parametros.get("NUMPUNTOVENTA").toString() + ")");
+ }
+
+ if (parametros.get("MOEDA_ID") != null) {
+ sql.append(" and NVL(B.MONEDA_ID, 1) = "+parametros.get("MOEDA_ID") );
+ }
+
+ if (parametros.get("ESTADO_ID") != null && !parametros.get("ESTADO_ID").equals("-1")) {
+ sql.append(" and est.estado_id = " + parametros.get("ESTADO_ID").toString() + "");
+ }
+
+ if ( !(parametros.get("STATUS").toString().contains("V") && parametros.get("STATUS").toString().contains("C")) ) {
+ if (parametros.get("STATUS").toString().contains("C")) {
+ sql.append(" AND b.motivocancelacion_id is not null ");
+ } else if (parametros.get("STATUS").toString().contains("V")) {
+ sql.append(" AND b.motivocancelacion_id is null ");
+ }
+ }
+ sql.append(" and B.ACTIVO = 1 AND b.INDVIAJEREDONDO IS NULL ");
+ }
+ sql.append(" order by ");
+ if (parametros.get("IDAVOLTA").equals("1")) {
+ sql.append(" BILHETEIRO, ");
+ sql.append(" DATA_EMISSAO, ");
+ }else {
+ sql.append(" DATA_EMISSAO, ");
+ sql.append(" BILHETEIRO, ");
+ }
+ sql.append(" COD_AGENCIA, ");
+ sql.append(" NOME_AGENCIA, ");
+ sql.append(" NUMERO_PASSAGEM, ");
+ sql.append(" ORIGEM, ");
+ sql.append(" DESTINO, ");
+ sql.append(" CATEGORIA, ");
+ sql.append(" IMPRESSAO_POSTERIOR, ");
+ sql.append(" SERVICO ");
+ return sql;
+ }
/*
* (non-Javadoc)
diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioBilhetesVendidosFiltroFormaPagamento.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioBilhetesVendidosFiltroFormaPagamento.java
new file mode 100644
index 000000000..277b68ce1
--- /dev/null
+++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioBilhetesVendidosFiltroFormaPagamento.java
@@ -0,0 +1,353 @@
+/**
+ *
+ */
+package com.rjconsultores.ventaboletos.relatorios.impl;
+
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.Timestamp;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+import com.rjconsultores.ventaboletos.relatorios.utilitarios.ArrayDataSource;
+import com.rjconsultores.ventaboletos.relatorios.utilitarios.IndStatusBoleto;
+import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio;
+import com.rjconsultores.ventaboletos.utilerias.DateUtil;
+import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement;
+
+/**
+ * @author Thiago
+ *
+ */
+public class RelatorioBilhetesVendidosFiltroFormaPagamento extends Relatorio {
+
+
+ private static final String DATA_VENDA = "DATA_VENDA";
+ private static final String DATA_FINAL = "DATA_FINAL";
+ private static final String DATA_INICIAL = "DATA_INICIAL";
+ private static final String TIPO_DATA = "TIPO_DATA";
+ private static final String FORMA_PAGO = "FORMAPAGO_ID";
+
+ public RelatorioBilhetesVendidosFiltroFormaPagamento(Map parametros, Connection conexao) throws Exception {
+ super(parametros, conexao);
+
+ this.setCustomDataSource(new ArrayDataSource(this) {
+ @Override
+ public void initDados() throws Exception {
+
+ Connection conexao = this.relatorio.getConexao();
+ Map parametros = this.relatorio.getParametros();
+
+ StringBuilder sql = getSQL(parametros);
+
+ NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql.toString());
+
+ stmt.setInt("EMPRESA_ID", Integer.valueOf(parametros.get("EMPRESA_ID").toString()));
+ if (parametros.get(DATA_INICIAL) != null && parametros.get(DATA_FINAL) != null){
+ stmt.setTimestamp(DATA_INICIAL, new Timestamp(DateUtil.inicioFecha((Date) parametros.get(DATA_INICIAL)).getTime()));
+ stmt.setTimestamp(DATA_FINAL, new Timestamp(DateUtil.fimFecha((Date) parametros.get(DATA_FINAL)).getTime()));
+ }
+ if(parametros.get(FORMA_PAGO) != null) {
+ stmt.setInt("FORMAPAGO_ID", Integer.valueOf(parametros.get(FORMA_PAGO).toString()));
+ }
+ ResultSet rset = stmt.executeQuery();
+
+ while (rset.next()) {
+
+ Map dataResult = new HashMap();
+
+ dataResult.put("NUMERO_PASSAGEM", rset.getString("NUMERO_PASSAGEM"));
+ if (rset.getString("SERIE") != null) {
+ if (rset.getString("SERIE").split("-").length == 1) {
+ dataResult.put("SERIE", rset.getString("SERIE"));
+ } else {
+ dataResult.put("SERIE", rset.getString("SERIE").split("-")[0]);
+ dataResult.put("SUB_SERIE", rset.getString("SERIE").split("-")[1]);
+ }
+ }
+ dataResult.put("CVEBILHETEIRO", rset.getString("CVEBILHETEIRO"));
+ dataResult.put("CVEBILHETEIRO_CANCELADO", rset.getString("CVEBILHETEIRO_CANCELADO"));
+ dataResult.put("IMPRESSAO_POSTERIOR", rset.getString("IMPRESSAO_POSTERIOR"));
+ dataResult.put("PRE_IMPRESSO", rset.getString("PRE_IMPRESSO"));
+ dataResult.put("COD_ORIGEM", rset.getString("COD_ORIGEM"));
+ dataResult.put("ORIGEM", rset.getString("ORIGEM"));
+ dataResult.put("COD_DESTINO", rset.getString("COD_DESTINO"));
+ dataResult.put("DESTINO", rset.getString("DESTINO"));
+ dataResult.put("NOME_AGENCIA", rset.getString("NOME_AGENCIA"));
+ dataResult.put("COD_AGENCIA", rset.getString("COD_AGENCIA"));
+ dataResult.put(DATA_VENDA, rset.getDate(DATA_VENDA));
+ dataResult.put("DATA_EMISSAO", rset.getDate("DATA_EMISSAO"));
+ dataResult.put("DATA_VIAGEM", rset.getDate("DATA_VIAGEM"));
+ dataResult.put("SERVICO", rset.getString("SERVICO"));
+ dataResult.put("HORA", rset.getString("HORA"));
+ dataResult.put("NUMASIENTO", rset.getString("NUMASIENTO"));
+ dataResult.put("CATEGORIA", rset.getString("CATEGORIA"));
+ dataResult.put("SENTIDO", rset.getInt("SENTIDO"));
+ dataResult.put("COD_LINHA", rset.getString("COD_LINHA"));
+ dataResult.put("DESC_LINHA", rset.getString("DESC_LINHA"));
+ if (rset.getString("STATUS_PASSAGEM") != null) {
+ dataResult.put("STATUS_PASSAGEM", IndStatusBoleto.valueOf(rset.getString("STATUS_PASSAGEM")).getValue());
+ }
+ dataResult.put("TARIFA", rset.getString("TARIFA"));
+ dataResult.put("TX_EMBARQUE", rset.getString("TX_EMBARQUE"));
+ dataResult.put("PEDAGIO", rset.getString("PEDAGIO"));
+ dataResult.put("SEGURO", rset.getString("SEGURO"));
+ dataResult.put("BILHETEIRO", rset.getString("BILHETEIRO"));
+ dataResult.put("BILHETEIRO_CANCELAMENTO", rset.getString("BILHETEIRO_CANCELAMENTO"));
+ dataResult.put("PASSAGEIRO", rset.getString("PASSAGEIRO"));
+ dataResult.put("DOC", rset.getString("DOC"));
+ dataResult.put("LOCALIZADOR", rset.getString("LOCALIZADOR"));
+ dataResult.put("FORMA_PAGAMENTO", rset.getString("FORMA_PAGAMENTO"));
+
+ this.dados.add(dataResult);
+
+ }
+
+ this.resultSet = rset;
+ }
+
+
+ });
+ }
+
+ private StringBuilder getSQL(Map parametros) {
+ StringBuilder sql = new StringBuilder();
+
+ if (parametros.get("IDAVOLTA").equals("1")) {
+ sql.append(" select ");
+ sql.append(" u.CVEUSUARIO CVEBILHETEIRO, ");
+ sql.append(" uc.CVEUSUARIO CVEBILHETEIRO_CANCELADO, ");
+ sql.append(" B.indstatusboleto IMPRESSAO_POSTERIOR, ");
+ sql.append(" B.NUMFOLIOSISTEMA NUMERO_PASSAGEM, ");
+ sql.append(" B.NUMSERIEPREIMPRESA SERIE, ");
+ sql.append(" B.NUMSERIEPREIMPRESA SUB_SERIE, ");
+ sql.append(" B.NUMFOLIOPREIMPRESO PRE_IMPRESSO, ");
+ sql.append(" p_origen.PARADA_ID COD_ORIGEM, ");
+ sql.append(" p_origen.DESCPARADA ORIGEM, ");
+ sql.append(" p_destino.PARADA_ID COD_DESTINO, ");
+ sql.append(" p_destino.DESCPARADA DESTINO, ");
+ sql.append(" pv.NUMPUNTOVENTA COD_AGENCIA, ");
+ sql.append(" pv.NOMBPUNTOVENTA NOME_AGENCIA, ");
+ sql.append(" CASE WHEN B.indstatusboleto = 'E' THEN utilizado.fechorventa_h ELSE B.fechorventa_h END DATA_VENDA, ");
+ sql.append(" CASE WHEN b.fechorventa is null THEN utilizado.fechorventa ELSE b.fechorventa_h END DATA_EMISSAO, ");
+ sql.append(" B.fechorviaje DATA_VIAGEM, ");
+ sql.append(" B.CORRIDA_ID SERVICO, ");
+ sql.append(" to_char(B.fechorviaje, 'hh24:mi:ss') HORA, ");
+ sql.append(" B.NUMASIENTO NUMASIENTO, ");
+ sql.append(" ct.DESCCATEGORIA CATEGORIA, ");
+ sql.append(" R.INDSENTIDOIDA SENTIDO, ");
+ sql.append(" R.NUMRUTA COD_LINHA, ");
+ sql.append(" R.DESCRUTA DESC_LINHA, ");
+ sql.append(" CASE WHEN b.MOTIVOCANCELACION_ID IS NULL THEN 'V' ELSE 'C' END STATUS_PASSAGEM, ");
+ sql.append(" B.PRECIOPAGADO TARIFA, ");
+ sql.append(" B.IMPORTETAXAEMBARQUE TX_EMBARQUE, ");
+ sql.append(" B.IMPORTEPEDAGIO PEDAGIO, ");
+ sql.append(" B.IMPORTESEGURO SEGURO, ");
+ sql.append(" u.NOMBUSUARIO BILHETEIRO, ");
+ sql.append(" uc.NOMBUSUARIO BILHETEIRO_CANCELAMENTO, ");
+ sql.append(" B.NOMBPASAJERO AS PASSAGEIRO, ");
+ sql.append(" B.DESCNUMDOC AS DOC, ");
+ sql.append(" COALESCE(b.NUMOPERACION, bo.NUMOPERACION) AS LOCALIZADOR, ");
+ sql.append("(SELECT LISTAGG(formaPago.DESCPAGO, ',') WITHIN GROUP (ORDER BY formaPago.DESCPAGO) ");
+ sql.append("FROM CAJA caja2 ");
+ sql.append("INNER JOIN CAJA_FORMAPAGO cajaFormaPago ON cajaFormaPago.CAJA_ID = caja2.CAJA_ID ");
+ sql.append("INNER JOIN FORMA_PAGO formaPago ON formaPago.FORMAPAGO_ID = cajaFormaPago.FORMAPAGO_ID ");
+ sql.append("WHERE caja2.CAJA_ID = b.CAJA_ID) AS FORMA_PAGAMENTO ");
+ sql.append(" FROM caja B ");
+ sql.append(" LEFT JOIN boleto bo ON (bo.boleto_id = b.transacaooriginal_id AND b.indstatusboleto = 'C') ");
+ sql.append(" JOIN RUTA R ON R.RUTA_ID = B.RUTA_ID ");
+ sql.append(" JOIN PUNTO_VENTA pv on B.PUNTOVENTA_ID = pv.PUNTOVENTA_ID ");
+ sql.append(" JOIN USUARIO u on u.USUARIO_ID = B.USUARIO_ID ");
+ sql.append(" LEFT JOIN USUARIO uc ON uc.USUARIO_ID = bo.USUARIO_ID ");
+ sql.append(" JOIN PARADA p_origen on p_origen.PARADA_ID = B.ORIGEN_ID ");
+ sql.append(" JOIN PARADA p_destino on p_destino.PARADA_ID = B.DESTINO_ID ");
+ sql.append(" JOIN CATEGORIA ct on ct.CATEGORIA_ID = B.CATEGORIA_ID ");
+ sql.append(" JOIN CLASE_SERVICIO cs on cs.CLASESERVICIO_ID = B.CLASESERVICIO_ID ");
+ sql.append(" JOIN MARCA m on m.marca_id = b.marca_id ");
+ sql.append(" JOIN CAJA_FORMAPAGO cajaFormaPago ON cajaFormaPago.CAJA_ID = b.CAJA_ID ");
+ sql.append(" JOIN FORMA_PAGO formaPago ON formaPago.FORMAPAGO_ID = cajaFormaPago.FORMAPAGO_ID ");
+ sql.append(" left join ciudad co ON co.ciudad_id = p_origen.ciudad_id ");
+ sql.append(" left join estado est ON est.estado_id = co.estado_id ");
+ sql.append(" LEFT JOIN boleto utilizado ON (utilizado.boleto_id = b.transacaooriginal_id AND b.INDSTATUSBOLETO = 'E') ");
+
+ sql.append(" WHERE ");
+ sql.append(" (b.indreimpresion = 0 OR b.INDSTATUSBOLETO = 'E') ");
+ sql.append(" and m.EMPRESA_ID = :EMPRESA_ID ");
+ if (parametros.get(DATA_INICIAL) != null && parametros.get(DATA_FINAL) != null) {
+ if (parametros.get(TIPO_DATA) != null) {
+ if ((parametros.get(TIPO_DATA).toString().equals(DATA_VENDA))) {
+ sql.append(" and b.FECHORVENTA_H >= :DATA_INICIAL ");
+ sql.append(" and b.FECHORVENTA_H <= :DATA_FINAL ");
+ }
+
+ if ((parametros.get(TIPO_DATA).toString().equals("DATA_EMISSAO"))) {
+ sql.append(" and utilizado.FECHORVENTA >= :DATA_INICIAL ");
+ sql.append(" and utilizado.FECHORVENTA <= :DATA_FINAL ");
+ }
+
+ if ((parametros.get(TIPO_DATA).toString().equals("DATA_VIAGEM"))) {
+ sql.append(" and b.FECCORRIDA >= :DATA_INICIAL ");
+ sql.append(" and b.FECCORRIDA <= :DATA_FINAL ");
+ }
+ }
+ }
+
+ if (parametros.get("NUMPUNTOVENTA") != null && !parametros.get("NUMPUNTOVENTA").equals("-1")) {
+ sql.append(" and pv.PUNTOVENTA_ID IN (" + parametros.get("NUMPUNTOVENTA").toString() + ")");
+ }
+
+ if (parametros.get("MOEDA_ID") != null) {
+ sql.append(" and NVL(B.MONEDA_ID, 1) = "+parametros.get("MOEDA_ID") );
+ }
+
+ if (parametros.get("ESTADO_ID") != null && !parametros.get("ESTADO_ID").equals("-1")) {
+ sql.append(" and est.estado_id = " + parametros.get("ESTADO_ID").toString() + "");
+ }
+
+ sql.append(" AND b.INDVIAJEREDONDO = 1 ");
+ if(parametros.get(FORMA_PAGO) != null && !parametros.get(FORMA_PAGO).equals("-1")) {
+ sql.append(" and formaPago.FORMAPAGO_ID =:FORMAPAGO_ID ");
+ }
+ }
+
+
+ if (parametros.get("STATUS").toString().contains("C")||parametros.get("STATUS").toString().contains("V")) {
+ if (parametros.get("IDAVOLTA").equals("1")) {
+ sql.append(" UNION ALL ");
+ }
+ sql.append(" select ");
+ sql.append(" u.CVEUSUARIO CVEBILHETEIRO, ");
+ sql.append(" uc.CVEUSUARIO CVEBILHETEIRO_CANCELADO, ");
+ sql.append(" B.indstatusboleto IMPRESSAO_POSTERIOR, ");
+ sql.append(" B.NUMFOLIOSISTEMA NUMERO_PASSAGEM, ");
+ sql.append(" B.NUMSERIEPREIMPRESA SERIE, ");
+ sql.append(" B.NUMSERIEPREIMPRESA SUB_SERIE, ");
+ sql.append(" B.NUMFOLIOPREIMPRESO PRE_IMPRESSO, ");
+ sql.append(" p_origen.PARADA_ID COD_ORIGEM, ");
+ sql.append(" p_origen.DESCPARADA ORIGEM, ");
+ sql.append(" p_destino.PARADA_ID COD_DESTINO, ");
+ sql.append(" p_destino.DESCPARADA DESTINO, ");
+ sql.append(" pv.NUMPUNTOVENTA COD_AGENCIA, ");
+ sql.append(" pv.NOMBPUNTOVENTA NOME_AGENCIA, ");
+ sql.append(" CASE WHEN B.indstatusboleto = 'E' THEN utilizado.fechorventa_h ELSE B.fechorventa_h END DATA_VENDA, ");
+ sql.append(" CASE WHEN b.fechorventa is null THEN utilizado.fechorventa ELSE b.fechorventa_h END DATA_EMISSAO, ");
+ sql.append(" B.fechorviaje DATA_VIAGEM, ");
+ sql.append(" B.CORRIDA_ID SERVICO, ");
+ sql.append(" to_char(B.fechorviaje, 'hh24:mi:ss') HORA, ");
+ sql.append(" B.NUMASIENTO NUMASIENTO, ");
+ sql.append(" ct.DESCCATEGORIA CATEGORIA, ");
+ sql.append(" R.INDSENTIDOIDA SENTIDO, ");
+ sql.append(" R.NUMRUTA COD_LINHA, ");
+ sql.append(" R.DESCRUTA DESC_LINHA, ");
+ sql.append(" CASE WHEN b.MOTIVOCANCELACION_ID IS NULL THEN 'V' ELSE 'C' END STATUS_PASSAGEM, ");
+ sql.append(" B.PRECIOPAGADO TARIFA, ");
+ sql.append(" B.IMPORTETAXAEMBARQUE TX_EMBARQUE, ");
+ sql.append(" B.IMPORTEPEDAGIO PEDAGIO, ");
+ sql.append(" B.IMPORTESEGURO SEGURO, ");
+ sql.append(" u.NOMBUSUARIO BILHETEIRO, ");
+ sql.append(" uc.NOMBUSUARIO BILHETEIRO_CANCELAMENTO, ");
+ sql.append(" B.NOMBPASAJERO AS PASSAGEIRO, ");
+ sql.append(" B.DESCNUMDOC AS DOC, ");
+ sql.append(" COALESCE(b.NUMOPERACION, bo.NUMOPERACION) AS LOCALIZADOR, ");
+ sql.append("(SELECT LISTAGG(formaPago.DESCPAGO, ',') WITHIN GROUP (ORDER BY formaPago.DESCPAGO) ");
+ sql.append("FROM CAJA caja2 ");
+ sql.append("INNER JOIN CAJA_FORMAPAGO cajaFormaPago ON cajaFormaPago.CAJA_ID = caja2.CAJA_ID ");
+ sql.append("INNER JOIN FORMA_PAGO formaPago ON formaPago.FORMAPAGO_ID = cajaFormaPago.FORMAPAGO_ID ");
+ sql.append("WHERE caja2.CAJA_ID = b.CAJA_ID) AS FORMA_PAGAMENTO ");
+ sql.append(" FROM caja B ");
+ sql.append(" LEFT JOIN boleto bo ON (bo.boleto_id = b.transacaooriginal_id AND b.indstatusboleto = 'C') ");
+ sql.append(" JOIN RUTA R ON R.RUTA_ID = B.RUTA_ID ");
+ sql.append(" JOIN PUNTO_VENTA pv on B.PUNTOVENTA_ID = pv.PUNTOVENTA_ID ");
+ sql.append(" JOIN USUARIO u on u.USUARIO_ID = B.USUARIO_ID ");
+ sql.append(" LEFT JOIN USUARIO uc ON uc.USUARIO_ID = bo.USUARIO_ID ");
+ sql.append(" JOIN PARADA p_origen on p_origen.PARADA_ID = B.ORIGEN_ID ");
+ sql.append(" JOIN PARADA p_destino on p_destino.PARADA_ID = B.DESTINO_ID ");
+ sql.append(" JOIN CATEGORIA ct on ct.CATEGORIA_ID = B.CATEGORIA_ID ");
+ sql.append(" JOIN CLASE_SERVICIO cs on cs.CLASESERVICIO_ID = B.CLASESERVICIO_ID ");
+ sql.append(" JOIN MARCA m on m.marca_id = b.marca_id ");
+ sql.append(" JOIN CAJA_FORMAPAGO cajaFormaPago ON cajaFormaPago.CAJA_ID = b.CAJA_ID ");
+ sql.append(" JOIN FORMA_PAGO formaPago ON formaPago.FORMAPAGO_ID = cajaFormaPago.FORMAPAGO_ID ");
+ sql.append(" left join ciudad co ON co.ciudad_id = p_origen.ciudad_id ");
+ sql.append(" left join estado est ON est.estado_id = co.estado_id ");
+ sql.append(" LEFT JOIN boleto utilizado ON (utilizado.boleto_id = b.transacaooriginal_id AND b.INDSTATUSBOLETO = 'E') ");
+
+ sql.append(" WHERE ");
+ sql.append(" (b.indreimpresion = 0 OR b.INDSTATUSBOLETO = 'E') ");
+ sql.append(" and m.EMPRESA_ID = :EMPRESA_ID ");
+ if (parametros.get(DATA_INICIAL) != null && parametros.get(DATA_FINAL) != null) {
+ if (parametros.get(TIPO_DATA) != null) {
+ if ((parametros.get(TIPO_DATA).toString().equals(DATA_VENDA))) {
+ sql.append(" and b.FECHORVENTA_H >= :DATA_INICIAL ");
+ sql.append(" and b.FECHORVENTA_H <= :DATA_FINAL ");
+ }
+
+ if ((parametros.get(TIPO_DATA).toString().equals("DATA_EMISSAO"))) {
+ sql.append(" and utilizado.FECHORVENTA >= :DATA_INICIAL ");
+ sql.append(" and utilizado.FECHORVENTA <= :DATA_FINAL ");
+ }
+
+ if ((parametros.get(TIPO_DATA).toString().equals("DATA_VIAGEM"))) {
+ sql.append(" and b.FECCORRIDA >= :DATA_INICIAL ");
+ sql.append(" and b.FECCORRIDA <= :DATA_FINAL ");
+ }
+ }
+ }
+
+ if (parametros.get("NUMPUNTOVENTA") != null && !parametros.get("NUMPUNTOVENTA").equals("-1")) {
+ sql.append(" and pv.PUNTOVENTA_ID IN (" + parametros.get("NUMPUNTOVENTA").toString() + ")");
+ }
+
+ if (parametros.get("MOEDA_ID") != null) {
+ sql.append(" and NVL(B.MONEDA_ID, 1) = "+parametros.get("MOEDA_ID") );
+ }
+
+ if (parametros.get("ESTADO_ID") != null && !parametros.get("ESTADO_ID").equals("-1")) {
+ sql.append(" and est.estado_id = " + parametros.get("ESTADO_ID").toString() + "");
+ }
+
+ if ( !(parametros.get("STATUS").toString().contains("V") && parametros.get("STATUS").toString().contains("C")) ) {
+ if (parametros.get("STATUS").toString().contains("C")) {
+ sql.append(" AND b.motivocancelacion_id is not null ");
+ } else if (parametros.get("STATUS").toString().contains("V")) {
+ sql.append(" AND b.motivocancelacion_id is null ");
+ }
+ }
+ sql.append(" and B.ACTIVO = 1 AND b.INDVIAJEREDONDO IS NULL ");
+
+ if(parametros.get(FORMA_PAGO) != null && !parametros.get(FORMA_PAGO).equals("-1")) {
+ sql.append(" and formaPago.FORMAPAGO_ID =:FORMAPAGO_ID ");
+ }
+
+ }
+ sql.append(" order by ");
+ if (parametros.get("IDAVOLTA").equals("1")) {
+ sql.append(" BILHETEIRO, ");
+ sql.append(" DATA_EMISSAO, ");
+ }else {
+ sql.append(" DATA_EMISSAO, ");
+ sql.append(" BILHETEIRO, ");
+ }
+ sql.append(" COD_AGENCIA, ");
+ sql.append(" NOME_AGENCIA, ");
+ sql.append(" NUMERO_PASSAGEM, ");
+ sql.append(" ORIGEM, ");
+ sql.append(" DESTINO, ");
+ sql.append(" CATEGORIA, ");
+ sql.append(" IMPRESSAO_POSTERIOR, ");
+ sql.append(" SERVICO ");
+
+ return sql;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio#processaParametros()
+ */
+ @Override
+ protected void processaParametros() throws Exception {
+
+ }
+
+}
diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioBilhetesVendidosNovoLayout.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioBilhetesVendidosNovoLayout.java
index 4b4394caa..0b058efe1 100644
--- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioBilhetesVendidosNovoLayout.java
+++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioBilhetesVendidosNovoLayout.java
@@ -53,109 +53,7 @@ public class RelatorioBilhetesVendidosNovoLayout extends Relatorio {
Connection conexao = this.relatorio.getConexao();
Map parametros = this.relatorio.getParametros();
- StringBuilder sql = new StringBuilder();
- sql.append("select t.cveestado,");
- sql.append(" to_char(t.dataVenda, 'dd/MM/yy') as dataVenda, ");
- sql.append(" t.statuspassagem,");
- sql.append(" t.especie,");
- sql.append(" t.forminicial,");
- sql.append(" t.formfinal,");
- sql.append(" t.serie,");
- sql.append(" t.preciopagado AS valorcontabil,");
- sql.append(" t.preciopagado - (t.preciopagado * coalesce(t.porcentcreditobase / 100,0))AS valorbasecalculo,");
- sql.append(" t.icms as valoraliquiotaicms,");
- sql.append(" ((t.preciopagado - (t.preciopagado * coalesce(t.porcentcreditobase / 100,0))) * t.icms) / 100 AS valoricms,");
- sql.append(" cod_origem,");
- sql.append(" origem,");
- sql.append(" cod_destino,");
- sql.append(" destino, ");
- sql.append(" codFiscal ");
- sql.append("from");
- sql.append(" (select distinct ");
- sql.append(" CASE WHEN ( coalesce(al.aliquota,0) <> 0 AND co.estado_id <> cd.estado_id ) THEN AL.ALIQUOTA "); //1 Aliquota do estado de destino
- sql.append(" WHEN ( EI.INDREDBASEICMSBPE = 1 and co.estado_id = cd.estado_id AND EI.ICMSIM <> 0 ) THEN EI.ICMSIM "); //2 - ICMS intermunicipal com redutor
- sql.append(" WHEN ( EI.INDREDBASEICMSBPE = 1 and co.estado_id <> cd.estado_id AND EI.ICMS <> 0 ) THEN EI.ICMS "); //3 - ICMS interestadual com redutor
- sql.append(" WHEN ( co.estado_id = cd.estado_id AND EI.TRIBUTACAOIMPORTACAOIM <> 0 ) THEN EI.TRIBUTACAOIMPORTACAOIM "); //2 - ICMS intermunicipal
- sql.append(" WHEN ( co.estado_id <> cd.estado_id AND EI.TRIBUTACAOIMPORTACAO <> 0 ) THEN EI.TRIBUTACAOIMPORTACAO "); //3 - ICMS interestadual
- sql.append(" ELSE est.icms END AS icms, "); //4 - Se nao tiver nenhum deles busca do cadastro do estado de origem
- sql.append(" (coalesce (CASE WHEN ( (co.estado_id <> cd.estado_id AND EI.INDSEGUROESTADUAL = 1) OR (co.estado_id = cd.estado_id AND EI.INDSEGUROMUNICIPAL = 1) ) THEN c.IMPORTESEGURO ELSE 0 END + "); //1 - IMPORTE SEGURO
- sql.append(" CASE WHEN ( (co.estado_id <> cd.estado_id AND EI.INDTXEMBARQUEESTADUAL = 1) OR (co.estado_id = cd.estado_id AND EI.INDTXEMBARQUEMUNICIPAL = 1) ) THEN c.IMPORTETAXAEMBARQUE ELSE 0 END + "); //2 - IMPORTE TAXA
- sql.append(" CASE WHEN ( (co.estado_id <> cd.estado_id AND ei.INDPEDAGIOESTDUAL = 1) OR (co.estado_id = cd.estado_id AND EI.INDPEDAGIOMUNICIPAL = 1) ) THEN c.IMPORTEPEDAGIO ELSE 0 END , 0) "); //3 - IMPORTE PEGADIO
- sql.append(" + c.preciopagado) as preciopagado, ");
- sql.append(" est.cveestado as cveestado,");
- sql.append(" CASE WHEN ( ei.indredbaseicmsbpe = 1 and ei.porcredbaseicmsim > 0 AND co.estado_id = cd.estado_id ) THEN ei.porcredbaseicmsim "); // 1 - Porcentagem de credito para base de calculo ICMS (INTERMUNICIPAL)
- sql.append(" WHEN ( ei.indredbaseicmsbpe = 1 and ei.porcredbaseicms > 0 AND co.estado_id <> cd.estado_id ) THEN ei.porcredbaseicms "); // 2 - Porcentagem de credito para base de calculo ICMS (INTERESTADUAL)
- sql.append(" ELSE 0 END AS porcentcreditobase,"); // 3 - Porcentagem de credito para base de calculo ICMS (NAO EXISTENTE!) RETORNA 0
- sql.append(" c.fechorventa as datavenda,");
- sql.append(" c.indstatusboleto statuspassagem,");
- sql.append(" ae.decespecie as especie,");
- sql.append(" c.numfoliosistema as forminicial,");
- sql.append(" c.numfoliosistema as formfinal,");
- sql.append(" c.numseriepreimpresa as serie,");
- sql.append(" c.preciopagado as valorcontabil,");
- sql.append(" po.parada_id cod_origem, ");
- sql.append(" po.descparada origem,");
- sql.append(" pd.parada_id cod_destino,");
- sql.append(" pd.descparada destino,");
- sql.append(" case when cd.estado_id = co.estado_id then '5357' else '6357' end as codFiscal");
- sql.append(" from caja c");
- sql.append(" left join aidf a on a.aidf_id = c.aidf_id");
- sql.append(" left join aidf_especie ae on (a.aidfesp_id = ae.aidfesp_id)");
- sql.append(" join empresa e on e.empresa_id = c.empresacorrida_id");
- sql.append(" join parada po on po.parada_id = c.origen_id");
- sql.append(" join ciudad co on co.ciudad_id = po.ciudad_id");
- sql.append(" join parada pd on pd.parada_id = c.destino_id");
- sql.append(" join ciudad cd on cd.ciudad_id = pd.ciudad_id");
- sql.append(" join estado est on est.estado_id = co.estado_id");
- sql.append(" join empresa_imposto ei on ei.empresa_id = e.empresa_id");
- sql.append(" LEFT JOIN ALIQUOTA_ESTADO_DESTINO AL ON ei.EMPRESAIMPOSTO_ID = AL.EMPRESAIMPOSTO_ID AND cd.estado_id = AL.ESTADO_ID AND AL.ACTIVO = 1 ");
- sql.append(" LEFT JOIN boleto utilizado ON (utilizado.boleto_id = c.transacaooriginal_id AND c.INDSTATUSBOLETO = 'E') ");
- sql.append(" join punto_venta pv on c.puntoventa_id = pv.puntoventa_id");
- sql.append(" and ei.estado_id = est.estado_id");
- sql.append(" where ");
- sql.append(" c.empresacorrida_id = :EMPRESA_ID ");
- if (parametros.get(TIPO_DATA) != null) {
- if ((parametros.get(TIPO_DATA).toString().equals(DATA_VENDA))) {
- sql.append(" and c.FECHORVENTA_H >= :DATA_INICIAL ");
- sql.append(" and c.FECHORVENTA_H <= :DATA_FINAL ");
- }
-
- if ((parametros.get(TIPO_DATA).toString().equals("DATA_EMISSAO"))) {
- sql.append(" and utilizado.FECHORVENTA >= :DATA_INICIAL ");
- sql.append(" and utilizado.FECHORVENTA <= :DATA_FINAL ");
- }
-
- if ((parametros.get(TIPO_DATA).toString().equals("DATA_VIAGEM"))) {
- sql.append(" and c.FECCORRIDA >= :DATA_INICIAL ");
- sql.append(" and c.FECCORRIDA <= :DATA_FINAL ");
- }
- }
- sql.append(" and c.activo = 1");
- sql.append(" and ei.activo = 1");
-
- if (parametros.get(NUMPUNTOVENTA) != null && !parametros.get(NUMPUNTOVENTA).equals("-1")) {
- sql.append(" and pv.PUNTOVENTA_ID IN (" + parametros.get(NUMPUNTOVENTA).toString() + ")");
- }
-
- if (parametros.get("ESTADO_ID") != null && !parametros.get("ESTADO_ID").equals("-1")) {
- sql.append(" and est.estado_id = " + parametros.get("ESTADO_ID").toString() + "");
- }
-
- if (parametros.get("MOEDA_ID") != null) {
- sql.append(" and NVL(c.MONEDA_ID, 1) = "+parametros.get("MOEDA_ID") );
- }
-
- if (parametros.get(STATUS) != null) {
- if (parametros.get(STATUS).toString().contains("V") && parametros.get(STATUS).toString().contains("C")) {
- sql.append(" and ((c.INDSTATUSBOLETO = 'C' AND c.MOTIVOCANCELACION_ID IS NOT NULL) OR (c.INDSTATUSBOLETO = 'V' AND c.MOTIVOCANCELACION_ID IS NULL)) ");
- } else if (parametros.get(STATUS).toString().contains("C")) {
- sql.append(" and c.INDSTATUSBOLETO = 'C' AND c.MOTIVOCANCELACION_ID IS NOT NULL ");
- } else if (parametros.get(STATUS).toString().contains("V")) {
- sql.append(" and c.INDSTATUSBOLETO = 'V' AND c.MOTIVOCANCELACION_ID IS NULL ");
- }
- }
- sql.append(") t ");
- sql.append("order by t.cveestado, to_char(t.dataVenda, 'dd/MM/yy') ");
+ StringBuilder sql = getSQL(parametros);
NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql.toString());
@@ -212,8 +110,117 @@ public class RelatorioBilhetesVendidosNovoLayout extends Relatorio {
setLsDadosRelatorio(lsDadosRelatorio);
}
}
+
+
});
}
+
+ private StringBuilder getSQL(Map parametros) {
+ StringBuilder sql = new StringBuilder();
+ sql.append("select t.cveestado,");
+ sql.append(" to_char(t.dataVenda, 'dd/MM/yy') as dataVenda, ");
+ sql.append(" t.statuspassagem,");
+ sql.append(" t.especie,");
+ sql.append(" t.forminicial,");
+ sql.append(" t.formfinal,");
+ sql.append(" t.serie,");
+ sql.append(" t.preciopagado AS valorcontabil,");
+ sql.append(" t.preciopagado - (t.preciopagado * coalesce(t.porcentcreditobase / 100,0))AS valorbasecalculo,");
+ sql.append(" t.icms as valoraliquiotaicms,");
+ sql.append(" ((t.preciopagado - (t.preciopagado * coalesce(t.porcentcreditobase / 100,0))) * t.icms) / 100 AS valoricms,");
+ sql.append(" cod_origem,");
+ sql.append(" origem,");
+ sql.append(" cod_destino,");
+ sql.append(" destino, ");
+ sql.append(" codFiscal ");
+ sql.append("from");
+ sql.append(" (select distinct ");
+ sql.append(" CASE WHEN ( coalesce(al.aliquota,0) <> 0 AND co.estado_id <> cd.estado_id ) THEN AL.ALIQUOTA "); //1 Aliquota do estado de destino
+ sql.append(" WHEN ( EI.INDREDBASEICMSBPE = 1 and co.estado_id = cd.estado_id AND EI.ICMSIM <> 0 ) THEN EI.ICMSIM "); //2 - ICMS intermunicipal com redutor
+ sql.append(" WHEN ( EI.INDREDBASEICMSBPE = 1 and co.estado_id <> cd.estado_id AND EI.ICMS <> 0 ) THEN EI.ICMS "); //3 - ICMS interestadual com redutor
+ sql.append(" WHEN ( co.estado_id = cd.estado_id AND EI.TRIBUTACAOIMPORTACAOIM <> 0 ) THEN EI.TRIBUTACAOIMPORTACAOIM "); //2 - ICMS intermunicipal
+ sql.append(" WHEN ( co.estado_id <> cd.estado_id AND EI.TRIBUTACAOIMPORTACAO <> 0 ) THEN EI.TRIBUTACAOIMPORTACAO "); //3 - ICMS interestadual
+ sql.append(" ELSE est.icms END AS icms, "); //4 - Se nao tiver nenhum deles busca do cadastro do estado de origem
+ sql.append(" (coalesce (CASE WHEN ( (co.estado_id <> cd.estado_id AND EI.INDSEGUROESTADUAL = 1) OR (co.estado_id = cd.estado_id AND EI.INDSEGUROMUNICIPAL = 1) ) THEN c.IMPORTESEGURO ELSE 0 END + "); //1 - IMPORTE SEGURO
+ sql.append(" CASE WHEN ( (co.estado_id <> cd.estado_id AND EI.INDTXEMBARQUEESTADUAL = 1) OR (co.estado_id = cd.estado_id AND EI.INDTXEMBARQUEMUNICIPAL = 1) ) THEN c.IMPORTETAXAEMBARQUE ELSE 0 END + "); //2 - IMPORTE TAXA
+ sql.append(" CASE WHEN ( (co.estado_id <> cd.estado_id AND ei.INDPEDAGIOESTDUAL = 1) OR (co.estado_id = cd.estado_id AND EI.INDPEDAGIOMUNICIPAL = 1) ) THEN c.IMPORTEPEDAGIO ELSE 0 END , 0) "); //3 - IMPORTE PEGADIO
+ sql.append(" + c.preciopagado) as preciopagado, ");
+ sql.append(" est.cveestado as cveestado,");
+ sql.append(" CASE WHEN ( ei.indredbaseicmsbpe = 1 and ei.porcredbaseicmsim > 0 AND co.estado_id = cd.estado_id ) THEN ei.porcredbaseicmsim "); // 1 - Porcentagem de credito para base de calculo ICMS (INTERMUNICIPAL)
+ sql.append(" WHEN ( ei.indredbaseicmsbpe = 1 and ei.porcredbaseicms > 0 AND co.estado_id <> cd.estado_id ) THEN ei.porcredbaseicms "); // 2 - Porcentagem de credito para base de calculo ICMS (INTERESTADUAL)
+ sql.append(" ELSE 0 END AS porcentcreditobase,"); // 3 - Porcentagem de credito para base de calculo ICMS (NAO EXISTENTE!) RETORNA 0
+ sql.append(" c.fechorventa as datavenda,");
+ sql.append(" c.indstatusboleto statuspassagem,");
+ sql.append(" ae.decespecie as especie,");
+ sql.append(" c.numfoliosistema as forminicial,");
+ sql.append(" c.numfoliosistema as formfinal,");
+ sql.append(" c.numseriepreimpresa as serie,");
+ sql.append(" c.preciopagado as valorcontabil,");
+ sql.append(" po.parada_id cod_origem, ");
+ sql.append(" po.descparada origem,");
+ sql.append(" pd.parada_id cod_destino,");
+ sql.append(" pd.descparada destino,");
+ sql.append(" case when cd.estado_id = co.estado_id then '5357' else '6357' end as codFiscal");
+ sql.append(" from caja c");
+ sql.append(" left join aidf a on a.aidf_id = c.aidf_id");
+ sql.append(" left join aidf_especie ae on (a.aidfesp_id = ae.aidfesp_id)");
+ sql.append(" join empresa e on e.empresa_id = c.empresacorrida_id");
+ sql.append(" join parada po on po.parada_id = c.origen_id");
+ sql.append(" join ciudad co on co.ciudad_id = po.ciudad_id");
+ sql.append(" join parada pd on pd.parada_id = c.destino_id");
+ sql.append(" join ciudad cd on cd.ciudad_id = pd.ciudad_id");
+ sql.append(" join estado est on est.estado_id = co.estado_id");
+ sql.append(" join empresa_imposto ei on ei.empresa_id = e.empresa_id");
+ sql.append(" LEFT JOIN ALIQUOTA_ESTADO_DESTINO AL ON ei.EMPRESAIMPOSTO_ID = AL.EMPRESAIMPOSTO_ID AND cd.estado_id = AL.ESTADO_ID AND AL.ACTIVO = 1 ");
+ sql.append(" LEFT JOIN boleto utilizado ON (utilizado.boleto_id = c.transacaooriginal_id AND c.INDSTATUSBOLETO = 'E') ");
+ sql.append(" join punto_venta pv on c.puntoventa_id = pv.puntoventa_id");
+ sql.append(" and ei.estado_id = est.estado_id");
+ sql.append(" where ");
+ sql.append(" c.empresacorrida_id = :EMPRESA_ID ");
+ if (parametros.get(TIPO_DATA) != null) {
+ if ((parametros.get(TIPO_DATA).toString().equals(DATA_VENDA))) {
+ sql.append(" and c.FECHORVENTA_H >= :DATA_INICIAL ");
+ sql.append(" and c.FECHORVENTA_H <= :DATA_FINAL ");
+ }
+
+ if ((parametros.get(TIPO_DATA).toString().equals("DATA_EMISSAO"))) {
+ sql.append(" and utilizado.FECHORVENTA >= :DATA_INICIAL ");
+ sql.append(" and utilizado.FECHORVENTA <= :DATA_FINAL ");
+ }
+
+ if ((parametros.get(TIPO_DATA).toString().equals("DATA_VIAGEM"))) {
+ sql.append(" and c.FECCORRIDA >= :DATA_INICIAL ");
+ sql.append(" and c.FECCORRIDA <= :DATA_FINAL ");
+ }
+ }
+ sql.append(" and c.activo = 1");
+ sql.append(" and ei.activo = 1");
+
+ if (parametros.get(NUMPUNTOVENTA) != null && !parametros.get(NUMPUNTOVENTA).equals("-1")) {
+ sql.append(" and pv.PUNTOVENTA_ID IN (" + parametros.get(NUMPUNTOVENTA).toString() + ")");
+ }
+
+ if (parametros.get("ESTADO_ID") != null && !parametros.get("ESTADO_ID").equals("-1")) {
+ sql.append(" and est.estado_id = " + parametros.get("ESTADO_ID").toString() + "");
+ }
+
+ if (parametros.get("MOEDA_ID") != null) {
+ sql.append(" and NVL(c.MONEDA_ID, 1) = "+parametros.get("MOEDA_ID") );
+ }
+
+ if (parametros.get(STATUS) != null) {
+ if (parametros.get(STATUS).toString().contains("V") && parametros.get(STATUS).toString().contains("C")) {
+ sql.append(" and ((c.INDSTATUSBOLETO = 'C' AND c.MOTIVOCANCELACION_ID IS NOT NULL) OR (c.INDSTATUSBOLETO = 'V' AND c.MOTIVOCANCELACION_ID IS NULL)) ");
+ } else if (parametros.get(STATUS).toString().contains("C")) {
+ sql.append(" and c.INDSTATUSBOLETO = 'C' AND c.MOTIVOCANCELACION_ID IS NOT NULL ");
+ } else if (parametros.get(STATUS).toString().contains("V")) {
+ sql.append(" and c.INDSTATUSBOLETO = 'V' AND c.MOTIVOCANCELACION_ID IS NULL ");
+ }
+ }
+ sql.append(") t ");
+ sql.append("order by t.cveestado, to_char(t.dataVenda, 'dd/MM/yy') ");
+ return sql;
+ }
private BigDecimal getValor(String campo, ResultSet resultSet) throws SQLException {
if (resultSet.getObject(campo) == null) {
diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioBilhetesVendidosFiltroFormaPagamento_es.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioBilhetesVendidosFiltroFormaPagamento_es.properties
new file mode 100644
index 000000000..a743aaf84
--- /dev/null
+++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioBilhetesVendidosFiltroFormaPagamento_es.properties
@@ -0,0 +1,13 @@
+#geral
+msg.noData=No fue posible obtener datos con los parámetros ingresados.
+
+
+#Labels cabeçalho
+cabecalho.relatorio=Reporte:
+cabecalho.periodo=Período:
+cabecalho.periodoA=à
+cabecalho.dataHora=Fecha/Hora:
+cabecalho.impressorPor=Impresora por:
+cabecalho.pagina=Página
+cabecalho.de=de
+cabecalho.filtros=Filtros:
\ No newline at end of file
diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioBilhetesVendidosFiltroFormaPagamento_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioBilhetesVendidosFiltroFormaPagamento_pt_BR.properties
new file mode 100644
index 000000000..f39ccac7e
--- /dev/null
+++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioBilhetesVendidosFiltroFormaPagamento_pt_BR.properties
@@ -0,0 +1,13 @@
+#geral
+msg.noData=Não foi possivel obter dados com os parâmetros informados.
+
+
+#Labels cabeçalho
+cabecalho.relatorio=Relatório:
+cabecalho.periodo=Período:
+cabecalho.periodoA=à
+cabecalho.dataHora=Data/Hora:
+cabecalho.impressorPor=Impressor por:
+cabecalho.pagina=Página
+cabecalho.de=de
+cabecalho.filtros=Filtros:
\ No newline at end of file
diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioBilhetesVendidosFiltroFormaPagamento.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioBilhetesVendidosFiltroFormaPagamento.jasper
new file mode 100644
index 000000000..d565be6cd
Binary files /dev/null and b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioBilhetesVendidosFiltroFormaPagamento.jasper differ
diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioBilhetesVendidosFiltroFormaPagamento.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioBilhetesVendidosFiltroFormaPagamento.jrxml
new file mode 100644
index 000000000..ced81dc4e
--- /dev/null
+++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioBilhetesVendidosFiltroFormaPagamento.jrxml
@@ -0,0 +1,672 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioBilhetesVendidosController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioBilhetesVendidosController.java
index 40307b0a3..017180e47 100644
--- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioBilhetesVendidosController.java
+++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioBilhetesVendidosController.java
@@ -22,17 +22,21 @@ import org.zkoss.zul.Comboitem;
import org.zkoss.zul.Datebox;
import org.zkoss.zul.Paging;
import org.zkoss.zul.Radiogroup;
+import org.zkoss.zul.Row;
import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.Estado;
+import com.rjconsultores.ventaboletos.entidad.FormaPago;
import com.rjconsultores.ventaboletos.entidad.Moneda;
import com.rjconsultores.ventaboletos.entidad.PuntoVenta;
import com.rjconsultores.ventaboletos.enums.IndStatusBoleto;
import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioBilhetesVendidos;
+import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioBilhetesVendidosFiltroFormaPagamento;
import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioBilhetesVendidosNovoLayout;
import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio;
import com.rjconsultores.ventaboletos.service.EmpresaService;
import com.rjconsultores.ventaboletos.service.EstadoService;
+import com.rjconsultores.ventaboletos.service.FormaPagoService;
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxEstandar;
import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer;
@@ -72,9 +76,15 @@ public class RelatorioBilhetesVendidosController extends MyGenericForwardCompose
private Checkbox chkCancelado;
private Checkbox chkIdaVolta;
private Checkbox chkEmitido;
+ private Checkbox chkFormaPagamento;
private Radiogroup rgLayout;
@Autowired
private EstadoService estadoService;
+ private List lsFormaPago;
+ private MyComboboxEstandar cmbFormaPago;
+ @Autowired
+ private FormaPagoService formaPagoService;
+ private Row rowFiltroFormaPagamento;
@Override
public void doAfterCompose(Component comp) throws Exception {
@@ -85,6 +95,8 @@ public class RelatorioBilhetesVendidosController extends MyGenericForwardCompose
chkVendido.setChecked(true);
chkCancelado.setChecked(true);
puntoVentaList.setItemRenderer(new RenderRelatorioVendasBilheteiro());
+ lsFormaPago = formaPagoService.obtenerTodos();
+ cmbFormaPago.setAutocomplete(true);
}
@@ -246,8 +258,17 @@ public class RelatorioBilhetesVendidosController extends MyGenericForwardCompose
}else {
parametros.put("IDAVOLTA", "0");
}
+
+ FormaPago formaPago = null;
- if (novoLayout) {
+ if (cmbFormaPago.getSelectedItem() != null) {
+ formaPago = ((FormaPago) cmbFormaPago.getSelectedItem().getValue());
+ parametros.put("FORMAPAGO_ID", formaPago.getFormapagoId());
+ filtro.append(formaPago.getDescpago()).append("; ");
+ }
+ if(chkFormaPagamento.isChecked()) {
+ relatorio = new RelatorioBilhetesVendidosFiltroFormaPagamento(parametros, dataSourceRead.getConnection());
+ }else if (novoLayout) {
relatorio = new RelatorioBilhetesVendidosNovoLayout(parametros, dataSourceRead.getConnection());
parametros.put("TITULO", Labels.getLabel("relatorioBilhetesVendidosController.window.title"));
} else {
@@ -260,6 +281,10 @@ public class RelatorioBilhetesVendidosController extends MyGenericForwardCompose
openWindow("/component/reportView.zul", Labels.getLabel("relatorioBilhetesVendidosController.window.title"), args, MODAL);
}
+
+ public void onClick$chkFormaPagamento(Event event) {
+ rowFiltroFormaPagamento.setVisible(chkFormaPagamento.isChecked());
+ }
public Combobox getCmbMoeda() {
return cmbMoeda;
@@ -276,4 +301,12 @@ public class RelatorioBilhetesVendidosController extends MyGenericForwardCompose
public void setChkEmitido(Checkbox chkEmitido) {
this.chkEmitido = chkEmitido;
}
+
+ public List getLsFormaPago() {
+ return lsFormaPago;
+ }
+
+ public void setLsFormaPago(List lsFormaPago) {
+ this.lsFormaPago = lsFormaPago;
+ }
}
diff --git a/web/WEB-INF/i3-label_en.label b/web/WEB-INF/i3-label_en.label
index e65c32d70..e0eb62b91 100644
--- a/web/WEB-INF/i3-label_en.label
+++ b/web/WEB-INF/i3-label_en.label
@@ -8822,6 +8822,7 @@ relatorioBilhetesVendidosController.reimpresso.label = Reprinted
relatorioBilhetesVendidosController.reservado.label = Reserved
relatorioBilhetesVendidosController.transferido.label = Transferred
relatorioBilhetesVendidosController.vendido.label = Sold
+relatorioBilhetesVendidosController.lbFormaPagamento.value= Payment Method
# Relatório Bilhetes Vendidos
relatorioBilhetesVendidosController.window.title = Tickets Sold
relatorioBilhetesVendidosEstoqueAgenciaController.IdaVolta.label = Round trip
diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label
index 30f784244..784378a8a 100644
--- a/web/WEB-INF/i3-label_es_MX.label
+++ b/web/WEB-INF/i3-label_es_MX.label
@@ -8835,6 +8835,7 @@ relatorioBilhetesVendidosController.reimpresso.label = Reimpresso
relatorioBilhetesVendidosController.reservado.label = Reservado
relatorioBilhetesVendidosController.transferido.label = Transferido
relatorioBilhetesVendidosController.vendido.label = Vendido
+relatorioBilhetesVendidosController.lbFormaPagamento.value= Forma Pago
# Relatório Bilhetes Vendidos
# Relatório Bilhetes Vendidos
relatorioBilhetesVendidosController.window.title = Bilhetes Vendidos
diff --git a/web/WEB-INF/i3-label_fr_FR.label b/web/WEB-INF/i3-label_fr_FR.label
index 8714d404c..cacdaa173 100644
--- a/web/WEB-INF/i3-label_fr_FR.label
+++ b/web/WEB-INF/i3-label_fr_FR.label
@@ -8820,6 +8820,7 @@ relatorioBilhetesVendidosController.reimpresso.label = Réimprimé
relatorioBilhetesVendidosController.reservado.label = Réservé
relatorioBilhetesVendidosController.transferido.label = Transféré
relatorioBilhetesVendidosController.vendido.label = Vendu
+relatorioBilhetesVendidosController.lbFormaPagamento.value= Mode de paiement
# Relatório Bilhetes Vendidos
relatorioBilhetesVendidosController.window.title = Billets vendus
relatorioBilhetesVendidosEstoqueAgenciaController.IdaVolta.label = Aller-retour
diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label
index bba8579fb..3f336202c 100644
--- a/web/WEB-INF/i3-label_pt_BR.label
+++ b/web/WEB-INF/i3-label_pt_BR.label
@@ -8808,6 +8808,7 @@ relatorioBilhetesVendidosController.reimpresso.label = Reimpresso
relatorioBilhetesVendidosController.reservado.label = Reservado
relatorioBilhetesVendidosController.transferido.label = Transferido
relatorioBilhetesVendidosController.vendido.label = Vendido
+relatorioBilhetesVendidosController.lbFormaPagamento.value= Forma Pagamento
# Relatório Bilhetes Vendidos
relatorioBilhetesVendidosController.window.title = Bilhetes Vendidos
relatorioBilhetesVendidosEstoqueAgenciaController.IdaVolta.label = Ida/Volta
diff --git a/web/gui/relatorios/filtroRelatorioBilhetesVendidos.zul b/web/gui/relatorios/filtroRelatorioBilhetesVendidos.zul
index f2aa750d8..13fbedfd3 100644
--- a/web/gui/relatorios/filtroRelatorioBilhetesVendidos.zul
+++ b/web/gui/relatorios/filtroRelatorioBilhetesVendidos.zul
@@ -6,7 +6,7 @@
@@ -38,7 +38,7 @@
-
-
-
-
+
+
+
+
@@ -114,19 +115,29 @@
value="${c:l('relatorioBilhetesVendidosController.lbStatus.value')}" />
+
+
-
+
+
+
+
+
@@ -147,7 +158,7 @@
model="@{winFiltroRelatorioBilhetesVendidos$composer.lsEstado}" />
-