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

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@72623 d1611594-4594-4d17-8e1d-87c2c4800839
master
alberto 2017-08-16 17:00:18 +00:00
parent 77d442b9f2
commit d41c4af725
1 changed files with 98 additions and 30 deletions

View File

@ -1387,7 +1387,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
List<ExportacaoECFTipoCFC> retorno = new ArrayList<ExportacaoECFTipoCFC>();
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(" 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, sum(totaldesconto) as totaldesconto");
sb.append(" from (");
sb.append(" select distinct");
sb.append(" imp.numserie20 as ecf,");
@ -1405,14 +1405,13 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
sb.append(" (");
sb.append(" select sum(coalesce(to_number(r5i.imptotalliquido)/100,ci.preciopagado))");
sb.append(" from fiscal_r4 r4i");
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(" join caja ci on ci.caja_id = r4i.caja_id");
sb.append(" join parada poi on poi.parada_id = ci.origen_id");
sb.append(" join parada pdi on pdi.parada_id = ci.destino_id");
sb.append(" left join fiscal_r5 r5i on r5i.numserie20 = r4i.numserie20 and r5i.datamov = r4i.datamov and r5i.coo = r4i.coo and r5i.contador = r4i.contador and r5i.totparcial not like 'N1'");
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 alias_servico si on si.origen_id = ci.origen_id and si.destino_id = ci.destino_id and (si.corrida_id = ci.corrida_id or si.corrida_id is null) and si.ruta_id = ci.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(" left join caja ci on ci.caja_id = r4i.caja_id");
sb.append(" where r4i.numserie20 = r4.numserie20 and r4i.datamov = r2.datamov");
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,");
@ -1421,19 +1420,32 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
sb.append(" (");
sb.append(" select sum(coalesce(to_number(r5i.imptotalliquido)/100,ci.preciopagado))");
sb.append(" from fiscal_r4 r4i");
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 caja ci on ci.caja_id = r4i.caja_id");
sb.append(" join parada poi on poi.parada_id = ci.origen_id");
sb.append(" join ciudad coi on coi.ciudad_id = poi.ciudad_id");
sb.append(" join estado eoi on eoi.estado_id = coi.estado_id");
sb.append(" left join fiscal_r5 r5i on r5i.numserie20 = r4i.numserie20 and r5i.datamov = r4i.datamov and r5i.coo = r4i.coo and r5i.contador = r4i.contador and r5i.totparcial not like 'N1'");
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 alias_servico si on si.origen_id = ci.origen_id and si.destino_id = ci.destino_id and (si.corrida_id = ci.corrida_id or si.corrida_id is null) and si.ruta_id = ci.ruta_id");
sb.append(" left join parada posi on posi.parada_id = si.aliasorigen_id");
sb.append(" left join ciudad cosi on cosi.ciudad_id = posi.ciudad_id");
sb.append(" left join estado eosi on eosi.estado_id = cosi.estado_id");
sb.append(" left join caja ci on ci.caja_id = r4i.caja_id");
sb.append(" where r4i.numserie20 = r2.numserie20 and r4i.datamov = r2.datamov");
sb.append(" and ((CASE WHEN si.aliasorigen_id IS NULL THEN eoi.cveestado ELSE eosi.cveestado END) = (CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END))");
sb.append(" ) as totalvenda,");
sb.append(" (");
sb.append(" select sum(coalesce(ci.descuentoamparado,0))");
sb.append(" from fiscal_r4 r4i");
sb.append(" join caja ci on ci.caja_id = r4i.caja_id");
sb.append(" join parada poi on poi.parada_id = ci.origen_id");
sb.append(" join ciudad coi on coi.ciudad_id = poi.ciudad_id");
sb.append(" join estado eoi on eoi.estado_id = coi.estado_id");
sb.append(" left join alias_servico si on si.origen_id = ci.origen_id and si.destino_id = ci.destino_id and (si.corrida_id = ci.corrida_id or si.corrida_id is null) and si.ruta_id = ci.ruta_id");
sb.append(" left join parada posi on posi.parada_id = si.aliasorigen_id");
sb.append(" left join ciudad cosi on cosi.ciudad_id = posi.ciudad_id");
sb.append(" left join estado eosi on eosi.estado_id = cosi.estado_id");
sb.append(" where r4i.numserie20 = r2.numserie20 and r4i.datamov = r2.datamov");
sb.append(" and ((CASE WHEN si.aliasorigen_id IS NULL THEN eoi.cveestado ELSE eosi.cveestado END) = (CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END))");
sb.append(" ) as totaldesconto,");
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");
@ -1470,27 +1482,32 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
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(" select nvl(sum(ci.preciopagado), 0)");
sb.append(" from caja ci");
sb.append(" join parada poi on poi.parada_id = ci.origen_id");
sb.append(" join parada pdi on pdi.parada_id = ci.destino_id");
sb.append(" left join alias_servico si on si.origen_id = ci.origen_id and si.destino_id = ci.destino_id and (si.corrida_id = ci.corrida_id or si.corrida_id is null) and si.ruta_id = ci.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(" where ci.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(" select nvl(sum(ci.preciopagado + ci.importetaxaembarque + ci.importeseguro + ci.importepedagio + ci.importeoutros), 0)");
sb.append(" from caja ci");
sb.append(" where ci.caja_id = c.caja_id");
sb.append(" ) as totgeral,");
sb.append(" (");
sb.append(" select nvl(sum(c.preciopagado), 0)");
sb.append(" from caja bi");
sb.append(" where bi.caja_id = c.caja_id");
sb.append(" select nvl(sum(ci.preciopagado), 0)");
sb.append(" from caja ci");
sb.append(" where ci.caja_id = c.caja_id");
sb.append(" ) as totalvenda,");
sb.append(" (");
sb.append(" select nvl(sum(ci.descuentoamparado), 0)");
sb.append(" from caja ci");
sb.append(" where ci.caja_id = c.caja_id");
sb.append(" ) as totaldesconto,");
sb.append(" c.caja_id");
sb.append(" from caja c");
sb.append(" join parada po on po.parada_id = c.origen_id");
@ -1535,11 +1552,23 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
while (rs.next()) {
BigDecimal totalIsenta = BigDecimal.ZERO;
BigDecimal totalvenda = BigDecimal.ZERO;
BigDecimal totalDesconto = BigDecimal.ZERO;
if (rs.getBigDecimal("totalisenta") != null) {
totalIsenta = rs.getBigDecimal("totalisenta");
}
if (rs.getBigDecimal("totalvenda") != null) {
totalvenda = rs.getBigDecimal("totalvenda");
}
if (rs.getBigDecimal("totaldesconto") != null) {
totalDesconto = rs.getBigDecimal("totaldesconto");
}
totalvenda = MoneyHelper.subtrair(totalvenda, totalDesconto);
registro = new ExportacaoECFTipoCFC();
registro.setEstabelecimento(rs.getString("codestabelecimento"));
registro.setDataEmissao(rs.getString("datamov"));
@ -1550,7 +1579,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
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.setValorTotal(totalvenda);
registro.setValorIsentas(totalIsenta);
registro.setEstabelecimentoECF(rs.getString("codestabelecimentoimpressora"));
registro.setNumeroSerie(rs.getString("numserie"));
@ -1574,14 +1603,15 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
List<ExportacaoECFTipoCCF> retorno = new ArrayList<ExportacaoECFTipoCCF>();
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(" select ecf, datamov, coo, sum(valortarifa) as valortarifa, sum(preciopagado) as preciopagado, sum(desconto) as totaldesconto, 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(" (select sum(to_number(r5x.imptotalliquido)/100) from fiscal_r5 r5x where r5x.numserie20 = r4.numserie20 and r5x.coo = r4.coo and r5x.totparcial not like 'N1') as valortarifa,");
sb.append(" c.preciopagado as preciopagado,");
sb.append(" coalesce(c.descuentoamparado,0) as desconto,");
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,");
@ -1622,6 +1652,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
sb.append(" '000001' as coo,");
sb.append(" c.preciopagado as valortarifa,");
sb.append(" c.preciopagado as preciopagado,");
sb.append(" coalesce(c.descuentoamparado,0) as desconto,");
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,");
@ -1681,7 +1712,8 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
while (rs.next()) {
BigDecimal valorTributado = BigDecimal.ZERO;
BigDecimal totalDesconto = BigDecimal.ZERO;
if (rs.getString("valortarifa") != null) {
valorTributado = BigDecimal.valueOf(Double.valueOf(rs.getString("valortarifa")));
} else {
@ -1690,6 +1722,12 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
log.info("Tarifa nao encontrada na R5. (ECF: " + rs.getString("ecf") + " / DATAMOV: " + rs.getString("datamov") + " / COO: " + rs.getString("coo") + ")");
}
if (rs.getBigDecimal("totaldesconto") != null) {
totalDesconto = rs.getBigDecimal("totaldesconto");
}
valorTributado = MoneyHelper.subtrair(valorTributado, totalDesconto);
registro = new ExportacaoECFTipoCCF();
registro.setEcf(rs.getString("ecf"));
registro.setDataEmissao(rs.getString("datamov"));
@ -1790,7 +1828,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
List<ExportacaoECFTipoICF> retorno = new ArrayList<ExportacaoECFTipoICF>();
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(" 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, sum(totaldesconto) as totaldesconto");
sb.append(" from (");
sb.append(" select distinct");
sb.append(" r4.numserie20 as ecf,");
@ -1811,7 +1849,13 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
sb.append(" left join fiscal_r5 r5i on r5i.numserie20 = r4i.numserie20 and r5i.datamov = r4i.datamov and r5i.coo = r4i.coo and r5i.totparcial not like 'N1'");
sb.append(" left join caja ci on ci.caja_id = r4i.caja_id");
sb.append(" where r4i.numserie20 = r4.numserie20 and r4i.datamov = r4.datamov and r4i.coo = r4.coo");
sb.append(" ) as valortotal");
sb.append(" ) as valortotal,");
sb.append(" (");
sb.append(" select sum(coalesce(ci.descuentoamparado, 0))");
sb.append(" from fiscal_r4 r4i");
sb.append(" left join caja ci on ci.caja_id = r4i.caja_id");
sb.append(" where r4i.numserie20 = r4.numserie20 and r4i.datamov = r4.datamov and r4i.coo = r4.coo");
sb.append(" ) as totaldesconto");
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");
@ -1845,7 +1889,8 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
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) as valortotal");
sb.append(" (c.preciopagado) as valortotal,");
sb.append(" coalesce(c.descuentoamparado, 0) as totaldesconto");
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");
@ -1900,6 +1945,14 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
if (valorTotal.doubleValue() == 0) {
continue;
}
BigDecimal totalDesconto = BigDecimal.ZERO;
if (rs.getBigDecimal("totaldesconto") != null) {
totalDesconto = rs.getBigDecimal("totaldesconto");
}
valorTotal = MoneyHelper.subtrair(valorTotal, totalDesconto);
BigDecimal red_base_calc_icms = MoneyHelper.instanciar(rs.getBigDecimal("red_base_calc_icms"));
BigDecimal porc_red_municipal = MoneyHelper.instanciar(rs.getBigDecimal("porc_red_municipal"));
@ -2040,7 +2093,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
final List<ExportacaoECFTipoPRC> retorno = new ArrayList<ExportacaoECFTipoPRC>();
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(" 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, sum(totaldesconto) as totaldesconto");
sb.append(" from (");
sb.append(" select distinct");
sb.append(" r4.coo as coo,");
@ -2060,6 +2113,12 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
sb.append(" left join caja ci on ci.caja_id = r4i.caja_id");
sb.append(" where r4i.numserie20 = r4.numserie20 and r4i.datamov = r4.datamov and r4i.coo = r4.coo");
sb.append(" ) as valortotal,");
sb.append(" (");
sb.append(" select sum(coalesce(ci.descuentoamparado, 0))");
sb.append(" from fiscal_r4 r4i");
sb.append(" left join caja ci on ci.caja_id = r4i.caja_id");
sb.append(" where r4i.numserie20 = r4.numserie20 and r4i.datamov = r4.datamov and r4i.coo = r4.coo");
sb.append(" ) as totaldesconto,");
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");
@ -2093,6 +2152,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
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 as valortotal,");
sb.append(" coalesce(c.descuentoamparado, 0) as totaldesconto,");
sb.append(" c.caja_id");
sb.append(" from caja c");
sb.append(" join parada po on po.parada_id = c.origen_id");
@ -2149,6 +2209,14 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
while (rs.next()) {
BigDecimal valorTotal = MoneyHelper.instanciar(rs.getString("valortotal"));
BigDecimal totalDesconto = BigDecimal.ZERO;
if (rs.getBigDecimal("totaldesconto") != null) {
totalDesconto = rs.getBigDecimal("totaldesconto");
}
valorTotal = MoneyHelper.subtrair(valorTotal, totalDesconto);
BigDecimal red_base_calc_icms = MoneyHelper.instanciar(rs.getBigDecimal("red_base_calc_icms"));
// BigDecimal porc_red_municipal = MoneyHelper.instanciar(rs.getBigDecimal("porc_red_municipal"));