diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java index c7a5510b1..7248ddb46 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java @@ -1900,6 +1900,7 @@ public class FiscalHibernateDAO implements FiscalDAO { Integer numeroInicial = null; Integer numeroFinal = null; + while (rs.next()) { String key = rs.getInt("num_rmd") + "|" + rs.getInt("num_formulario"); @@ -1979,6 +1980,69 @@ public class FiscalHibernateDAO implements FiscalDAO { public List buscarRegistroRMDTipoDBP(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado) { List retorno = new ArrayList(); + StringBuilder sb = new StringBuilder(); + sb.append(" select"); + sb.append(" (CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) as estado_origem,"); + sb.append(" (CASE WHEN s.aliasorigen_id IS NULL THEN ed.cveestado ELSE eds.cveestado END) as estado_destino,"); + sb.append(" (CASE WHEN cos.codibge IS NULL THEN co.codibge ELSE cos.codibge END) as municipio_origem,"); + sb.append(" (CASE WHEN ((CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) = (CASE WHEN s.aliasorigen_id IS NULL THEN ed.cveestado ELSE eds.cveestado END)) THEN 5357 ELSE 6357 END) as cod_operacao,"); + sb.append(" (CASE WHEN s.aliasorigen_id IS NULL THEN ei.porcredbaseicms ELSE eis.porcredbaseicms END) as red_base_calc_icms,"); + sb.append(" (CASE WHEN s.aliasorigen_id IS NULL THEN ei.porcredmunicipal ELSE eis.porcredmunicipal END) as porc_red_municipal,"); + sb.append(" (CASE WHEN s.aliasorigen_id IS NULL THEN ei.porcredestadual ELSE eis.porcredestadual END) as porc_red_estadual,"); + sb.append(" (CASE WHEN s.aliasorigen_id IS NULL THEN ei.tributacaoimportacao ELSE eis.tributacaoimportacao END) as tributacao_importacao,"); + sb.append(" (CASE WHEN (nvl((CASE WHEN pos.parada_id IS NULL THEN pos.regionmetropolitana_id ELSE po.regionmetropolitana_id END),-1) = nvl((CASE WHEN pds.parada_id IS NULL THEN pds.regionmetropolitana_id ELSE pd.regionmetropolitana_id END),-2)) THEN 1 ELSE 0 END) as isenta,"); + sb.append(" (nvl(b.preciopagado,0) - nvl(b.importetaxaembarque,0) - nvl(b.importepedagio,0) - nvl(b.importeseguro,0) - nvl(b.importeoutros,0)) as valor_tarifa,"); + sb.append(" b.preciopagado as valor_total"); + sb.append(" from boleto b"); + sb.append(" join empresa e on e.empresa_id = b.empresacorrida_id"); + sb.append(" join parada po on po.parada_id = b.origen_id"); + sb.append(" join ciudad co on co.ciudad_id = po.ciudad_id"); + sb.append(" join estado eo on eo.estado_id = co.estado_id"); + sb.append(" join parada pd on pd.parada_id = b.destino_id"); + sb.append(" join ciudad cd on cd.ciudad_id = pd.ciudad_id"); + sb.append(" join estado ed on ed.estado_id = cd.estado_id"); + sb.append(" left join alias_servico s on s.origen_id = b.origen_id and s.destino_id = b.destino_id and s.corrida_id = b.corrida_id and s.ruta_id = b.ruta_id"); + sb.append(" left join parada pos on pos.parada_id = s.aliasorigen_id"); + sb.append(" left join ciudad cos on cos.ciudad_id = pos.ciudad_id"); + sb.append(" left join estado eos on eos.estado_id = cos.estado_id"); + sb.append(" left join parada pds on pds.parada_id = s.aliasdestino_id"); + sb.append(" left join ciudad cds on cds.ciudad_id = pds.ciudad_id"); + sb.append(" left join estado eds on eds.estado_id = cds.estado_id"); + sb.append(" join empresa_imposto ei on ei.empresa_id = b.empresacorrida_id and ei.estado_id = eo.estado_id"); + sb.append(" left join empresa_imposto eis on eis.empresa_id = b.empresacorrida_id and eis.estado_id = eos.estado_id"); + sb.append(" where"); + sb.append(" b.activo = 1"); + sb.append(" and b.tipoventa_id = 3"); + sb.append(" and (b.indstatusboleto like 'V' or b.indstatusboleto like 'C')"); + sb.append(" and (CASE WHEN s.aliasorigen_id IS NULL THEN ei.activo ELSE eis.activo END) = 1"); + sb.append(" and b.empresacorrida_id = ?"); + sb.append(" and (b.feccorrida >= ? and b.feccorrida >= ?)"); + sb.append(" and (CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) like ?"); + + try { + PreparedStatement ps = connection.prepareStatement(sb.toString()); + ps.setLong(1, Long.valueOf(empresaId)); + ps.setDate(2, new java.sql.Date(inicio.getTime())); + ps.setDate(3, new java.sql.Date(fim.getTime())); + ps.setString(4, cveestado); + + ResultSet rs = ps.executeQuery(); + + ExportacaoRMDTipoDBP registro = null; + + while (rs.next()) { + registro = new ExportacaoRMDTipoDBP(); + + retorno.add(registro); + } + + rs.close(); + ps.close(); + + } catch (Exception e) { + log.error(e.getMessage(), e); + } + return retorno; } }