diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java index 3f5ca6cf9..5c6891820 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java @@ -1233,10 +1233,10 @@ public class FiscalHibernateDAO implements FiscalDAO { sb.append(" r2.crz as crz,"); sb.append(" r2.cro as cro,"); sb.append(" r2.coo as coo,"); - sb.append(" nvl(CASE WHEN eis.codestabelecimento IS NULL THEN ei.codestabelecimento ELSE eis.codestabelecimento END, 0) as codestabelecimento,"); + sb.append(" nvl(CASE WHEN s.aliasorigen_id IS NULL THEN ei.codestabelecimento ELSE eis.codestabelecimento END, 0) as codestabelecimento,"); sb.append(" nvl(e.codestabelecimento, 0) as codestabelecimentoimpressora,"); sb.append(" imp.numeroidentificacao as numeroidentificacao,"); - sb.append(" (CASE WHEN eos.cveestado IS NULL THEN eo.cveestado ELSE eos.cveestado END) as estadoorigem,"); + 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"); @@ -1263,7 +1263,7 @@ public class FiscalHibernateDAO 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 eost.cveestado IS NULL THEN eot.cveestado ELSE eost.cveestado END) = (CASE WHEN eos.cveestado IS NULL THEN eo.cveestado ELSE eos.cveestado END))"); + sb.append(" where r4t.numserie20 = r2.numserie20 and r4t.datamov = r2.datamov and ((CASE WHEN eost.cveestado 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"); @@ -1279,7 +1279,7 @@ public class FiscalHibernateDAO implements FiscalDAO { 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 r4.datamov >= ? and r4.datamov <= ? and b.empresacorrida_id = ? and ((CASE WHEN eos.cveestado IS NULL THEN eo.cveestado ELSE eos.cveestado END) = ?)"); + sb.append(" where 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 { @@ -1335,15 +1335,15 @@ public class FiscalHibernateDAO implements FiscalDAO { sb.append(" r5.numserie20 as ecf,"); sb.append(" r5.coo as coo,"); sb.append(" r5.impunitario as valortarifa,"); - sb.append(" (CASE WHEN cos.codibge IS NULL THEN co.codibge ELSE cos.codibge END) as municipio_origem,"); - sb.append(" (CASE WHEN eos.cveestado IS NULL THEN eo.cveestado ELSE eos.cveestado END) as estado_origem,"); - sb.append(" (CASE WHEN cds.codibge IS NULL THEN cd.codibge ELSE cds.codibge END) as municipio_destino,"); - sb.append(" (CASE WHEN eds.cveestado IS NULL THEN ed.cveestado ELSE eds.cveestado END) as estado_destino,"); - sb.append(" (CASE WHEN eis.porcredbaseicms IS NULL THEN ei.porcredbaseicms ELSE eis.porcredbaseicms END) as red_base_calc_icms,"); - sb.append(" (CASE WHEN eis.porcredmunicipal IS NULL THEN ei.porcredmunicipal ELSE eis.porcredmunicipal END) as porc_red_municipal,"); - sb.append(" (CASE WHEN eis.porcredestadual IS NULL THEN ei.porcredestadual ELSE eis.porcredestadual END) as porc_red_estadual,"); - sb.append(" (CASE WHEN eis.tributacaoimportacao IS NULL THEN ei.tributacaoimportacao ELSE eis.tributacaoimportacao END) as tributacao_importacao,"); - sb.append(" (CASE WHEN (nvl((CASE WHEN pos.parada_id IS NULL THEN pos.regionmetropolitana_id ELSE po.regionmetropolitana_id END),-1) = nvl((CASE WHEN pds.parada_id IS NULL THEN pds.regionmetropolitana_id ELSE pd.regionmetropolitana_id END),-2)) THEN 1 ELSE 0 END) as isenta,"); + sb.append(" (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_r5 r5"); sb.append(" join fiscal_r4 r4 on r4.numserie20 = r5.numserie20 and r4.coo = r5.coo"); @@ -1364,7 +1364,7 @@ public class FiscalHibernateDAO 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 r5.codproduto like '%-TA' and r5.datamov >= ? and r5.datamov <= ? and b.empresacorrida_id = ? and ((CASE WHEN eos.cveestado IS NULL THEN eo.cveestado ELSE eos.cveestado END) = ?)"); + sb.append(" where 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) = ?)"); try { PreparedStatement ps = connection.prepareStatement(sb.toString()); @@ -1435,15 +1435,17 @@ public class FiscalHibernateDAO implements FiscalDAO { List retorno = new ArrayList(); StringBuilder sb = new StringBuilder(); - sb.append(" select distinct"); + sb.append(" select"); sb.append(" r4.numserie20 as ecf,"); - sb.append(" (CASE WHEN cos.codibge IS NULL THEN co.codibge ELSE cos.codibge END) as municipio_origem,"); - sb.append(" (CASE WHEN eos.cveestado IS NULL THEN eo.cveestado ELSE eos.cveestado END) as estado_origem,"); - sb.append(" (CASE WHEN cds.codibge IS NULL THEN cd.codibge ELSE cds.codibge END) as municipio_destino,"); - sb.append(" (CASE WHEN eds.cveestado IS NULL THEN ed.cveestado ELSE eds.cveestado END) as estado_destino,"); - sb.append(" (CASE WHEN eis.porcredbaseicms IS NULL THEN ei.porcredbaseicms ELSE eis.porcredbaseicms END) as red_base_calc_icms,"); - sb.append(" (CASE WHEN eis.tributacaoimportacao IS NULL THEN ei.tributacaoimportacao ELSE eis.tributacaoimportacao END) as tributacao_importacao,"); - sb.append(" (CASE WHEN (nvl((CASE WHEN pos.parada_id IS NULL THEN pos.regionmetropolitana_id ELSE po.regionmetropolitana_id END),-1) = nvl((CASE WHEN pds.parada_id IS NULL THEN pds.regionmetropolitana_id ELSE pd.regionmetropolitana_id END),-2)) THEN 1 ELSE 0 END) as isenta,"); + sb.append(" (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 pos.regionmetropolitana_id ELSE po.regionmetropolitana_id END),-1) = nvl((CASE WHEN s.aliasdestino_id IS NULL THEN pds.regionmetropolitana_id ELSE pd.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"); @@ -1462,8 +1464,8 @@ public class FiscalHibernateDAO implements FiscalDAO { 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 = eds.estado_id"); - sb.append(" where r4.datamov >= ? and r4.datamov <= ? and b.empresacorrida_id = ? and ((CASE WHEN eos.cveestado IS NULL THEN eo.cveestado ELSE eos.cveestado END) = ?)"); + sb.append(" left join empresa_imposto eis on eis.empresa_id = b.empresacorrida_id and eis.estado_id = eos.estado_id"); + sb.append(" where 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()); @@ -1562,30 +1564,37 @@ public class FiscalHibernateDAO implements FiscalDAO { List retorno = new ArrayList(); StringBuilder sb = new StringBuilder(); - sb.append(" select distinct co.codibge as municipio_origem, eo.cveestado as estado_origem, cd.codibge as municipio_destino, ed.cveestado as estado_destino, r4.impsubtotal as valortotal, cos.CODIBGE as municipio_origem_alias, eos.cveestado as estado_origem_alias, cds.CODIBGE as municipio_destino_alias, eds.cveestado as estado_destino_alias, ei.porcredbaseicms as red_base_calc_icms, eis.porcredbaseicms as red_base_calc_icms_alias") - .append(" from fiscal_r4 r4") - .append(" join boleto b on b.boleto_id = r4.boleto_id") - .append(" join parada po on po.parada_id = b.origen_id") - .append(" join ciudad co on co.ciudad_id = po.ciudad_id") - .append(" join estado eo on eo.estado_id = co.estado_id") - .append(" join parada pd on pd.parada_id = b.destino_id") - .append(" join ciudad cd on cd.ciudad_id = pd.ciudad_id") - .append(" join estado ed on ed.estado_id = cd.estado_id") - .append(" join empresa_imposto ei on ei.empresa_id = b.empresacorrida_id and ei.estado_id = ed.estado_id") - .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") - .append(" left join parada pos on pos.parada_id = s.aliasorigen_id") - .append(" left join ciudad cos on cos.ciudad_id = pos.ciudad_id") - .append(" left join estado eos on eos.estado_id = cos.estado_id") - .append(" left join parada pds on pds.parada_id = s.aliasdestino_id") - .append(" left join ciudad cds on cds.ciudad_id = pds.ciudad_id") - .append(" left join estado eds on eds.estado_id = cds.estado_id") - .append(" left join empresa_imposto eis on eis.empresa_id = b.empresacorrida_id and eis.estado_id = eds.estado_id") - .append(" where r4.indvendamanual = 0 and r4.datamov >= ? and r4.datamov <= ?"); + sb.append(" select"); + sb.append(" r4.numserie20 as ecf,"); + 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 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(" 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 = ed.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 empresa_imposto eis on eis.empresa_id = b.empresacorrida_id and eis.estado_id = eos.estado_id"); + sb.append(" where 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()); ps.setLong(1, Long.valueOf(DateUtil.getStringDate(inicio, DATE_FORMAT_FISCAL))); ps.setLong(2, Long.valueOf(DateUtil.getStringDate(fim, DATE_FORMAT_FISCAL))); + ps.setLong(3, Long.valueOf(empresaId)); + ps.setString(4, cveestado); ResultSet rs = ps.executeQuery(); @@ -1596,20 +1605,9 @@ public class FiscalHibernateDAO implements FiscalDAO { BigDecimal valorBaseCalculoICMS = BigDecimal.valueOf(Double.valueOf(rs.getString("valortotal")) / 100); BigDecimal valorICMS = BigDecimal.ZERO; // FIXME: Falta definir informação para a Exportação Fiscal ECF - String ufOrigem = ""; - Integer municipioOrigem = 0; - - if (rs.getString("estado_origem_alias") == null) { - ufOrigem = rs.getString("estado_origem"); - municipioOrigem = Integer.valueOf(rs.getString("municipio_origem")); - } else { - ufOrigem = rs.getString("estado_origem_alias"); - municipioOrigem = Integer.valueOf(rs.getString("municipio_origem_alias")); - } - registro = new ExportacaoECFTipoPRC(); - registro.setUfOrigem(ufOrigem); - registro.setMunicipioOrigem(municipioOrigem); + registro.setUfOrigem(rs.getString("estado_origem")); + registro.setMunicipioOrigem(Integer.valueOf(rs.getString("municipio_origem"))); registro.setValorTotal(valorTotal); registro.setValorBaseCalculoICMS(valorBaseCalculoICMS); registro.setValorICMS(valorICMS);