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

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@72695 d1611594-4594-4d17-8e1d-87c2c4800839
master
alberto 2017-08-17 23:04:39 +00:00
parent 7f75c22140
commit 1b44ae2c59
1 changed files with 39 additions and 103 deletions

View File

@ -1387,7 +1387,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
List<ExportacaoECFTipoCFC> retorno = new ArrayList<ExportacaoECFTipoCFC>(); List<ExportacaoECFTipoCFC> retorno = new ArrayList<ExportacaoECFTipoCFC>();
StringBuilder sb = new StringBuilder(); 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, sum(totaldesconto) as totaldesconto"); 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(" from (");
sb.append(" select distinct"); sb.append(" select distinct");
sb.append(" imp.numserie20 as ecf,"); sb.append(" imp.numserie20 as ecf,");
@ -1403,12 +1403,11 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
sb.append(" imp.numeroidentificacao as numeroidentificacao,"); 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(" (CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) as estadoorigem,");
sb.append(" ("); sb.append(" (");
sb.append(" select sum(coalesce(to_number(r5i.imptotalliquido)/100,ci.preciopagado))"); sb.append(" select sum((coalesce(to_number(r4i.imptotalliquido), 0) / 100 - coalesce((select sum(to_number(r5x.imptotalliquido) / 100) from fiscal_r5 r5x where r5x.contador = r4i.contador and r5x.numserie20 = r4i.numserie20 and r5x.totparcial like 'N1'), 0)))");
sb.append(" from fiscal_r4 r4i"); sb.append(" from fiscal_r4 r4i");
sb.append(" join caja ci on ci.caja_id = r4i.caja_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 poi on poi.parada_id = ci.origen_id");
sb.append(" join parada pdi on pdi.parada_id = ci.destino_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 = 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 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 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 parada pdsi on pdsi.parada_id = si.aliasdestino_id");
@ -1418,35 +1417,14 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
sb.append(" to_number(r2.vendabrutadiaria)/100 as vendabrutadiaria,"); sb.append(" to_number(r2.vendabrutadiaria)/100 as vendabrutadiaria,");
sb.append(" to_number(r2.totgeral)/100 as totgeral,"); sb.append(" to_number(r2.totgeral)/100 as totgeral,");
sb.append(" ("); sb.append(" (");
sb.append(" select sum(coalesce(to_number(r5i.imptotalliquido)/100,ci.preciopagado))"); sb.append(" (to_number(coalesce(r4.imptotalliquido,'0')) / 100) - ");
sb.append(" from fiscal_r4 r4i"); sb.append(" coalesce((");
sb.append(" join caja ci on ci.caja_id = r4i.caja_id"); sb.append(" select sum(to_number(coalesce(r5x.imptotalliquido,'0')) / 100)");
sb.append(" join parada poi on poi.parada_id = ci.origen_id"); sb.append(" from fiscal_r5 r5x");
sb.append(" join ciudad coi on coi.ciudad_id = poi.ciudad_id"); sb.append(" where r5x.contador = r4.contador and r5x.numserie20 = r4.numserie20 and r5x.totparcial like 'N1'");
sb.append(" join estado eoi on eoi.estado_id = coi.estado_id"); sb.append(" ), 0)");
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 = 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 totalvenda,"); sb.append(" ) as totalvenda,");
sb.append(" ("); sb.append(" b.boleto_id as caja_id");
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(" from fiscal_r4 r4");
sb.append(" join fiscal_r2 r2 on r2.numserie20 = r4.numserie20 and r2.datamov = r4.datamov"); 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 fiscal_impressora imp on imp.numserie20 = r4.numserie20");
@ -1503,11 +1481,6 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
sb.append(" from caja ci"); sb.append(" from caja ci");
sb.append(" where ci.caja_id = c.caja_id"); sb.append(" where ci.caja_id = c.caja_id");
sb.append(" ) as totalvenda,"); 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(" c.caja_id");
sb.append(" from caja c"); sb.append(" from caja c");
sb.append(" join parada po on po.parada_id = c.origen_id"); sb.append(" join parada po on po.parada_id = c.origen_id");
@ -1553,7 +1526,6 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
while (rs.next()) { while (rs.next()) {
BigDecimal totalIsenta = BigDecimal.ZERO; BigDecimal totalIsenta = BigDecimal.ZERO;
BigDecimal totalvenda = BigDecimal.ZERO; BigDecimal totalvenda = BigDecimal.ZERO;
BigDecimal totalDesconto = BigDecimal.ZERO;
if (rs.getBigDecimal("totalisenta") != null) { if (rs.getBigDecimal("totalisenta") != null) {
totalIsenta = rs.getBigDecimal("totalisenta"); totalIsenta = rs.getBigDecimal("totalisenta");
@ -1562,12 +1534,6 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
if (rs.getBigDecimal("totalvenda") != null) { if (rs.getBigDecimal("totalvenda") != null) {
totalvenda = rs.getBigDecimal("totalvenda"); totalvenda = rs.getBigDecimal("totalvenda");
} }
if (rs.getBigDecimal("totaldesconto") != null) {
totalDesconto = rs.getBigDecimal("totaldesconto");
}
totalvenda = MoneyHelper.subtrair(totalvenda, totalDesconto);
registro = new ExportacaoECFTipoCFC(); registro = new ExportacaoECFTipoCFC();
registro.setEstabelecimento(rs.getString("codestabelecimento")); registro.setEstabelecimento(rs.getString("codestabelecimento"));
@ -1603,15 +1569,21 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
List<ExportacaoECFTipoCCF> retorno = new ArrayList<ExportacaoECFTipoCCF>(); List<ExportacaoECFTipoCCF> retorno = new ArrayList<ExportacaoECFTipoCCF>();
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
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(" 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(" from (");
sb.append(" select distinct"); sb.append(" select distinct");
sb.append(" r4.numserie20 as ecf,"); sb.append(" r4.numserie20 as ecf,");
sb.append(" r4.datamov as datamov,"); sb.append(" r4.datamov as datamov,");
sb.append(" r4.coo as coo,"); sb.append(" r4.coo as coo,");
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(" (");
sb.append(" (to_number(coalesce(r4.imptotalliquido,'0')) / 100) - ");
sb.append(" coalesce((");
sb.append(" select sum(to_number(coalesce(r5x.imptotalliquido,'0')) / 100)");
sb.append(" from fiscal_r5 r5x");
sb.append(" where r5x.contador = r4.contador and r5x.numserie20 = r4.numserie20 and r5x.totparcial like 'N1'");
sb.append(" ), 0)");
sb.append(" ) as valortarifa,");
sb.append(" c.preciopagado as preciopagado,"); 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 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 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 cd.codibge ELSE cds.codibge END) as municipio_destino,");
@ -1623,7 +1595,7 @@ 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(" (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(" to_number(r4.impsubtotal)/100 as valortotal,");
sb.append(" b.numfoliosistema as numfoliosistema,"); sb.append(" b.numfoliosistema as numfoliosistema,");
sb.append(" 0 as caja_id"); sb.append(" b.boleto_id as caja_id");
sb.append(" from fiscal_r4 r4"); 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.totparcial not like 'N1'"); sb.append(" left join fiscal_r5 r5 on r5.numserie20 = r4.numserie20 and r5.coo = r4.coo and r5.totparcial not like 'N1'");
sb.append(" left join caja c on c.caja_id = r4.caja_id"); sb.append(" left join caja c on c.caja_id = r4.caja_id");
@ -1652,7 +1624,6 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
sb.append(" '000001' as coo,"); sb.append(" '000001' as coo,");
sb.append(" c.preciopagado as valortarifa,"); sb.append(" c.preciopagado as valortarifa,");
sb.append(" c.preciopagado as preciopagado,"); 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 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 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 cd.codibge ELSE cds.codibge END) as municipio_destino,");
@ -1712,7 +1683,6 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
while (rs.next()) { while (rs.next()) {
BigDecimal valorTributado = BigDecimal.ZERO; BigDecimal valorTributado = BigDecimal.ZERO;
BigDecimal totalDesconto = BigDecimal.ZERO;
if (rs.getString("valortarifa") != null) { if (rs.getString("valortarifa") != null) {
valorTributado = BigDecimal.valueOf(Double.valueOf(rs.getString("valortarifa"))); valorTributado = BigDecimal.valueOf(Double.valueOf(rs.getString("valortarifa")));
@ -1722,12 +1692,6 @@ 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") + ")"); 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 = new ExportacaoECFTipoCCF();
registro.setEcf(rs.getString("ecf")); registro.setEcf(rs.getString("ecf"));
registro.setDataEmissao(rs.getString("datamov")); registro.setDataEmissao(rs.getString("datamov"));
@ -1828,7 +1792,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
List<ExportacaoECFTipoICF> retorno = new ArrayList<ExportacaoECFTipoICF>(); List<ExportacaoECFTipoICF> retorno = new ArrayList<ExportacaoECFTipoICF>();
StringBuilder sb = new StringBuilder(); 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, sum(totaldesconto) as totaldesconto"); 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(" from (");
sb.append(" select distinct"); sb.append(" select distinct");
sb.append(" r4.numserie20 as ecf,"); sb.append(" r4.numserie20 as ecf,");
@ -1844,18 +1808,13 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
sb.append(" (CASE WHEN s.aliasorigen_id IS NULL THEN ei.tributacaoimportacao ELSE eis.tributacaoimportacao END) as tributacao_importacao,"); 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(" (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(" ("); sb.append(" (");
sb.append(" select sum(coalesce(to_number(r5i.imptotalliquido)/100,ci.preciopagado))"); sb.append(" (to_number(coalesce(r4.imptotalliquido,'0')) / 100) - ");
sb.append(" from fiscal_r4 r4i"); sb.append(" coalesce((");
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(" select sum(to_number(coalesce(r5x.imptotalliquido,'0')) / 100)");
sb.append(" left join caja ci on ci.caja_id = r4i.caja_id"); sb.append(" from fiscal_r5 r5x");
sb.append(" where r4i.numserie20 = r4.numserie20 and r4i.datamov = r4.datamov and r4i.coo = r4.coo"); sb.append(" where r5x.contador = r4.contador and r5x.numserie20 = r4.numserie20 and r5x.totparcial like 'N1'");
sb.append(" ) as valortotal,"); sb.append(" ), 0)");
sb.append(" ("); sb.append(" ) as valortotal");
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(" from fiscal_r4 r4");
sb.append(" join fiscal_r2 r2 on r2.numserie20 = r4.numserie20 and r2.datamov = r4.datamov"); 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 boleto b on b.boleto_id = r4.boleto_id");
@ -1889,8 +1848,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.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 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(" (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(" from caja c");
sb.append(" join parada po on po.parada_id = c.origen_id"); 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 ciudad co on co.ciudad_id = po.ciudad_id");
@ -1940,19 +1898,11 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
Map<String, ExportacaoECFTipoICF> group = new HashMap<String, ExportacaoECFTipoICF>(); Map<String, ExportacaoECFTipoICF> group = new HashMap<String, ExportacaoECFTipoICF>();
while (rs.next()) { while (rs.next()) {
BigDecimal valorTotal = MoneyHelper.instanciar(rs.getString("valortotal")); BigDecimal valorTotal = rs.getBigDecimal("valortotal");
if (valorTotal.doubleValue() == 0) { if (valorTotal == null || valorTotal.doubleValue() == 0) {
continue; 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 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_municipal = MoneyHelper.instanciar(rs.getBigDecimal("porc_red_municipal"));
@ -2093,7 +2043,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
final List<ExportacaoECFTipoPRC> retorno = new ArrayList<ExportacaoECFTipoPRC>(); final List<ExportacaoECFTipoPRC> retorno = new ArrayList<ExportacaoECFTipoPRC>();
final StringBuilder sb = new StringBuilder(); 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, sum(totaldesconto) as totaldesconto"); 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(" from (");
sb.append(" select distinct"); sb.append(" select distinct");
sb.append(" r4.coo as coo,"); sb.append(" r4.coo as coo,");
@ -2107,19 +2057,14 @@ 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.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 s.aliasorigen_id IS NULL THEN ei.tributacaoimportacao ELSE eis.tributacaoimportacao END) as tributacao_importacao,");
sb.append(" ("); sb.append(" (");
sb.append(" select sum(coalesce(to_number(r5i.imptotalliquido)/100,ci.preciopagado))"); sb.append(" (to_number(coalesce(r4.imptotalliquido,'0')) / 100) - ");
sb.append(" from fiscal_r4 r4i"); sb.append(" coalesce((");
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(" select sum(to_number(coalesce(r5x.imptotalliquido,'0')) / 100)");
sb.append(" left join caja ci on ci.caja_id = r4i.caja_id"); sb.append(" from fiscal_r5 r5x");
sb.append(" where r4i.numserie20 = r4.numserie20 and r4i.datamov = r4.datamov and r4i.coo = r4.coo"); sb.append(" where r5x.contador = r4.contador and r5x.numserie20 = r4.numserie20 and r5x.totparcial like 'N1'");
sb.append(" ), 0)");
sb.append(" ) as valortotal,"); sb.append(" ) as valortotal,");
sb.append(" ("); sb.append(" b.boleto_id as caja_id");
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(" from fiscal_r4 r4");
sb.append(" join fiscal_r2 r2 on r2.numserie20 = r4.numserie20 and r2.datamov = r4.datamov"); 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 boleto b on b.boleto_id = r4.boleto_id");
@ -2152,7 +2097,6 @@ 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.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 s.aliasorigen_id IS NULL THEN ei.tributacaoimportacao ELSE eis.tributacaoimportacao END) as tributacao_importacao,");
sb.append(" c.preciopagado as valortotal,"); sb.append(" c.preciopagado as valortotal,");
sb.append(" coalesce(c.descuentoamparado, 0) as totaldesconto,");
sb.append(" c.caja_id"); sb.append(" c.caja_id");
sb.append(" from caja c"); sb.append(" from caja c");
sb.append(" join parada po on po.parada_id = c.origen_id"); sb.append(" join parada po on po.parada_id = c.origen_id");
@ -2208,16 +2152,8 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
Map<String, ExportacaoECFTipoPRC> group = new HashMap<String, ExportacaoECFTipoPRC>(); Map<String, ExportacaoECFTipoPRC> group = new HashMap<String, ExportacaoECFTipoPRC>();
while (rs.next()) { while (rs.next()) {
BigDecimal valorTotal = MoneyHelper.instanciar(rs.getString("valortotal")); BigDecimal valorTotal = rs.getBigDecimal("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 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_municipal = MoneyHelper.instanciar(rs.getBigDecimal("porc_red_municipal"));
// BigDecimal porc_red_estadual = MoneyHelper.instanciar(rs.getBigDecimal("porc_red_estadual")); // BigDecimal porc_red_estadual = MoneyHelper.instanciar(rs.getBigDecimal("porc_red_estadual"));