From b705fa8a9fab26bf5ace74a843c3b4c5084d1e8f Mon Sep 17 00:00:00 2001 From: alberto Date: Wed, 9 Aug 2017 14:07:44 +0000 Subject: [PATCH] =?UTF-8?q?Exporta=C3=A7=C3=A3o=20Fiscal=20:=20ECF=20e=20R?= =?UTF-8?q?MD=20(issue=208120)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@72457 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../ventaboletos/dao/FiscalDAO.java | 10 - .../dao/hibernate/FiscalHibernateDAO.java | 1131 ++++------------- .../service/impl/FiscalServiceImpl.java | 24 +- 3 files changed, 263 insertions(+), 902 deletions(-) diff --git a/src/com/rjconsultores/ventaboletos/dao/FiscalDAO.java b/src/com/rjconsultores/ventaboletos/dao/FiscalDAO.java index 0a0f8ae72..b21a63c28 100644 --- a/src/com/rjconsultores/ventaboletos/dao/FiscalDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/FiscalDAO.java @@ -36,24 +36,14 @@ public interface FiscalDAO { public List buscaDatosNaoFiscais(Date inicio, Date fim, Integer empresaId, Integer estadoId, Connection connection) throws SQLException; - public List buscarRegistroECFTipoCFCHibrido(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado); - public List buscarRegistroECFTipoCFC(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado); - public List buscarRegistroECFTipoCFC_Boleto(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado); - public List buscarRegistroECFTipoCCF(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado); - public List buscarRegistroECFTipoCCF_Boleto(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado); - public List buscarRegistroECFTipoICF(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado); - public List buscarRegistroECFTipoICF_Boleto(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado); - public List buscarRegistroECFTipoPRC(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado); - public List buscarRegistroECFTipoPRC_Boleto(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado); - public List buscarRegistroRMDTipoPAR(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado); public List buscarRegistroRMDTipoRMD(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado); diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java index 4c681640e..46fd2f227 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java @@ -1383,7 +1383,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO } @Override - public List buscarRegistroECFTipoCFCHibrido(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado) { + public List buscarRegistroECFTipoCFC(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado) { List retorno = new ArrayList(); StringBuilder sb = new StringBuilder(); @@ -1429,7 +1429,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO sb.append(" left join ciudad cost on cost.ciudad_id = post.ciudad_id"); sb.append(" left join estado eost on eost.estado_id = cost.estado_id"); sb.append(" where coalesce(r4t.indcancelamento, 'N') <> 'S' and r4t.numserie20 = r2.numserie20 and r4t.datamov = r2.datamov and ((CASE WHEN st.aliasorigen_id IS NULL THEN eot.cveestado ELSE eost.cveestado END) = (CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END))"); - sb.append(" ) as totalvenda,"); + sb.append(" )/100 as totalvenda,"); sb.append(" 0 as caja_id"); sb.append(" from fiscal_r4 r4"); sb.append(" join fiscal_r2 r2 on r2.numserie20 = r4.numserie20 and r2.datamov = r4.datamov"); @@ -1453,8 +1453,8 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO sb.append(" and ((CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) = ?)"); sb.append(" UNION"); sb.append(" select distinct"); - sb.append(" imp.numserie20 as ecf,"); - sb.append(" imp.numserie as numserie,"); + sb.append(" (case when r2.numserie20 is null then 'X' else '' end) || imp.numserie20 as ecf,"); + sb.append(" (case when r2.numserie20 is null then 'X' else '' end) || imp.numserie as numserie,"); sb.append(" to_char(c.feccreacion, 'YYYYMMDD') as datamov,"); sb.append(" case when r2.numserie20 is null then '000001' else r2.cooinicial end as cooinicial,"); sb.append(" case when r2.numserie20 is null then '000001' else r2.coofinal end as coofinal,"); @@ -1564,276 +1564,101 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO return retorno; } - - @Override @Deprecated - public List buscarRegistroECFTipoCFC(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado) { - List retorno = new ArrayList(); - - StringBuilder sb = new StringBuilder(); - sb.append(" select distinct"); - sb.append(" imp.numserie20 as ecf,"); - sb.append(" imp.numserie as numserie,"); - sb.append(" r2.datamov as datamov,"); - sb.append(" r2.cooinicial as cooinicial,"); - sb.append(" r2.coofinal as coofinal,"); - sb.append(" r2.crz as crz,"); - sb.append(" r2.cro as cro,"); - sb.append(" r2.coo as coo,"); - sb.append(" CASE WHEN s.aliasorigen_id IS NULL THEN ei.codestabelecimento ELSE eis.codestabelecimento END as codestabelecimento,"); - sb.append(" e.codestabelecimento as codestabelecimentoimpressora,"); - sb.append(" imp.numeroidentificacao as numeroidentificacao,"); - sb.append(" (CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) as estadoorigem,"); - sb.append(" ("); - sb.append(" select nvl(sum(r5i.imptotalliquido), 0)"); - sb.append(" from fiscal_r5 r5i"); - sb.append(" join fiscal_r4 r4i on r4i.numserie20 = r5i.numserie20 and r4i.datamov = r5i.datamov and r4i.coo = r5i.coo and r4i.contador = r5i.contador"); - sb.append(" join boleto bi on bi.boleto_id = r4i.boleto_id"); - sb.append(" join parada poi on poi.parada_id = bi.origen_id"); - sb.append(" join parada pdi on pdi.parada_id = bi.destino_id"); - sb.append(" left join alias_servico si on si.origen_id = bi.origen_id and si.destino_id = bi.destino_id and (si.corrida_id = bi.corrida_id or si.corrida_id is null) and si.ruta_id = bi.ruta_id"); - sb.append(" left join parada posi on posi.parada_id = si.aliasorigen_id"); - sb.append(" left join parada pdsi on pdsi.parada_id = si.aliasdestino_id"); - sb.append(" where r5i.numserie20 = r4.numserie20 and r5i.datamov = r2.datamov and r5i.codproduto like '%-TA'"); - sb.append(" and (nvl(case when si.aliasorigen_id is null then poi.regionmetropolitana_id else posi.regionmetropolitana_id end, -1) = nvl(case when si.aliasorigen_id is null then pdi.regionmetropolitana_id else pdsi.regionmetropolitana_id end, -2))"); - sb.append(" ) as totalisenta,"); - sb.append(" r2.vendabrutadiaria as vendabrutadiaria,"); - sb.append(" r2.totgeral as totgeral,"); - sb.append(" ("); - sb.append(" select nvl(sum(r4t.impsubtotal), 0)"); - sb.append(" from fiscal_r4 r4t"); - sb.append(" join boleto bt on bt.boleto_id = r4t.boleto_id"); - sb.append(" join parada pot on pot.parada_id = bt.origen_id"); - sb.append(" join ciudad cot on cot.ciudad_id = pot.ciudad_id"); - sb.append(" join estado eot on eot.estado_id = cot.estado_id"); - sb.append(" left join alias_servico st on st.origen_id = bt.origen_id and st.destino_id = bt.destino_id and (st.corrida_id = bt.corrida_id or st.corrida_id is null) and st.ruta_id = bt.ruta_id"); - sb.append(" left join parada post on post.parada_id = st.aliasorigen_id"); - sb.append(" left join ciudad cost on cost.ciudad_id = post.ciudad_id"); - sb.append(" left join estado eost on eost.estado_id = cost.estado_id"); - sb.append(" where coalesce(r4t.indcancelamento, 'N') <> 'S' and r4t.numserie20 = r2.numserie20 and r4t.datamov = r2.datamov and ((CASE WHEN st.aliasorigen_id IS NULL THEN eot.cveestado ELSE eost.cveestado END) = (CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END))"); - sb.append(" ) as totalvenda"); - sb.append(" from fiscal_r4 r4"); - sb.append(" join fiscal_r2 r2 on r2.numserie20 = r4.numserie20 and r2.datamov = r4.datamov"); - sb.append(" join fiscal_impressora imp on imp.numserie20 = r4.numserie20"); - sb.append(" join boleto b on b.boleto_id = r4.boleto_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 empresa_imposto ei on ei.empresa_id = b.empresacorrida_id and ei.estado_id = co.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 or s.corrida_id is null) 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 empresa_imposto eis on eis.empresa_id = b.empresacorrida_id and eis.estado_id = cos.estado_id"); - sb.append(" left join estado e on e.estado_id = imp.estadolocal_id"); - sb.append(" where coalesce(r4.indcancelamento, 'N') <> 'S' and nvl(CASE WHEN s.aliasorigen_id IS NULL THEN ei.activo ELSE eis.activo END, 0) = 1 and b.activo = 1 and r4.datamov >= ? and r4.datamov <= ? and b.empresacorrida_id = ? and ((CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) = ?)"); - sb.append(" order by r2.datamov"); - - try { - PreparedStatement ps = connection.prepareStatement(sb.toString()); - ps.setString(1, DateUtil.getStringDate(inicio, DATE_FORMAT_FISCAL)); - ps.setString(2, DateUtil.getStringDate(fim, DATE_FORMAT_FISCAL)); - ps.setLong(3, Long.valueOf(empresaId)); - ps.setString(4, cveestado); - - ResultSet rs = ps.executeQuery(); - - ExportacaoECFTipoCFC registro = null; - - while (rs.next()) { - BigDecimal totalIsenta = BigDecimal.ZERO; - - if (rs.getBigDecimal("totalisenta") != null) { - totalIsenta = rs.getBigDecimal("totalisenta").divide(BigDecimal.valueOf(100d)); - } - - registro = new ExportacaoECFTipoCFC(); - registro.setEstabelecimento(rs.getString("codestabelecimento")); - registro.setDataEmissao(rs.getString("datamov")); - registro.setNumeroIdentificacaoECF(rs.getString("numeroidentificacao") == null || rs.getString("numeroidentificacao").isEmpty() ? "0" : rs.getString("numeroidentificacao")); - registro.setEcf(rs.getString("ecf")); - registro.setCooReducaoZ(Integer.valueOf(rs.getString("coo"))); - registro.setCooInicial(Integer.valueOf(rs.getString("cooinicial"))); - registro.setCooFinal(Integer.valueOf(rs.getString("coofinal"))); - registro.setContadorReducao(Integer.valueOf(rs.getString("crz"))); - registro.setCro(Integer.valueOf(rs.getString("cro"))); - registro.setValorTotal(BigDecimal.valueOf(Double.valueOf(rs.getString("totalvenda")) / 100)); - registro.setValorIsentas(totalIsenta); - registro.setEstabelecimentoECF(rs.getString("codestabelecimentoimpressora")); - registro.setNumeroSerie(rs.getString("numserie")); - registro.setInfoPadraoBilhetePassagem(CODIGO_INDICADOR_CONTR_PREVIDENCIARIA); - - retorno.add(registro); - } - - rs.close(); - ps.close(); - - } catch (Exception e) { - log.error(e.getMessage(), e); - } - - return retorno; - } - - @Override @Deprecated - public List buscarRegistroECFTipoCFC_Boleto(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado) { - List retorno = new ArrayList(); - - StringBuilder sb = new StringBuilder(); - sb.append(" select ecf, numserie, datamov, cooinicial, coofinal, crz, cro, coo, codestabelecimento, codestabelecimentoimpressora, numeroidentificacao, estadoorigem, sum(totalisenta) as totalisenta, sum(vendabrutadiaria) as vendabrutadiaria, sum(totgeral) as totgeral, sum(totalvenda) as totalvenda"); - sb.append(" from ("); - - sb.append(" select distinct"); - sb.append(" 'X' || imp.numserie20 as ecf,"); - sb.append(" imp.numserie as numserie,"); - sb.append(" to_char(c.feccreacion, 'YYYYMMDD') as datamov,"); - sb.append(" '000001' as cooinicial,"); - sb.append(" '000001' as coofinal,"); - sb.append(" '0000' as crz,"); - sb.append(" '0000' as cro,"); - sb.append(" '000000' as coo,"); - sb.append(" CASE WHEN s.aliasorigen_id IS NULL THEN ei.codestabelecimento ELSE eis.codestabelecimento END as codestabelecimento,"); - sb.append(" e.codestabelecimento as codestabelecimentoimpressora,"); - sb.append(" imp.numeroidentificacao as numeroidentificacao,"); - sb.append(" CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END as estadoorigem,"); - sb.append(" ("); - sb.append(" select nvl(sum(c.preciopagado), 0)"); - sb.append(" from caja bi"); - sb.append(" join parada poi on poi.parada_id = bi.origen_id"); - sb.append(" join parada pdi on pdi.parada_id = bi.destino_id"); - sb.append(" left join alias_servico si on si.origen_id = bi.origen_id and si.destino_id = bi.destino_id and (si.corrida_id = bi.corrida_id or si.corrida_id is null) and si.ruta_id = bi.ruta_id"); - sb.append(" left join parada posi on posi.parada_id = si.aliasorigen_id"); - sb.append(" left join parada pdsi on pdsi.parada_id = si.aliasdestino_id"); - sb.append(" where bi.caja_id = c.caja_id"); - sb.append(" and (nvl(case when si.aliasorigen_id is null then poi.regionmetropolitana_id else posi.regionmetropolitana_id end, -1) = nvl(case when si.aliasorigen_id is null then pdi.regionmetropolitana_id else pdsi.regionmetropolitana_id end, -2))"); - sb.append(" ) as totalisenta,"); - sb.append(" 0 as vendabrutadiaria,"); - sb.append(" ("); - sb.append(" select nvl(sum(c.preciopagado + c.importetaxaembarque + c.importeseguro + c.importepedagio + c.importeoutros), 0)"); - sb.append(" from caja bi"); - sb.append(" where bi.caja_id = c.caja_id"); - sb.append(" ) as totgeral,"); - sb.append(" ("); - sb.append(" select nvl(sum(c.preciopagado + c.importetaxaembarque + c.importeseguro + c.importepedagio + c.importeoutros), 0)"); - sb.append(" from caja bi"); - sb.append(" where bi.caja_id = c.caja_id"); - sb.append(" ) as totalvenda,"); - sb.append(" c.caja_id"); - sb.append(" from caja c"); - sb.append(" join parada po on po.parada_id = c.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 empresa_imposto ei on ei.empresa_id = c.empresacorrida_id and ei.estado_id = co.estado_id"); - sb.append(" join fiscal_impressora imp on imp.numserie = c.serieimpfiscal"); - sb.append(" left join alias_servico s on s.origen_id = c.origen_id and s.destino_id = c.destino_id and (s.corrida_id = c.corrida_id or s.corrida_id is null) and s.ruta_id = c.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 empresa_imposto eis on eis.empresa_id = c.empresacorrida_id and eis.estado_id = cos.estado_id"); - sb.append(" left join fiscal_r4 r4 on r4.caja_id = c.caja_id"); - sb.append(" left join estado e on e.estado_id = imp.estadolocal_id"); - sb.append(" where c.activo = 1 and s.activo = 1 and po.activo = 1 and co.activo = 1 and eo.activo = 1 and ei.activo = 1 and pos.activo = 1 and cos.activo = 1 and eos.activo = 1"); - sb.append(" and c.serieimpfiscal is not null and r4.caja_id is null"); - sb.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))"); - sb.append(" and coalesce(CASE WHEN s.aliasorigen_id IS NULL THEN ei.activo ELSE eis.activo END, 0) = 1"); - sb.append(" and trunc(c.feccreacion) >= trunc(TO_DATE(?,'DD/MM/YYYY HH24:MI:SS')) and trunc(c.feccreacion) <= trunc(TO_DATE(?,'DD/MM/YYYY HH24:MI:SS'))"); - sb.append(" and c.empresacorrida_id = ?"); - sb.append(" and ((CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) = ?)"); - - sb.append(" )"); - sb.append(" having sum(totalvenda) > 0"); - sb.append(" group by ecf, numserie, datamov, cooinicial, coofinal, crz, cro, coo, codestabelecimento, codestabelecimentoimpressora, numeroidentificacao, estadoorigem"); - - try { - PreparedStatement ps = connection.prepareStatement(sb.toString()); - ps.setString(1, DateUtil.getStringDate(inicio, DATE_FORMAT_DMYHMS)); - ps.setString(2, DateUtil.getStringDate(fim, DATE_FORMAT_DMYHMS)); - ps.setLong(3, Long.valueOf(empresaId)); - ps.setString(4, cveestado); - - ResultSet rs = ps.executeQuery(); - - ExportacaoECFTipoCFC registro = null; - - while (rs.next()) { - BigDecimal totalIsenta = BigDecimal.ZERO; - - if (rs.getBigDecimal("totalisenta") != null) { - totalIsenta = rs.getBigDecimal("totalisenta"); - } - - registro = new ExportacaoECFTipoCFC(); - registro.setEstabelecimento(rs.getString("codestabelecimento")); - registro.setDataEmissao(rs.getString("datamov")); - registro.setNumeroIdentificacaoECF(rs.getString("numeroidentificacao") == null || rs.getString("numeroidentificacao").isEmpty() ? "0" : rs.getString("numeroidentificacao")); - registro.setEcf(rs.getString("ecf")); - registro.setCooReducaoZ(Integer.valueOf(rs.getString("coo"))); - registro.setCooInicial(Integer.valueOf(rs.getString("cooinicial"))); - registro.setCooFinal(Integer.valueOf(rs.getString("coofinal"))); - registro.setContadorReducao(Integer.valueOf(rs.getString("crz"))); - registro.setCro(Integer.valueOf(rs.getString("cro"))); - registro.setValorTotal(BigDecimal.valueOf(Double.valueOf(rs.getString("totalvenda")))); - registro.setValorIsentas(totalIsenta); - registro.setEstabelecimentoECF(rs.getString("codestabelecimentoimpressora")); - registro.setNumeroSerie(rs.getString("numserie")); - registro.setInfoPadraoBilhetePassagem(CODIGO_INDICADOR_CONTR_PREVIDENCIARIA); - - retorno.add(registro); - } - - rs.close(); - ps.close(); - - } catch (Exception e) { - log.error(e.getMessage(), e); - } - - return retorno; - } @Override public List buscarRegistroECFTipoCCF(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado) { List retorno = new ArrayList(); StringBuilder sb = new StringBuilder(); - sb.append(" select distinct"); - sb.append(" r4.numserie20 as ecf,"); - sb.append(" r4.datamov as datamov,"); - sb.append(" r4.coo as coo,"); - sb.append(" r5.imptotalliquido as valortarifa,"); - sb.append(" c.preciopagado as preciopagado,"); - sb.append(" (CASE WHEN s.aliasorigen_id IS NULL THEN co.codibge ELSE cos.codibge END) as municipio_origem,"); - sb.append(" (CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) as estado_origem,"); - sb.append(" (CASE WHEN s.aliasdestino_id IS NULL THEN cd.codibge ELSE cds.codibge END) as municipio_destino,"); - sb.append(" (CASE WHEN s.aliasdestino_id IS NULL THEN ed.cveestado ELSE eds.cveestado END) as estado_destino,"); - 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 s.aliasorigen_id IS NULL THEN po.regionmetropolitana_id ELSE pos.regionmetropolitana_id END),-1) = nvl((CASE WHEN s.aliasdestino_id IS NULL THEN pd.regionmetropolitana_id ELSE pds.regionmetropolitana_id END),-2)) THEN 1 ELSE 0 END) as isenta,"); - sb.append(" r4.impsubtotal as valortotal,"); - sb.append(" b.numfoliosistema as numfoliosistema"); - sb.append(" from fiscal_r4 r4"); - sb.append(" left join fiscal_r5 r5 on r5.numserie20 = r4.numserie20 and r5.coo = r4.coo and r5.codproduto like '%-TA'"); - sb.append(" left join caja c on c.caja_id = r4.caja_id"); - sb.append(" join fiscal_r2 r2 on r2.numserie20 = r4.numserie20 and r2.datamov = r4.datamov"); - sb.append(" join boleto b on b.boleto_id = r4.boleto_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(" join empresa_imposto ei on ei.empresa_id = b.empresacorrida_id and ei.estado_id = eo.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 or s.corrida_id is null) 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(" left join empresa_imposto eis on eis.empresa_id = b.empresacorrida_id and eis.estado_id = eos.estado_id"); - sb.append(" where coalesce(r4.indcancelamento, 'N') <> 'S' and nvl(CASE WHEN s.aliasorigen_id IS NULL THEN ei.activo ELSE eis.activo END, 0) = 1 and b.activo = 1 and r4.datamov >= ? and r4.datamov <= ? and b.empresacorrida_id = ? and ((CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) = ?)"); + sb.append(" select ecf, datamov, coo, sum(valortarifa) as valortarifa, sum(preciopagado) as preciopagado, municipio_origem, estado_origem, municipio_destino, estado_destino, red_base_calc_icms, porc_red_municipal, porc_red_estadual, tributacao_importacao, isenta, numfoliosistema, sum(valortotal) as valortotal"); + sb.append(" from ("); + sb.append(" select distinct"); + sb.append(" r4.numserie20 as ecf,"); + sb.append(" r4.datamov as datamov,"); + sb.append(" r4.coo as coo,"); + sb.append(" to_number(r5.imptotalliquido)/100 as valortarifa,"); + sb.append(" c.preciopagado as preciopagado,"); + sb.append(" (CASE WHEN s.aliasorigen_id IS NULL THEN co.codibge ELSE cos.codibge END) as municipio_origem,"); + sb.append(" (CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) as estado_origem,"); + sb.append(" (CASE WHEN s.aliasdestino_id IS NULL THEN cd.codibge ELSE cds.codibge END) as municipio_destino,"); + sb.append(" (CASE WHEN s.aliasdestino_id IS NULL THEN ed.cveestado ELSE eds.cveestado END) as estado_destino,"); + 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 s.aliasorigen_id IS NULL THEN po.regionmetropolitana_id ELSE pos.regionmetropolitana_id END),-1) = nvl((CASE WHEN s.aliasdestino_id IS NULL THEN pd.regionmetropolitana_id ELSE pds.regionmetropolitana_id END),-2)) THEN 1 ELSE 0 END) as isenta,"); + sb.append(" to_number(r4.impsubtotal)/100 as valortotal,"); + sb.append(" b.numfoliosistema as numfoliosistema,"); + sb.append(" 0 as caja_id"); + sb.append(" from fiscal_r4 r4"); + sb.append(" left join fiscal_r5 r5 on r5.numserie20 = r4.numserie20 and r5.coo = r4.coo and r5.codproduto like '%-TA'"); + sb.append(" left join caja c on c.caja_id = r4.caja_id"); + sb.append(" join fiscal_r2 r2 on r2.numserie20 = r4.numserie20 and r2.datamov = r4.datamov"); + sb.append(" join boleto b on b.boleto_id = r4.boleto_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(" join empresa_imposto ei on ei.empresa_id = b.empresacorrida_id and ei.estado_id = eo.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 or s.corrida_id is null) 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(" left join empresa_imposto eis on eis.empresa_id = b.empresacorrida_id and eis.estado_id = eos.estado_id"); + sb.append(" where coalesce(r4.indcancelamento, 'N') <> 'S' and nvl(CASE WHEN s.aliasorigen_id IS NULL THEN ei.activo ELSE eis.activo END, 0) = 1 and b.activo = 1 and r4.datamov >= ? and r4.datamov <= ? and b.empresacorrida_id = ? and ((CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) = ?)"); + sb.append(" UNION"); + sb.append(" select distinct"); + sb.append(" (case when r2.numserie20 is null then 'X' else '' end) || imp.numserie20 as ecf,"); + sb.append(" to_char(c.feccreacion, 'YYYYMMDD') as datamov,"); + sb.append(" '000001' as coo,"); + sb.append(" c.preciopagado as valortarifa,"); + sb.append(" c.preciopagado as preciopagado,"); + sb.append(" (CASE WHEN s.aliasorigen_id IS NULL THEN co.codibge ELSE cos.codibge END) as municipio_origem,"); + sb.append(" (CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) as estado_origem,"); + sb.append(" (CASE WHEN s.aliasdestino_id IS NULL THEN cd.codibge ELSE cds.codibge END) as municipio_destino,"); + sb.append(" (CASE WHEN s.aliasdestino_id IS NULL THEN ed.cveestado ELSE eds.cveestado END) as estado_destino,"); + 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 s.aliasorigen_id IS NULL THEN po.regionmetropolitana_id ELSE pos.regionmetropolitana_id END),-1) = nvl((CASE WHEN s.aliasdestino_id IS NULL THEN pd.regionmetropolitana_id ELSE pds.regionmetropolitana_id END),-2)) THEN 1 ELSE 0 END) as isenta,"); + sb.append(" c.preciopagado + c.importetaxaembarque + c.importeseguro + c.importepedagio + c.importeoutros as valortotal,"); + sb.append(" c.numfoliosistema as numfoliosistema,"); + sb.append(" c.caja_id"); + sb.append(" from caja c"); + sb.append(" join parada po on po.parada_id = c.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 = c.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(" join empresa_imposto ei on ei.empresa_id = c.empresacorrida_id and ei.estado_id = eo.estado_id"); + sb.append(" join fiscal_impressora imp on imp.numserie = c.serieimpfiscal"); + sb.append(" left join alias_servico s on s.origen_id = c.origen_id and s.destino_id = c.destino_id and (s.corrida_id = c.corrida_id or s.corrida_id is null) and s.ruta_id = c.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(" left join empresa_imposto eis on eis.empresa_id = c.empresacorrida_id and eis.estado_id = eos.estado_id"); + sb.append(" left join fiscal_r4 r4 on r4.caja_id = c.caja_id"); + sb.append(" left join fiscal_r2 r2 on r2.numserie20 = imp.numserie20 and r2.datamov = to_char(c.feccreacion, 'YYYYMMDD')"); + sb.append(" where c.activo = 1 and s.activo = 1 and po.activo = 1 and co.activo = 1 and eo.activo = 1 and ei.activo = 1 and pos.activo = 1 and cos.activo = 1 and eos.activo = 1"); + sb.append(" and coalesce(CASE WHEN s.aliasorigen_id IS NULL THEN ei.activo ELSE eis.activo END, 0) = 1"); + sb.append(" and c.serieimpfiscal is not null and r4.caja_id is null"); + sb.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))"); + sb.append(" and (c.preciopagado + c.importetaxaembarque + c.importeseguro + c.importepedagio + c.importeoutros) > 0"); + sb.append(" and trunc(c.feccreacion) >= trunc(TO_DATE(?,'DD/MM/YYYY HH24:MI:SS')) and trunc(c.feccreacion) <= trunc(TO_DATE(?,'DD/MM/YYYY HH24:MI:SS'))"); + sb.append(" and c.empresacorrida_id = ?"); + sb.append(" and ((CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) = ?)"); + sb.append(" ) "); + sb.append(" group by ecf, datamov, coo, municipio_origem, estado_origem, municipio_destino, estado_destino, red_base_calc_icms, porc_red_municipal, porc_red_estadual, tributacao_importacao, isenta, numfoliosistema"); try { PreparedStatement ps = connection.prepareStatement(sb.toString()); @@ -1841,176 +1666,10 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO ps.setString(2, DateUtil.getStringDate(fim, DATE_FORMAT_FISCAL)); ps.setLong(3, Long.valueOf(empresaId)); ps.setString(4, cveestado); - - ResultSet rs = ps.executeQuery(); - - ExportacaoECFTipoCCF registro = null; - - while (rs.next()) { - BigDecimal valorTarifa = BigDecimal.ZERO; - - if (rs.getString("valortarifa") != null) { - valorTarifa = BigDecimal.valueOf(Double.valueOf(rs.getString("valortarifa")) / 100); - } else { - valorTarifa = rs.getBigDecimal("preciopagado"); - - log.info("Tarifa nao encontrada na R5. (ECF: " + rs.getString("ecf") + " / DATAMOV: " + rs.getString("datamov") + " / COO: " + rs.getString("coo") + ")"); - } - - registro = new ExportacaoECFTipoCCF(); - registro.setEcf(rs.getString("ecf")); - registro.setDataEmissao(rs.getString("datamov")); - registro.setCoo(Integer.valueOf(rs.getString("coo"))); - registro.setValorServico(valorTarifa); - registro.setDescontoGlobal(null); - registro.setCodigoParticipante(null); - registro.setSituacaoCOO(0); // 0 - Documento Regular; 2 - Documento Cancelado - registro.setAcrescimo(null); - registro.setNumFolioSistema(rs.getString("numFolioSistema")); - - registro.setCodigoSituacaoTribColunaB(null); - - // 00 - tributação normal; 20 - tributação com redução na base de calculo; 40 - isentos - if (rs.getInt("isenta") == 1) { - registro.setCodigoSituacaoTribColunaB(40); - } - - registro.setUfOrigem(rs.getString("estado_origem")); - registro.setMunicipioOrigem(Integer.valueOf(rs.getString("municipio_origem"))); - registro.setUfDestino(rs.getString("estado_destino")); - - // IM=5357; Serviço IE= 6357 - if (rs.getString("estado_origem").equals(rs.getString("estado_destino"))) { - registro.setCfop(5357); - } else { - registro.setCfop(6357); - } - - // 00 - tributação normal; 20 - tributação com redução na base de calculo; 40 - isentos - if (registro.getCodigoSituacaoTribColunaB() == null) { - registro.setCodigoSituacaoTribColunaB(rs.getInt("red_base_calc_icms") == 0 ? 0 : 20); - } - - BigDecimal valorTotal = BigDecimal.valueOf(Double.valueOf(rs.getString("valortotal")) / 100); - - BigDecimal red_base_calc_icms = rs.getBigDecimal("red_base_calc_icms"); -// BigDecimal porc_red_municipal = rs.getBigDecimal("porc_red_municipal"); -// BigDecimal porc_red_estadual = rs.getBigDecimal("porc_red_estadual"); - BigDecimal tributacao_importacao = rs.getBigDecimal("tributacao_importacao"); - BigDecimal valorBaseCalculoICMS = BigDecimal.ZERO; - - if ("30|40|41|50|60".contains(registro.getCodigoSituacaoTribColunaB().toString())) { - tributacao_importacao = BigDecimal.ZERO; - } - - if (red_base_calc_icms != null) { - valorBaseCalculoICMS = valorTotal.subtract(valorTotal.multiply(red_base_calc_icms.divide(BigDecimal.valueOf(100d)))); - } else { - // if (tributacao_importacao != null) { - // if (rs.getString("estado_origem").equals(rs.getString("estado_destino"))) { - // if (porc_red_municipal != null) { - // BigDecimal porc = tributacao_importacao.subtract(tributacao_importacao.multiply(porc_red_municipal.divide(BigDecimal.valueOf(100d)))); - // valorBaseCalculoICMS = valorTotal.multiply(porc.divide(BigDecimal.valueOf(100d))); - // } - // } else { - // if (porc_red_estadual != null) { - // BigDecimal porc = tributacao_importacao.subtract(tributacao_importacao.multiply(porc_red_estadual.divide(BigDecimal.valueOf(100d)))); - // valorBaseCalculoICMS = valorTotal.multiply(porc.divide(BigDecimal.valueOf(100d))); - // } - // } - // } - - // Email 17/02/2017 - valorBaseCalculoICMS = valorTotal; - } - - if (rs.getInt("isenta") == 1) { - valorBaseCalculoICMS = null; - } - - registro.setValorTotal(valorTotal); - - // 1 - Demais; 2 - Região Metropolitanao ou seja, quando o campo CSTB for "40", esse campo deve vir "2". Do contrário, deve vir "1" - registro.setTributacaoICMS(registro.getCodigoSituacaoTribColunaB() == 40 ? 2 : 1); - - registro.setValorBaseCalculoICMS(valorBaseCalculoICMS); - registro.setAliquotaICMS(tributacao_importacao); - - retorno.add(registro); - } - - rs.close(); - ps.close(); - - } catch (Exception e) { - log.error(e.getMessage(), e); - } - - return retorno; - } - - @Override - public List buscarRegistroECFTipoCCF_Boleto(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado) { - List retorno = new ArrayList(); - - StringBuilder sb = new StringBuilder(); - sb.append(" select ecf, datamov, coo, sum(valortarifa) as valortarifa, sum(preciopagado) as preciopagado, municipio_origem, estado_origem, municipio_destino, estado_destino, red_base_calc_icms, porc_red_municipal, porc_red_estadual, tributacao_importacao, isenta, numfoliosistema, sum(valortotal) as valortotal"); - sb.append(" from ("); - - sb.append(" select distinct"); - sb.append(" imp.numserie20 as ecf,"); - sb.append(" to_char(c.feccreacion, 'YYYYMMDD') as datamov,"); - sb.append(" '000001' as coo,"); - sb.append(" c.preciopagado as valortarifa,"); - sb.append(" c.preciopagado as preciopagado,"); - sb.append(" (CASE WHEN s.aliasorigen_id IS NULL THEN co.codibge ELSE cos.codibge END) as municipio_origem,"); - sb.append(" (CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) as estado_origem,"); - sb.append(" (CASE WHEN s.aliasdestino_id IS NULL THEN cd.codibge ELSE cds.codibge END) as municipio_destino,"); - sb.append(" (CASE WHEN s.aliasdestino_id IS NULL THEN ed.cveestado ELSE eds.cveestado END) as estado_destino,"); - 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 s.aliasorigen_id IS NULL THEN po.regionmetropolitana_id ELSE pos.regionmetropolitana_id END),-1) = nvl((CASE WHEN s.aliasdestino_id IS NULL THEN pd.regionmetropolitana_id ELSE pds.regionmetropolitana_id END),-2)) THEN 1 ELSE 0 END) as isenta,"); - sb.append(" c.preciopagado + c.importetaxaembarque + c.importeseguro + c.importepedagio + c.importeoutros as valortotal,"); - sb.append(" c.numfoliosistema as numfoliosistema,"); - sb.append(" c.caja_id"); - sb.append(" from caja c"); - sb.append(" join parada po on po.parada_id = c.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 = c.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(" join empresa_imposto ei on ei.empresa_id = c.empresacorrida_id and ei.estado_id = eo.estado_id"); - sb.append(" join fiscal_impressora imp on imp.numserie = c.serieimpfiscal"); - sb.append(" left join alias_servico s on s.origen_id = c.origen_id and s.destino_id = c.destino_id and (s.corrida_id = c.corrida_id or s.corrida_id is null) and s.ruta_id = c.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(" left join empresa_imposto eis on eis.empresa_id = c.empresacorrida_id and eis.estado_id = eos.estado_id"); - sb.append(" left join fiscal_r4 r4 on r4.caja_id = c.caja_id"); - sb.append(" where c.activo = 1 and s.activo = 1 and po.activo = 1 and co.activo = 1 and eo.activo = 1 and ei.activo = 1 and pos.activo = 1 and cos.activo = 1 and eos.activo = 1"); - sb.append(" and coalesce(CASE WHEN s.aliasorigen_id IS NULL THEN ei.activo ELSE eis.activo END, 0) = 1"); - sb.append(" and c.serieimpfiscal is not null and r4.caja_id is null"); - sb.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))"); - sb.append(" and (c.preciopagado + c.importetaxaembarque + c.importeseguro + c.importepedagio + c.importeoutros) > 0"); - sb.append(" and trunc(c.feccreacion) >= trunc(TO_DATE(?,'DD/MM/YYYY HH24:MI:SS')) and trunc(c.feccreacion) <= trunc(TO_DATE(?,'DD/MM/YYYY HH24:MI:SS'))"); - sb.append(" and c.empresacorrida_id = ?"); - sb.append(" and ((CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) = ?)"); - - sb.append(" )"); - sb.append(" group by ecf, datamov, coo, municipio_origem, estado_origem, municipio_destino, estado_destino, red_base_calc_icms, porc_red_municipal, porc_red_estadual, tributacao_importacao, isenta, numfoliosistema"); - - try { - PreparedStatement ps = connection.prepareStatement(sb.toString()); - ps.setString(1, DateUtil.getStringDate(inicio, DATE_FORMAT_DMYHMS)); - ps.setString(2, DateUtil.getStringDate(fim, DATE_FORMAT_DMYHMS)); - ps.setLong(3, Long.valueOf(empresaId)); - ps.setString(4, cveestado); + ps.setString(5, DateUtil.getStringDate(inicio, DATE_FORMAT_DMYHMS)); + ps.setString(6, DateUtil.getStringDate(fim, DATE_FORMAT_DMYHMS)); + ps.setLong(7, Long.valueOf(empresaId)); + ps.setString(8, cveestado); ResultSet rs = ps.executeQuery(); @@ -2126,40 +1785,86 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO List retorno = new ArrayList(); StringBuilder sb = new StringBuilder(); - sb.append(" select distinct"); - sb.append(" r4.numserie20 as ecf,"); - sb.append(" r4.datamov as datamov,"); - sb.append(" r4.coo as coo,"); - sb.append(" (CASE WHEN s.aliasorigen_id IS NULL THEN co.codibge ELSE cos.codibge END) as municipio_origem,"); - sb.append(" (CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) as estado_origem,"); - sb.append(" (CASE WHEN s.aliasdestino_id IS NULL THEN cd.codibge ELSE cds.codibge END) as municipio_destino,"); - sb.append(" (CASE WHEN s.aliasdestino_id IS NULL THEN ed.cveestado ELSE eds.cveestado END) as estado_destino,"); - 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 s.aliasorigen_id IS NULL THEN po.regionmetropolitana_id ELSE pos.regionmetropolitana_id END),-1) = nvl((CASE WHEN s.aliasdestino_id IS NULL THEN pd.regionmetropolitana_id ELSE pds.regionmetropolitana_id END),-2)) THEN 1 ELSE 0 END) as isenta,"); - sb.append(" r4.impsubtotal as valortotal"); - sb.append(" from fiscal_r4 r4"); - sb.append(" join fiscal_r2 r2 on r2.numserie20 = r4.numserie20 and r2.datamov = r4.datamov"); - sb.append(" join boleto b on b.boleto_id = r4.boleto_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(" join empresa_imposto ei on ei.empresa_id = b.empresacorrida_id and ei.estado_id = eo.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 or s.corrida_id is null) 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(" left join empresa_imposto eis on eis.empresa_id = b.empresacorrida_id and eis.estado_id = eos.estado_id"); - sb.append(" where coalesce(r4.indcancelamento, 'N') <> 'S' and nvl(CASE WHEN s.aliasorigen_id IS NULL THEN ei.activo ELSE eis.activo END, 0) = 1 and b.activo = 1 and r4.datamov >= ? and r4.datamov <= ? and b.empresacorrida_id = ? and ((CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) = ?)"); - sb.append(" order by r4.numserie20, r4.datamov"); + sb.append(" select ecf, datamov, coo, municipio_origem, estado_origem, municipio_destino, estado_destino, red_base_calc_icms, porc_red_municipal, porc_red_estadual, tributacao_importacao, isenta, sum(valortotal) as valortotal"); + sb.append(" from ("); + sb.append(" select distinct"); + sb.append(" r4.numserie20 as ecf,"); + sb.append(" r4.datamov as datamov,"); + sb.append(" r4.coo as coo,"); + sb.append(" (CASE WHEN s.aliasorigen_id IS NULL THEN co.codibge ELSE cos.codibge END) as municipio_origem,"); + sb.append(" (CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) as estado_origem,"); + sb.append(" (CASE WHEN s.aliasdestino_id IS NULL THEN cd.codibge ELSE cds.codibge END) as municipio_destino,"); + sb.append(" (CASE WHEN s.aliasdestino_id IS NULL THEN ed.cveestado ELSE eds.cveestado END) as estado_destino,"); + 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 s.aliasorigen_id IS NULL THEN po.regionmetropolitana_id ELSE pos.regionmetropolitana_id END),-1) = nvl((CASE WHEN s.aliasdestino_id IS NULL THEN pd.regionmetropolitana_id ELSE pds.regionmetropolitana_id END),-2)) THEN 1 ELSE 0 END) as isenta,"); + sb.append(" to_number(r4.impsubtotal)/100 as valortotal"); + sb.append(" from fiscal_r4 r4"); + sb.append(" join fiscal_r2 r2 on r2.numserie20 = r4.numserie20 and r2.datamov = r4.datamov"); + sb.append(" join boleto b on b.boleto_id = r4.boleto_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(" join empresa_imposto ei on ei.empresa_id = b.empresacorrida_id and ei.estado_id = eo.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 or s.corrida_id is null) 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(" left join empresa_imposto eis on eis.empresa_id = b.empresacorrida_id and eis.estado_id = eos.estado_id"); + sb.append(" where coalesce(r4.indcancelamento, 'N') <> 'S' and nvl(CASE WHEN s.aliasorigen_id IS NULL THEN ei.activo ELSE eis.activo END, 0) = 1 and b.activo = 1 and r4.datamov >= ? and r4.datamov <= ? and b.empresacorrida_id = ? and ((CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) = ?)"); + sb.append(" UNION"); + sb.append(" select distinct"); + sb.append(" (case when r2.numserie20 is null then 'X' else '' end) || imp.numserie20 as ecf,"); + sb.append(" to_char(c.feccreacion, 'YYYYMMDD') as datamov,"); + sb.append(" '000001' as coo,"); + sb.append(" (CASE WHEN s.aliasorigen_id IS NULL THEN co.codibge ELSE cos.codibge END) as municipio_origem,"); + sb.append(" (CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) as estado_origem,"); + sb.append(" (CASE WHEN s.aliasdestino_id IS NULL THEN cd.codibge ELSE cds.codibge END) as municipio_destino,"); + sb.append(" (CASE WHEN s.aliasdestino_id IS NULL THEN ed.cveestado ELSE eds.cveestado END) as estado_destino,"); + 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 s.aliasorigen_id IS NULL THEN po.regionmetropolitana_id ELSE pos.regionmetropolitana_id END),-1) = nvl((CASE WHEN s.aliasdestino_id IS NULL THEN pd.regionmetropolitana_id ELSE pds.regionmetropolitana_id END),-2)) THEN 1 ELSE 0 END) as isenta,"); + sb.append(" (c.preciopagado + c.importetaxaembarque + c.importeseguro + c.importepedagio + c.importeoutros) as valortotal"); + sb.append(" from caja c"); + sb.append(" join parada po on po.parada_id = c.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 = c.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(" join empresa_imposto ei on ei.empresa_id = c.empresacorrida_id and ei.estado_id = eo.estado_id"); + sb.append(" join fiscal_impressora imp on imp.numserie = c.serieimpfiscal"); + sb.append(" left join alias_servico s on s.origen_id = c.origen_id and s.destino_id = c.destino_id and (s.corrida_id = c.corrida_id or s.corrida_id is null) and s.ruta_id = c.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(" left join empresa_imposto eis on eis.empresa_id = c.empresacorrida_id and eis.estado_id = eos.estado_id"); + sb.append(" left join fiscal_r4 r4 on r4.caja_id = c.caja_id"); + sb.append(" left join fiscal_r2 r2 on r2.numserie20 = imp.numserie20 and r2.datamov = to_char(c.feccreacion, 'YYYYMMDD')"); + sb.append(" where c.activo = 1 and s.activo = 1 and po.activo = 1 and co.activo = 1 and eo.activo = 1 and ei.activo = 1 and pos.activo = 1 and cos.activo = 1 and eos.activo = 1"); + sb.append(" and coalesce(CASE WHEN s.aliasorigen_id IS NULL THEN ei.activo ELSE eis.activo END, 0) = 1"); + sb.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))"); + sb.append(" and (c.preciopagado + c.importetaxaembarque + c.importeseguro + c.importepedagio + c.importeoutros) > 0"); + sb.append(" and c.serieimpfiscal is not null and r4.caja_id is null"); + sb.append(" and trunc(c.feccreacion) >= trunc(TO_DATE(?,'DD/MM/YYYY HH24:MI:SS')) and trunc(c.feccreacion) <= trunc(TO_DATE(?,'DD/MM/YYYY HH24:MI:SS'))"); + sb.append(" and c.empresacorrida_id = ?"); + sb.append(" and ((CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) = ?)"); + sb.append(" )"); + sb.append(" group by ecf, datamov, coo, municipio_origem, estado_origem, municipio_destino, estado_destino, red_base_calc_icms, porc_red_municipal, porc_red_estadual, tributacao_importacao, isenta"); + sb.append(" order by ecf, datamov"); try { PreparedStatement ps = connection.prepareStatement(sb.toString()); @@ -2167,209 +1872,10 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO ps.setString(2, DateUtil.getStringDate(fim, DATE_FORMAT_FISCAL)); ps.setLong(3, Long.valueOf(empresaId)); ps.setString(4, cveestado); - - ResultSet rs = ps.executeQuery(); - - ExportacaoECFTipoICF registro = null; - - Map group = new HashMap(); - - while (rs.next()) { - BigDecimal valorTotal = MoneyHelper.dividir(MoneyHelper.instanciar(rs.getString("valortotal")), BigDecimal.valueOf(100d)); - - BigDecimal red_base_calc_icms = MoneyHelper.instanciar(rs.getBigDecimal("red_base_calc_icms")); - BigDecimal porc_red_municipal = MoneyHelper.instanciar(rs.getBigDecimal("porc_red_municipal")); - BigDecimal porc_red_estadual = MoneyHelper.instanciar(rs.getBigDecimal("porc_red_estadual")); - BigDecimal tributacao_importacao = MoneyHelper.instanciar(rs.getBigDecimal("tributacao_importacao")); - BigDecimal valorBaseCalculoICMS = BigDecimal.ZERO; - - if (red_base_calc_icms != null) { - BigDecimal aRed_base_calc_icms = MoneyHelper.dividir(red_base_calc_icms, BigDecimal.valueOf(100d)); - valorBaseCalculoICMS = MoneyHelper.subtrair(valorTotal, MoneyHelper.multiplicar(valorTotal, aRed_base_calc_icms)); - } else { - // if (tributacao_importacao != null) { - // if (rs.getString("estado_origem").equals(rs.getString("estado_destino"))) { - // if (porc_red_municipal != null) { - // BigDecimal aPorc_red_municipal = MoneyHelper.dividir(porc_red_municipal, BigDecimal.valueOf(100d)); - // BigDecimal porc = MoneyHelper.subtrair(tributacao_importacao, MoneyHelper.multiplicar(tributacao_importacao, aPorc_red_municipal)); - // BigDecimal aPorc = MoneyHelper.dividir(porc, BigDecimal.valueOf(100d)); - // - // valorBaseCalculoICMS = MoneyHelper.multiplicar(valorTotal, aPorc); - // } - // } else { - // if (porc_red_estadual != null) { - // BigDecimal aPorc_red_estadual = MoneyHelper.dividir(porc_red_estadual, BigDecimal.valueOf(100d)); - // BigDecimal porc = MoneyHelper.subtrair(tributacao_importacao, MoneyHelper.multiplicar(tributacao_importacao, aPorc_red_estadual)); - // BigDecimal aPorc = MoneyHelper.dividir(porc, BigDecimal.valueOf(100d)); - // - // valorBaseCalculoICMS = MoneyHelper.multiplicar(valorTotal, aPorc); - // } - // } - // } - - // Email 17/02/2017 - valorBaseCalculoICMS = valorTotal; - } - - BigDecimal valorICMSDebitado = BigDecimal.ZERO; - - if (tributacao_importacao != null) { - BigDecimal aTributacao_importacao = MoneyHelper.dividir(tributacao_importacao, BigDecimal.valueOf(100d)); - valorICMSDebitado = MoneyHelper.multiplicar(valorBaseCalculoICMS, aTributacao_importacao); - } - - BigDecimal valorICMSIsento = BigDecimal.ZERO; - BigDecimal valorICMSOutros = MoneyHelper.subtrair(valorTotal, valorBaseCalculoICMS); - - String ecf = rs.getString("ecf"); - String datamov = rs.getString("datamov"); - String ufDestino = ""; - String ufOrigem = ""; - Integer municipioOrigem = 0; - Integer cfop = 0; // IM=5357; Serviço IE= 6357 - - // 00 - tributação normal; 20 - tributação com redução na base de calculo; 40 - isentos - Integer codigoSituacaoTribColunaB = null; - - if (rs.getInt("isenta") == 1) { - codigoSituacaoTribColunaB = 40; - - valorICMSOutros = valorTotal; - } - - ufDestino = rs.getString("estado_destino"); - ufOrigem = rs.getString("estado_origem"); - municipioOrigem = rs.getInt("municipio_origem"); - - // IM=5357; Serviço IE= 6357 - if (rs.getString("estado_origem").equals(rs.getString("estado_destino"))) { - cfop = 5357; - } else { - cfop = 6357; - } - - // 00 - tributação normal; 20 - tributação com redução na base de calculo; 40 - isentos - if (codigoSituacaoTribColunaB == null) { - codigoSituacaoTribColunaB = rs.getInt("red_base_calc_icms") == 0 ? 0 : 20; - } - - if (codigoSituacaoTribColunaB == 40) { - tributacao_importacao = BigDecimal.ZERO; - valorBaseCalculoICMS = BigDecimal.ZERO; - valorICMSDebitado = BigDecimal.ZERO; - valorICMSOutros = BigDecimal.ZERO; - - valorICMSIsento = valorTotal; - } - - String key = ecf + "|" + datamov + "|" + ufDestino + "|" + cfop.toString() + "|" + codigoSituacaoTribColunaB.toString(); - - if (group.containsKey(key)) { - registro = group.get(key); - - valorTotal = MoneyHelper.somar(valorTotal, registro.getValorTotal()); - valorBaseCalculoICMS = MoneyHelper.somar(valorBaseCalculoICMS, registro.getValorBaseCalculoICMS()); - valorICMSDebitado = MoneyHelper.somar(valorICMSDebitado, registro.getValorICMSDebitado()); - valorICMSIsento = MoneyHelper.somar(valorICMSIsento, registro.getValorICMSIsento()); - valorICMSOutros = MoneyHelper.somar(valorICMSOutros, registro.getValorICMSOutros()); - } else { - registro = new ExportacaoECFTipoICF(); - registro.setEcf(ecf); - registro.setDataEmissao(datamov); - registro.setUfDestino(ufDestino); - registro.setCfop(cfop); // IM=5357; Serviço IE= 6357 - registro.setCodigoSituacaoTribColunaB(codigoSituacaoTribColunaB); // 00 - tributação normal; 20 - tributação com redução na base de calculo; 40 - isentos - registro.setAliquotaICMS(tributacao_importacao); - registro.setUfOrigem(ufOrigem); - registro.setMunicipioOrigem(municipioOrigem); - - registro.setRedutorBaseCalculoIcms(red_base_calc_icms); - registro.setRedutorMunicipalIcms(porc_red_municipal); - registro.setRedutorEstadualIcms(porc_red_estadual); - - group.put(key, registro); - } - - registro.setValorTotal(valorTotal); - registro.setValorBaseCalculoICMS(valorBaseCalculoICMS); - registro.setValorICMSDebitado(valorICMSDebitado); - registro.setValorICMSIsento(valorICMSIsento); - registro.setValorICMSOutros(valorICMSOutros); - } - - for (Map.Entry entry : group.entrySet()) { - retorno.add(entry.getValue()); - } - - rs.close(); - ps.close(); - - } catch (Exception e) { - log.error(e.getMessage(), e); - } - - return retorno; - } - - @Override - public List buscarRegistroECFTipoICF_Boleto(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado) { - List retorno = new ArrayList(); - - StringBuilder sb = new StringBuilder(); - sb.append(" select ecf, datamov, coo, municipio_origem, estado_origem, municipio_destino, estado_destino, red_base_calc_icms, porc_red_municipal, porc_red_estadual, tributacao_importacao, isenta, sum(valortotal) as valortotal"); - sb.append(" from ("); - - sb.append(" select distinct"); - sb.append(" imp.numserie20 as ecf,"); - sb.append(" to_char(c.feccreacion, 'YYYYMMDD') as datamov,"); - sb.append(" '000001' as coo,"); - sb.append(" (CASE WHEN s.aliasorigen_id IS NULL THEN co.codibge ELSE cos.codibge END) as municipio_origem,"); - sb.append(" (CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) as estado_origem,"); - sb.append(" (CASE WHEN s.aliasdestino_id IS NULL THEN cd.codibge ELSE cds.codibge END) as municipio_destino,"); - sb.append(" (CASE WHEN s.aliasdestino_id IS NULL THEN ed.cveestado ELSE eds.cveestado END) as estado_destino,"); - 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 s.aliasorigen_id IS NULL THEN po.regionmetropolitana_id ELSE pos.regionmetropolitana_id END),-1) = nvl((CASE WHEN s.aliasdestino_id IS NULL THEN pd.regionmetropolitana_id ELSE pds.regionmetropolitana_id END),-2)) THEN 1 ELSE 0 END) as isenta,"); - sb.append(" (c.preciopagado + c.importetaxaembarque + c.importeseguro + c.importepedagio + c.importeoutros) as valortotal"); - sb.append(" from caja c"); - sb.append(" join parada po on po.parada_id = c.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 = c.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(" join empresa_imposto ei on ei.empresa_id = c.empresacorrida_id and ei.estado_id = eo.estado_id"); - sb.append(" join fiscal_impressora imp on imp.numserie = c.serieimpfiscal"); - sb.append(" left join alias_servico s on s.origen_id = c.origen_id and s.destino_id = c.destino_id and (s.corrida_id = c.corrida_id or s.corrida_id is null) and s.ruta_id = c.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(" left join empresa_imposto eis on eis.empresa_id = c.empresacorrida_id and eis.estado_id = eos.estado_id"); - sb.append(" left join fiscal_r4 r4 on r4.caja_id = c.caja_id"); - sb.append(" where c.activo = 1 and s.activo = 1 and po.activo = 1 and co.activo = 1 and eo.activo = 1 and ei.activo = 1 and pos.activo = 1 and cos.activo = 1 and eos.activo = 1"); - sb.append(" and coalesce(CASE WHEN s.aliasorigen_id IS NULL THEN ei.activo ELSE eis.activo END, 0) = 1"); - sb.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))"); - sb.append(" and (c.preciopagado + c.importetaxaembarque + c.importeseguro + c.importepedagio + c.importeoutros) > 0"); - sb.append(" and c.serieimpfiscal is not null and r4.caja_id is null"); - sb.append(" and trunc(c.feccreacion) >= trunc(TO_DATE(?,'DD/MM/YYYY HH24:MI:SS')) and trunc(c.feccreacion) <= trunc(TO_DATE(?,'DD/MM/YYYY HH24:MI:SS'))"); - sb.append(" and c.empresacorrida_id = ?"); - sb.append(" and ((CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) = ?)"); - sb.append(" order by to_char(c.feccreacion, 'YYYYMMDD')"); - - sb.append(" )"); - sb.append(" group by ecf, datamov, coo, municipio_origem, estado_origem, municipio_destino, estado_destino, red_base_calc_icms, porc_red_municipal, porc_red_estadual, tributacao_importacao, isenta"); - - try { - PreparedStatement ps = connection.prepareStatement(sb.toString()); - ps.setString(1, DateUtil.getStringDate(inicio, DATE_FORMAT_DMYHMS)); - ps.setString(2, DateUtil.getStringDate(fim, DATE_FORMAT_DMYHMS)); - ps.setLong(3, Long.valueOf(empresaId)); - ps.setString(4, cveestado); + ps.setString(5, DateUtil.getStringDate(inicio, DATE_FORMAT_DMYHMS)); + ps.setString(6, DateUtil.getStringDate(fim, DATE_FORMAT_DMYHMS)); + ps.setLong(7, Long.valueOf(empresaId)); + ps.setString(8, cveestado); ResultSet rs = ps.executeQuery(); @@ -2525,39 +2031,79 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO final StringBuilder sb = new StringBuilder(); sb.append(" select ecf, datamov, municipio_origem, estado_origem, estado_destino, red_base_calc_icms, porc_red_municipal, porc_red_estadual, tributacao_importacao, SUM(valortotal) as valortotal"); sb.append(" from ("); - - sb.append(" select distinct"); - sb.append(" r4.coo as coo,"); - sb.append(" r4.numserie20 as ecf,"); - sb.append(" r4.datamov as datamov,"); - sb.append(" (CASE WHEN s.aliasorigen_id IS NULL THEN co.codibge ELSE cos.codibge END) as municipio_origem,"); - 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 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(" r4.impsubtotal as valortotal"); - sb.append(" from fiscal_r4 r4"); - sb.append(" join fiscal_r2 r2 on r2.numserie20 = r4.numserie20 and r2.datamov = r4.datamov"); - sb.append(" join boleto b on b.boleto_id = r4.boleto_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(" join empresa_imposto ei on ei.empresa_id = b.empresacorrida_id and ei.estado_id = eo.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 or s.corrida_id is null) 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(" left join empresa_imposto eis on eis.empresa_id = b.empresacorrida_id and eis.estado_id = eos.estado_id"); - sb.append(" where coalesce(r4.indcancelamento, 'N') <> 'S' and nvl(CASE WHEN s.aliasorigen_id IS NULL THEN ei.activo ELSE eis.activo END, 0) = 1 and b.activo = 1 and r4.datamov >= ? and r4.datamov <= ? and b.empresacorrida_id = ? and ((CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) = ?)"); - + sb.append(" select distinct"); + sb.append(" r4.coo as coo,"); + sb.append(" r4.numserie20 as ecf,"); + sb.append(" r4.datamov as datamov,"); + sb.append(" (CASE WHEN s.aliasorigen_id IS NULL THEN co.codibge ELSE cos.codibge END) as municipio_origem,"); + 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 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(" to_number(r4.impsubtotal)/100 as valortotal,"); + sb.append(" 0 as caja_id"); + sb.append(" from fiscal_r4 r4"); + sb.append(" join fiscal_r2 r2 on r2.numserie20 = r4.numserie20 and r2.datamov = r4.datamov"); + sb.append(" join boleto b on b.boleto_id = r4.boleto_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(" join empresa_imposto ei on ei.empresa_id = b.empresacorrida_id and ei.estado_id = eo.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 or s.corrida_id is null) 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(" left join empresa_imposto eis on eis.empresa_id = b.empresacorrida_id and eis.estado_id = eos.estado_id"); + sb.append(" where coalesce(r4.indcancelamento, 'N') <> 'S' and nvl(CASE WHEN s.aliasorigen_id IS NULL THEN ei.activo ELSE eis.activo END, 0) = 1 and b.activo = 1 and r4.datamov >= ? and r4.datamov <= ? and b.empresacorrida_id = ? and ((CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) = ?)"); + sb.append(" UNION"); + sb.append(" select distinct"); + sb.append(" '000001' as coo,"); + sb.append(" (case when r2.numserie20 is null then 'X' else '' end) || imp.numserie20 as ecf,"); + sb.append(" to_char(c.feccreacion, 'YYYYMMDD') as datamov,"); + sb.append(" (CASE WHEN s.aliasorigen_id IS NULL THEN co.codibge ELSE cos.codibge END) as municipio_origem,"); + 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 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(" c.preciopagado + c.importetaxaembarque + c.importeseguro + c.importepedagio + c.importeoutros as valortotal,"); + sb.append(" c.caja_id"); + sb.append(" from caja c"); + sb.append(" join parada po on po.parada_id = c.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 = c.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(" join empresa_imposto ei on ei.empresa_id = c.empresacorrida_id and ei.estado_id = eo.estado_id"); + sb.append(" join fiscal_impressora imp on imp.numserie = c.serieimpfiscal"); + sb.append(" left join alias_servico s on s.origen_id = c.origen_id and s.destino_id = c.destino_id and (s.corrida_id = c.corrida_id or s.corrida_id is null) and s.ruta_id = c.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(" left join empresa_imposto eis on eis.empresa_id = c.empresacorrida_id and eis.estado_id = eos.estado_id"); + sb.append(" left join fiscal_r4 r4 on r4.caja_id = c.caja_id"); + sb.append(" left join fiscal_r2 r2 on r2.numserie20 = imp.numserie20 and r2.datamov = to_char(c.feccreacion, 'YYYYMMDD')"); + sb.append(" where c.activo = 1 and s.activo = 1 and po.activo = 1 and co.activo = 1 and eo.activo = 1 and ei.activo = 1 and pos.activo = 1 and cos.activo = 1 and eos.activo = 1"); + sb.append(" and coalesce(CASE WHEN s.aliasorigen_id IS NULL THEN ei.activo ELSE eis.activo END, 0) = 1"); + sb.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))"); + sb.append(" and (c.preciopagado + c.importetaxaembarque + c.importeseguro + c.importepedagio + c.importeoutros) > 0"); + sb.append(" and c.serieimpfiscal is not null and r4.caja_id is null"); + sb.append(" and trunc(c.feccreacion) >= trunc(TO_DATE(?,'DD/MM/YYYY HH24:MI:SS')) and trunc(c.feccreacion) <= trunc(TO_DATE(?,'DD/MM/YYYY HH24:MI:SS'))"); + sb.append(" and c.empresacorrida_id = ?"); + sb.append(" and ((CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) = ?)"); sb.append(" ) group by ecf, datamov, municipio_origem, estado_origem, estado_destino, red_base_calc_icms, porc_red_municipal, porc_red_estadual, tributacao_importacao"); Session session = null; @@ -2573,167 +2119,10 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO ps.setString(2, DateUtil.getStringDate(fim, DATE_FORMAT_FISCAL)); ps.setLong(3, Long.valueOf(empresaId)); ps.setString(4, cveestado); - - ResultSet rs = ps.executeQuery(); - - ExportacaoECFTipoPRC registro = null; - - Map group = new HashMap(); - - while (rs.next()) { - BigDecimal valorTotal = MoneyHelper.dividir(MoneyHelper.instanciar(rs.getString("valortotal")), BigDecimal.valueOf(100d)); - - BigDecimal red_base_calc_icms = MoneyHelper.instanciar(rs.getBigDecimal("red_base_calc_icms")); -// BigDecimal porc_red_municipal = MoneyHelper.instanciar(rs.getBigDecimal("porc_red_municipal")); -// BigDecimal porc_red_estadual = MoneyHelper.instanciar(rs.getBigDecimal("porc_red_estadual")); - BigDecimal tributacao_importacao = MoneyHelper.instanciar(rs.getBigDecimal("tributacao_importacao")); - BigDecimal valorBaseCalculoICMS = BigDecimal.ZERO; - - if (tributacao_importacao != null) { - tributacao_importacao = MoneyHelper.dividir(tributacao_importacao, BigDecimal.valueOf(100d)); - } - - if (red_base_calc_icms != null) { - BigDecimal aRed_base_calc_icms = MoneyHelper.dividir(red_base_calc_icms, BigDecimal.valueOf(100d)); - valorBaseCalculoICMS = MoneyHelper.subtrair(valorTotal, MoneyHelper.multiplicar(valorTotal, aRed_base_calc_icms)); - } else { - // if (tributacao_importacao != null) { - // if (rs.getString("estado_origem").equals(rs.getString("estado_destino"))) { - // if (porc_red_municipal != null) { - // BigDecimal aPorc_red_municipal = MoneyHelper.dividir(porc_red_municipal, BigDecimal.valueOf(100d)); - // BigDecimal porc = MoneyHelper.subtrair(tributacao_importacao, MoneyHelper.multiplicar(tributacao_importacao, aPorc_red_municipal)); - // - // BigDecimal aPorc = MoneyHelper.dividir(porc, BigDecimal.valueOf(100d)); - // valorBaseCalculoICMS = MoneyHelper.multiplicar(valorTotal, aPorc); - // } - // } else { - // if (porc_red_estadual != null) { - // BigDecimal aPorc_red_estadual = MoneyHelper.dividir(porc_red_estadual, BigDecimal.valueOf(100d)); - // BigDecimal porc = MoneyHelper.subtrair(tributacao_importacao, MoneyHelper.multiplicar(tributacao_importacao, aPorc_red_estadual)); - // - // BigDecimal aPorc = MoneyHelper.dividir(porc, BigDecimal.valueOf(100d)); - // valorBaseCalculoICMS = MoneyHelper.multiplicar(valorTotal, aPorc); - // } - // } - // } - - // Email 17/02/2017 - valorBaseCalculoICMS = valorTotal; - } - - BigDecimal valorICMS = BigDecimal.ZERO; - - if (tributacao_importacao != null) { - valorICMS = MoneyHelper.multiplicar(valorBaseCalculoICMS, tributacao_importacao); - } - - String key = rs.getString("ecf") + "|" + rs.getString("datamov") + "|" + rs.getString("estado_origem") + "|" + rs.getString("municipio_origem"); - - if (group.containsKey(key)) { - registro = group.get(key); - - registro.setValorTotal(MoneyHelper.somar(registro.getValorTotal(), valorTotal)); - registro.setValorBaseCalculoICMS(MoneyHelper.somar(registro.getValorBaseCalculoICMS(), valorBaseCalculoICMS)); - registro.setValorICMS(MoneyHelper.somar(registro.getValorICMS(), valorICMS)); - - } else { - registro = new ExportacaoECFTipoPRC(); - registro.setEcf(rs.getString("ecf")); - registro.setDataEmissao(rs.getString("datamov")); - registro.setUfOrigem(rs.getString("estado_origem")); - registro.setMunicipioOrigem(Integer.valueOf(rs.getString("municipio_origem"))); - registro.setValorTotal(valorTotal); - registro.setValorBaseCalculoICMS(valorBaseCalculoICMS); - registro.setValorICMS(valorICMS); - registro.setTributacao(tributacao_importacao); - } - - group.put(key, registro); - } - - for (Map.Entry entry : group.entrySet()) { - retorno.add(entry.getValue()); - } - - rs.close(); - ps.close(); - } - }); - - } catch (Exception e) { - log.error(e.getMessage(), e); - - } finally { - session.close(); - - } - - return retorno; - } - - @Override - public List buscarRegistroECFTipoPRC_Boleto(final Connection conn, final Date inicio, final Date fim, final Integer empresaId, final String cveestado) { - final List retorno = new ArrayList(); - - final StringBuilder sb = new StringBuilder(); - sb.append(" select ecf, datamov, municipio_origem, estado_origem, estado_destino, red_base_calc_icms, porc_red_municipal, porc_red_estadual, tributacao_importacao, SUM(valortotal) as valortotal"); - sb.append(" from ("); - - sb.append(" select distinct"); - sb.append(" '000001' as coo,"); - sb.append(" imp.numserie20 as ecf,"); - sb.append(" to_char(c.feccreacion, 'YYYYMMDD') as datamov,"); - sb.append(" (CASE WHEN s.aliasorigen_id IS NULL THEN co.codibge ELSE cos.codibge END) as municipio_origem,"); - 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 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(" c.preciopagado + c.importetaxaembarque + c.importeseguro + c.importepedagio + c.importeoutros as valortotal,"); - sb.append(" c.caja_id"); - sb.append(" from caja c"); - sb.append(" join parada po on po.parada_id = c.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 = c.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(" join empresa_imposto ei on ei.empresa_id = c.empresacorrida_id and ei.estado_id = eo.estado_id"); - sb.append(" join fiscal_impressora imp on imp.numserie = c.serieimpfiscal"); - sb.append(" left join alias_servico s on s.origen_id = c.origen_id and s.destino_id = c.destino_id and (s.corrida_id = c.corrida_id or s.corrida_id is null) and s.ruta_id = c.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(" left join empresa_imposto eis on eis.empresa_id = c.empresacorrida_id and eis.estado_id = eos.estado_id"); - sb.append(" left join fiscal_r4 r4 on r4.caja_id = c.caja_id"); - sb.append(" where c.activo = 1 and s.activo = 1 and po.activo = 1 and co.activo = 1 and eo.activo = 1 and ei.activo = 1 and pos.activo = 1 and cos.activo = 1 and eos.activo = 1"); - sb.append(" and coalesce(CASE WHEN s.aliasorigen_id IS NULL THEN ei.activo ELSE eis.activo END, 0) = 1"); - sb.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))"); - sb.append(" and (c.preciopagado + c.importetaxaembarque + c.importeseguro + c.importepedagio + c.importeoutros) > 0"); - sb.append(" and c.serieimpfiscal is not null and r4.caja_id is null"); - sb.append(" and trunc(c.feccreacion) >= trunc(TO_DATE(?,'DD/MM/YYYY HH24:MI:SS')) and trunc(c.feccreacion) <= trunc(TO_DATE(?,'DD/MM/YYYY HH24:MI:SS'))"); - sb.append(" and c.empresacorrida_id = ?"); - sb.append(" and ((CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) = ?)"); - - sb.append(" ) group by ecf, datamov, municipio_origem, estado_origem, estado_destino, red_base_calc_icms, porc_red_municipal, porc_red_estadual, tributacao_importacao"); - - Session session = null; - - try { - session = getSessionFactory().openSession(); - - session.doWork(new Work() { - @Override - public void execute(Connection connection) throws SQLException { - PreparedStatement ps = connection.prepareStatement(sb.toString()); - ps.setString(1, DateUtil.getStringDate(inicio, DATE_FORMAT_DMYHMS)); - ps.setString(2, DateUtil.getStringDate(fim, DATE_FORMAT_DMYHMS)); - ps.setLong(3, Long.valueOf(empresaId)); - ps.setString(4, cveestado); + ps.setString(5, DateUtil.getStringDate(inicio, DATE_FORMAT_DMYHMS)); + ps.setString(6, DateUtil.getStringDate(fim, DATE_FORMAT_DMYHMS)); + ps.setLong(7, Long.valueOf(empresaId)); + ps.setString(8, cveestado); ResultSet rs = ps.executeQuery(); @@ -2744,10 +2133,6 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO while (rs.next()) { BigDecimal valorTotal = MoneyHelper.instanciar(rs.getString("valortotal")); - if (valorTotal.doubleValue() == 0) { - continue; - } - BigDecimal red_base_calc_icms = MoneyHelper.instanciar(rs.getBigDecimal("red_base_calc_icms")); // BigDecimal porc_red_municipal = MoneyHelper.instanciar(rs.getBigDecimal("porc_red_municipal")); // BigDecimal porc_red_estadual = MoneyHelper.instanciar(rs.getBigDecimal("porc_red_estadual")); diff --git a/src/com/rjconsultores/ventaboletos/service/impl/FiscalServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/FiscalServiceImpl.java index 8fefcef55..4fb268d2d 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/FiscalServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/FiscalServiceImpl.java @@ -903,14 +903,9 @@ public class FiscalServiceImpl implements FiscalService { // CFC begin = Calendar.getInstance().getTimeInMillis(); - log.info("Buscando os registros CFC (ECF)"); List listaRegistroECFTipoCFC = new ArrayList(0); -// listaRegistroECFTipoCFC.addAll(fiscalDAO.buscarRegistroECFTipoCFC(connection, inicio, fim, empresa.getEmpresaId(), estado.getCveestado())); -// log.info("Total de registros: " + listaRegistroECFTipoCFC.size()); -// log.info("Buscando os registros CFC via Boletos (ECF)"); -// listaRegistroECFTipoCFC.addAll(fiscalDAO.buscarRegistroECFTipoCFC_Boleto(connection, inicio, fim, empresa.getEmpresaId(), estado.getCveestado())); -// log.info("Total de registros: " + listaRegistroECFTipoCFC.size()); - listaRegistroECFTipoCFC.addAll(fiscalDAO.buscarRegistroECFTipoCFCHibrido(connection, inicio, fim, empresa.getEmpresaId(), estado.getCveestado())); + log.info("Buscando os registros CFC (ECF)"); + listaRegistroECFTipoCFC.addAll(fiscalDAO.buscarRegistroECFTipoCFC(connection, inicio, fim, empresa.getEmpresaId(), estado.getCveestado())); log.info("Total de registros: " + listaRegistroECFTipoCFC.size()); tempo = infoTempo("CFC", begin); log.info("Tempo na busca dos registros " + tempo); @@ -918,39 +913,30 @@ public class FiscalServiceImpl implements FiscalService { // CCF begin = Calendar.getInstance().getTimeInMillis(); - log.info("Buscando os registros CCF (ECF)"); List listaRegistroECFTipoCCF = new ArrayList(0); + log.info("Buscando os registros CCF (ECF)"); listaRegistroECFTipoCCF.addAll(fiscalDAO.buscarRegistroECFTipoCCF(connection, inicio, fim, empresa.getEmpresaId(), estado.getCveestado())); log.info("Total de registros: " + listaRegistroECFTipoCCF.size()); - log.info("Buscando os registros CCF via Boletos (ECF)"); - listaRegistroECFTipoCCF.addAll(fiscalDAO.buscarRegistroECFTipoCCF_Boleto(connection, inicio, fim, empresa.getEmpresaId(), estado.getCveestado())); - log.info("Total de registros: " + listaRegistroECFTipoCCF.size()); tempo = infoTempo("CCF", begin); log.info("Tempo na busca dos registros " + tempo); tempos.add(tempo); // ICF begin = Calendar.getInstance().getTimeInMillis(); - log.info("Buscando os registros ICF (ECF)"); List listaRegistroECFTipoICF = new ArrayList(0); + log.info("Buscando os registros ICF (ECF)"); listaRegistroECFTipoICF.addAll(fiscalDAO.buscarRegistroECFTipoICF(connection, inicio, fim, empresa.getEmpresaId(), estado.getCveestado())); log.info("Total de registros: " + listaRegistroECFTipoICF.size()); - log.info("Buscando os registros ICF via Boletos (ECF)"); - listaRegistroECFTipoICF.addAll(fiscalDAO.buscarRegistroECFTipoICF_Boleto(connection, inicio, fim, empresa.getEmpresaId(), estado.getCveestado())); - log.info("Total de registros: " + listaRegistroECFTipoICF.size()); tempo = infoTempo("ICF", begin); log.info("Tempo na busca dos registros " + tempo); tempos.add(tempo); // PRC begin = Calendar.getInstance().getTimeInMillis(); - log.info("Buscando os registros PRC (ECF)"); List listaRegistroECFTipoPRC = new ArrayList(0); + log.info("Buscando os registros PRC (ECF)"); listaRegistroECFTipoPRC.addAll(fiscalDAO.buscarRegistroECFTipoPRC(connection, inicio, fim, empresa.getEmpresaId(), estado.getCveestado())); log.info("Total de registros: " + listaRegistroECFTipoPRC.size()); - log.info("Buscando os registros PRC via Boletos (ECF)"); - listaRegistroECFTipoPRC.addAll(fiscalDAO.buscarRegistroECFTipoPRC_Boleto(connection, inicio, fim, empresa.getEmpresaId(), estado.getCveestado())); - log.info("Total de registros: " + listaRegistroECFTipoPRC.size()); tempo = infoTempo("PRC", begin); log.info("Tempo na busca dos registros " + tempo); tempos.add(tempo);