Exportação Fiscal : ECF e RMD (issue 8120)

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@62766 d1611594-4594-4d17-8e1d-87c2c4800839
master
alberto 2016-11-21 20:13:04 +00:00
parent ac3bcfa80a
commit d97992c6ef
1 changed files with 54 additions and 56 deletions

View File

@ -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<ExportacaoECFTipoICF> retorno = new ArrayList<ExportacaoECFTipoICF>();
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<ExportacaoECFTipoPRC> retorno = new ArrayList<ExportacaoECFTipoPRC>();
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);