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

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@72429 d1611594-4594-4d17-8e1d-87c2c4800839
master
alberto 2017-08-08 20:36:58 +00:00
parent b1a32b81c8
commit 6ba38af40a
4 changed files with 251 additions and 14 deletions

View File

@ -36,6 +36,8 @@ public interface FiscalDAO {
public List<ImportacionNaoFiscalVO> buscaDatosNaoFiscais(Date inicio, Date fim, Integer empresaId, Integer estadoId, Connection connection) throws SQLException;
public List<ExportacaoECFTipoCFC> buscarRegistroECFTipoCFCHibrido(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado);
public List<ExportacaoECFTipoCFC> buscarRegistroECFTipoCFC(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado);
public List<ExportacaoECFTipoCFC> buscarRegistroECFTipoCFC_Boleto(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado);

View File

@ -1383,6 +1383,188 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
}
@Override
public List<ExportacaoECFTipoCFC> buscarRegistroECFTipoCFCHibrido(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado) {
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(" from (");
sb.append(" select distinct");
sb.append(" imp.numserie20 as ecf,");
sb.append(" imp.numserie as numserie,");
sb.append(" r2.datamov as datamov,");
sb.append(" r2.cooinicial as cooinicial,");
sb.append(" r2.coofinal as coofinal,");
sb.append(" r2.crz as crz,");
sb.append(" r2.cro as cro,");
sb.append(" r2.coo as coo,");
sb.append(" CASE WHEN s.aliasorigen_id IS NULL THEN ei.codestabelecimento ELSE eis.codestabelecimento END as codestabelecimento,");
sb.append(" e.codestabelecimento as codestabelecimentoimpressora,");
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(r5i.imptotalliquido), 0)");
sb.append(" from fiscal_r5 r5i");
sb.append(" join fiscal_r4 r4i on r4i.numserie20 = r5i.numserie20 and r4i.datamov = r5i.datamov and r4i.coo = r5i.coo and r4i.contador = r5i.contador");
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(" 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 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 r5i.numserie20 = r4.numserie20 and r5i.datamov = r2.datamov and r5i.codproduto like '%-TA'");
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(" to_number(r2.vendabrutadiaria)/100 as vendabrutadiaria,");
sb.append(" to_number(r2.totgeral)/100 as totgeral,");
sb.append(" (");
sb.append(" select nvl(sum(r4t.impsubtotal), 0)");
sb.append(" from fiscal_r4 r4t");
sb.append(" join boleto bt on bt.boleto_id = r4t.boleto_id");
sb.append(" join parada pot on pot.parada_id = bt.origen_id");
sb.append(" join ciudad cot on cot.ciudad_id = pot.ciudad_id");
sb.append(" join estado eot on eot.estado_id = cot.estado_id");
sb.append(" left join alias_servico st on st.origen_id = bt.origen_id and st.destino_id = bt.destino_id and (st.corrida_id = bt.corrida_id or st.corrida_id is null) and st.ruta_id = bt.ruta_id");
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 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(" 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");
sb.append(" join fiscal_impressora imp on imp.numserie20 = r4.numserie20");
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 empresa_imposto ei on ei.empresa_id = b.empresacorrida_id and ei.estado_id = co.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 or s.corrida_id is null) 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 = cos.estado_id");
sb.append(" left join estado e on e.estado_id = imp.estadolocal_id");
sb.append(" where b.activo = 1");
sb.append(" and nvl(CASE WHEN s.aliasorigen_id IS NULL THEN ei.activo ELSE eis.activo END, 0) = 1");
sb.append(" and coalesce(r4.indcancelamento, 'N') <> 'S'");
sb.append(" and r4.datamov >= ? and r4.datamov <= ?");
sb.append(" and b.empresacorrida_id = ?");
sb.append(" and ((CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) = ?)");
sb.append(" UNION");
sb.append(" select distinct");
sb.append(" imp.numserie20 as ecf,");
sb.append(" imp.numserie as numserie,");
sb.append(" to_char(c.feccreacion, 'YYYYMMDD') as datamov,");
sb.append(" case when r2.numserie20 is null then '000001' else r2.cooinicial end as cooinicial,");
sb.append(" case when r2.numserie20 is null then '000001' else r2.coofinal end as coofinal,");
sb.append(" case when r2.numserie20 is null then '0000' else r2.crz end as crz,");
sb.append(" case when r2.numserie20 is null then '0000' else r2.cro end as cro,");
sb.append(" case when r2.numserie20 is null then '000000' else r2.coo end as coo,");
sb.append(" CASE WHEN s.aliasorigen_id IS NULL THEN ei.codestabelecimento ELSE eis.codestabelecimento END as codestabelecimento,");
sb.append(" e.codestabelecimento as codestabelecimentoimpressora,");
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(" 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(" 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(" ) as totgeral,");
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(" ) as totalvenda,");
sb.append(" c.caja_id");
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");
sb.append(" join estado eo on eo.estado_id = co.estado_id");
sb.append(" join empresa_imposto ei on ei.empresa_id = c.empresacorrida_id and ei.estado_id = co.estado_id");
sb.append(" join fiscal_impressora imp on imp.numserie = c.serieimpfiscal");
sb.append(" left join alias_servico s on s.origen_id = c.origen_id and s.destino_id = c.destino_id and (s.corrida_id = c.corrida_id or s.corrida_id is null) and s.ruta_id = c.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 = c.empresacorrida_id and eis.estado_id = cos.estado_id");
sb.append(" left join fiscal_r4 r4 on r4.caja_id = c.caja_id");
sb.append(" left join estado e on e.estado_id = imp.estadolocal_id");
sb.append(" left join fiscal_r2 r2 on r2.numserie20 = imp.numserie20 and r2.datamov = to_char(c.feccreacion, 'YYYYMMDD')");
sb.append(" where c.activo = 1 and s.activo = 1 and po.activo = 1 and co.activo = 1 and eo.activo = 1 and ei.activo = 1 and pos.activo = 1 and cos.activo = 1 and eos.activo = 1");
sb.append(" and c.serieimpfiscal is not null and r4.caja_id is null");
sb.append(" and ((c.indreimpresion = 0 and c.motivocancelacion_id is null and c.numfoliosistema is not null) or (c.indstatusboleto = 'E' and c.indreimpresion = 1))");
sb.append(" and coalesce(CASE WHEN s.aliasorigen_id IS NULL THEN ei.activo ELSE eis.activo END, 0) = 1");
sb.append(" and trunc(c.feccreacion) >= trunc(TO_DATE(?,'DD/MM/YYYY HH24:MI:SS')) and trunc(c.feccreacion) <= trunc(TO_DATE(?,'DD/MM/YYYY HH24:MI:SS'))");
sb.append(" and c.empresacorrida_id = ?");
sb.append(" and ((CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) = ?)");
sb.append(" )");
sb.append(" having sum(totalvenda) > 0");
sb.append(" group by ecf, numserie, datamov, cooinicial, coofinal, crz, cro, coo, codestabelecimento, codestabelecimentoimpressora, numeroidentificacao, estadoorigem");
try {
PreparedStatement ps = connection.prepareStatement(sb.toString());
ps.setString(1, DateUtil.getStringDate(inicio, DATE_FORMAT_FISCAL));
ps.setString(2, DateUtil.getStringDate(fim, DATE_FORMAT_FISCAL));
ps.setLong(3, Long.valueOf(empresaId));
ps.setString(4, cveestado);
ps.setString(5, DateUtil.getStringDate(inicio, DATE_FORMAT_DMYHMS));
ps.setString(6, DateUtil.getStringDate(fim, DATE_FORMAT_DMYHMS));
ps.setLong(7, Long.valueOf(empresaId));
ps.setString(8, cveestado);
ResultSet rs = ps.executeQuery();
ExportacaoECFTipoCFC registro = null;
while (rs.next()) {
BigDecimal totalIsenta = BigDecimal.ZERO;
if (rs.getBigDecimal("totalisenta") != null) {
totalIsenta = rs.getBigDecimal("totalisenta").divide(BigDecimal.valueOf(100d));
}
registro = new ExportacaoECFTipoCFC();
registro.setEstabelecimento(rs.getString("codestabelecimento"));
registro.setDataEmissao(rs.getString("datamov"));
registro.setNumeroIdentificacaoECF(rs.getString("numeroidentificacao") == null || rs.getString("numeroidentificacao").isEmpty() ? "0" : rs.getString("numeroidentificacao"));
registro.setEcf(rs.getString("ecf"));
registro.setCooReducaoZ(Integer.valueOf(rs.getString("coo")));
registro.setCooInicial(Integer.valueOf(rs.getString("cooinicial")));
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")) / 100));
registro.setValorIsentas(totalIsenta);
registro.setEstabelecimentoECF(rs.getString("codestabelecimentoimpressora"));
registro.setNumeroSerie(rs.getString("numserie"));
registro.setInfoPadraoBilhetePassagem(CODIGO_INDICADOR_CONTR_PREVIDENCIARIA);
retorno.add(registro);
}
rs.close();
ps.close();
} catch (Exception e) {
log.error(e.getMessage(), e);
}
return retorno;
}
@Override @Deprecated
public List<ExportacaoECFTipoCFC> buscarRegistroECFTipoCFC(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado) {
List<ExportacaoECFTipoCFC> retorno = new ArrayList<ExportacaoECFTipoCFC>();
@ -1492,13 +1674,14 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
return retorno;
}
@Override
@Override @Deprecated
public List<ExportacaoECFTipoCFC> buscarRegistroECFTipoCFC_Boleto(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado) {
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(" from (");
sb.append(" select distinct");
sb.append(" 'X' || imp.numserie20 as ecf,");
sb.append(" imp.numserie as numserie,");
@ -1521,7 +1704,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
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(" 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(" 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(" (");
@ -1548,7 +1731,14 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
sb.append(" left join empresa_imposto eis on eis.empresa_id = c.empresacorrida_id and eis.estado_id = cos.estado_id");
sb.append(" left join fiscal_r4 r4 on r4.caja_id = c.caja_id");
sb.append(" left join estado e on e.estado_id = imp.estadolocal_id");
sb.append(" where s.activo = 1 and po.activo = 1 and co.activo = 1 and eo.activo = 1 and ei.activo = 1 and pos.activo = 1 and cos.activo = 1 and eos.activo = 1 and c.serieimpfiscal is not null and r4.caja_id is null and c.motivocancelacion_id is null and coalesce(c.indreimpresion, 0) = 0 and nvl(CASE WHEN s.aliasorigen_id IS NULL THEN ei.activo ELSE eis.activo END, 0) = 1 and c.activo = 1 and trunc(c.feccreacion) >= trunc(TO_DATE(?,'DD/MM/YYYY HH24:MI:SS')) and trunc(c.feccreacion) <= trunc(TO_DATE(?,'DD/MM/YYYY HH24:MI:SS')) and c.empresacorrida_id = ? and ((CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) = ?)");
sb.append(" where c.activo = 1 and s.activo = 1 and po.activo = 1 and co.activo = 1 and eo.activo = 1 and ei.activo = 1 and pos.activo = 1 and cos.activo = 1 and eos.activo = 1");
sb.append(" and c.serieimpfiscal is not null and r4.caja_id is null");
sb.append(" and ((c.indreimpresion = 0 and c.motivocancelacion_id is null and c.numfoliosistema is not null) or (c.indstatusboleto = 'E' and c.indreimpresion = 1))");
sb.append(" and coalesce(CASE WHEN s.aliasorigen_id IS NULL THEN ei.activo ELSE eis.activo END, 0) = 1");
sb.append(" and trunc(c.feccreacion) >= trunc(TO_DATE(?,'DD/MM/YYYY HH24:MI:SS')) and trunc(c.feccreacion) <= trunc(TO_DATE(?,'DD/MM/YYYY HH24:MI:SS'))");
sb.append(" and c.empresacorrida_id = ?");
sb.append(" and ((CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) = ?)");
sb.append(" )");
sb.append(" having sum(totalvenda) > 0");
sb.append(" group by ecf, numserie, datamov, cooinicial, coofinal, crz, cro, coo, codestabelecimento, codestabelecimentoimpressora, numeroidentificacao, estadoorigem");
@ -1765,8 +1955,9 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
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(" from (");
sb.append(" select distinct");
sb.append(" 'X' || imp.numserie20 as ecf,");
sb.append(" imp.numserie20 as ecf,");
sb.append(" to_char(c.feccreacion, 'YYYYMMDD') as datamov,");
sb.append(" '000001' as coo,");
sb.append(" c.preciopagado as valortarifa,");
@ -1801,7 +1992,15 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
sb.append(" left join estado eds on eds.estado_id = cds.estado_id");
sb.append(" left join empresa_imposto eis on eis.empresa_id = c.empresacorrida_id and eis.estado_id = eos.estado_id");
sb.append(" left join fiscal_r4 r4 on r4.caja_id = c.caja_id");
sb.append(" where s.activo = 1 and po.activo = 1 and co.activo = 1 and eo.activo = 1 and ei.activo = 1 and pos.activo = 1 and cos.activo = 1 and eos.activo = 1 and c.activo = 1 and (c.preciopagado + c.importetaxaembarque + c.importeseguro + c.importepedagio + c.importeoutros) > 0 and nvl(CASE WHEN s.aliasorigen_id IS NULL THEN ei.activo ELSE eis.activo END, 0) = 1 and c.serieimpfiscal is not null and r4.caja_id is null and c.motivocancelacion_id is null and coalesce(c.indreimpresion, 0) = 0 and trunc(c.feccreacion) >= trunc(TO_DATE(?,'DD/MM/YYYY HH24:MI:SS')) and trunc(c.feccreacion) <= trunc(TO_DATE(?,'DD/MM/YYYY HH24:MI:SS')) and c.empresacorrida_id = ? and ((CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) = ?)");
sb.append(" where c.activo = 1 and s.activo = 1 and po.activo = 1 and co.activo = 1 and eo.activo = 1 and ei.activo = 1 and pos.activo = 1 and cos.activo = 1 and eos.activo = 1");
sb.append(" and coalesce(CASE WHEN s.aliasorigen_id IS NULL THEN ei.activo ELSE eis.activo END, 0) = 1");
sb.append(" and c.serieimpfiscal is not null and r4.caja_id is null");
sb.append(" and ((c.indreimpresion = 0 and c.motivocancelacion_id is null and c.numfoliosistema is not null) or (c.indstatusboleto = 'E' and c.indreimpresion = 1))");
sb.append(" and (c.preciopagado + c.importetaxaembarque + c.importeseguro + c.importepedagio + c.importeoutros) > 0");
sb.append(" and trunc(c.feccreacion) >= trunc(TO_DATE(?,'DD/MM/YYYY HH24:MI:SS')) and trunc(c.feccreacion) <= trunc(TO_DATE(?,'DD/MM/YYYY HH24:MI:SS'))");
sb.append(" and c.empresacorrida_id = ?");
sb.append(" and ((CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) = ?)");
sb.append(" )");
sb.append(" group by ecf, datamov, coo, municipio_origem, estado_origem, municipio_destino, estado_destino, red_base_calc_icms, porc_red_municipal, porc_red_estadual, tributacao_importacao, isenta, numfoliosistema");
@ -2118,8 +2317,9 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
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(" from (");
sb.append(" select distinct");
sb.append(" 'X' || imp.numserie20 as ecf,");
sb.append(" imp.numserie20 as ecf,");
sb.append(" to_char(c.feccreacion, 'YYYYMMDD') as datamov,");
sb.append(" '000001' as coo,");
sb.append(" (CASE WHEN s.aliasorigen_id IS NULL THEN co.codibge ELSE cos.codibge END) as municipio_origem,");
@ -2150,8 +2350,16 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
sb.append(" left join estado eds on eds.estado_id = cds.estado_id");
sb.append(" left join empresa_imposto eis on eis.empresa_id = c.empresacorrida_id and eis.estado_id = eos.estado_id");
sb.append(" left join fiscal_r4 r4 on r4.caja_id = c.caja_id");
sb.append(" where s.activo = 1 and po.activo = 1 and co.activo = 1 and eo.activo = 1 and ei.activo = 1 and pos.activo = 1 and cos.activo = 1 and eos.activo = 1 and (c.preciopagado + c.importetaxaembarque + c.importeseguro + c.importepedagio + c.importeoutros) > 0 and c.serieimpfiscal is not null and r4.caja_id is null and nvl(CASE WHEN s.aliasorigen_id IS NULL THEN ei.activo ELSE eis.activo END, 0) = 1 and c.activo = 1 and trunc(c.feccreacion) >= trunc(TO_DATE(?,'DD/MM/YYYY HH24:MI:SS')) and trunc(c.feccreacion) <= trunc(TO_DATE(?,'DD/MM/YYYY HH24:MI:SS')) and c.empresacorrida_id = ? and ((CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) = ?)");
sb.append(" where c.activo = 1 and s.activo = 1 and po.activo = 1 and co.activo = 1 and eo.activo = 1 and ei.activo = 1 and pos.activo = 1 and cos.activo = 1 and eos.activo = 1");
sb.append(" and coalesce(CASE WHEN s.aliasorigen_id IS NULL THEN ei.activo ELSE eis.activo END, 0) = 1");
sb.append(" and ((c.indreimpresion = 0 and c.motivocancelacion_id is null and c.numfoliosistema is not null) or (c.indstatusboleto = 'E' and c.indreimpresion = 1))");
sb.append(" and (c.preciopagado + c.importetaxaembarque + c.importeseguro + c.importepedagio + c.importeoutros) > 0");
sb.append(" and c.serieimpfiscal is not null and r4.caja_id is null");
sb.append(" and trunc(c.feccreacion) >= trunc(TO_DATE(?,'DD/MM/YYYY HH24:MI:SS')) and trunc(c.feccreacion) <= trunc(TO_DATE(?,'DD/MM/YYYY HH24:MI:SS'))");
sb.append(" and c.empresacorrida_id = ?");
sb.append(" and ((CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) = ?)");
sb.append(" order by to_char(c.feccreacion, 'YYYYMMDD')");
sb.append(" )");
sb.append(" group by ecf, datamov, coo, municipio_origem, estado_origem, municipio_destino, estado_destino, red_base_calc_icms, porc_red_municipal, porc_red_estadual, tributacao_importacao, isenta");
@ -2469,9 +2677,10 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
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(" from (");
sb.append(" select distinct");
sb.append(" '000001' as coo,");
sb.append(" 'X' || imp.numserie20 as ecf,");
sb.append(" imp.numserie20 as ecf,");
sb.append(" to_char(c.feccreacion, 'YYYYMMDD') as datamov,");
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,");
@ -2500,7 +2709,15 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
sb.append(" left join estado eds on eds.estado_id = cds.estado_id");
sb.append(" left join empresa_imposto eis on eis.empresa_id = c.empresacorrida_id and eis.estado_id = eos.estado_id");
sb.append(" left join fiscal_r4 r4 on r4.caja_id = c.caja_id");
sb.append(" where s.activo = 1 and po.activo = 1 and co.activo = 1 and eo.activo = 1 and ei.activo = 1 and pos.activo = 1 and cos.activo = 1 and eos.activo = 1 and (c.preciopagado + c.importetaxaembarque + c.importeseguro + c.importepedagio + c.importeoutros) > 0 and c.serieimpfiscal is not null and r4.caja_id is null and c.motivocancelacion_id is null and coalesce(c.indreimpresion, 0) = 0 and nvl(CASE WHEN s.aliasorigen_id IS NULL THEN ei.activo ELSE eis.activo END, 0) = 1 and c.activo = 1 and trunc(c.feccreacion) >= trunc(TO_DATE(?,'DD/MM/YYYY HH24:MI:SS')) and trunc(c.feccreacion) <= trunc(TO_DATE(?,'DD/MM/YYYY HH24:MI:SS')) and c.empresacorrida_id = ? and ((CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) = ?)");
sb.append(" where c.activo = 1 and s.activo = 1 and po.activo = 1 and co.activo = 1 and eo.activo = 1 and ei.activo = 1 and pos.activo = 1 and cos.activo = 1 and eos.activo = 1");
sb.append(" and coalesce(CASE WHEN s.aliasorigen_id IS NULL THEN ei.activo ELSE eis.activo END, 0) = 1");
sb.append(" and ((c.indreimpresion = 0 and c.motivocancelacion_id is null and c.numfoliosistema is not null) or (c.indstatusboleto = 'E' and c.indreimpresion = 1))");
sb.append(" and (c.preciopagado + c.importetaxaembarque + c.importeseguro + c.importepedagio + c.importeoutros) > 0");
sb.append(" and c.serieimpfiscal is not null and r4.caja_id is null");
sb.append(" and trunc(c.feccreacion) >= trunc(TO_DATE(?,'DD/MM/YYYY HH24:MI:SS')) and trunc(c.feccreacion) <= trunc(TO_DATE(?,'DD/MM/YYYY HH24:MI:SS'))");
sb.append(" and c.empresacorrida_id = ?");
sb.append(" and ((CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) = ?)");
sb.append(" ) group by ecf, datamov, municipio_origem, estado_origem, estado_destino, red_base_calc_icms, porc_red_municipal, porc_red_estadual, tributacao_importacao");
Session session = null;

View File

@ -905,10 +905,12 @@ public class FiscalServiceImpl implements FiscalService {
begin = Calendar.getInstance().getTimeInMillis();
log.info("Buscando os registros CFC (ECF)");
List<ExportacaoECFTipoCFC> listaRegistroECFTipoCFC = new ArrayList<ExportacaoECFTipoCFC>(0);
listaRegistroECFTipoCFC.addAll(fiscalDAO.buscarRegistroECFTipoCFC(connection, inicio, fim, empresa.getEmpresaId(), estado.getCveestado()));
log.info("Total de registros: " + listaRegistroECFTipoCFC.size());
log.info("Buscando os registros CFC via Boletos (ECF)");
listaRegistroECFTipoCFC.addAll(fiscalDAO.buscarRegistroECFTipoCFC_Boleto(connection, inicio, fim, empresa.getEmpresaId(), estado.getCveestado()));
// listaRegistroECFTipoCFC.addAll(fiscalDAO.buscarRegistroECFTipoCFC(connection, inicio, fim, empresa.getEmpresaId(), estado.getCveestado()));
// log.info("Total de registros: " + listaRegistroECFTipoCFC.size());
// log.info("Buscando os registros CFC via Boletos (ECF)");
// listaRegistroECFTipoCFC.addAll(fiscalDAO.buscarRegistroECFTipoCFC_Boleto(connection, inicio, fim, empresa.getEmpresaId(), estado.getCveestado()));
// log.info("Total de registros: " + listaRegistroECFTipoCFC.size());
listaRegistroECFTipoCFC.addAll(fiscalDAO.buscarRegistroECFTipoCFCHibrido(connection, inicio, fim, empresa.getEmpresaId(), estado.getCveestado()));
log.info("Total de registros: " + listaRegistroECFTipoCFC.size());
tempo = infoTempo("CFC", begin);
log.info("Tempo na busca dos registros " + tempo);

View File

@ -165,7 +165,7 @@ public class ExportacaoFiscal {
groupPRC.put(registro.getEcf() + "|" + registro.getDataEmissao(), itensPRC);
}
int linhas = listaRegistroECFTipoCFC.size() + listaRegistroECFTipoCCF.size() + listaRegistroECFTipoICF.size() + listaRegistroECFTipoPRC.size() + 1 + 1;
int linhas = 2;
Map<String, BigDecimal> valoresBaseCalculoICMS = new HashMap<String, BigDecimal>(0);
@ -173,7 +173,17 @@ public class ExportacaoFiscal {
for (ExportacaoECFTipoCFC registro : listaRegistroECFTipoCFC) {
adicionarLinhaCFC(writer, registro);
linhas++;
if (registro.getEstabelecimentoECF() == null) {
log.info("- Estabelecimento da ECF indefinido para a ECF [" + registro.getEcf() + "]");
}
if (registro.getNumeroIdentificacaoECF() == null) {
log.info("- Número de identificação da ECF indefinido para a ECF [" + registro.getEcf() + "]");
}
itensCCF = groupCCF.get(registro.getEcf() + "|" + registro.getDataEmissao());
totalBaseCalculoICMS.clear();
@ -194,6 +204,8 @@ public class ExportacaoFiscal {
adicionarLinhaCCF(writer, itemCCF);
linhas++;
BigDecimal valor = BigDecimal.ZERO;
if (totalBaseCalculoICMS.containsKey(itemCCF.getMunicipioOrigem())) {
@ -219,6 +231,8 @@ public class ExportacaoFiscal {
}
adicionarLinhaICF(writer, itemICF, valorBaseCalculoICMS);
linhas++;
}
}
@ -227,6 +241,8 @@ public class ExportacaoFiscal {
if (itensPRC != null) {
for (ExportacaoECFTipoPRC itemPRC : itensPRC) {
adicionarLinhaPRC(writer, itemPRC, totalBaseCalculoICMS);
linhas++;
}
}
}