diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioDocumentosFiscais.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioDocumentosFiscais.java index 47bf5c6cb..63c8ebe3d 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioDocumentosFiscais.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioDocumentosFiscais.java @@ -156,7 +156,7 @@ public class RelatorioDocumentosFiscais extends Relatorio { sql.append("FROM "); sql.append(" (SELECT DISTINCT "); sql.append(" c.caja_id, "); - sql.append(" a.ACFISCAL AS numAidf, "); + sql.append(" a.docfiscal AS numAidf, "); sql.append(" to_number(c.numfoliopreimpreso) as folio, "); sql.append(" a.serie AS serie, "); sql.append(" a.subserie AS subserie, "); @@ -174,7 +174,7 @@ public class RelatorioDocumentosFiscais extends Relatorio { sql.append(" eai.NOMBESTADO AS nomeEstado, "); sql.append(" coalesce(pos.DESCPARADA, po.DESCPARADA) AS origem, "); sql.append(" coalesce(pds.DESCPARADA, pd.DESCPARADA) AS destino, "); - sql.append(" CASE WHEN((coalesce(eos.cveestado, eo.cveestado)) = (coalesce(eds.cveestado, ed.cveestado))) THEN 0 ELSE 1 END AS isInterEstadual, "); + sql.append(" CASE WHEN((coalesce(eai.cveestado, eos.cveestado, eo.cveestado)) = (coalesce(eds.cveestado, ed.cveestado))) THEN 0 ELSE 1 END AS isInterEstadual, "); sql.append(" COALESCE((IMPORTETAXAEMBARQUE + IMPORTEPEDAGIO + IMPORTESEGURO),0) AS vlrisento "); sql.append(" FROM caja c "); sql.append(" INNER JOIN aidf a ON a.aidf_id = c.aidf_id "); @@ -196,13 +196,13 @@ public class RelatorioDocumentosFiscais extends Relatorio { sql.append(" LEFT JOIN ciudad cds ON cds.ciudad_id = pds.ciudad_id "); sql.append(" LEFT JOIN estado eds ON eds.estado_id = cds.estado_id "); sql.append(" INNER JOIN empresa_imposto ei ON ei.empresa_id = e.empresa_id "); - sql.append(" and ei.estado_id = a.estado_id and ei.activo = 1 "); + sql.append(" and ei.estado_id = eai.estado_id and ei.activo = 1 "); sql.append(" WHERE c.feccreacion between :DATA_INICIAL and :DATA_FINAL "); sql.append(" AND e.empresa_id = " + empresaId + " "); sql.append(" AND a.aidfesp_id = 1 "); - sql.append(somenteCancelado == true ? " AND c.INDCANCELACION = 1 " : " "); - sql.append(aidf != null ? " AND a.AIDF_ID = " + aidf.getAidfId() + " " : " "); - sql.append(estadoId != null ? " AND a.ESTADO_ID IN (" + estadoId + ") " : " "); + sql.append(somenteCancelado == true ? " AND c.indcancelacion = 1 " : " "); + sql.append(aidf != null ? " AND a.aidf_id = " + aidf.getAidfId() + " " : " "); + sql.append(estadoId != null && !isEstadoTodos(estadoId) ? " AND eai.estado_id IN (" + estadoId + ") " : " "); sql.append(" ORDER BY a.ACFISCAL, to_number(c.numfoliopreimpreso) "); sql.append(" ) tabela "); sql.append(tipoLinha.equals(" INTERMUNICIPAL") ? " where tabela.isInterEstadual = 1 " : tipoLinha.equals("INTERESTADUAL") ? " where tabela.isInterEstadual = 0 " : " "); @@ -229,12 +229,12 @@ public class RelatorioDocumentosFiscais extends Relatorio { sql.append(" sum(valorBaseCalculo) AS valorBaseCalculo, "); sql.append(" tabela.valorAliquiotaICMS AS valorAliquiotaICMS, "); sql.append(" sum(tabela.valorICMS) AS valorICMS, "); - sql.append(" coalesce(sum(tabela.valorCancelado),0) AS valorCancelado, "); + sql.append(" coalesce(sum(tabela.qntancelados),0) AS valorCancelado, "); sql.append(" sum(tabela.outras) AS outras, "); sql.append(" sum(tabela.vlrisento) AS isentas "); sql.append("FROM "); sql.append(" (SELECT DISTINCT "); - sql.append(" aidf.DOCFISCAL, "); + sql.append(" a.docfiscal, "); sql.append(" aidf.forminicial, "); sql.append(" aidf.formfinal, "); sql.append(" coalesce(cdv.NUMSERIEPREIMPRESA, 'X') AS numAidf, "); @@ -244,6 +244,7 @@ public class RelatorioDocumentosFiscais extends Relatorio { sql.append(" case when cdv.precio < 0 then 31 else null end AS motivoCancelacion, "); sql.append(" cdv.precio AS tarifa, "); sql.append(" cdv.precio as valor, "); + sql.append(" CASE WHEN cdv.precio < 0 THEN 1 ELSE 0 END AS qntancelados, "); sql.append(" ed.tributacaoimportacao AS valorAliquiotaICMS, "); sql.append(" CASE WHEN cdv.precio >= 0 THEN cdv.precio ELSE 0 END AS valorContabil, "); sql.append(" CASE WHEN cdv.precio < 0 THEN cdv.precio ELSE 0 END AS valorCancelado, "); @@ -260,17 +261,17 @@ public class RelatorioDocumentosFiscais extends Relatorio { sql.append("from evento_extra ee "); sql.append(" join caja_diversos cdv on cdv.eventoextra_id = ee.eventoextra_id "); sql.append(" join aidf aidf on aidf.serie = cdv.numseriepreimpresa and cdv.numfoliopreimpreso between aidf.forminicial and aidf.formfinal "); - sql.append(" LEFT JOIN estado eai ON aidf.estado_id = eai.estado_id "); + sql.append(" left join estado eai ON aidf.estado_id = eai.estado_id "); sql.append(" join punto_venta pv on pv.puntoventa_id = cdv.puntoventa_id "); sql.append(" join parada pp on pp.parada_id = pv.parada_id "); sql.append(" join ciudad cc on cc.ciudad_id = pp.ciudad_id "); sql.append(" join estado es on es.estado_id = cc.estado_id "); - sql.append(" join empresa_imposto ed ON ed.empresa_id = ee.empresa_id and es.estado_id = ed.estado_id and ed.activo = 1 "); + sql.append(" join empresa_imposto ed ON ed.empresa_id = ee.empresa_id and ed.estado_id = coalesce(aidf.estado_id, es.estado_id) and ed.activo = 1 "); sql.append("where ee.tipoeventoextra_id in (1,81,82) "); sql.append(" and ee.fechoringreso between :DATA_INICIAL and :DATA_FINAL "); sql.append(" and aidf.aidfesp_id = 2 "); sql.append(" and ee.empresa_id = " + empresaId + " "); - sql.append(" and eai.estado_id IN (" + estadoId + ") "); + sql.append(estadoId != null && !isEstadoTodos(estadoId) ? " and eai.estado_id IN (" + estadoId + ") " : ""); sql.append(aidf != null ? " and aidf.aidf_id = " + aidf.getAidfId() + " " : " "); // sql.append(somenteCancelado == true ? " AND c.INDCANCELACION = 1" : " "); sql.append(" )tabela "); @@ -288,4 +289,10 @@ public class RelatorioDocumentosFiscais extends Relatorio { return sql.toString(); } + private boolean isEstadoTodos(Integer estadoId) { + if (estadoId == -1 || estadoId == null) + return true; + else + return false; + } } diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioDocumentosFiscaisAgrupadoPorLocalidade.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioDocumentosFiscaisAgrupadoPorLocalidade.java index b4b1c6b80..4047fd52a 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioDocumentosFiscaisAgrupadoPorLocalidade.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioDocumentosFiscaisAgrupadoPorLocalidade.java @@ -42,8 +42,15 @@ public class RelatorioDocumentosFiscaisAgrupadoPorLocalidade extends Relatorio { String tipoLinha = (String) parametros.get("TIPO_LINHA"); Aidf aidf = (Aidf) parametros.get("AIDF"); Boolean somenteCancelado = (Boolean) parametros.get("SOMENTE_CANCELADO"); + String especie = (String) parametros.get("ESPECIE"); + Integer estadoId = (Integer) parametros.get("ESTADO_ID"); - String sql = getSql(empresaId, agencia, somenteCancelado, tipoLinha, aidf); + String sql = null; + if (especie.equals("Bilhetes BPR")) { + sql = getSqlBPR(empresaId, agencia, somenteCancelado, tipoLinha, aidf, estadoId); + } else { + sql = getSqlExcessoBagagem(empresaId, agencia, somenteCancelado, tipoLinha, aidf, estadoId); + } NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql); @@ -67,8 +74,13 @@ public class RelatorioDocumentosFiscaisAgrupadoPorLocalidade extends Relatorio { RelatorioDocumentosFiscaisBean bean = new RelatorioDocumentosFiscaisBean(); bean.setNumAIDF((String) (rset.getObject("numAIDF") == null ? "" : rset.getObject("numAIDF"))); - bean.setFormInicial((String) rset.getObject("formInicial")); - bean.setFormFinal((String) rset.getObject("formFinal")); + + BigDecimal formInicial = (BigDecimal) rset.getObject("formInicial"); + bean.setFormInicial(formInicial.toString()); + + BigDecimal formFinal = (BigDecimal) rset.getObject("formFinal"); + bean.setFormFinal(formFinal.toString()); + bean.setSerie((String) rset.getObject("serie")); bean.setSubSerie((String) rset.getObject("subSerie")); bean.setValorContabil((BigDecimal) rset.getObject("valorContabil")); @@ -78,10 +90,13 @@ public class RelatorioDocumentosFiscaisAgrupadoPorLocalidade extends Relatorio { bean.setOutras((BigDecimal) rset.getObject("outras")); bean.setValorCancelado((BigDecimal) rset.getObject("valorCancelado")); bean.setNomeEstado((String) rset.getObject("nomeEstado")); - bean.setNomeOrigem((String) rset.getObject("nomeOrigem")); - bean.setNomeDestino((String) rset.getObject("nomeDestino")); - lsDadosRelatorio.add(bean); + + if (especie.equals("Bilhetes BPR")) { + bean.setNomeOrigem((String) rset.getObject("nomeOrigem")); + bean.setNomeDestino((String) rset.getObject("nomeDestino")); + } + lsDadosRelatorio.add(bean); } if (lsDadosRelatorio.size() > 0) { @@ -123,43 +138,51 @@ public class RelatorioDocumentosFiscaisAgrupadoPorLocalidade extends Relatorio { this.lsDadosRelatorio = lsDadosRelatorio; } - private String getSql(Integer empresaId, String agencia, Boolean somenteCancelado, String tipoLinha, Aidf aidf) { + private String getSqlBPR(Integer empresaId, String agencia, Boolean somenteCancelado, String tipoLinha, Aidf aidf, Integer estadoId) { StringBuilder sql = new StringBuilder(); sql.append("SELECT coalesce(tabela.numAidf, '') AS numAidf, "); - sql.append(" TABELA.formInicial AS formInicial, "); - sql.append(" TABELA.formFinal AS formFinal, "); - sql.append(" TABELA.serie AS serie, "); - sql.append(" TABELA.subSerie AS subSerie, "); - sql.append(" TABELA.nomeEstado AS nomeEstado, "); - sql.append(" TABELA.origem AS nomeOrigem, "); - sql.append(" TABELA.destino AS nomeDestino, "); + sql.append(" min(tabela.folio) AS formInicial, "); + sql.append(" max(tabela.folio) AS formFinal, "); + sql.append(" tabela.serie AS serie, "); + sql.append(" tabela.subserie AS subSerie, "); + sql.append(" tabela.nomeEstado AS nomeEstado, "); + sql.append(" tabela.origem AS nomeOrigem, "); + sql.append(" tabela.destino AS nomeDestino, "); sql.append(" COALESCE(SUM(tabela.valorContabil),0) AS valorContabil, "); sql.append(" SUM(valorBaseCalculo) AS valorBaseCalculo, "); - sql.append(" TABELA.valorAliquiotaICMS AS valorAliquiotaICMS, "); - sql.append(" SUM(TABELA.valorICMS) AS valorICMS, "); - sql.append(" COALESCE(SUM(TABELA.valorCancelado),0) AS valorCancelado, "); - sql.append(" SUM(TABELA.outras) AS outras "); + sql.append(" tabela.valorAliquiotaICMS AS valorAliquiotaICMS, "); + sql.append(" SUM(tabela.valorICMS) AS valorICMS, "); + sql.append(" sum(tabela.qntancelados) AS valorCancelado, "); + sql.append(" SUM(tabela.outras) AS outras, "); + sql.append(" sum(tabela.vlrisento) AS isentas "); sql.append("FROM "); - sql.append(" (SELECT a.ACFISCAL AS numAidf, "); - sql.append(" a.FORMINICIAL AS formInicial, "); - sql.append(" a.FORMFINAL AS formFinal, "); - sql.append(" a.SERIE AS serie, "); - sql.append(" a.SUBSERIE AS subSerie, "); - sql.append(" c.MOTIVOCANCELACION_ID AS motivoCancelacion, "); - sql.append(" c.PRECIOBASE AS tarifa, "); - sql.append(" ed.ICMS AS valorAliquiotaICMS, "); + sql.append(" (SELECT DISTINCT "); + sql.append(" c.caja_id, "); + sql.append(" a.docfiscal AS numAidf, "); + sql.append(" to_number(c.numfoliopreimpreso) as folio, "); + sql.append(" a.serie AS serie, "); + sql.append(" a.subserie AS subserie, "); + sql.append(" c.motivocancelacion_id AS motivoCancelacion, "); + sql.append(" c.preciobase AS tarifa, "); + sql.append(" ei.tributacaoimportacao AS valorAliquiotaICMS, "); + sql.append(" CASE WHEN c.MOTIVOCANCELACION_ID IS NOT NULL THEN 1 ELSE 0 END AS qntancelados, "); sql.append(" CASE WHEN c.MOTIVOCANCELACION_ID IS NULL THEN c.PRECIOPAGADO ELSE 0 END AS valorContabil, "); sql.append(" CASE WHEN c.MOTIVOCANCELACION_ID IS NOT NULL THEN c.PRECIOPAGADO ELSE 0 END AS valorCancelado, "); - sql.append(" COALESCE(ei.PORCREDBASEICMS / 100,0) AS redBaseCalcIcms, "); - sql.append(" CASE WHEN c.MOTIVOCANCELACION_ID IS NULL THEN c.PRECIOPAGADO - (c.PRECIOPAGADO * COALESCE(ei.PORCREDBASEICMS / 100,0)) ELSE 0 END AS valorBaseCalculo, "); - sql.append(" CASE WHEN c.MOTIVOCANCELACION_ID IS NULL THEN ((c.PRECIOPAGADO - (c.PRECIOPAGADO * COALESCE(ei.PORCREDBASEICMS / 100,0))) * ed.ICMS) / 100ELSE 0 END AS valorICMS, "); - sql.append(" CASE WHEN c.MOTIVOCANCELACION_ID IS NULL THEN c.PRECIOPAGADO - (c.PRECIOPAGADO - (c.PRECIOPAGADO * COALESCE(ei.PORCREDBASEICMS / 100,0))) ELSE 0 END AS outras, "); - sql.append(" eo.estado_id AS estadoId, eo.NOMBESTADO AS nomeEstado, po.DESCPARADA AS origem, pd.DESCPARADA AS destino, "); - sql.append(" CASE WHEN((COALESCE(eos.cveestado, eo.cveestado)) = (COALESCE(eds.cveestado, ed.cveestado))) THEN 0 ELSE 1 END AS isInterEstadual "); + sql.append(" (coalesce(ei.PORCREDBASEICMS, 0) / 100.0) AS redBaseCalcIcms, "); + sql.append(" CASE WHEN c.MOTIVOCANCELACION_ID IS NULL THEN c.PRECIOPAGADO - (c.PRECIOPAGADO * (coalesce(ei.PORCREDBASEICMS, 0) / 100.0) ) ELSE 0 END AS valorBaseCalculo, "); + sql.append(" CASE WHEN c.MOTIVOCANCELACION_ID IS NULL THEN ((c.PRECIOPAGADO - (c.PRECIOPAGADO * (coalesce(ei.PORCREDBASEICMS, 0) / 100.0) )) * ei.TRIBUTACAOIMPORTACAO) / 100 ELSE 0 END AS valorICMS, "); + sql.append(" CASE WHEN c.MOTIVOCANCELACION_ID IS NULL THEN c.PRECIOPAGADO - (c.PRECIOPAGADO - (c.PRECIOPAGADO * (coalesce(ei.PORCREDBASEICMS, 0) / 100.0) )) ELSE 0 END AS outras, "); + sql.append(" eai.estado_id AS estadoId, "); + sql.append(" eai.NOMBESTADO AS nomeEstado, "); + sql.append(" coalesce(pos.DESCPARADA, po.DESCPARADA) AS origem, "); + sql.append(" coalesce(pds.DESCPARADA, pd.DESCPARADA) AS destino, "); + sql.append(" CASE WHEN((coalesce(eai.cveestado, eos.cveestado, eo.cveestado)) = (coalesce(eds.cveestado, ed.cveestado))) THEN 0 ELSE 1 END AS isInterEstadual, "); + sql.append(" COALESCE((IMPORTETAXAEMBARQUE + IMPORTEPEDAGIO + IMPORTESEGURO),0) AS vlrisento "); sql.append(" FROM caja c "); sql.append(" INNER JOIN aidf a ON a.aidf_id = c.aidf_id "); + sql.append(" LEFT JOIN estado eai ON a.estado_id = eai.estado_id "); sql.append(" JOIN marca m ON c.marca_id = m.marca_id "); sql.append(" JOIN empresa e ON e.empresa_id = m.empresa_id "); sql.append(" JOIN parada po ON po.parada_id = c.origen_id "); @@ -168,11 +191,8 @@ public class RelatorioDocumentosFiscaisAgrupadoPorLocalidade extends Relatorio { 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 ed ON ed.estado_id = cd.estado_id "); - sql.append(" LEFT JOIN alias_servico s ON s.origen_id = c.origen_id "); - sql.append(" AND s.destino_id = c.destino_id "); - sql.append(" AND (s.corrida_id = c.corrida_id "); - sql.append(" OR s.corrida_id IS NULL) "); - sql.append(" AND s.ruta_id = c.ruta_id "); + sql.append(" LEFT JOIN alias_servico s ON s.origen_id = c.origen_id AND s.destino_id = c.destino_id "); + sql.append(" AND (s.corrida_id = c.corrida_id OR s.corrida_id IS NULL) AND s.ruta_id = c.ruta_id AND s.activo = 1 "); sql.append(" LEFT JOIN parada pos ON pos.parada_id = s.aliasorigen_id "); sql.append(" LEFT JOIN ciudad cos ON cos.ciudad_id = pos.ciudad_id "); sql.append(" LEFT JOIN estado eos ON eos.estado_id = cos.estado_id "); @@ -180,19 +200,105 @@ public class RelatorioDocumentosFiscaisAgrupadoPorLocalidade extends Relatorio { sql.append(" LEFT JOIN ciudad cds ON cds.ciudad_id = pds.ciudad_id "); sql.append(" LEFT JOIN estado eds ON eds.estado_id = cds.estado_id "); sql.append(" INNER JOIN empresa_imposto ei ON ei.empresa_id = e.empresa_id "); + sql.append(" and ei.estado_id = eai.estado_id and ei.activo = 1 "); sql.append(" WHERE c.feccreacion between :DATA_INICIAL and :DATA_FINAL "); - sql.append("AND c.EMPRESACORRIDA_ID =" + empresaId + " "); - sql.append(somenteCancelado == true ? " AND c.INDCANCELACION = 1" : " "); - sql.append(aidf != null ? " AND a.AIDF_ID = " + aidf.getAidfId() + " " : " "); - sql.append(")TABELA "); + sql.append(" AND e.empresa_id = " + empresaId + " "); + sql.append(" AND a.aidfesp_id = 1 "); + sql.append(somenteCancelado == true ? " AND c.indcancelacion = 1" : " "); + sql.append(aidf != null ? " AND a.aidf_id = " + aidf.getAidfId() + " " : " "); + sql.append(estadoId != null && !isEstadoTodos(estadoId) ? " and eai.estado_id IN (" + estadoId + ") " : ""); + sql.append(") tabela "); sql.append(tipoLinha.equals("INTERMUNICIPAL") ? " where TABELA.isInterEstadual = 1" : tipoLinha.equals("INTERESTADUAL") ? " where TABELA.isInterEstadual = 0" : " "); - sql.append("GROUP BY TABELA.numAidf,TABELA.formInicial, "); - sql.append(" TABELA.formFinal,TABELA.serie, TABELA.subSerie,TABELA.nomeEstado, "); - sql.append(" TABELA.origem, tabela.destino, "); - sql.append(" TABELA.valorAliquiotaICMS "); - sql.append("ORDER BY TABELA.nomeEstado,TABELA.origem, TABELA.destino"); + sql.append("GROUP BY tabela.numAidf, "); + sql.append(" tabela.serie, "); + sql.append(" tabela.subserie, "); + sql.append(" tabela.nomeestado, "); + sql.append(" tabela.origem, "); + sql.append(" tabela.destino, "); + sql.append(" tabela.valoraliquiotaicms "); + sql.append("ORDER BY tabela.nomeEstado, tabela.numAidf, tabela.origem, tabela.destino "); return sql.toString(); } + private String getSqlExcessoBagagem(Integer empresaId, String agencia, Boolean somenteCancelado, String tipoLinha, Aidf aidf, Integer estadoId) { + + StringBuilder sql = new StringBuilder(); + sql.append("SELECT tabela.docfiscal AS numAidf, "); + sql.append(" to_number(tabela.forminicial) AS formInicial, "); + sql.append(" to_number(tabela.formfinal) AS formFinal, "); + sql.append(" tabela.serie AS serie, "); + sql.append(" tabela.subserie AS subSerie, "); + sql.append(" tabela.nomeEstado AS nomeEstado, "); + sql.append(" coalesce(sum(tabela.valorContabil),0) AS valorContabil, "); + sql.append(" sum(valorBaseCalculo) AS valorBaseCalculo, "); + sql.append(" tabela.valorAliquiotaICMS AS valorAliquiotaICMS, "); + sql.append(" sum(tabela.valorICMS) AS valorICMS, "); + sql.append(" coalesce(sum(tabela.qntancelados),0) AS valorCancelado, "); + sql.append(" sum(tabela.outras) AS outras, "); + sql.append(" sum(tabela.vlrisento) AS isentas "); + sql.append("FROM "); + sql.append(" (SELECT DISTINCT "); + sql.append(" aidf.docfiscal, "); + sql.append(" aidf.forminicial, "); + sql.append(" aidf.formfinal, "); + sql.append(" coalesce(cdv.NUMSERIEPREIMPRESA, 'X') AS numAidf, "); + sql.append(" aidf.serie AS serie, "); + sql.append(" aidf.subserie AS subserie, "); + sql.append(" coalesce(cdv.NUMFOLIOPREIMPRESO, '0') AS folio, "); + sql.append(" case when cdv.precio < 0 then 31 else null end AS motivoCancelacion, "); + sql.append(" cdv.precio AS tarifa, "); + sql.append(" cdv.precio as valor, "); + sql.append(" CASE WHEN cdv.precio < 0 THEN 1 ELSE 0 END AS qntancelados, "); + sql.append(" ed.tributacaoimportacao AS valorAliquiotaICMS, "); + sql.append(" CASE WHEN cdv.precio >= 0 THEN cdv.precio ELSE 0 END AS valorContabil, "); + sql.append(" CASE WHEN cdv.precio < 0 THEN cdv.precio ELSE 0 END AS valorCancelado, "); + sql.append(" COALESCE(ed.PORCREDBASEICMS / 100,0) AS redBaseCalcIcms, "); + sql.append(" CASE WHEN cdv.precio >= 0 THEN cdv.precio - (cdv.precio * COALESCE(ed.PORCREDBASEICMS / 100,0)) ELSE 0 END AS valorBaseCalculo, "); + sql.append(" CASE WHEN cdv.precio >= 0 THEN ((cdv.precio * ((ed.TRIBUTACAOIMPORTACAO - (COALESCE(ed.PORCREDBASEICMS * ed.TRIBUTACAOIMPORTACAO /100,0))))) / 100) ELSE 0 END AS valorICMS, "); + sql.append(" CASE WHEN cdv.precio >= 0 THEN cdv.precio - (cdv.precio - (cdv.precio * COALESCE(ed.PORCREDBASEICMS / 100,0))) ELSE 0 END AS outras, "); + sql.append(" eai.estado_id AS estadoId, "); + sql.append(" eai.NOMBESTADO AS nomeEstado, "); + sql.append(" '' AS origem, "); + sql.append(" '' AS destino, "); + sql.append(" 0 AS isInterEstadual, "); + sql.append(" 0 AS vlrisento "); + sql.append("from evento_extra ee "); + sql.append(" join caja_diversos cdv on cdv.eventoextra_id = ee.eventoextra_id "); + sql.append(" join aidf aidf on aidf.serie = cdv.numseriepreimpresa and cdv.numfoliopreimpreso between aidf.forminicial and aidf.formfinal "); + sql.append(" left join estado eai ON aidf.estado_id = eai.estado_id "); + sql.append(" join punto_venta pv on pv.puntoventa_id = cdv.puntoventa_id "); + sql.append(" join parada pp on pp.parada_id = pv.parada_id "); + sql.append(" join ciudad cc on cc.ciudad_id = pp.ciudad_id "); + sql.append(" join estado es on es.estado_id = cc.estado_id "); + sql.append(" join empresa_imposto ed ON ed.empresa_id = ee.empresa_id and ed.estado_id = coalesce(aidf.estado_id, es.estado_id) and ed.activo = 1 "); + sql.append("where ee.tipoeventoextra_id in (1,81,82) "); + sql.append(" and ee.fechoringreso between :DATA_INICIAL and :DATA_FINAL "); + sql.append(" and aidf.aidfesp_id = 2 "); + sql.append(" and ee.empresa_id = " + empresaId + " "); + sql.append(estadoId != null && !isEstadoTodos(estadoId) ? " and eai.estado_id IN (" + estadoId + ") " : ""); + sql.append(aidf != null ? " and aidf.aidf_id = " + aidf.getAidfId() + " " : " "); + // sql.append(somenteCancelado == true ? " AND c.INDCANCELACION = 1" : " "); + sql.append(" )tabela "); + // sql.append(tipoLinha.equals("INTERMUNICIPAL") ? " where tabela.isInterEstadual = 1" : tipoLinha.equals("INTERESTADUAL") ? " where tabela.isInterEstadual = 0" : " "); + sql.append("GROUP BY tabela.numAidf, "); + sql.append(" tabela.serie, "); + sql.append(" tabela.subSerie, "); + sql.append(" tabela.nomeEstado, "); + sql.append(" tabela.valorAliquiotaICMS, "); + sql.append(" tabela.docfiscal, "); + sql.append(" tabela.forminicial, "); + sql.append(" tabela.formfinal "); + sql.append("ORDER BY tabela.nomeEstado, tabela.numAidf "); + + return sql.toString(); + } + + private boolean isEstadoTodos(Integer estadoId) { + if (estadoId == -1 || estadoId == null) + return true; + else + return false; + } + } diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioDocumentosFiscaisAgrupadoPorLocalidade_es.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioDocumentosFiscaisAgrupadoPorLocalidade_es.properties index 779d3ef82..8a6619c49 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioDocumentosFiscaisAgrupadoPorLocalidade_es.properties +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioDocumentosFiscaisAgrupadoPorLocalidade_es.properties @@ -3,26 +3,27 @@ msg.noData=N #Labels cabeçalho cabecalho.nome=Relatório Documentos Fiscais -cabecalho.relatorio=Relatório +cabecalho.relatorio=Relatório Documentos Fiscais +header.periodo=Período: +header.a=a +header.tipoLinha=Tipo Linha: label.periodo=Período: label.UF=UF -label.especie=Espécie +label.especie=Espécie: label.empresa=Empresa: -label.formInicial=Nº Inicial -label.formFinal=Nº Final +label.formInicial=Inicial +label.formFinal=Final label.numAIDF=AIDF label.serie=Série label.subSerie=SubSérie label.valorContabil=Vlr Contábil -label.valorBaseCalculo=Vlr Base Cálc. -label.valorAliquiotaICMS=Alíquota ICMS +label.valorBaseCalculo=Base Cálc. +label.valorAliquiotaICMS=ICMS label.valorICMS=Valor ICMS label.isentas=Isentas label.outras=Outras -label.valorCancelado=Qtd. Cancec +label.valorCancelado=Cant label.origem=Origem label.destino=Destino -label.estado=Estado -header.data=Período -header.a=a -header.tipoLinha=Tipo Linha +label.estado=Estado: +label.totais=Totais: \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioDocumentosFiscaisAgrupadoPorLocalidade_pt.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioDocumentosFiscaisAgrupadoPorLocalidade_pt.properties index 8e11cf111..8a6619c49 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioDocumentosFiscaisAgrupadoPorLocalidade_pt.properties +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioDocumentosFiscaisAgrupadoPorLocalidade_pt.properties @@ -11,20 +11,19 @@ label.periodo=Per label.UF=UF label.especie=Espécie: label.empresa=Empresa: -label.formInicial=Nº Inicial -label.formFinal=Nº Final +label.formInicial=Inicial +label.formFinal=Final label.numAIDF=AIDF label.serie=Série label.subSerie=SubSérie label.valorContabil=Vlr Contábil -label.valorBaseCalculo=Vlr Base Cálc. -label.valorAliquiotaICMS=Alíquota ICMS +label.valorBaseCalculo=Base Cálc. +label.valorAliquiotaICMS=ICMS label.valorICMS=Valor ICMS label.isentas=Isentas label.outras=Outras -label.valorCancelado=Qtd. Cancec +label.valorCancelado=Cant label.origem=Origem label.destino=Destino label.estado=Estado: -label.totais=Totais: - +label.totais=Totais: \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioDocumentosFiscais.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioDocumentosFiscais.jasper index 79e6f6175..b96b86552 100644 Binary files a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioDocumentosFiscais.jasper and b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioDocumentosFiscais.jasper differ diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioDocumentosFiscais.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioDocumentosFiscais.jrxml index 3322a304f..ead68eca7 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioDocumentosFiscais.jrxml +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioDocumentosFiscais.jrxml @@ -1,7 +1,7 @@ - + @@ -113,11 +113,11 @@ - + - + @@ -149,7 +149,7 @@ - + @@ -262,87 +262,87 @@ - + - - + + - + - - + + - + - - + + - - + + - + - - + + - + - - + + - - + + - + - - + + - - + + - + - - + + - - + + - + @@ -356,9 +356,8 @@ - + - @@ -368,27 +367,23 @@ - + - - + - - + - - + - - + diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioDocumentosFiscaisAgrupadoPorLocalidade.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioDocumentosFiscaisAgrupadoPorLocalidade.jasper index 6aee91637..f262b630a 100644 Binary files a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioDocumentosFiscaisAgrupadoPorLocalidade.jasper and b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioDocumentosFiscaisAgrupadoPorLocalidade.jasper differ diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioDocumentosFiscaisAgrupadoPorLocalidade.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioDocumentosFiscaisAgrupadoPorLocalidade.jrxml index 8ca9c8bcd..2df2c6e3a 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioDocumentosFiscaisAgrupadoPorLocalidade.jrxml +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioDocumentosFiscaisAgrupadoPorLocalidade.jrxml @@ -1,7 +1,7 @@ - + @@ -58,7 +58,7 @@ - + @@ -164,113 +164,113 @@ - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - + + + + + + + + + + + - - + + @@ -278,13 +278,13 @@ - + - + @@ -292,34 +292,34 @@ - + - + - + - + - + @@ -333,7 +333,7 @@ - + @@ -341,30 +341,30 @@ - + - + - - - + + + - + - + - + - + @@ -372,7 +372,7 @@ - + @@ -383,32 +383,32 @@ - + - + - + - + - + - - - + + + diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioDocumentosFiscaisController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioDocumentosFiscaisController.java index 3a8ff0e86..82c2122a4 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioDocumentosFiscaisController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioDocumentosFiscaisController.java @@ -1,12 +1,14 @@ package com.rjconsultores.ventaboletos.web.gui.controladores.relatorios; import java.sql.Timestamp; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.sql.DataSource; +import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Controller; @@ -71,7 +73,13 @@ public class RelatorioDocumentosFiscaisController extends MyGenericForwardCompos public void doAfterCompose(Component comp) throws Exception { super.doAfterCompose(comp); lsEmpresa = empresaService.obtenerTodos(); - lsEstado = estadoService.obtenerTodos(); + + lsEstado = new ArrayList(); + Estado estadoTodos = new Estado(-1); + estadoTodos.setNombestado("TODOS"); + lsEstado.add(estadoTodos); + + lsEstado.addAll(estadoService.obtenerTodos()); } @SuppressWarnings({ "rawtypes", "unchecked" }) @@ -95,12 +103,12 @@ public class RelatorioDocumentosFiscaisController extends MyGenericForwardCompos Boolean somenteCancelado = ckbSomenteCancelado.isChecked(); Radio radio = rdgInterestadualMunicial.getSelectedItem(); - String tipoLinha; + String tipoLinha = StringUtils.EMPTY; if (radio.getValue().equals("0")) { tipoLinha = "INTERMUNICIPAL"; } else if (radio.getValue().equals("1")) { tipoLinha = "INTERESTADUAL"; - } else { + } else if (radio.getValue().equals("2")) { tipoLinha = "TODOS"; } diff --git a/web/gui/relatorios/filtroRelatorioDocumentosFiscais.zul b/web/gui/relatorios/filtroRelatorioDocumentosFiscais.zul index 441aaa8ab..401a4733c 100644 --- a/web/gui/relatorios/filtroRelatorioDocumentosFiscais.zul +++ b/web/gui/relatorios/filtroRelatorioDocumentosFiscais.zul @@ -57,7 +57,7 @@