fixes bug#15169
dev: julio qua: git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@96200 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
1bec9ef5a7
commit
47c9abf6c6
|
@ -3,6 +3,7 @@ package com.rjconsultores.ventaboletos.relatorios.impl;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -19,8 +20,11 @@ import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio;
|
||||||
import com.rjconsultores.ventaboletos.utilerias.DateUtil;
|
import com.rjconsultores.ventaboletos.utilerias.DateUtil;
|
||||||
import com.rjconsultores.ventaboletos.utilerias.MoneyHelper;
|
import com.rjconsultores.ventaboletos.utilerias.MoneyHelper;
|
||||||
import com.rjconsultores.ventaboletos.utilerias.UtiliteriasFiscal;
|
import com.rjconsultores.ventaboletos.utilerias.UtiliteriasFiscal;
|
||||||
|
import com.rjconsultores.ventaboletos.utilerias.exportacao.bpe.ExportacaoBPEVo.TipoComp;
|
||||||
|
import com.rjconsultores.ventaboletos.utilerias.exportacao.bpe.xml.BPeUtil;
|
||||||
import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement;
|
import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement;
|
||||||
|
|
||||||
|
import br.inf.portalfiscal.bpe.TBPe;
|
||||||
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
|
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
|
||||||
|
|
||||||
public class RelatorioDevolucaoBilhetes extends Relatorio {
|
public class RelatorioDevolucaoBilhetes extends Relatorio {
|
||||||
|
@ -47,6 +51,7 @@ public class RelatorioDevolucaoBilhetes extends Relatorio {
|
||||||
Date dataDevolucaoFinal = parametros.get("dataDevolucaoFinal") == null ? null : (Date) parametros.get("dataDevolucaoFinal");
|
Date dataDevolucaoFinal = parametros.get("dataDevolucaoFinal") == null ? null : (Date) parametros.get("dataDevolucaoFinal");
|
||||||
Boolean isApenasBilhetesImpressos = parametros.get("isApenasBilhetesImpressos") == null ? Boolean.FALSE : Boolean.valueOf(parametros.get("isApenasBilhetesImpressos").toString());
|
Boolean isApenasBilhetesImpressos = parametros.get("isApenasBilhetesImpressos") == null ? Boolean.FALSE : Boolean.valueOf(parametros.get("isApenasBilhetesImpressos").toString());
|
||||||
Boolean isBpe = (Boolean) parametros.get("isBpe");
|
Boolean isBpe = (Boolean) parametros.get("isBpe");
|
||||||
|
Boolean isNoXML = (Boolean) parametros.get("isConsultaOtimizada");
|
||||||
|
|
||||||
String puntoVentas = null;
|
String puntoVentas = null;
|
||||||
for (PuntoVenta pv : lsPuntoVenta) {
|
for (PuntoVenta pv : lsPuntoVenta) {
|
||||||
|
@ -67,11 +72,16 @@ public class RelatorioDevolucaoBilhetes extends Relatorio {
|
||||||
}
|
}
|
||||||
|
|
||||||
String sql = null;
|
String sql = null;
|
||||||
if (isBpe)
|
if (isBpe) {
|
||||||
sql = getSqlBpe(empresaId, puntoVentas, estados, dataVendaInicial, dataVendaFinal, dataDevolucaoInicial, dataDevolucaoFinal, isApenasBilhetesImpressos);
|
if (isNoXML) {
|
||||||
else
|
sql = getSqlBpeNoXml(empresaId, puntoVentas, estados, dataVendaInicial, dataVendaFinal, dataDevolucaoInicial, dataDevolucaoFinal, isApenasBilhetesImpressos);
|
||||||
sql = getSql(empresaId, puntoVentas, estados, dataVendaInicial, dataVendaFinal, dataDevolucaoInicial, dataDevolucaoFinal, isApenasBilhetesImpressos);
|
} else {
|
||||||
|
sql = getSqlBpeXml(empresaId, puntoVentas, estados, dataVendaInicial, dataVendaFinal, dataDevolucaoInicial, dataDevolucaoFinal, isApenasBilhetesImpressos);
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
sql = getSql(empresaId, puntoVentas, estados, dataVendaInicial, dataVendaFinal, dataDevolucaoInicial, dataDevolucaoFinal, isApenasBilhetesImpressos);
|
||||||
|
}
|
||||||
log.info("Devolucao Bilhetes: " + sql);
|
log.info("Devolucao Bilhetes: " + sql);
|
||||||
|
|
||||||
NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql);
|
NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql);
|
||||||
|
@ -138,104 +148,7 @@ public class RelatorioDevolucaoBilhetes extends Relatorio {
|
||||||
db.setPorcEstadual(rset.getBigDecimal("PORC_ESTADUAL"));
|
db.setPorcEstadual(rset.getBigDecimal("PORC_ESTADUAL"));
|
||||||
|
|
||||||
if (isBpe) {
|
if (isBpe) {
|
||||||
db.setChbpe(rset.getString("CHBPE"));
|
bpeResultSet(rset, db, isNoXML);
|
||||||
db.setChbpeSubstituicao(rset.getString("CHBPE_SUBSTITUICAO"));
|
|
||||||
db.setCmunini(rset.getString("CMUNINI"));
|
|
||||||
db.setCmunfim(rset.getString("CMUNFIM"));
|
|
||||||
db.setUfini(rset.getString("UFINI"));
|
|
||||||
db.setUffim(rset.getString("UFFIM"));
|
|
||||||
db.setNbp(rset.getString("NBP"));
|
|
||||||
db.setDhemb(rset.getString("DHEMB"));
|
|
||||||
db.setCst00(rset.getString("CST00"));
|
|
||||||
db.setCst20(rset.getString("CST20"));
|
|
||||||
db.setCst45(rset.getString("CST45"));
|
|
||||||
db.setCst90(rset.getString("CST90"));
|
|
||||||
db.setCstoutrauf(rset.getString("CSTOUTRAUF"));
|
|
||||||
db.setCstsn(rset.getString("CSTSN"));
|
|
||||||
db.setVbc00(rset.getString("VBC00"));
|
|
||||||
db.setPicms00(rset.getString("PICMS00"));
|
|
||||||
db.setVicms00(rset.getString("VICMS00"));
|
|
||||||
db.setVbc20(rset.getString("VBC20"));
|
|
||||||
db.setPicms20(rset.getString("PICMS20"));
|
|
||||||
db.setVicms20(rset.getString("VICMS20"));
|
|
||||||
db.setVbp(rset.getString("VBP"));
|
|
||||||
db.setVdesconto(rset.getString("VDESCONTO"));
|
|
||||||
db.setVpgto(rset.getString("VPGTO"));
|
|
||||||
db.setTpcomp01(rset.getString("TPCOMP01"));
|
|
||||||
db.setTpcomp02(rset.getString("TPCOMP02"));
|
|
||||||
db.setTpcomp03(rset.getString("TPCOMP03"));
|
|
||||||
db.setTpcomp04(rset.getString("TPCOMP04"));
|
|
||||||
db.setTpcomp05(rset.getString("TPCOMP05"));
|
|
||||||
db.setTpcomp06(rset.getString("TPCOMP06"));
|
|
||||||
db.setTpcomp99(rset.getString("TPCOMP99"));
|
|
||||||
db.setVcomp01(rset.getString("VCOMP01"));
|
|
||||||
db.setVcomp02(rset.getString("VCOMP02"));
|
|
||||||
db.setVcomp03(rset.getString("VCOMP03"));
|
|
||||||
db.setVcomp04(rset.getString("VCOMP04"));
|
|
||||||
db.setVcomp05(rset.getString("VCOMP05"));
|
|
||||||
db.setVcomp06(rset.getString("VCOMP06"));
|
|
||||||
db.setVcomp99(rset.getString("VCOMP99"));
|
|
||||||
db.setpRedBC(rset.getString("PREDBC"));
|
|
||||||
|
|
||||||
String estadoOrigem = db.getUfini();
|
|
||||||
String estadoDestino = db.getUffim();
|
|
||||||
|
|
||||||
boolean isInterEstadual = !estadoOrigem.equals(estadoDestino);
|
|
||||||
|
|
||||||
String vBC = null;
|
|
||||||
String pICMS = null;
|
|
||||||
String vICMS = null;
|
|
||||||
String pRedBC = null;
|
|
||||||
|
|
||||||
if (StringUtils.isNotBlank(db.getPicms00())) {
|
|
||||||
vBC = db.getVbc00();
|
|
||||||
pICMS = db.getPicms00();
|
|
||||||
vICMS = db.getVicms00();
|
|
||||||
} else if (StringUtils.isNotBlank(db.getPicms20())) {
|
|
||||||
vBC = db.getVbc20();
|
|
||||||
pICMS = db.getPicms20();
|
|
||||||
vICMS = db.getVicms20();
|
|
||||||
pRedBC = db.getpRedBC();
|
|
||||||
}
|
|
||||||
|
|
||||||
String vPgto = db.getVpgto();
|
|
||||||
BigDecimal valorContabil = new BigDecimal(vPgto == null ? "0.0" : vPgto);
|
|
||||||
db.setValorContabil(valorContabil);
|
|
||||||
|
|
||||||
BigDecimal valorIsenta = BigDecimal.ZERO;
|
|
||||||
valorIsenta = valorIsenta.add(isInterEstadual && !db.getIndPedadioEstdual() ? new BigDecimal(db.getVcomp02() == null ? "0.0" : db.getVcomp02()) : BigDecimal.ZERO);
|
|
||||||
valorIsenta = valorIsenta.add(!isInterEstadual && !db.getIndPedagioMunicipal() ? new BigDecimal(db.getVcomp02() == null ? "0.0" : db.getVcomp02()) : BigDecimal.ZERO);
|
|
||||||
|
|
||||||
valorIsenta = valorIsenta.add(isInterEstadual && !db.getIndTxEmbarqueEstadual() ? new BigDecimal(db.getVcomp03() == null ? "0.0" : db.getVcomp03()) : BigDecimal.ZERO);
|
|
||||||
valorIsenta = valorIsenta.add(!isInterEstadual && !db.getIndTxEmbarqueMunicipal() ? new BigDecimal(db.getVcomp03() == null ? "0.0" : db.getVcomp03()) : BigDecimal.ZERO);
|
|
||||||
|
|
||||||
valorIsenta = valorIsenta.add(isInterEstadual && !db.getIndSeguroEstadual() ? new BigDecimal(db.getVcomp04() == null ? "0.0" : db.getVcomp04()) : BigDecimal.ZERO);
|
|
||||||
valorIsenta = valorIsenta.add(!isInterEstadual && !db.getIndSeguroMunicipal() ? new BigDecimal(db.getVcomp04() == null ? "0.0" : db.getVcomp04()) : BigDecimal.ZERO);
|
|
||||||
|
|
||||||
BigDecimal baseCalculoICMS = new BigDecimal(vBC == null ? "0.0" : vBC);
|
|
||||||
db.setBaseCalculoIcms(baseCalculoICMS);
|
|
||||||
|
|
||||||
BigDecimal icms = new BigDecimal(pICMS == null ? "0.0" : pICMS);
|
|
||||||
db.setAliquota(icms);
|
|
||||||
BigDecimal valorIcms = new BigDecimal(vICMS == null ? "0.0" : vICMS);
|
|
||||||
db.setValorIcms(valorIcms);
|
|
||||||
|
|
||||||
BigDecimal outras = new BigDecimal(pRedBC == null ? "0.0" : pRedBC);
|
|
||||||
if (pRedBC != null) {
|
|
||||||
outras = MoneyHelper.subtrair(valorContabil, baseCalculoICMS);
|
|
||||||
outras = MoneyHelper.subtrair(outras, valorIsenta);
|
|
||||||
}
|
|
||||||
|
|
||||||
db.setValorOutras(outras);
|
|
||||||
db.setValorIsenta(valorIsenta);
|
|
||||||
db.setEstornoEstadual(BigDecimal.ZERO);
|
|
||||||
db.setEstornoMunicipal(BigDecimal.ZERO);
|
|
||||||
|
|
||||||
if (isInterEstadual) {
|
|
||||||
db.setEstornoEstadual(valorContabil);
|
|
||||||
} else {
|
|
||||||
db.setEstornoMunicipal(valorContabil);
|
|
||||||
}
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
|
@ -286,6 +199,201 @@ public class RelatorioDevolucaoBilhetes extends Relatorio {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void bpeResultSet(ResultSet rset, DevolucaoBilhetes db, boolean isNoXML) throws SQLException {
|
||||||
|
|
||||||
|
if (isNoXML) {
|
||||||
|
db.setChbpe(rset.getString("CHBPE"));
|
||||||
|
db.setChbpeSubstituicao(rset.getString("CHBPE_SUBSTITUICAO"));
|
||||||
|
db.setCmunini(rset.getString("CMUNINI"));
|
||||||
|
db.setCmunfim(rset.getString("CMUNFIM"));
|
||||||
|
db.setUfini(rset.getString("UFINI"));
|
||||||
|
db.setUffim(rset.getString("UFFIM"));
|
||||||
|
db.setNbp(rset.getString("NBP"));
|
||||||
|
db.setDhemb(rset.getString("DHEMB"));
|
||||||
|
db.setCst00(rset.getString("CST00"));
|
||||||
|
db.setCst20(rset.getString("CST20"));
|
||||||
|
db.setCst45(rset.getString("CST45"));
|
||||||
|
db.setCst90(rset.getString("CST90"));
|
||||||
|
db.setCstoutrauf(rset.getString("CSTOUTRAUF"));
|
||||||
|
db.setCstsn(rset.getString("CSTSN"));
|
||||||
|
db.setVbc00(rset.getString("VBC00"));
|
||||||
|
db.setPicms00(rset.getString("PICMS00"));
|
||||||
|
db.setVicms00(rset.getString("VICMS00"));
|
||||||
|
db.setVbc20(rset.getString("VBC20"));
|
||||||
|
db.setPicms20(rset.getString("PICMS20"));
|
||||||
|
db.setVicms20(rset.getString("VICMS20"));
|
||||||
|
db.setVbp(rset.getString("VBP"));
|
||||||
|
db.setVdesconto(rset.getString("VDESCONTO"));
|
||||||
|
db.setVpgto(rset.getString("VPGTO"));
|
||||||
|
db.setTpcomp01(rset.getString("TPCOMP01"));
|
||||||
|
db.setTpcomp02(rset.getString("TPCOMP02"));
|
||||||
|
db.setTpcomp03(rset.getString("TPCOMP03"));
|
||||||
|
db.setTpcomp04(rset.getString("TPCOMP04"));
|
||||||
|
db.setTpcomp05(rset.getString("TPCOMP05"));
|
||||||
|
db.setTpcomp06(rset.getString("TPCOMP06"));
|
||||||
|
db.setTpcomp99(rset.getString("TPCOMP99"));
|
||||||
|
db.setVcomp01(rset.getString("VCOMP01"));
|
||||||
|
db.setVcomp02(rset.getString("VCOMP02"));
|
||||||
|
db.setVcomp03(rset.getString("VCOMP03"));
|
||||||
|
db.setVcomp04(rset.getString("VCOMP04"));
|
||||||
|
db.setVcomp05(rset.getString("VCOMP05"));
|
||||||
|
db.setVcomp06(rset.getString("VCOMP06"));
|
||||||
|
db.setVcomp99(rset.getString("VCOMP99"));
|
||||||
|
db.setpRedBC(rset.getString("PREDBC"));
|
||||||
|
|
||||||
|
String estadoOrigem = db.getUfini();
|
||||||
|
String estadoDestino = db.getUffim();
|
||||||
|
|
||||||
|
boolean isInterEstadual = !estadoOrigem.equals(estadoDestino);
|
||||||
|
|
||||||
|
String vBC = null;
|
||||||
|
String pICMS = null;
|
||||||
|
String vICMS = null;
|
||||||
|
String pRedBC = null;
|
||||||
|
|
||||||
|
if (StringUtils.isNotBlank(db.getPicms00())) {
|
||||||
|
vBC = db.getVbc00();
|
||||||
|
pICMS = db.getPicms00();
|
||||||
|
vICMS = db.getVicms00();
|
||||||
|
} else if (StringUtils.isNotBlank(db.getPicms20())) {
|
||||||
|
vBC = db.getVbc20();
|
||||||
|
pICMS = db.getPicms20();
|
||||||
|
vICMS = db.getVicms20();
|
||||||
|
pRedBC = db.getpRedBC();
|
||||||
|
}
|
||||||
|
|
||||||
|
String vPgto = db.getVpgto();
|
||||||
|
BigDecimal valorContabil = new BigDecimal(vPgto == null ? "0.0" : vPgto);
|
||||||
|
db.setValorContabil(valorContabil);
|
||||||
|
|
||||||
|
BigDecimal valorIsenta = BigDecimal.ZERO;
|
||||||
|
valorIsenta = valorIsenta.add(isInterEstadual && !db.getIndPedadioEstdual() ? new BigDecimal(db.getVcomp02() == null ? "0.0" : db.getVcomp02()) : BigDecimal.ZERO);
|
||||||
|
valorIsenta = valorIsenta.add(!isInterEstadual && !db.getIndPedagioMunicipal() ? new BigDecimal(db.getVcomp02() == null ? "0.0" : db.getVcomp02()) : BigDecimal.ZERO);
|
||||||
|
|
||||||
|
valorIsenta = valorIsenta.add(isInterEstadual && !db.getIndTxEmbarqueEstadual() ? new BigDecimal(db.getVcomp03() == null ? "0.0" : db.getVcomp03()) : BigDecimal.ZERO);
|
||||||
|
valorIsenta = valorIsenta.add(!isInterEstadual && !db.getIndTxEmbarqueMunicipal() ? new BigDecimal(db.getVcomp03() == null ? "0.0" : db.getVcomp03()) : BigDecimal.ZERO);
|
||||||
|
|
||||||
|
valorIsenta = valorIsenta.add(isInterEstadual && !db.getIndSeguroEstadual() ? new BigDecimal(db.getVcomp04() == null ? "0.0" : db.getVcomp04()) : BigDecimal.ZERO);
|
||||||
|
valorIsenta = valorIsenta.add(!isInterEstadual && !db.getIndSeguroMunicipal() ? new BigDecimal(db.getVcomp04() == null ? "0.0" : db.getVcomp04()) : BigDecimal.ZERO);
|
||||||
|
|
||||||
|
BigDecimal baseCalculoICMS = new BigDecimal(vBC == null ? "0.0" : vBC);
|
||||||
|
db.setBaseCalculoIcms(baseCalculoICMS);
|
||||||
|
|
||||||
|
BigDecimal icms = new BigDecimal(pICMS == null ? "0.0" : pICMS);
|
||||||
|
db.setAliquota(icms);
|
||||||
|
BigDecimal valorIcms = new BigDecimal(vICMS == null ? "0.0" : vICMS);
|
||||||
|
db.setValorIcms(valorIcms);
|
||||||
|
|
||||||
|
BigDecimal outras = new BigDecimal(pRedBC == null ? "0.0" : pRedBC);
|
||||||
|
if (pRedBC != null) {
|
||||||
|
outras = MoneyHelper.subtrair(valorContabil, baseCalculoICMS);
|
||||||
|
outras = MoneyHelper.subtrair(outras, valorIsenta);
|
||||||
|
}
|
||||||
|
|
||||||
|
db.setValorOutras(outras);
|
||||||
|
db.setValorIsenta(valorIsenta);
|
||||||
|
db.setEstornoEstadual(BigDecimal.ZERO);
|
||||||
|
db.setEstornoMunicipal(BigDecimal.ZERO);
|
||||||
|
|
||||||
|
if (isInterEstadual) {
|
||||||
|
db.setEstornoEstadual(valorContabil);
|
||||||
|
} else {
|
||||||
|
db.setEstornoMunicipal(valorContabil);
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
db.setChbpe((String) rset.getObject("CHBPE"));
|
||||||
|
db.setChbpeSubstituicao((String) rset.getObject("CHBPE_SUBSTITUICAO"));
|
||||||
|
String xml = null;
|
||||||
|
|
||||||
|
String xml_bpe = rset.getNString("XML_BPE");
|
||||||
|
String xml_bpe_2 = rset.getNString("XML_BPE_2");
|
||||||
|
String xml_bpe_3 = rset.getNString("XML_BPE_3");
|
||||||
|
xml = StringUtils.join(new String[] { xml_bpe, xml_bpe_2, xml_bpe_3 });
|
||||||
|
|
||||||
|
BigDecimal valorContabil = BigDecimal.ZERO;
|
||||||
|
BigDecimal baseCalculoICMS = BigDecimal.ZERO;
|
||||||
|
BigDecimal valorIsenta = BigDecimal.ZERO;
|
||||||
|
|
||||||
|
TBPe tbpe = null;
|
||||||
|
if (StringUtils.isNotBlank(xml))
|
||||||
|
tbpe = BPeUtil.convertXmlToBpe(xml);
|
||||||
|
|
||||||
|
String estadoOrigem = (StringUtils.isNotBlank(xml) ? tbpe.getInfBPe().getIde().getUFIni().value() : db.getUf());
|
||||||
|
String estadoDestino = (StringUtils.isNotBlank(xml) ? tbpe.getInfBPe().getIde().getUFFim().value() : db.getUf());
|
||||||
|
boolean isEstadual = !estadoOrigem.equals(estadoDestino);
|
||||||
|
|
||||||
|
String vBC = null;
|
||||||
|
String pICMS = null;
|
||||||
|
String vICMS = null;
|
||||||
|
String pRedBC = null;
|
||||||
|
|
||||||
|
if (StringUtils.isNotBlank(xml)) {
|
||||||
|
if (tbpe.getInfBPe().getImp().getICMS().getICMS00() != null) {
|
||||||
|
vBC = tbpe.getInfBPe().getImp().getICMS().getICMS00().getVBC();
|
||||||
|
pICMS = tbpe.getInfBPe().getImp().getICMS().getICMS00().getPICMS();
|
||||||
|
vICMS = tbpe.getInfBPe().getImp().getICMS().getICMS00().getVICMS();
|
||||||
|
} else if (tbpe.getInfBPe().getImp().getICMS().getICMS20() != null) {
|
||||||
|
vBC = tbpe.getInfBPe().getImp().getICMS().getICMS20().getVBC();
|
||||||
|
pICMS = tbpe.getInfBPe().getImp().getICMS().getICMS20().getPICMS();
|
||||||
|
vICMS = tbpe.getInfBPe().getImp().getICMS().getICMS20().getVICMS();
|
||||||
|
pRedBC = tbpe.getInfBPe().getImp().getICMS().getICMS20().getPRedBC();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (tbpe.getInfBPe().getInfValorBPe() != null) {
|
||||||
|
|
||||||
|
String vPgto = tbpe.getInfBPe().getInfValorBPe().getVPgto();
|
||||||
|
valorContabil = new BigDecimal(vPgto == null ? "0.0" : vPgto);
|
||||||
|
|
||||||
|
for (TBPe.InfBPe.InfValorBPe.Comp comp : tbpe.getInfBPe().getInfValorBPe().getComp()) {
|
||||||
|
if (comp.getTpComp().equals(TipoComp.PEDAGIO)) {
|
||||||
|
valorIsenta = valorIsenta.add(isEstadual && !db.getIndPedadioEstdual() ? new BigDecimal(comp.getVComp() == null ? "0.0" : comp.getVComp()) : BigDecimal.ZERO);
|
||||||
|
valorIsenta = valorIsenta.add(!isEstadual && !db.getIndPedagioMunicipal() ? new BigDecimal(comp.getVComp() == null ? "0.0" : comp.getVComp()) : BigDecimal.ZERO);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (comp.getTpComp().equals(TipoComp.TAXA_EMBARQUE)) {
|
||||||
|
valorIsenta = valorIsenta.add(isEstadual && !db.getIndTxEmbarqueEstadual() ? new BigDecimal(comp.getVComp() == null ? "0.0" : comp.getVComp()) : BigDecimal.ZERO);
|
||||||
|
valorIsenta = valorIsenta.add(!isEstadual && !db.getIndTxEmbarqueMunicipal() ? new BigDecimal(comp.getVComp() == null ? "0.0" : comp.getVComp()) : BigDecimal.ZERO);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (comp.getTpComp().equals(TipoComp.SEGURO)) {
|
||||||
|
valorIsenta = valorIsenta.add(isEstadual && !db.getIndSeguroEstadual() ? new BigDecimal(comp.getVComp() == null ? "0.0" : comp.getVComp()) : BigDecimal.ZERO);
|
||||||
|
valorIsenta = valorIsenta.add(!isEstadual && !db.getIndSeguroMunicipal() ? new BigDecimal(comp.getVComp() == null ? "0.0" : comp.getVComp()) : BigDecimal.ZERO);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
db.setValorContabil(valorContabil);
|
||||||
|
|
||||||
|
baseCalculoICMS = new BigDecimal(vBC == null ? "0.0" : vBC);
|
||||||
|
db.setBaseCalculoIcms(baseCalculoICMS);
|
||||||
|
|
||||||
|
BigDecimal icms = new BigDecimal(pICMS == null ? "0.0" : pICMS);
|
||||||
|
db.setAliquota(icms);
|
||||||
|
BigDecimal valorIcms = new BigDecimal(vICMS == null ? "0.0" : vICMS);
|
||||||
|
db.setValorIcms(valorIcms);
|
||||||
|
|
||||||
|
BigDecimal outras = new BigDecimal(pRedBC == null ? "0.0" : pRedBC);
|
||||||
|
if (pRedBC != null) {
|
||||||
|
outras = valorContabil.subtract(baseCalculoICMS);
|
||||||
|
outras = outras.subtract(valorIsenta);
|
||||||
|
}
|
||||||
|
|
||||||
|
db.setValorOutras(outras);
|
||||||
|
db.setValorIsenta(valorIsenta);
|
||||||
|
db.setEstornoEstadual(BigDecimal.ZERO);
|
||||||
|
db.setEstornoMunicipal(BigDecimal.ZERO);
|
||||||
|
|
||||||
|
if (isEstadual) {
|
||||||
|
db.setEstornoEstadual(valorContabil);
|
||||||
|
} else {
|
||||||
|
db.setEstornoMunicipal(valorContabil);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private BigDecimal valorBaseCalculo(DevolucaoBilhetes det) {
|
private BigDecimal valorBaseCalculo(DevolucaoBilhetes det) {
|
||||||
BigDecimal total = BigDecimal.ZERO;
|
BigDecimal total = BigDecimal.ZERO;
|
||||||
total = total.add(det.getPrecioPagado() == null ? BigDecimal.ZERO : det.getPrecioPagado());
|
total = total.add(det.getPrecioPagado() == null ? BigDecimal.ZERO : det.getPrecioPagado());
|
||||||
|
@ -330,7 +438,7 @@ public class RelatorioDevolucaoBilhetes extends Relatorio {
|
||||||
this.setCollectionDataSource(new JRBeanCollectionDataSource(lsDev));
|
this.setCollectionDataSource(new JRBeanCollectionDataSource(lsDev));
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getSqlBpe(Integer empresaId, String puntoVentas, String estados, Date dataVendaInicial, Date dataVendaFinal, Date dataDevolucaoInicial, Date dataDevolucaoFinal, Boolean isApenasBilhetesImpressos) {
|
private String getSqlBpeNoXml(Integer empresaId, String puntoVentas, String estados, Date dataVendaInicial, Date dataVendaFinal, Date dataDevolucaoInicial, Date dataDevolucaoFinal, Boolean isApenasBilhetesImpressos) {
|
||||||
|
|
||||||
StringBuilder sql = new StringBuilder();
|
StringBuilder sql = new StringBuilder();
|
||||||
sql.append("SELECT DISTINCT ");
|
sql.append("SELECT DISTINCT ");
|
||||||
|
@ -338,7 +446,7 @@ public class RelatorioDevolucaoBilhetes extends Relatorio {
|
||||||
sql.append(" TO_CHAR(B.FECCREACION, 'DD/MM/YYYY') AS FECHOR_VENTA, ");
|
sql.append(" TO_CHAR(B.FECCREACION, 'DD/MM/YYYY') AS FECHOR_VENTA, ");
|
||||||
sql.append(" TO_CHAR(BORI.FECCREACION, 'DD/MM/YYYY') AS FECHOR_DEVOLUCAO, ");
|
sql.append(" TO_CHAR(BORI.FECCREACION, 'DD/MM/YYYY') AS FECHOR_DEVOLUCAO, ");
|
||||||
sql.append(" COALESCE(AIDF.DOCFISCAL, COALESCE(BORI.SERIEIMPFISCALORIGINAL, B.SERIEIMPFISCALORIGINAL), ");
|
sql.append(" COALESCE(AIDF.DOCFISCAL, COALESCE(BORI.SERIEIMPFISCALORIGINAL, B.SERIEIMPFISCALORIGINAL), ");
|
||||||
sql.append(" COALESCE(BORI.SERIEIMPFISCAL, B.SERIEIMPFISCAL)) AS AIDF, ");
|
sql.append(" COALESCE(BORI.SERIEIMPFISCAL, B.SERIEIMPFISCAL)) AS AIDF, ");
|
||||||
sql.append(" COALESCE(B.NUM_BPE, B.NUMFOLIOSISTEMA, B.NUMOPERACION) AS NUMFOLIOSISTEMA, ");
|
sql.append(" COALESCE(B.NUM_BPE, B.NUMFOLIOSISTEMA, B.NUMOPERACION) AS NUMFOLIOSISTEMA, ");
|
||||||
sql.append(" CASE WHEN COALESCE(BORI.SERIEIMPFISCALORIGINAL,BORI.SERIEIMPFISCAL) IS NOT NULL THEN NULL ");
|
sql.append(" CASE WHEN COALESCE(BORI.SERIEIMPFISCALORIGINAL,BORI.SERIEIMPFISCAL) IS NOT NULL THEN NULL ");
|
||||||
sql.append(" ELSE AIDF.SERIE || COALESCE(AIDF.SUBSERIE, '') END AS SERIE_SUBSERIE, ");
|
sql.append(" ELSE AIDF.SERIE || COALESCE(AIDF.SUBSERIE, '') END AS SERIE_SUBSERIE, ");
|
||||||
|
@ -450,10 +558,10 @@ public class RelatorioDevolucaoBilhetes extends Relatorio {
|
||||||
sql.append(" TO_CHAR(B.FECCREACION, 'DD/MM/YYYY') AS FECHOR_VENTA, ");
|
sql.append(" TO_CHAR(B.FECCREACION, 'DD/MM/YYYY') AS FECHOR_VENTA, ");
|
||||||
sql.append(" TO_CHAR(BORI.FECCREACION, 'DD/MM/YYYY') AS FECHOR_DEVOLUCAO, ");
|
sql.append(" TO_CHAR(BORI.FECCREACION, 'DD/MM/YYYY') AS FECHOR_DEVOLUCAO, ");
|
||||||
sql.append(" COALESCE(AIDF.DOCFISCAL, COALESCE(BORI.SERIEIMPFISCALORIGINAL, B.SERIEIMPFISCALORIGINAL), ");
|
sql.append(" COALESCE(AIDF.DOCFISCAL, COALESCE(BORI.SERIEIMPFISCALORIGINAL, B.SERIEIMPFISCALORIGINAL), ");
|
||||||
sql.append(" COALESCE(BORI.SERIEIMPFISCAL, B.SERIEIMPFISCAL)) AS AIDF, ");
|
sql.append(" COALESCE(BORI.SERIEIMPFISCAL, B.SERIEIMPFISCAL)) AS AIDF, ");
|
||||||
sql.append(" COALESCE(B.NUM_BPE, B.NUMFOLIOSISTEMA, B.NUMOPERACION) AS NUMFOLIOSISTEMA, ");
|
sql.append(" COALESCE(B.NUM_BPE, B.NUMFOLIOSISTEMA, B.NUMOPERACION) AS NUMFOLIOSISTEMA, ");
|
||||||
sql.append(" CASE WHEN COALESCE(BORI.SERIEIMPFISCALORIGINAL,BORI.SERIEIMPFISCAL) IS NOT NULL THEN NULL ");
|
sql.append(" CASE WHEN COALESCE(BORI.SERIEIMPFISCALORIGINAL,BORI.SERIEIMPFISCAL) IS NOT NULL THEN NULL ");
|
||||||
sql.append(" ELSE AIDF.SERIE || COALESCE(AIDF.SUBSERIE, '') END AS SERIE_SUBSERIE, ");
|
sql.append(" ELSE AIDF.SERIE || COALESCE(AIDF.SUBSERIE, '') END AS SERIE_SUBSERIE, ");
|
||||||
sql.append(" B.NUMFOLIOPREIMPRESO AS FOLIO, ");
|
sql.append(" B.NUMFOLIOPREIMPRESO AS FOLIO, ");
|
||||||
sql.append(" B.PRECIOBASE AS PRECIOBASE, ");
|
sql.append(" B.PRECIOBASE AS PRECIOBASE, ");
|
||||||
sql.append(" E.NOMBEMPRESA AS NOMB_EMPRESA, ");
|
sql.append(" E.NOMBEMPRESA AS NOMB_EMPRESA, ");
|
||||||
|
@ -560,15 +668,208 @@ public class RelatorioDevolucaoBilhetes extends Relatorio {
|
||||||
return sql.toString();
|
return sql.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
|
private String getSqlBpeXml(Integer empresaId, String puntoVentas, String estados, Date dataVendaInicial, Date dataVendaFinal, Date dataDevolucaoInicial, Date dataDevolucaoFinal, Boolean isApenasBilhetesImpressos) {
|
||||||
|
|
||||||
|
StringBuilder sql = new StringBuilder();
|
||||||
|
sql.append("SELECT DISTINCT ");
|
||||||
|
sql.append(" BORI.BOLETO_ID, ");
|
||||||
|
sql.append(" TO_CHAR(B.FECCREACION, 'DD/MM/YYYY') AS FECHOR_VENTA, ");
|
||||||
|
sql.append(" TO_CHAR(BORI.FECCREACION, 'DD/MM/YYYY') AS FECHOR_DEVOLUCAO, ");
|
||||||
|
sql.append(" COALESCE(AIDF.DOCFISCAL, COALESCE(BORI.SERIEIMPFISCALORIGINAL, B.SERIEIMPFISCALORIGINAL), ");
|
||||||
|
sql.append(" COALESCE(BORI.SERIEIMPFISCAL, B.SERIEIMPFISCAL)) AS AIDF, ");
|
||||||
|
sql.append(" COALESCE(B.NUM_BPE, B.NUMFOLIOSISTEMA, B.NUMOPERACION) AS NUMFOLIOSISTEMA, ");
|
||||||
|
sql.append(" CASE WHEN COALESCE(BORI.SERIEIMPFISCALORIGINAL,BORI.SERIEIMPFISCAL) IS NOT NULL THEN NULL ");
|
||||||
|
sql.append(" ELSE AIDF.SERIE || COALESCE(AIDF.SUBSERIE, '') END AS SERIE_SUBSERIE, ");
|
||||||
|
sql.append(" B.NUMFOLIOPREIMPRESO AS FOLIO, ");
|
||||||
|
sql.append(" B.PRECIOBASE AS PRECIOBASE, ");
|
||||||
|
sql.append(" E.NOMBEMPRESA AS NOMB_EMPRESA, ");
|
||||||
|
sql.append(" E.EMPRESA_ID AS EMPRESA_ID, ");
|
||||||
|
sql.append(" PTV.NUMPUNTOVENTA AS NUMPUNTOVENTA, ");
|
||||||
|
sql.append(" PTVO.NUMPUNTOVENTA AS NUMPUNTOVENTAORIGEM, ");
|
||||||
|
sql.append(" EST_BPE.NOMBESTADO AS ESTADO, ");
|
||||||
|
sql.append(" EST_BPE.CVEESTADO AS UF, ");
|
||||||
|
sql.append(" EST_BPE.ESTADO_ID AS ESTADO_ID, ");
|
||||||
|
sql.append(" COALESCE(EOS.CVEESTADO, EST.CVEESTADO) AS UF_CORRIDA, ");
|
||||||
|
sql.append(" COALESCE(EI.ICMS, EST.ICMS) AS ICMSINTERESTADUAL, ");
|
||||||
|
sql.append(" NVL(EI.ICMSIM,0) AS ICMSINTERMUNICIPAL, ");
|
||||||
|
sql.append(" EI.TRIBUTACAOIMPORTACAO AS TRIBUTACAOIMPORTACAO, ");
|
||||||
|
sql.append(" NVL(EI.PORCREDBASEICMS,0) AS PORCREDBASEICMS, ");
|
||||||
|
sql.append(" (CASE WHEN COALESCE(COS.ESTADO_ID,CO.ESTADO_ID) <> COALESCE(CDS.ESTADO_ID,CD.ESTADO_ID) THEN 1 ELSE 0 END) IS_ESTADUAL, ");
|
||||||
|
sql.append(" NVL(EI.PORCREDMUNICIPAL,0) AS PORC_MUNICIPAL, ");
|
||||||
|
sql.append(" NVL(EI.PORCREDESTADUAL,0) AS PORC_ESTADUAL, ");
|
||||||
|
sql.append(" (CASE WHEN NVL(COALESCE(POS.REGIONMETROPOLITANA_ID,ORI.REGIONMETROPOLITANA_ID) ,-1) = NVL(COALESCE(PDS.REGIONMETROPOLITANA_ID,DES.REGIONMETROPOLITANA_ID),-2) THEN 1 ELSE 0 END) AS ISENTA, ");
|
||||||
|
sql.append(" NVL(B.PRECIOPAGADO,0) AS PRECIOPAGADO, NVL(B.IMPORTEOUTROS,0) AS IMPORTEOUTROS, NVL(B.IMPORTEPEDAGIO,0) AS IMPORTEPEDAGIO, NVL(B.IMPORTESEGURO,0) AS IMPORTESEGURO, NVL(B.IMPORTETAXAEMBARQUE,0) AS IMPORTETAXAEMBARQUE, ");
|
||||||
|
sql.append(" NVL(EI.INDTARIFAMUNICIPAL,0) AS INDTARIFAMUNICIPAL, NVL(EI.INDSEGUROMUNICIPAL,0) AS INDSEGUROMUNICIPAL, NVL(EI.INDTXEMBARQUEMUNICIPAL,0) AS INDTXEMBARQUEMUNICIPAL, NVL(EI.INDPEDAGIOMUNICIPAL,0) AS INDPEDAGIOMUNICIPAL, ");
|
||||||
|
sql.append(" NVL(EI.INDTARIFAESTADUAL,0) AS INDTARIFAESTADUAL, NVL(EI.INDSEGUROESTADUAL,0) AS INDSEGUROESTADUAL, NVL(EI.INDTXEMBARQUEESTADUAL,0) AS INDTXEMBARQUEESTADUAL, NVL(EI.INDPEDAGIOESTDUAL,0) AS INDPEDAGIOESTDUAL, ");
|
||||||
|
sql.append(" NVL(B.PRECIOPAGADO,0) + NVL(B.IMPORTEOUTROS,0) + NVL(B.IMPORTEPEDAGIO,0) + NVL(B.IMPORTESEGURO,0) + NVL(B.IMPORTETAXAEMBARQUE,0) AS TOTAL, ");
|
||||||
|
sql.append(" BPE.TIPOSUBSTITUICAO, ");
|
||||||
|
sql.append(" CASE WHEN BPE.TIPOEVENTO = 110111 THEN 'CANCELAMENTO' ");
|
||||||
|
sql.append(" WHEN BPE.TIPOEVENTO IS NULL AND BPE.CHBPE_SUBSTITUICAO IS NOT NULL AND BPE.TIPOSUBSTITUICAO = '1' THEN 'REMARCACAO' ");
|
||||||
|
sql.append(" WHEN BPE.TIPOEVENTO IS NULL AND BPE.CHBPE_SUBSTITUICAO IS NOT NULL AND BPE.TIPOSUBSTITUICAO = '2' THEN 'TRANSFERENCIA' ");
|
||||||
|
sql.append(" WHEN BPE.TIPOEVENTO IS NULL AND BPE.CHBPE_SUBSTITUICAO IS NOT NULL AND BPE.TIPOSUBSTITUICAO = '3' THEN 'TRANSFERENCIA/REMARCACAO' ELSE '' END AS TIPO_SIT, ");
|
||||||
|
sql.append(" BPEORI.CHBPE AS CHBPE, ");
|
||||||
|
sql.append(" BPE.CHBPE AS CHBPE_SUBSTITUICAO, ");
|
||||||
|
sql.append(" DBMS_LOB.SUBSTR((CASE WHEN BPEORI.TIPOEVENTO IS NOT NULL THEN BPEANT.XMLREGULAR ELSE BPEORI.XMLREGULAR END), 3000) AS XML_BPE, ");
|
||||||
|
sql.append(" DBMS_LOB.SUBSTR((CASE WHEN BPEORI.TIPOEVENTO IS NOT NULL THEN BPEANT.XMLREGULAR ELSE BPEORI.XMLREGULAR END), 3000, 3001) AS XML_BPE_2, ");
|
||||||
|
sql.append(" DBMS_LOB.SUBSTR((CASE WHEN BPEORI.TIPOEVENTO IS NOT NULL THEN BPEANT.XMLREGULAR ELSE BPEORI.XMLREGULAR END), 3000, 6001) AS XML_BPE_3 ");
|
||||||
|
sql.append("FROM BOLETO BORI ");
|
||||||
|
sql.append(" INNER JOIN MARCA M ON M.MARCA_ID = BORI.MARCA_ID AND M.ACTIVO = 1 ");
|
||||||
|
sql.append(" INNER JOIN EMPRESA E ON E.EMPRESA_ID = M.EMPRESA_ID ");
|
||||||
|
sql.append(" INNER JOIN BPE BPE ON BPE.BOLETO_ID = BORI.BOLETO_ID ");
|
||||||
|
sql.append(" AND BPE.ACTIVO = (CASE WHEN BORI.MOTIVOCANCELACION_ID = 17 AND BORI.BOLETOORIGINAL_ID IS NULL THEN 0 ELSE 1 END) ");
|
||||||
|
sql.append(" INNER JOIN ESTADO EST_BPE ON BPE.UF = EST_BPE.CODIBGE ");
|
||||||
|
sql.append(" LEFT JOIN BPE BPEORI ON BPEORI.CHBPE = BPE.CHBPE_SUBSTITUICAO ");
|
||||||
|
sql.append(" AND BPEORI.ACTIVO = (CASE WHEN BORI.MOTIVOCANCELACION_ID = 17 AND BORI.BOLETOORIGINAL_ID IS NULL THEN 0 ELSE 1 END) ");
|
||||||
|
sql.append(" LEFT JOIN BOLETO B ON B.BOLETO_ID = BPEORI.BOLETO_ID ");
|
||||||
|
sql.append(" INNER JOIN PUNTO_VENTA PTV ON PTV.PUNTOVENTA_ID = B.PUNTOVENTA_ID ");
|
||||||
|
sql.append(" INNER JOIN PARADA ORI ON (B.ORIGEN_ID = ORI.PARADA_ID ) ");
|
||||||
|
sql.append(" INNER JOIN PARADA DES ON (B.DESTINO_ID = DES.PARADA_ID ) ");
|
||||||
|
sql.append(" INNER JOIN CIUDAD CO ON (CO.CIUDAD_ID = ORI.CIUDAD_ID ) ");
|
||||||
|
sql.append(" INNER JOIN CIUDAD CD ON (CD.CIUDAD_ID = DES.CIUDAD_ID ) ");
|
||||||
|
sql.append(" INNER JOIN ESTADO EST ON EST.ESTADO_ID = CO.ESTADO_ID ");
|
||||||
|
sql.append(" LEFT JOIN ALIAS_SERVICO S ON S.ORIGEN_ID = B.ORIGEN_ID ");
|
||||||
|
sql.append(" AND S.DESTINO_ID = B.DESTINO_ID AND (S.CORRIDA_ID = B.CORRIDA_ID OR S.CORRIDA_ID IS NULL) ");
|
||||||
|
sql.append(" AND S.RUTA_ID = B.RUTA_ID ");
|
||||||
|
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 ");
|
||||||
|
sql.append(" LEFT JOIN PARADA PDS ON PDS.PARADA_ID = S.ALIASDESTINO_ID ");
|
||||||
|
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(" JOIN INSCRICAO_ESTADUAL IE ON E.EMPRESA_ID = IE.EMPRESA_ID ");
|
||||||
|
sql.append(" AND IE.ESTADO_ID = COALESCE(EOS.ESTADO_ID, EST.ESTADO_ID) AND IE.ACTIVO = 1 ");
|
||||||
|
sql.append(" JOIN EMPRESA_IMPOSTO EI ON EI.EMPRESA_ID = E.EMPRESA_ID ");
|
||||||
|
sql.append(" AND EI.ESTADO_ID = COALESCE(EOS.ESTADO_ID, EST.ESTADO_ID) AND EI.ACTIVO = 1 ");
|
||||||
|
sql.append(" LEFT JOIN AIDF AIDF ON AIDF.AIDF_ID = B.AIDF_ID AND B.TIPOVENTA_ID = 3 ");
|
||||||
|
sql.append(" LEFT JOIN ESTADO ESAIDF ON ESAIDF.ESTADO_ID = AIDF.ESTADO_ID ");
|
||||||
|
sql.append(" LEFT JOIN BOLETO BANT ON BANT.BOLETO_ID = (CASE WHEN BPEORI.TIPOEVENTO IS NOT NULL THEN COALESCE(B.BOLETOANTERIOR_ID, B.BOLETOORIGINAL_ID) ELSE NULL END) ");
|
||||||
|
sql.append(" LEFT JOIN BPE BPEANT ON BPEANT.BOLETO_ID = BANT.BOLETO_ID ");
|
||||||
|
sql.append(" AND BPEANT.ACTIVO = (CASE WHEN BORI.MOTIVOCANCELACION_ID = 17 AND BORI.BOLETOORIGINAL_ID IS NULL THEN 0 ELSE 1 END) ");
|
||||||
|
sql.append(" LEFT JOIN PUNTO_VENTA PTVO ON PTVO.PUNTOVENTA_ID = COALESCE(BANT.PUNTOVENTA_ID, BORI.PUNTOVENTA_ID,B.PTOVTAVENTA_ID) ");
|
||||||
|
sql.append("WHERE (BPE.CODSTAT IN ('-1','100','101','102','135','150') AND BPE.CHBPE_SUBSTITUICAO IS NOT NULL ");
|
||||||
|
sql.append(" OR (BPE.CODSTAT IN ('101','135') AND TO_CHAR(B.FECCREACION, 'MM/YYYY') < TO_CHAR(BORI.FECCREACION, 'MM/YYYY')) ) ");
|
||||||
|
sql.append(" AND (BPE.CODSTAT IN ('-1','100','101','102','135','150') AND BPE.TIPOEVENTO <> '110115' OR BPE.TIPOEVENTO IS NULL) ");
|
||||||
|
sql.append(" AND (BPEORI.CODSTAT IN ('-1','100','101','102','135','150') AND BPEORI.TIPOEVENTO <> '110115' OR BPEORI.TIPOEVENTO IS NULL) ");
|
||||||
|
if (dataDevolucaoInicial != null) {
|
||||||
|
sql.append("AND BORI.FECCREACION >= TO_DATE(:dataDevolucaoInicial,'DD/MM/YYYY HH24:MI') ");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dataDevolucaoFinal != null) {
|
||||||
|
sql.append("AND BORI.FECCREACION <= TO_DATE(:dataDevolucaoFinal,'DD/MM/YYYY HH24:MI') ");
|
||||||
|
}
|
||||||
|
|
||||||
|
sql.append(estados == null ? "" : "AND EST_BPE.ESTADO_ID IN (" + estados + ") ");
|
||||||
|
sql.append(puntoVentas == null ? "" : "AND PTV.PUNTOVENTA_ID IN (" + puntoVentas + ") ");
|
||||||
|
sql.append(empresaId == null ? "" : "AND E.EMPRESA_ID IN (" + empresaId + ") ");
|
||||||
|
|
||||||
|
sql.append(" UNION ALL ");
|
||||||
|
|
||||||
|
sql.append("SELECT DISTINCT ");
|
||||||
|
sql.append(" BORI.BOLETO_ID, ");
|
||||||
|
sql.append(" TO_CHAR(B.FECCREACION, 'DD/MM/YYYY') AS FECHOR_VENTA, ");
|
||||||
|
sql.append(" TO_CHAR(BORI.FECCREACION, 'DD/MM/YYYY') AS FECHOR_DEVOLUCAO, ");
|
||||||
|
sql.append(" COALESCE(AIDF.DOCFISCAL, COALESCE(BORI.SERIEIMPFISCALORIGINAL, B.SERIEIMPFISCALORIGINAL), ");
|
||||||
|
sql.append(" COALESCE(BORI.SERIEIMPFISCAL, B.SERIEIMPFISCAL)) AS AIDF, ");
|
||||||
|
sql.append(" COALESCE(B.NUM_BPE, B.NUMFOLIOSISTEMA, B.NUMOPERACION) AS NUMFOLIOSISTEMA, ");
|
||||||
|
sql.append(" CASE WHEN COALESCE(BORI.SERIEIMPFISCALORIGINAL,BORI.SERIEIMPFISCAL) IS NOT NULL THEN NULL ");
|
||||||
|
sql.append(" ELSE AIDF.SERIE || COALESCE(AIDF.SUBSERIE, '') END AS SERIE_SUBSERIE, ");
|
||||||
|
sql.append(" B.NUMFOLIOPREIMPRESO AS FOLIO, ");
|
||||||
|
sql.append(" B.PRECIOBASE AS PRECIOBASE, ");
|
||||||
|
sql.append(" E.NOMBEMPRESA AS NOMB_EMPRESA, ");
|
||||||
|
sql.append(" E.EMPRESA_ID AS EMPRESA_ID, ");
|
||||||
|
sql.append(" PTV.NUMPUNTOVENTA AS NUMPUNTOVENTA, ");
|
||||||
|
sql.append(" PTVO.NUMPUNTOVENTA AS NUMPUNTOVENTAORIGEM, ");
|
||||||
|
sql.append(" EST_BPE.NOMBESTADO AS ESTADO, ");
|
||||||
|
sql.append(" EST_BPE.CVEESTADO AS UF, ");
|
||||||
|
sql.append(" EST_BPE.ESTADO_ID AS ESTADO_ID, ");
|
||||||
|
sql.append(" COALESCE(EOS.CVEESTADO, EST.CVEESTADO) AS UF_CORRIDA, ");
|
||||||
|
sql.append(" COALESCE(EI.ICMS, EST.ICMS) AS ICMSINTERESTADUAL, ");
|
||||||
|
sql.append(" NVL(EI.ICMSIM,0) AS ICMSINTERMUNICIPAL, ");
|
||||||
|
sql.append(" EI.TRIBUTACAOIMPORTACAO AS TRIBUTACAOIMPORTACAO, ");
|
||||||
|
sql.append(" NVL(EI.PORCREDBASEICMS,0) AS PORCREDBASEICMS, ");
|
||||||
|
sql.append(" (CASE WHEN COALESCE(COS.ESTADO_ID,CO.ESTADO_ID) <> COALESCE(CDS.ESTADO_ID,CD.ESTADO_ID) THEN 1 ELSE 0 END) IS_ESTADUAL, ");
|
||||||
|
sql.append(" NVL(EI.PORCREDMUNICIPAL,0) AS PORC_MUNICIPAL, ");
|
||||||
|
sql.append(" NVL(EI.PORCREDESTADUAL,0) AS PORC_ESTADUAL, ");
|
||||||
|
sql.append(" (CASE WHEN NVL(COALESCE(POS.REGIONMETROPOLITANA_ID,ORI.REGIONMETROPOLITANA_ID) ,-1) = NVL(COALESCE(PDS.REGIONMETROPOLITANA_ID,DES.REGIONMETROPOLITANA_ID),-2) THEN 1 ELSE 0 END) AS ISENTA, ");
|
||||||
|
sql.append(" NVL(B.PRECIOPAGADO,0) AS PRECIOPAGADO, NVL(B.IMPORTEOUTROS,0) AS IMPORTEOUTROS, NVL(B.IMPORTEPEDAGIO,0) AS IMPORTEPEDAGIO, NVL(B.IMPORTESEGURO,0) AS IMPORTESEGURO, NVL(B.IMPORTETAXAEMBARQUE,0) AS IMPORTETAXAEMBARQUE, ");
|
||||||
|
sql.append(" NVL(EI.INDTARIFAMUNICIPAL,0) AS INDTARIFAMUNICIPAL, NVL(EI.INDSEGUROMUNICIPAL,0) AS INDSEGUROMUNICIPAL, NVL(EI.INDTXEMBARQUEMUNICIPAL,0) AS INDTXEMBARQUEMUNICIPAL, NVL(EI.INDPEDAGIOMUNICIPAL,0) AS INDPEDAGIOMUNICIPAL, ");
|
||||||
|
sql.append(" NVL(EI.INDTARIFAESTADUAL,0) AS INDTARIFAESTADUAL, NVL(EI.INDSEGUROESTADUAL,0) AS INDSEGUROESTADUAL, NVL(EI.INDTXEMBARQUEESTADUAL,0) AS INDTXEMBARQUEESTADUAL, NVL(EI.INDPEDAGIOESTDUAL,0) AS INDPEDAGIOESTDUAL, ");
|
||||||
|
sql.append(" NVL(B.PRECIOPAGADO,0) + NVL(B.IMPORTEOUTROS,0) + NVL(B.IMPORTEPEDAGIO,0) + NVL(B.IMPORTESEGURO,0) + NVL(B.IMPORTETAXAEMBARQUE,0) AS TOTAL, ");
|
||||||
|
sql.append(" BPE.TIPOSUBSTITUICAO, ");
|
||||||
|
sql.append(" CASE WHEN BPE.TIPOEVENTO = 110111 THEN 'CANCELAMENTO' ");
|
||||||
|
sql.append(" WHEN BPE.TIPOEVENTO IS NULL AND BPE.CHBPE_SUBSTITUICAO IS NOT NULL AND BPE.TIPOSUBSTITUICAO = '1' THEN 'REMARCACAO' ");
|
||||||
|
sql.append(" WHEN BPE.TIPOEVENTO IS NULL AND BPE.CHBPE_SUBSTITUICAO IS NOT NULL AND BPE.TIPOSUBSTITUICAO = '2' THEN 'TRANSFERENCIA' ");
|
||||||
|
sql.append(" WHEN BPE.TIPOEVENTO IS NULL AND BPE.CHBPE_SUBSTITUICAO IS NOT NULL AND BPE.TIPOSUBSTITUICAO = '3' THEN 'TRANSFERENCIA/REMARCACAO' ELSE '' END AS TIPO_SIT, ");
|
||||||
|
sql.append(" BPEORI.CHBPE AS CHBPE, ");
|
||||||
|
sql.append(" '' AS CHBPE_SUBSTITUICAO, ");
|
||||||
|
sql.append(" DBMS_LOB.SUBSTR((CASE WHEN BPEORI.TIPOEVENTO IS NOT NULL THEN BPEANT.XMLREGULAR ELSE BPEORI.XMLREGULAR END), 3000) AS XML_BPE, ");
|
||||||
|
sql.append(" DBMS_LOB.SUBSTR((CASE WHEN BPEORI.TIPOEVENTO IS NOT NULL THEN BPEANT.XMLREGULAR ELSE BPEORI.XMLREGULAR END), 3000, 3001) AS XML_BPE_2, ");
|
||||||
|
sql.append(" DBMS_LOB.SUBSTR((CASE WHEN BPEORI.TIPOEVENTO IS NOT NULL THEN BPEANT.XMLREGULAR ELSE BPEORI.XMLREGULAR END), 3000, 6001) AS XML_BPE_3 ");
|
||||||
|
sql.append("FROM BOLETO BORI ");
|
||||||
|
sql.append(" INNER JOIN MARCA M ON M.MARCA_ID = BORI.MARCA_ID AND M.ACTIVO = 1 ");
|
||||||
|
sql.append(" INNER JOIN EMPRESA E ON E.EMPRESA_ID = M.EMPRESA_ID ");
|
||||||
|
sql.append(" INNER JOIN BPE BPE ON BPE.BOLETO_ID = BORI.BOLETO_ID ");
|
||||||
|
sql.append(" AND BPE.ACTIVO = (CASE WHEN BORI.MOTIVOCANCELACION_ID = 17 AND BORI.BOLETOORIGINAL_ID IS NULL THEN 0 ELSE 1 END) ");
|
||||||
|
sql.append(" INNER JOIN ESTADO EST_BPE ON BPE.UF = EST_BPE.CODIBGE ");
|
||||||
|
sql.append(" LEFT JOIN BOLETO B ON B.BOLETO_ID = (CASE WHEN BORI.MOTIVOCANCELACION_ID = 99 THEN BORI.BOLETOANTERIOR_ID ELSE BORI.BOLETOORIGINAL_ID END) ");
|
||||||
|
sql.append(" LEFT JOIN BPE BPEORI ON B.BOLETO_ID = BPEORI.BOLETO_ID ");
|
||||||
|
sql.append(" AND BPEORI.ACTIVO = (CASE WHEN BORI.MOTIVOCANCELACION_ID = 17 AND BORI.BOLETOORIGINAL_ID IS NULL THEN 0 ELSE 1 END) ");
|
||||||
|
sql.append(" INNER JOIN PUNTO_VENTA PTV ON PTV.PUNTOVENTA_ID = BORI.PUNTOVENTA_ID ");
|
||||||
|
sql.append(" INNER JOIN PARADA ORI ON (B.ORIGEN_ID = ORI.PARADA_ID ) ");
|
||||||
|
sql.append(" INNER JOIN PARADA DES ON (B.DESTINO_ID = DES.PARADA_ID ) ");
|
||||||
|
sql.append(" INNER JOIN CIUDAD CO ON (CO.CIUDAD_ID = ORI.CIUDAD_ID ) ");
|
||||||
|
sql.append(" INNER JOIN CIUDAD CD ON (CD.CIUDAD_ID = DES.CIUDAD_ID ) ");
|
||||||
|
sql.append(" INNER JOIN ESTADO EST ON EST.ESTADO_ID = CO.ESTADO_ID ");
|
||||||
|
sql.append("LEFT JOIN ALIAS_SERVICO S ON S.ORIGEN_ID = B.ORIGEN_ID ");
|
||||||
|
sql.append(" AND S.DESTINO_ID = B.DESTINO_ID AND (S.CORRIDA_ID = B.CORRIDA_ID OR S.CORRIDA_ID IS NULL) ");
|
||||||
|
sql.append(" AND S.RUTA_ID = B.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 ");
|
||||||
|
sql.append("LEFT JOIN PARADA PDS ON PDS.PARADA_ID = S.ALIASDESTINO_ID ");
|
||||||
|
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("JOIN INSCRICAO_ESTADUAL IE ON E.EMPRESA_ID = IE.EMPRESA_ID ");
|
||||||
|
sql.append(" AND IE.ESTADO_ID = COALESCE(EOS.ESTADO_ID, EST.ESTADO_ID) AND IE.ACTIVO = 1 ");
|
||||||
|
sql.append("JOIN EMPRESA_IMPOSTO EI ON EI.EMPRESA_ID = E.EMPRESA_ID ");
|
||||||
|
sql.append(" AND EI.ESTADO_ID = COALESCE(EOS.ESTADO_ID, EST.ESTADO_ID) AND EI.ACTIVO = 1 ");
|
||||||
|
sql.append("LEFT JOIN AIDF AIDF ON AIDF.AIDF_ID = B.AIDF_ID AND B.TIPOVENTA_ID = 3 ");
|
||||||
|
sql.append("LEFT JOIN ESTADO ESAIDF ON ESAIDF.ESTADO_ID = AIDF.ESTADO_ID ");
|
||||||
|
sql.append("LEFT JOIN BOLETO BANT ON BANT.BOLETO_ID = (CASE WHEN BPEORI.TIPOEVENTO IS NOT NULL THEN COALESCE(B.BOLETOANTERIOR_ID, B.BOLETOORIGINAL_ID) ELSE NULL END) ");
|
||||||
|
sql.append("LEFT JOIN BPE BPEANT ON BPEANT.BOLETO_ID = BANT.BOLETO_ID ");
|
||||||
|
sql.append(" AND BPEANT.ACTIVO = (CASE WHEN BORI.MOTIVOCANCELACION_ID = 17 AND BORI.BOLETOORIGINAL_ID IS NULL THEN 0 ELSE 1 END) ");
|
||||||
|
sql.append("LEFT JOIN PUNTO_VENTA PTVO ON PTVO.PUNTOVENTA_ID = COALESCE(BANT.PUNTOVENTA_ID, BORI.PUNTOVENTA_ID,B.PTOVTAVENTA_ID) ");
|
||||||
|
sql.append("WHERE ");
|
||||||
|
sql.append(" (BPE.CODSTAT IN ('101','135') AND TO_CHAR(B.FECCREACION, 'MM/YYYY') < TO_CHAR(BORI.FECCREACION, 'MM/YYYY')) ");
|
||||||
|
sql.append(" AND (BPE.CODSTAT IN ('-1','100','101','102','135','150') AND BPE.TIPOEVENTO <> '110115' OR BPE.TIPOEVENTO IS NULL) ");
|
||||||
|
sql.append(" AND (BPEORI.CODSTAT IN ('-1','100','101','102','135','150') AND BPEORI.TIPOEVENTO <> '110115' OR BPEORI.TIPOEVENTO IS NULL) ");
|
||||||
|
if (dataDevolucaoInicial != null) {
|
||||||
|
sql.append("AND BORI.FECCREACION >= TO_DATE(:dataDevolucaoInicial,'DD/MM/YYYY HH24:MI') ");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dataDevolucaoFinal != null) {
|
||||||
|
sql.append("AND BORI.FECCREACION <= TO_DATE(:dataDevolucaoFinal,'DD/MM/YYYY HH24:MI') ");
|
||||||
|
}
|
||||||
|
|
||||||
|
sql.append(estados == null ? "" : "AND EST_BPE.ESTADO_ID IN (" + estados + ") ");
|
||||||
|
sql.append(puntoVentas == null ? "" : "AND PTV.PUNTOVENTA_ID IN (" + puntoVentas + ") ");
|
||||||
|
sql.append(empresaId == null ? "" : "AND E.EMPRESA_ID IN (" + empresaId + ") ");
|
||||||
|
|
||||||
|
sql.append("ORDER BY NOMB_EMPRESA, ESTADO, UF, FECHOR_DEVOLUCAO, NUMFOLIOSISTEMA");
|
||||||
|
|
||||||
|
return sql.toString();
|
||||||
|
}
|
||||||
|
|
||||||
private String getSql(Integer empresaId, String puntoVentas, String estados, Date dataVendaInicial, Date dataVendaFinal, Date dataDevolucaoInicial, Date dataDevolucaoFinal, Boolean isApenasBilhetesImpressos) {
|
private String getSql(Integer empresaId, String puntoVentas, String estados, Date dataVendaInicial, Date dataVendaFinal, Date dataDevolucaoInicial, Date dataDevolucaoFinal, Boolean isApenasBilhetesImpressos) {
|
||||||
|
|
||||||
StringBuilder sql = new StringBuilder();
|
StringBuilder sql = new StringBuilder();
|
||||||
sql.append("SELECT DISTINCT ");
|
sql.append("SELECT DISTINCT ");
|
||||||
sql.append(" COALESCE(AIDF.DOCFISCAL, COALESCE(BORI.SERIEIMPFISCALORIGINAL, B.SERIEIMPFISCALORIGINAL), ");
|
sql.append(" COALESCE(AIDF.DOCFISCAL, COALESCE(BORI.SERIEIMPFISCALORIGINAL, B.SERIEIMPFISCALORIGINAL), ");
|
||||||
sql.append(" COALESCE(BORI.SERIEIMPFISCAL, B.SERIEIMPFISCAL)) AS AIDF, ");
|
sql.append(" COALESCE(BORI.SERIEIMPFISCAL, B.SERIEIMPFISCAL)) AS AIDF, ");
|
||||||
sql.append(" COALESCE(B.NUMFOLIOSISTEMA, B.NUMOPERACION) AS NUMFOLIOSISTEMA, ");
|
sql.append(" COALESCE(B.NUMFOLIOSISTEMA, B.NUMOPERACION) AS NUMFOLIOSISTEMA, ");
|
||||||
sql.append(" CASE WHEN COALESCE(BORI.SERIEIMPFISCALORIGINAL,BORI.SERIEIMPFISCAL) IS NOT NULL THEN NULL ");
|
sql.append(" CASE WHEN COALESCE(BORI.SERIEIMPFISCALORIGINAL,BORI.SERIEIMPFISCAL) IS NOT NULL THEN NULL ");
|
||||||
sql.append(" ELSE AIDF.SERIE || COALESCE(AIDF.SUBSERIE, '') END AS SERIE_SUBSERIE, ");
|
sql.append(" ELSE AIDF.SERIE || COALESCE(AIDF.SUBSERIE, '') END AS SERIE_SUBSERIE, ");
|
||||||
sql.append(" B.NUMFOLIOPREIMPRESO AS FOLIO, ");
|
sql.append(" B.NUMFOLIOPREIMPRESO AS FOLIO, ");
|
||||||
sql.append(" B.PRECIOBASE AS PRECIOBASE, ");
|
sql.append(" B.PRECIOBASE AS PRECIOBASE, ");
|
||||||
sql.append(" E.NOMBEMPRESA AS NOMB_EMPRESA, ");
|
sql.append(" E.NOMBEMPRESA AS NOMB_EMPRESA, ");
|
||||||
|
|
|
@ -88,6 +88,7 @@ public class RelatorioDevolucaoBilhetesController extends MyGenericForwardCompos
|
||||||
private Checkbox chkApenasBilhetesImpressos;
|
private Checkbox chkApenasBilhetesImpressos;
|
||||||
private boolean bpe;
|
private boolean bpe;
|
||||||
private boolean viewFiltros;
|
private boolean viewFiltros;
|
||||||
|
private Checkbox consultaOtimizada;
|
||||||
|
|
||||||
public boolean isViewFiltros() {
|
public boolean isViewFiltros() {
|
||||||
return viewFiltros;
|
return viewFiltros;
|
||||||
|
@ -144,6 +145,7 @@ public class RelatorioDevolucaoBilhetesController extends MyGenericForwardCompos
|
||||||
|
|
||||||
parametros.put("USUARIO", UsuarioLogado.getUsuarioLogado().getClaveUsuario());
|
parametros.put("USUARIO", UsuarioLogado.getUsuarioLogado().getClaveUsuario());
|
||||||
parametros.put("isBpe", bpe);
|
parametros.put("isBpe", bpe);
|
||||||
|
parametros.put("isConsultaOtimizada", consultaOtimizada.isChecked());
|
||||||
|
|
||||||
filtro.append("Agência(s): ");
|
filtro.append("Agência(s): ");
|
||||||
if (puntoVentaSelList.getListData().size() > 0) {
|
if (puntoVentaSelList.getListData().size() > 0) {
|
||||||
|
|
|
@ -137,6 +137,10 @@
|
||||||
value="${c:l('relatorioDevolucaoBilhetesAgenciaController.lbApenasBilhetesImpressos')}" />
|
value="${c:l('relatorioDevolucaoBilhetesAgenciaController.lbApenasBilhetesImpressos')}" />
|
||||||
<checkbox id="chkApenasBilhetesImpressos"/>
|
<checkbox id="chkApenasBilhetesImpressos"/>
|
||||||
</row>
|
</row>
|
||||||
|
|
||||||
|
<row spans="4" visible="@{winFiltroRelatorioDevolucaoBilhetes$composer.bpe}">
|
||||||
|
<checkbox id="consultaOtimizada" checked="false" label="Consulta Otimizada" />
|
||||||
|
</row>
|
||||||
|
|
||||||
</rows>
|
</rows>
|
||||||
</grid>
|
</grid>
|
||||||
|
|
Loading…
Reference in New Issue