diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/BpeHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/BpeHibernateDAO.java index 6476eaa89..e60831fd8 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/BpeHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/BpeHibernateDAO.java @@ -29,6 +29,8 @@ import com.rjconsultores.ventaboletos.utilerias.fiscal.vo.FiscalRdi; import com.rjconsultores.ventaboletos.utilerias.fiscal.vo.RdiValidacion; import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; +import br.inf.portalfiscal.bpe.TBPe; + @Repository("bpeDAO") public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO { private static Logger log = Logger.getLogger(BpeHibernateDAO.class); @@ -50,7 +52,7 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO { StringBuilder sql = new StringBuilder(); sql.append("select distinct "); sql.append(" c.boleto_id, "); - sql.append(" coalesce(c.num_bpe, c.numfoliosistema) as num_bpe, "); + sql.append(" coalesce(c.num_bpe, c.numfoliosistema) as num_bpe, "); sql.append(" c.numfoliosistema as numfoliosistema, "); sql.append(" coalesce(c.preciopagado,0) + coalesce(c.importetaxaembarque,0) + coalesce(c.importeseguro,0) + coalesce(c.importepedagio,0) + coalesce(c.importeoutros,0) as valortotal, "); sql.append(" bpe.codstat as codstatus, "); @@ -62,7 +64,7 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO { sql.append(" bpe.chbpe, "); sql.append(" coalesce(chbpe_substituicao, ' ') as chbpe_sub, "); sql.append(" to_char(c.feccreacion, 'yyyymmdd') as dhrecbto, "); - sql.append(" coalesce(to_char(c.fechorviaje, 'yyyymmdd'), to_char(to_timestamp_tz(bpe.dhvalidade, 'YYYY-MM-DD" + "\"T\"" + "HH24:MI:SSTZH:TZM'), 'yyyymmdd')) as dh_emisao, "); + sql.append(" coalesce(to_char(c.fechorviaje, 'yyyymmdd'), to_char(to_timestamp_tz(bpe.dhvalidade, 'YYYY-MM-DD" + "\"T\"" + "HH24:MI:SSTZH:TZM'), 'yyyymmdd')) as dh_emisao, "); sql.append(" coalesce(bpe.tiposubstituicao, '0') as tp_bpe, "); sql.append(" bpe.retorno_id as retorno, "); sql.append(" bpe.nprot, "); @@ -86,7 +88,7 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO { sql.append(" join bpe bpe on c.boleto_id = bpe.boleto_id "); sql.append(" join estado e on e.codibge = bpe.uf "); sql.append(" join marca ma on c.marca_id = ma.marca_id "); - sql.append(" join empresa ep on ma.empresa_id = ep.empresa_id "); + sql.append(" join empresa ep on ma.empresa_id = ep.empresa_id "); sql.append(" join ruta r on r.ruta_id = c.ruta_id "); sql.append(" left join alias_servico ase on ase.origen_id = c.origen_id "); sql.append(" and ase.destino_id = c.destino_id and ase.ruta_id = c.ruta_id and ase.activo = 1 and ase.corrida_id is null "); @@ -99,12 +101,12 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO { sql.append(" left join empresa_imposto ei on ei.empresa_id = ep.empresa_id and ei.estado_id = e.estado_id "); sql.append("where c.activo = 1 and e.activo = 1 and ei.activo = 1 "); sql.append(" and bpe.tipoamb = 1 and ep.activo = 1 "); -// sql.append(" and bpe.errocontingencia is null "); - //sql.append(" and bpe.codstat <> 150 "); // não deve ser enviados os registros de contigencia + // sql.append(" and bpe.errocontingencia is null "); + // sql.append(" and bpe.codstat <> 150 "); // não deve ser enviados os registros de contigencia sql.append(" and (tipoevento <> 110115 or tipoevento is null) "); sql.append(" and (case when ei.indtribviagem = 1 then c.fechorviaje else c.feccreacion end) >= to_date(?,'DD/MM/YYYY HH24:MI:SS') "); sql.append(" and (case when ei.indtribviagem = 1 then c.fechorviaje else c.feccreacion end) <= to_date(?,'DD/MM/YYYY HH24:MI:SS')"); - sql.append(" and ep.empresa_id = ? "); + sql.append(" and ep.empresa_id = ? "); sql.append(" and e.cveestado = ? "); sql.append("order by to_number(c.numfoliosistema), to_number(num_bpe), dhrecbto "); @@ -246,7 +248,7 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO { String xml_bpe_2 = rs.getNString("xml_bpe_2"); String xml_bpe_3 = rs.getNString("xml_bpe_3"); String[] array = new String[3]; - array[0] = xml_bpe; + array[0] = xml_bpe; array[1] = xml_bpe_2; array[2] = xml_bpe_3; xmlBpe = StringUtils.join(array); @@ -469,7 +471,35 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO { ResultSet rs = ps.executeQuery(); while (rs.next()) { + String xml_bpe = rs.getNString("xml_bpe"); + String xml_bpe_2 = rs.getNString("xml_bpe_2"); + String xml_bpe_3 = rs.getNString("xml_bpe_3"); + String[] array = new String[3]; + array[0] = xml_bpe; + array[1] = xml_bpe_2; + array[2] = xml_bpe_3; + String xml = StringUtils.join(array); + + ExportacaoBPEVo exportacaoBPEVo = new ExportacaoBPEVo(); + TBPe tbpe = null; + if (StringUtils.isNotBlank(xml)) + tbpe = exportacaoBPEVo.convertXmlToBpe(xml); + DetalhadoFiscal df = new DetalhadoFiscal(); + + String municipioOrigem = StringUtils.isNotBlank(xml) ? tbpe.getInfBPe().getIde().getCMunIni() : rs.getString("municipioOrigem"); + // String municipioDestino = StringUtils.isNotBlank(xml) ? tbpe.getInfBPe().getIde().getCMunFim() : null; + String estadoOrigem = (StringUtils.isNotBlank(xml) ? tbpe.getInfBPe().getIde().getUFIni().value() : rs.getString("estadoOrigem")); + String estadoDestino = (StringUtils.isNotBlank(xml) ? tbpe.getInfBPe().getIde().getUFFim().value() : rs.getString("estadoDestino")); + + boolean isInterEstadual = !estadoOrigem.equals(estadoDestino); + + df.setEstadoOrigem(estadoOrigem ); + df.setEstadoDestino(estadoDestino); + + df.setMunicipioOrigem(municipioOrigem); + df.setInterEstadual(isInterEstadual); + df.setCajaId(rs.getLong("cajaId")); df.setTipoReceita(rs.getString("tipoReceita")); df.setNumoperacion(rs.getString("numoperacion")); @@ -477,10 +507,7 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO { df.setFechorVenta(rs.getDate("fechorVenta")); df.setIcmsInterestadual(rs.getBigDecimal("icmsInterestadual")); df.setIcmsIntermunicipal(rs.getBigDecimal("icmsIntermunicipal")); - df.setEstadoOrigem(rs.getString("estadoOrigem")); - df.setEstadoDestino(rs.getString("estadoDestino")); - df.setMunicipioOrigem(rs.getString("municipioOrigem")); - df.setInterEstadual(rs.getBoolean("isInterEstadual")); + df.setIcmsInterestadual(rs.getBigDecimal("icmsInterestadual")); df.setRedBaseCalcIcms(rs.getBigDecimal("redBaseCalcIcms")); df.setPorcRedMunicipal(rs.getBigDecimal("porcRedMunicipal")); @@ -494,13 +521,17 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO { df.setIndSeguroEstadual(rs.getBoolean("indseguroestadual")); df.setIndTxembarqueEstadual(rs.getBoolean("indtxembarqueestadual")); df.setIndPedagioEstdual(rs.getBoolean("indpedagioestdual")); + df.setIsenta(rs.getBoolean("isenta")); + df.setTarifa(rs.getBigDecimal("tarifa")); df.setTaxaEmbarque(rs.getBigDecimal("taxaEmbarque")); df.setPedagio(rs.getBigDecimal("pedagio")); df.setSeguro(rs.getBigDecimal("seguro")); df.setOutros(rs.getBigDecimal("outros")); + df.setDatamov(rs.getString("datamov")); + list.add(df); } @@ -522,13 +553,14 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO { sql.append(" 'REC' as tipoReceita, "); sql.append(" c.numoperacion as numoperacion, "); sql.append(" trunc(c.feccreacion) as fechorVenta, "); - sql.append(" e_bpe.estado_id as estadoId, "); + sql.append(" e.estado_id as estadoId, "); sql.append(" ei.icms as icmsInterestadual, "); sql.append(" ei.icmsim as icmsIntermunicipal, "); - sql.append(" e_bpe.cveestado as estadoOrigem, "); + sql.append(" e.cveestado as estadoOrigem, "); sql.append(" ed.cveestado as estadoDestino, "); sql.append(" co.codibge as municipioOrigem, "); - sql.append(" case when (e_bpe.cveestado = ed.cveestado) then 0 else 1 end as isInterEstadual, "); + sql.append(" case when (e.cveestado = ed.cveestado) then 0 else 1 end as isInterEstadual, "); + sql.append(" 0 as isenta, "); sql.append(" ei.porcredbaseicms as redBaseCalcIcms, "); sql.append(" ei.porcredmunicipal as porcRedMunicipal, "); sql.append(" ei.porcredestadual as porcRedEstadual, "); @@ -541,44 +573,40 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO { sql.append(" ei.indtxembarqueestadual as indtxembarqueestadual, "); sql.append(" ei.indpedagioestdual as indpedagioestdual, "); sql.append(" ei.tributacaoImportacao as tributacaoImportacao, "); - sql.append(" (case when (coalesce(po.regionmetropolitana_id, -1) = coalesce(pd.regionmetropolitana_id, -2)) then 1 else 0 end) as isenta, "); sql.append(" coalesce(c.preciopagado, 0) as tarifa, "); sql.append(" coalesce(c.importetaxaembarque, 0) as taxaEmbarque, "); sql.append(" coalesce(c.importepedagio, 0) as pedagio, "); sql.append(" coalesce(c.importeseguro, 0) as seguro, "); sql.append(" coalesce(c.importeoutros, 0) as outros, "); - sql.append(" to_char(trunc(c.feccreacion), 'yyyymmdd') as datamov "); - sql.append("from boleto c "); - sql.append(" join bpe bpe on bpe.boleto_id = c.boleto_id "); - sql.append(" join estado e_bpe on e_bpe.codibge = bpe.uf "); - sql.append(" join ruta r on r.ruta_id = c.ruta_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 estado eo on eo.estado_id = co.estado_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 ed on ed.estado_id = cd.estado_id "); - sql.append(" join empresa_imposto ei on ei.empresa_id = c.empresacorrida_id and ei.estado_id = e_bpe.estado_id "); - sql.append(" join fiscal_impressora imp on imp.numserie = c.serieimpfiscal "); - sql.append(" left join estado e on e.estado_id = imp.estadolocal_id "); - sql.append(" join inscricao_estadual ie on c.empresacorrida_id = ie.empresa_id "); - sql.append(" and ie.estado_id = e_bpe.estado_id and ie.activo = 1 "); - sql.append(" join ciudad cie on cie.ciudad_id = ie.ciudad_id "); - sql.append(" join estado eie on eie.estado_id = cie.estado_id "); - sql.append(" join marca ma on c.marca_id = ma.marca_id "); - sql.append(" join empresa ep on ep.empresa_id = ma.empresa_id "); - sql.append(" join punto_venta pv on pv.puntoventa_id = c.puntoventa_id "); - sql.append(" left join parada ppv on ppv.parada_id = pv.parada_id "); - sql.append(" left join ciudad cpv on cpv.ciudad_id = ppv.ciudad_id "); - sql.append(" left join estado epv on epv.estado_id = cpv.estado_id "); - sql.append("where c.activo = 1 "); - sql.append(" and po.activo = 1 and co.activo = 1 and eo.activo = 1 and ei.activo = 1 "); - sql.append(" and coalesce(ei.activo, 0) = 1 "); - sql.append(" and ((c.indreimpresion = 0 and c.motivocancelacion_id is null and c.numfoliosistema is not null) or (c.indstatusboleto = 'E' and c.indreimpresion = 1)) "); -// sql.append(" and (coalesce(c.preciopagado,0) + coalesce(c.importetaxaembarque,0) + coalesce(c.importeseguro,0) + coalesce(c.importepedagio,0) + coalesce(c.importeoutros,0)) > 0 "); - sql.append(" and c.empresacorrida_id = :EMPRESA_ID "); - sql.append(" and c.feccreacion >= :DATE_INICIO and c.feccreacion <= :DATE_FIM "); - sql.append(" and e_bpe.cveestado in ( ").append(ufs).append(" ) "); + sql.append(" to_char(trunc(c.feccreacion), 'yyyymmdd') as datamov, "); + + sql.append(" DBMS_LOB.substr(coalesce(bpe.xmlregular, bpe.xmlcontingencia), 3000) as xml_bpe, "); + sql.append(" DBMS_LOB.substr(coalesce(bpe.xmlregular, bpe.xmlcontingencia), 3000, 3001) as xml_bpe_2, "); + sql.append(" DBMS_LOB.substr(coalesce(bpe.xmlregular, bpe.xmlcontingencia), 3000, 6001) as xml_bpe_3 "); + + sql.append("from boleto c "); + sql.append(" join bpe bpe on c.boleto_id = bpe.boleto_id "); + sql.append(" left join bpe bpecan on bpecan.chbpe = bpe.chbpe and bpecan.codstat = 100 and bpe.codstat = 135 and bpe.tipoevento = 110111 "); + sql.append(" join estado e on e.codibge = bpe.uf "); + sql.append(" join marca ma on c.marca_id = ma.marca_id "); + sql.append(" join empresa ep on ma.empresa_id = ep.empresa_id "); + sql.append(" join ruta r on r.ruta_id = c.ruta_id "); + sql.append(" left join alias_servico ase on ase.origen_id = c.origen_id "); + sql.append(" and ase.destino_id = c.destino_id and ase.ruta_id = c.ruta_id and ase.activo = 1 and ase.corrida_id is null and ase.activo = 1 "); + sql.append(" inner join parada o on coalesce(ase.aliasorigen_id, c.origen_id) = o.parada_id "); + sql.append(" inner join ciudad co on o.ciudad_id = co.ciudad_id "); + sql.append(" inner join estado eo on eo.estado_id = co.estado_id "); + sql.append(" inner join parada d on coalesce(ase.aliasdestino_id, c.destino_id) = d.parada_id "); + sql.append(" inner join ciudad cd on d.ciudad_id = cd.ciudad_id "); + sql.append(" inner join estado ed on ed.estado_id = cd.estado_id "); + sql.append(" left join empresa_imposto ei on ei.empresa_id = ep.empresa_id and ei.estado_id = e.estado_id and ei.activo = 1 "); + sql.append("where c.activo = 1 and bpe.tipoamb = 1 "); + sql.append(" and (bpe.tipoevento <> 110115 or bpe.tipoevento is null) "); + sql.append(" and (to_char(bpe.fecmodif, 'mm/yyyy') < to_char(bpecan.fecmodif, 'mm/yyyy') or bpecan.fecmodif is null) "); + sql.append(" and (case when ei.indtribviagem = 1 then c.fechorviaje else c.feccreacion end) >= :DATE_INICIO "); + sql.append(" and (case when ei.indtribviagem = 1 then c.fechorviaje else c.feccreacion end) <= :DATE_FIM "); + sql.append(" and ep.empresa_id = :EMPRESA_ID "); + sql.append(" and e.cveestado in ( ").append(ufs).append(" ) "); return sql.toString(); } @@ -590,69 +618,158 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO { sql.append(" b.boleto_id as cajaId, "); sql.append(" 'DEV' as tipoReceita, "); sql.append(" b.numoperacion as numoperacion, "); - sql.append(" trunc(b.feccreacion) as fechorVenta, "); - sql.append(" coalesce(esaidf.estado_id, eos.estado_id, est.estado_id) as estadoId, "); + sql.append(" trunc(bori.feccreacion) as fechorVenta, "); + sql.append(" est_bpe.estado_id as estadoId, "); sql.append(" ei.icms as icmsInterestadual, "); sql.append(" ei.icmsim as icmsIntermunicipal, "); - sql.append(" coalesce(esaidf.cveestado, eos.cveestado, est.cveestado) as estadoOrigem, "); - sql.append(" coalesce(eds.cveestado, est.cveestado) as estadoDestino, "); - sql.append(" 0 as municipioOrigem, "); - sql.append(" case when (coalesce(cos.estado_id,co.estado_id) <> coalesce(cds.estado_id,cd.estado_id)) then 1 else 0 end as isInterEstadual, "); + sql.append(" est_bpe.cveestado as estadoOrigem, "); + sql.append(" eds.cveestado as estadoDestino, "); + sql.append(" co.codibge as municipioOrigem, "); + sql.append(" case when (est_bpe.cveestado = eds.cveestado) then 0 else 1 end as isInterEstadual, "); + sql.append(" 0 as isenta, "); sql.append(" ei.porcredbaseicms as redBaseCalcIcms, "); sql.append(" ei.porcredmunicipal as porcRedMunicipal, "); sql.append(" ei.porcredestadual as porcRedEstadual, "); - sql.append(" coalesce(ei.indtarifamunicipal, 0) as indtarifamunicipal, "); - sql.append(" coalesce(ei.indseguromunicipal, 0) as indseguromunicipal, "); - sql.append(" coalesce(ei.indtxembarquemunicipal, 0) as indtxembarquemunicipal, "); - sql.append(" coalesce(ei.indpedagiomunicipal, 0) as indpedagiomunicipal, "); - sql.append(" coalesce(ei.indtarifaestadual, 0) as indtarifaestadual, "); - sql.append(" coalesce(ei.indseguroestadual, 0) as indseguroestadual, "); - sql.append(" coalesce(ei.indtxembarqueestadual, 0) as indtxembarqueestadual, "); - sql.append(" coalesce(ei.indpedagioestdual, 0) as indpedagioestdual, "); - sql.append(" ei.tributacaoimportacao as tributacaoImportacao, "); - sql.append(" case when (coalesce(pos.regionmetropolitana_id, ori.regionmetropolitana_id, -1) = "); - sql.append(" coalesce(pds.regionmetropolitana_id, des.regionmetropolitana_id, -2)) then 1 else 0 end as isenta, "); + sql.append(" ei.indtarifamunicipal as indtarifamunicipal, "); + sql.append(" ei.indseguromunicipal as indseguromunicipal, "); + sql.append(" ei.indtxembarquemunicipal as indtxembarquemunicipal, "); + sql.append(" ei.indpedagiomunicipal as indpedagiomunicipal, "); + sql.append(" ei.indtarifaestadual as indtarifaestadual, "); + sql.append(" ei.indseguroestadual as indseguroestadual, "); + sql.append(" ei.indtxembarqueestadual as indtxembarqueestadual, "); + sql.append(" ei.indpedagioestdual as indpedagioestdual, "); + sql.append(" ei.tributacaoImportacao as tributacaoImportacao, "); sql.append(" coalesce(b.preciopagado, 0) as tarifa, "); sql.append(" coalesce(b.importetaxaembarque, 0) as taxaEmbarque, "); sql.append(" coalesce(b.importepedagio, 0) as pedagio, "); sql.append(" coalesce(b.importeseguro, 0) as seguro, "); sql.append(" coalesce(b.importeoutros, 0) as outros, "); - sql.append(" to_char(trunc(b.feccreacion), 'yyyymmdd') as datamov "); - sql.append(" "); - sql.append("from boleto b "); - sql.append("inner join marca m on m.marca_id = b.marca_id and m.activo = 1 "); - sql.append("inner join empresa e on e.empresa_id = m.empresa_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 punto_venta ptvo on ptvo.puntoventa_id = b.ptovtaventa_id "); - sql.append("left join alias_servico s on s.origen_id = b.origen_id "); + sql.append(" to_char(trunc(bori.feccreacion), 'yyyymmdd') as datamov, "); + + 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(" 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(" 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(" left join punto_venta ptvo on ptvo.puntoventa_id = coalesce(bant.puntoventa_id, bori.puntoventa_id,b.ptovtaventa_id) "); + sql.append("where (bpe.chbpe_substituicao is not null "); + sql.append(" or (bpe.codstat = 135 and to_char(b.feccreacion, 'mm/yyyy') < to_char(bori.feccreacion, 'mm/yyyy')) ) "); + sql.append(" and (bpe.tipoevento <> 110115 or bpe.tipoevento is null) "); + sql.append(" and (bpeori.tipoevento <> 110115 or bpeori.tipoevento is null) "); + sql.append(" and bori.feccreacion >= :DATE_INICIO "); + sql.append(" and bori.feccreacion <= :DATE_FIM "); + sql.append(" and est_bpe.cveestado in ( ").append(ufs).append(" ) "); + sql.append(" and e.empresa_id = :EMPRESA_ID "); + + sql.append(" "); + sql.append(" union all "); + sql.append(" "); + + sql.append("select distinct "); + sql.append(" b.boleto_id as cajaId, "); + sql.append(" 'DEV' as tipoReceita, "); + sql.append(" b.numoperacion as numoperacion, "); + sql.append(" trunc(bori.feccreacion) as fechorVenta, "); + sql.append(" est_bpe.estado_id as estadoId, "); + sql.append(" ei.icms as icmsInterestadual, "); + sql.append(" ei.icmsim as icmsIntermunicipal, "); + sql.append(" est_bpe.cveestado as estadoOrigem, "); + sql.append(" eds.cveestado as estadoDestino, "); + sql.append(" co.codibge as municipioOrigem, "); + sql.append(" case when (est_bpe.cveestado = eds.cveestado) then 0 else 1 end as isInterEstadual, "); + sql.append(" 0 as isenta, "); + sql.append(" ei.porcredbaseicms as redBaseCalcIcms, "); + sql.append(" ei.porcredmunicipal as porcRedMunicipal, "); + sql.append(" ei.porcredestadual as porcRedEstadual, "); + sql.append(" ei.indtarifamunicipal as indtarifamunicipal, "); + sql.append(" ei.indseguromunicipal as indseguromunicipal, "); + sql.append(" ei.indtxembarquemunicipal as indtxembarquemunicipal, "); + sql.append(" ei.indpedagiomunicipal as indpedagiomunicipal, "); + sql.append(" ei.indtarifaestadual as indtarifaestadual, "); + sql.append(" ei.indseguroestadual as indseguroestadual, "); + sql.append(" ei.indtxembarqueestadual as indtxembarqueestadual, "); + sql.append(" ei.indpedagioestdual as indpedagioestdual, "); + sql.append(" ei.tributacaoImportacao as tributacaoImportacao, "); + sql.append(" coalesce(b.preciopagado, 0) as tarifa, "); + sql.append(" coalesce(b.importetaxaembarque, 0) as taxaEmbarque, "); + sql.append(" coalesce(b.importepedagio, 0) as pedagio, "); + sql.append(" coalesce(b.importeseguro, 0) as seguro, "); + sql.append(" coalesce(b.importeoutros, 0) as outros, "); + sql.append(" to_char(trunc(bori.feccreacion), 'yyyymmdd') as datamov, "); + + 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(" inner join estado est_bpe on bpe.uf = est_bpe.codibge "); + sql.append(" left join boleto b on b.boleto_id = bori.boletooriginal_id "); + sql.append(" left join bpe bpeori on b.boleto_id = bpeori.boleto_id "); + 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("join inscricao_estadual ie on e.empresa_id = ie.empresa_id "); - sql.append(" and ie.estado_id = coalesce(aidf.estado_id, 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(aidf.estado_id, eos.estado_id, est.estado_id) and ei.activo = 1 "); - sql.append("where b.motivocancelacion_id in (31,32,10,37,99,36) "); - sql.append(" and b.indstatusboleto = 'C' and b.indcancelacion = 1 "); - sql.append(" and b.numfoliopreimpreso is not null "); - sql.append(" and e.empresa_id = :EMPRESA_ID "); - sql.append(" and b.fechorventa >= :DATE_INICIO "); - sql.append(" and b.fechorventa <= :DATE_FIM "); - sql.append(" and b.num_bpe is null "); - sql.append(" and b.categoria_id not in (select valorconstante from constante where nombconstante = 'GRATUIDADE_CRIANCA') "); - sql.append(" and coalesce(esaidf.cveestado, eos.cveestado, est.cveestado) in ( ").append(ufs).append(" ) "); + 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("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 = 135 and to_char(b.feccreacion, 'mm/yyyy') < to_char(bori.feccreacion, 'mm/yyyy')) "); + sql.append(" and (bpe.tipoevento <> 110115 or bpe.tipoevento is null) "); + sql.append(" and (bpeori.tipoevento <> 110115 or bpeori.tipoevento is null) "); + sql.append(" and bori.feccreacion >= :DATE_INICIO "); + sql.append(" and bori.feccreacion <= :DATE_FIM "); + sql.append(" and est_bpe.cveestado in ( ").append(ufs).append(" ) "); + sql.append(" and e.empresa_id = :EMPRESA_ID "); + sql.append("order by estadoId, isInterEstadual "); return sql.toString(); diff --git a/src/com/rjconsultores/ventaboletos/utilerias/fiscal/vo/DetalhadoFiscal.java b/src/com/rjconsultores/ventaboletos/utilerias/fiscal/vo/DetalhadoFiscal.java index 0a4bf7e6c..a4fb9931d 100644 --- a/src/com/rjconsultores/ventaboletos/utilerias/fiscal/vo/DetalhadoFiscal.java +++ b/src/com/rjconsultores/ventaboletos/utilerias/fiscal/vo/DetalhadoFiscal.java @@ -36,6 +36,8 @@ public class DetalhadoFiscal { private BigDecimal outros; private String datamov; + private String xml; + public Long getCajaId() { return cajaId; } @@ -276,4 +278,12 @@ public class DetalhadoFiscal { this.datamov = datamov; } + public String getXml() { + return xml; + } + + public void setXml(String xml) { + this.xml = xml; + } + } \ No newline at end of file