From d50a3dcbdfe5179b0d1b82bf43a98c394a8e4cce Mon Sep 17 00:00:00 2001 From: alberto Date: Tue, 11 Apr 2017 21:20:21 +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@67970 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../dao/hibernate/FiscalHibernateDAO.java | 66 ++++++++++++++++--- 1 file changed, 58 insertions(+), 8 deletions(-) diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java index fba564178..4030cbffb 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java @@ -1305,7 +1305,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO 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 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(" 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"); @@ -1376,11 +1376,50 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO List retorno = new ArrayList(); StringBuilder sb = new StringBuilder(); + +// sb.append(" select distinct"); +// sb.append(" r5.numserie20 as ecf,"); +// sb.append(" r5.datamov as datamov,"); +// sb.append(" r5.coo as coo,"); +// sb.append(" r5.imptotalliquido as valortarifa,"); +// 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_r5 r5"); +// sb.append(" join fiscal_r4 r4 on r4.numserie20 = r5.numserie20 and r4.coo = r5.coo"); +// 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 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 r5.codproduto like '%-TA' and r5.datamov >= ? and r5.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(" r5.numserie20 as ecf,"); - sb.append(" r5.datamov as datamov,"); - sb.append(" r5.coo as coo,"); + 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,"); @@ -1392,8 +1431,9 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO 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_r5 r5"); - sb.append(" join fiscal_r4 r4 on r4.numserie20 = r5.numserie20 and r4.coo = r5.coo"); + 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"); @@ -1411,7 +1451,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO 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 r5.codproduto like '%-TA' and r5.datamov >= ? and r5.datamov <= ? and b.empresacorrida_id = ? and ((CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) = ?)"); + 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) = ?)"); try { PreparedStatement ps = connection.prepareStatement(sb.toString()); @@ -1425,11 +1465,21 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO 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(BigDecimal.valueOf(Double.valueOf(rs.getString("valortarifa")) / 100)); + registro.setValorServico(valorTarifa); registro.setDescontoGlobal(null); registro.setCodigoParticipante(null); registro.setSituacaoCOO(0); // 0 - Documento Regular; 2 - Documento Cancelado