From 02a384ca655db36d451f8963d7122b7fe5a84a60 Mon Sep 17 00:00:00 2001 From: alberto Date: Tue, 22 Aug 2017 20:50:42 +0000 Subject: [PATCH] =?UTF-8?q?Exporta=C3=A7=C3=A3o=20Fiscal=20:=20ECF=20e=20R?= =?UTF-8?q?MD=20(issue=208120)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@72811 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../ventaboletos/dao/FiscalDAO.java | 3 + .../dao/hibernate/FiscalHibernateDAO.java | 158 ++++++- .../service/impl/FiscalServiceImpl.java | 21 +- .../exportacaofiscal/vo/ExportacaoECF.java | 407 ++++++++++++++++++ .../vo/ExportacaoECFBase.java | 236 ++++++++++ 5 files changed, 807 insertions(+), 18 deletions(-) create mode 100644 src/com/rjconsultores/ventaboletos/utilerias/exportacaofiscal/vo/ExportacaoECF.java create mode 100644 src/com/rjconsultores/ventaboletos/utilerias/exportacaofiscal/vo/ExportacaoECFBase.java diff --git a/src/com/rjconsultores/ventaboletos/dao/FiscalDAO.java b/src/com/rjconsultores/ventaboletos/dao/FiscalDAO.java index 247243444..297f2a79e 100644 --- a/src/com/rjconsultores/ventaboletos/dao/FiscalDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/FiscalDAO.java @@ -8,6 +8,7 @@ import java.util.List; import com.rjconsultores.ventaboletos.entidad.Aidf; import com.rjconsultores.ventaboletos.entidad.EsquemaCorrida; import com.rjconsultores.ventaboletos.entidad.Estado; +import com.rjconsultores.ventaboletos.utilerias.exportacaofiscal.vo.ExportacaoECF; import com.rjconsultores.ventaboletos.utilerias.exportacaofiscal.vo.ExportacaoECFTipoCCF; import com.rjconsultores.ventaboletos.utilerias.exportacaofiscal.vo.ExportacaoECFTipoCFC; import com.rjconsultores.ventaboletos.utilerias.exportacaofiscal.vo.ExportacaoECFTipoICF; @@ -36,6 +37,8 @@ public interface FiscalDAO { public List buscaDatosNaoFiscais(Date inicio, Date fim, Integer empresaId, Integer estadoId, Connection connection) throws SQLException; + public ExportacaoECF buscarRegistroECF(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado); + public List buscarRegistroECFTipoCFC(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado); public List buscarRegistroECFTipoCCF(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado); diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java index ed12ba559..a59801be3 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java @@ -36,6 +36,8 @@ import com.rjconsultores.ventaboletos.utilerias.MoneyHelper; import com.rjconsultores.ventaboletos.utilerias.StringHelper; import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; import com.rjconsultores.ventaboletos.utilerias.UtiliteriasFiscal; +import com.rjconsultores.ventaboletos.utilerias.exportacaofiscal.vo.ExportacaoECF; +import com.rjconsultores.ventaboletos.utilerias.exportacaofiscal.vo.ExportacaoECFBase; import com.rjconsultores.ventaboletos.utilerias.exportacaofiscal.vo.ExportacaoECFTipoCCF; import com.rjconsultores.ventaboletos.utilerias.exportacaofiscal.vo.ExportacaoECFTipoCFC; import com.rjconsultores.ventaboletos.utilerias.exportacaofiscal.vo.ExportacaoECFTipoICF; @@ -1383,6 +1385,134 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO } + @Override + public ExportacaoECF buscarRegistroECF(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado) { + ExportacaoECF exportacaoECF = new ExportacaoECF(); + + StringBuilder sb = new StringBuilder(); + sb.append(" select distinct"); + sb.append(" (case when r2.numserie20 is null then 'X' else '' end) || imp.numserie20 as ecf,"); + sb.append(" (case when r2.numserie20 is null then 'X' else '' end) || imp.numserie as numserie,"); + 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 r2_coo,"); + sb.append(" to_char(c.feccreacion, 'yyyymmdd') as datamov,"); + sb.append(" (case when r4.caja_id is null then '000001' else r4.coo end) as r4_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 (coalesce(case when s.aliasorigen_id is null then po.regionmetropolitana_id else pos.regionmetropolitana_id end, -1) = coalesce(case when s.aliasorigen_id is null then pd.regionmetropolitana_id else pds.regionmetropolitana_id end, -2)) then 1 else 0 end) as isenta,"); + sb.append(" ((case when coalesce(r.indtribtarifa,0) = 1 then c.preciopagado else 0 end) + (case when coalesce(r.indtribtaxaembarque,0) = 1 then c.importetaxaembarque else 0 end) + (case when coalesce(r.indtribpedagio,0) = 1 then c.importepedagio else 0 end)) as valortributado,"); + 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(" coalesce(c.preciopagado,0) + coalesce(c.importetaxaembarque,0) + coalesce(c.importeseguro,0) + coalesce(c.importepedagio,0) + coalesce(c.importeoutros,0) as valortotal,"); + sb.append(" c.numfoliosistema as numfoliosistema,"); + sb.append(" c.caja_id"); + sb.append(" from caja c"); + sb.append(" join ruta r on r.ruta_id = c.ruta_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 estado eo on eo.estado_id = co.estado_id"); + sb.append(" join parada pd on pd.parada_id = c.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 = c.empresacorrida_id and ei.estado_id = eo.estado_id"); + sb.append(" join fiscal_impressora imp on imp.numserie = c.serieimpfiscal"); + sb.append(" left join estado e on e.estado_id = imp.estadolocal_id"); + 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 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 = 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(" 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 po.activo = 1 and co.activo = 1 and eo.activo = 1 and ei.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"); + 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(c.preciopagado,0) + coalesce(c.importetaxaembarque,0) + coalesce(c.importeseguro,0) + coalesce(c.importepedagio,0) + coalesce(c.importeoutros,0)) > 0"); + sb.append(" and c.feccreacion >= to_date(?,'DD/MM/YYYY HH24:MI:SS') and c.feccreacion <= 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(" and r2.numserie20 = 'BE091410100011238940'"); + + try { + PreparedStatement ps = connection.prepareStatement(sb.toString()); + ps.setString(1, DateUtil.getStringDate(inicio, DATE_FORMAT_DMY) + " 00:00:00"); + ps.setString(2, DateUtil.getStringDate(fim, DATE_FORMAT_DMY) + " 23:59:59"); + ps.setLong(3, Long.valueOf(empresaId)); + ps.setString(4, cveestado); + + ResultSet rs = ps.executeQuery(); + + ExportacaoECFBase registro = null; + + while (rs.next()) { + BigDecimal valortributado = BigDecimal.ZERO; + BigDecimal valortotal = BigDecimal.ZERO; + + if (rs.getBigDecimal("valortributado") != null) { + valortributado = rs.getBigDecimal("valortributado"); + } + + if (rs.getBigDecimal("valortotal") != null) { + valortotal = rs.getBigDecimal("valortotal"); + } + + registro = new ExportacaoECFBase(); + registro.setEcf(rs.getString("ecf")); + registro.setNumeroSerie(rs.getString("numserie")); + 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.setCooReducaoZ(Integer.valueOf(rs.getString("r2_coo"))); + registro.setDataEmissao(rs.getString("datamov")); + registro.setCoo(Integer.valueOf(rs.getString("r4_coo"))); + registro.setEstabelecimento(rs.getString("codestabelecimento")); + registro.setEstabelecimentoECF(rs.getString("codestabelecimentoimpressora")); + registro.setNumeroIdentificacaoECF(rs.getString("numeroidentificacao") == null || rs.getString("numeroidentificacao").isEmpty() ? "0" : rs.getString("numeroidentificacao")); + registro.setUfOrigem(rs.getString("estado_origem")); + registro.setMunicipioOrigem(Integer.valueOf(rs.getString("municipio_origem"))); + registro.setMunicipioDestino(Integer.valueOf(rs.getString("municipio_destino"))); + registro.setUfDestino(rs.getString("estado_destino")); + registro.setReducaoBaseCalcICMS(rs.getBigDecimal("red_base_calc_icms")); + registro.setPorcReducaoMunicipal(rs.getBigDecimal("porc_red_municipal")); + registro.setPorcReducaoEstadual(rs.getBigDecimal("porc_red_estadual")); + registro.setTributacaoImportacao(rs.getBigDecimal("tributacao_importacao")); + registro.setNumFolioSistema(rs.getString("numFolioSistema")); + registro.setInfoPadraoBilhetePassagem(CODIGO_INDICADOR_CONTR_PREVIDENCIARIA); + + registro.setIsenta(rs.getInt("isenta")); + registro.setValorTributado(valortributado); + registro.setValorTotal(valortotal); + + exportacaoECF.getListaRegistroECF().add(registro); + } + + rs.close(); + ps.close(); + + exportacaoECF.gerarListas(); + + } catch (Exception e) { + log.error(e.getMessage(), e); + } + + return exportacaoECF; + } + @Override public List buscarRegistroECFTipoCFC(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado) { List retorno = new ArrayList(); @@ -1403,7 +1533,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO 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(" coalesce(("); 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(" join caja ci on ci.caja_id = r4i.caja_id"); @@ -1414,7 +1544,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO sb.append(" left join parada pdsi on pdsi.parada_id = si.aliasdestino_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,"); + sb.append(" ), 0) as totalisenta,"); sb.append(" to_number(r2.vendabrutadiaria)/100 as vendabrutadiaria,"); sb.append(" to_number(r2.totgeral)/100 as totgeral,"); sb.append(" ("); @@ -1501,7 +1631,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO 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.feccreacion >= TO_DATE(?,'DD/MM/YYYY HH24:MI:SS') and c.feccreacion <= 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(" )"); @@ -1515,8 +1645,8 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO 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.setString(5, DateUtil.getStringDate(inicio, DATE_FORMAT_DMY + " 00:00:00")); + ps.setString(6, DateUtil.getStringDate(fim, DATE_FORMAT_DMY + " 23:59:59")); ps.setLong(7, Long.valueOf(empresaId)); ps.setString(8, cveestado); @@ -1661,7 +1791,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO 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.feccreacion >= TO_DATE(?,'DD/MM/YYYY HH24:MI:SS') and c.feccreacion <= 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(" ) "); @@ -1673,8 +1803,8 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO 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.setString(5, DateUtil.getStringDate(inicio, DATE_FORMAT_DMY + " 00:00:00")); + ps.setString(6, DateUtil.getStringDate(fim, DATE_FORMAT_DMY + " 23:59:59")); ps.setLong(7, Long.valueOf(empresaId)); ps.setString(8, cveestado); @@ -1874,7 +2004,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO 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) > 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.feccreacion >= TO_DATE(?,'DD/MM/YYYY HH24:MI:SS') and c.feccreacion <= 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(" )"); @@ -1887,8 +2017,8 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO 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.setString(5, DateUtil.getStringDate(inicio, DATE_FORMAT_DMY + " 00:00:00")); + ps.setString(6, DateUtil.getStringDate(fim, DATE_FORMAT_DMY + " 23:59:59")); ps.setLong(7, Long.valueOf(empresaId)); ps.setString(8, cveestado); @@ -2123,7 +2253,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO 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) > 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.feccreacion >= TO_DATE(?,'DD/MM/YYYY HH24:MI:SS') and c.feccreacion <= 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"); @@ -2141,8 +2271,8 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO 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.setString(5, DateUtil.getStringDate(inicio, DATE_FORMAT_DMY + " 00:00:00")); + ps.setString(6, DateUtil.getStringDate(fim, DATE_FORMAT_DMY + " 23:59:59")); ps.setLong(7, Long.valueOf(empresaId)); ps.setString(8, cveestado); diff --git a/src/com/rjconsultores/ventaboletos/service/impl/FiscalServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/FiscalServiceImpl.java index 7963a3e32..cffa965d5 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/FiscalServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/FiscalServiceImpl.java @@ -44,6 +44,7 @@ import com.rjconsultores.ventaboletos.utilerias.archivointegracion.ArchivoIntegr import com.rjconsultores.ventaboletos.utilerias.archivointegracion.ArchivoIntegracionNaoFiscal; import com.rjconsultores.ventaboletos.utilerias.archivointegracion.ArchivoIntegracionReducaoZ; import com.rjconsultores.ventaboletos.utilerias.exportacaofiscal.ExportacaoFiscal; +import com.rjconsultores.ventaboletos.utilerias.exportacaofiscal.vo.ExportacaoECF; import com.rjconsultores.ventaboletos.utilerias.exportacaofiscal.vo.ExportacaoECFTipoCCF; import com.rjconsultores.ventaboletos.utilerias.exportacaofiscal.vo.ExportacaoECFTipoCFC; import com.rjconsultores.ventaboletos.utilerias.exportacaofiscal.vo.ExportacaoECFTipoICF; @@ -909,11 +910,20 @@ public class FiscalServiceImpl implements FiscalService { Long begin = 0L; String tempo = null; + begin = Calendar.getInstance().getTimeInMillis(); + log.info("Buscando os registros ECF"); + ExportacaoECF exportacaoECF = fiscalDAO.buscarRegistroECF(connection, inicio, fim, empresa.getEmpresaId(), estado.getCveestado()); + log.info("Total de registros: " + exportacaoECF.getListaRegistroECF().size()); + tempo = infoTempo("ECF", begin); + log.info("Tempo na busca dos registros " + tempo); + tempos.add(tempo); + // CFC begin = Calendar.getInstance().getTimeInMillis(); List listaRegistroECFTipoCFC = new ArrayList(0); log.info("Buscando os registros CFC (ECF)"); - listaRegistroECFTipoCFC.addAll(fiscalDAO.buscarRegistroECFTipoCFC(connection, inicio, fim, empresa.getEmpresaId(), estado.getCveestado())); +// listaRegistroECFTipoCFC.addAll(fiscalDAO.buscarRegistroECFTipoCFC(connection, inicio, fim, empresa.getEmpresaId(), estado.getCveestado())); + listaRegistroECFTipoCFC.addAll(exportacaoECF.getListaRegistroECFTipoCFC()); log.info("Total de registros: " + listaRegistroECFTipoCFC.size()); tempo = infoTempo("CFC", begin); log.info("Tempo na busca dos registros " + tempo); @@ -923,7 +933,8 @@ public class FiscalServiceImpl implements FiscalService { begin = Calendar.getInstance().getTimeInMillis(); List listaRegistroECFTipoCCF = new ArrayList(0); log.info("Buscando os registros CCF (ECF)"); - listaRegistroECFTipoCCF.addAll(fiscalDAO.buscarRegistroECFTipoCCF(connection, inicio, fim, empresa.getEmpresaId(), estado.getCveestado())); +// listaRegistroECFTipoCCF.addAll(fiscalDAO.buscarRegistroECFTipoCCF(connection, inicio, fim, empresa.getEmpresaId(), estado.getCveestado())); + listaRegistroECFTipoCCF.addAll(exportacaoECF.getListaRegistroECFTipoCCF()); log.info("Total de registros: " + listaRegistroECFTipoCCF.size()); tempo = infoTempo("CCF", begin); log.info("Tempo na busca dos registros " + tempo); @@ -933,7 +944,8 @@ public class FiscalServiceImpl implements FiscalService { begin = Calendar.getInstance().getTimeInMillis(); List listaRegistroECFTipoICF = new ArrayList(0); log.info("Buscando os registros ICF (ECF)"); - listaRegistroECFTipoICF.addAll(fiscalDAO.buscarRegistroECFTipoICF(connection, inicio, fim, empresa.getEmpresaId(), estado.getCveestado())); +// listaRegistroECFTipoICF.addAll(fiscalDAO.buscarRegistroECFTipoICF(connection, inicio, fim, empresa.getEmpresaId(), estado.getCveestado())); + listaRegistroECFTipoICF.addAll(exportacaoECF.getListaRegistroECFTipoICF()); log.info("Total de registros: " + listaRegistroECFTipoICF.size()); tempo = infoTempo("ICF", begin); log.info("Tempo na busca dos registros " + tempo); @@ -943,7 +955,8 @@ public class FiscalServiceImpl implements FiscalService { begin = Calendar.getInstance().getTimeInMillis(); List listaRegistroECFTipoPRC = new ArrayList(0); log.info("Buscando os registros PRC (ECF)"); - listaRegistroECFTipoPRC.addAll(fiscalDAO.buscarRegistroECFTipoPRC(connection, inicio, fim, empresa.getEmpresaId(), estado.getCveestado())); +// listaRegistroECFTipoPRC.addAll(fiscalDAO.buscarRegistroECFTipoPRC(connection, inicio, fim, empresa.getEmpresaId(), estado.getCveestado())); + listaRegistroECFTipoPRC.addAll(exportacaoECF.getListaRegistroECFTipoPRC()); log.info("Total de registros: " + listaRegistroECFTipoPRC.size()); tempo = infoTempo("PRC", begin); log.info("Tempo na busca dos registros " + tempo); diff --git a/src/com/rjconsultores/ventaboletos/utilerias/exportacaofiscal/vo/ExportacaoECF.java b/src/com/rjconsultores/ventaboletos/utilerias/exportacaofiscal/vo/ExportacaoECF.java new file mode 100644 index 000000000..cd7b9a07c --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/utilerias/exportacaofiscal/vo/ExportacaoECF.java @@ -0,0 +1,407 @@ +package com.rjconsultores.ventaboletos.utilerias.exportacaofiscal.vo; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import com.rjconsultores.ventaboletos.utilerias.MoneyHelper; + +public class ExportacaoECF { + private List listaRegistroECF; + + private List listaRegistroECFTipoCFC; + private List listaRegistroECFTipoCCF; + private List listaRegistroECFTipoICF; + private List listaRegistroECFTipoPRC; + + public ExportacaoECF() { + listaRegistroECF = new ArrayList(0); + + listaRegistroECFTipoCFC = new ArrayList(0); + listaRegistroECFTipoCCF = new ArrayList(0); + listaRegistroECFTipoICF = new ArrayList(0); + listaRegistroECFTipoPRC = new ArrayList(0); + } + + public List getListaRegistroECF() { + return listaRegistroECF; + } + + public List getListaRegistroECFTipoCFC() { + return listaRegistroECFTipoCFC; + } + + public List getListaRegistroECFTipoCCF() { + return listaRegistroECFTipoCCF; + } + + public List getListaRegistroECFTipoICF() { + return listaRegistroECFTipoICF; + } + + public List getListaRegistroECFTipoPRC() { + return listaRegistroECFTipoPRC; + } + + public void gerarListas() { + gerarCFC(); + gerarCCF(); + gerarICF(); + gerarPRC(); + } + + private void gerarCFC() { + listaRegistroECFTipoCFC.clear(); + + ExportacaoECFTipoCFC registro = null; + + Map group = new HashMap(0); + + for (ExportacaoECFBase base : listaRegistroECF) { + String key = base.getEcf() + "-" + base.getNumeroSerie() + "-" + base.getDataEmissao() + "-" + base.getCooInicial() + "-" + base.getCooFinal() + "-" + base.getCooReducaoZ() + "-" + base.getCro() + "-" + base.getCooReducaoZ() + "-" + base.getEstabelecimento() + "-" + base.getEstabelecimentoECF() + "-" + base.getNumeroIdentificacaoECF() + "-" + base.getUfOrigem(); + + BigDecimal totalisenta = BigDecimal.ZERO; + BigDecimal totalvenda = BigDecimal.ZERO; + + if (base.getIsenta().intValue() == 1) { + totalisenta = MoneyHelper.somar(totalisenta, base.getValorTributado()); + } + + totalvenda = MoneyHelper.somar(totalvenda, base.getValorTributado()); + + if (group.containsKey(key)) { + registro = group.get(key); + + totalisenta = MoneyHelper.somar(totalisenta, registro.getValorIsentas()); + totalvenda = MoneyHelper.somar(totalvenda, registro.getValorTotal()); + + } else { + registro = new ExportacaoECFTipoCFC(); + } + + registro.setEstabelecimento(base.getEstabelecimento()); + registro.setDataEmissao(base.getDataEmissao()); + registro.setNumeroIdentificacaoECF(base.getNumeroIdentificacaoECF()); + registro.setEcf(base.getEcf()); + registro.setCooReducaoZ(base.getCooReducaoZ()); + registro.setCooInicial(base.getCooInicial()); + registro.setCooFinal(base.getCooFinal()); + registro.setContadorReducao(base.getContadorReducao()); + registro.setCro(base.getCro()); + registro.setEstabelecimentoECF(base.getEstabelecimentoECF()); + registro.setNumeroSerie(base.getNumeroSerie()); + registro.setInfoPadraoBilhetePassagem(base.getInfoPadraoBilhetePassagem()); + + registro.setValorIsentas(totalisenta); + registro.setValorTotal(totalvenda); + + group.put(key, registro); + } + + for (Map.Entry entry : group.entrySet()) { + listaRegistroECFTipoCFC.add(entry.getValue()); + } + + Collections.sort(listaRegistroECFTipoCFC, new Comparator(){ + public int compare(ExportacaoECFTipoCFC e1, ExportacaoECFTipoCFC e2) { + String c1 = e1.getDataEmissao() + (e1.getNumeroIdentificacaoECF() == null ? "000" : e1.getNumeroIdentificacaoECF()); + String c2 = e2.getDataEmissao() + (e2.getNumeroIdentificacaoECF() == null ? "000" : e2.getNumeroIdentificacaoECF()); + + return c1.compareToIgnoreCase(c2); + } + }); + } + + private void gerarCCF() { + listaRegistroECFTipoCCF.clear(); + + ExportacaoECFTipoCCF registro = null; + + for (ExportacaoECFBase base : listaRegistroECF) { + BigDecimal valorTributado = base.getValorTributado(); + + registro = new ExportacaoECFTipoCCF(); + registro.setEcf(base.getEcf()); + registro.setDataEmissao(base.getDataEmissao()); + registro.setCoo(base.getCoo()); + registro.setValorServico(valorTributado); + registro.setDescontoGlobal(null); + registro.setCodigoParticipante(null); + registro.setSituacaoCOO(0); // 0 - Documento Regular; 2 - Documento Cancelado + registro.setAcrescimo(null); + registro.setNumFolioSistema(base.getNumFolioSistema()); + + registro.setCodigoSituacaoTribColunaB(null); + + // 00 - tributação normal; 20 - tributação com redução na base de calculo; 40 - isentos + if (base.getIsenta() == 1) { + registro.setCodigoSituacaoTribColunaB(40); + } + + registro.setUfOrigem(base.getUfOrigem()); + registro.setMunicipioOrigem(base.getMunicipioOrigem()); + registro.setUfDestino(base.getUfDestino()); + + // IM=5357; Serviço IE= 6357 + if (base.getUfOrigem().equals(base.getUfDestino())) { + registro.setCfop(5357); + } else { + registro.setCfop(6357); + } + + // 00 - tributação normal; 20 - tributação com redução na base de calculo; 40 - isentos + if (registro.getCodigoSituacaoTribColunaB() == null) { + registro.setCodigoSituacaoTribColunaB(base.getReducaoBaseCalcICMS().compareTo(BigDecimal.ZERO) == 0 ? 0 : 20); + } + + BigDecimal valorTotal = valorTributado; + + BigDecimal red_base_calc_icms = MoneyHelper.instanciar(base.getReducaoBaseCalcICMS()); + BigDecimal tributacao_importacao = MoneyHelper.instanciar(base.getTributacaoImportacao()); + BigDecimal valorBaseCalculoICMS = BigDecimal.ZERO; + + if ("30|40|41|50|60".contains(registro.getCodigoSituacaoTribColunaB().toString())) { + tributacao_importacao = BigDecimal.ZERO; + } + + if (red_base_calc_icms != null) { + valorBaseCalculoICMS = valorTotal.subtract(valorTotal.multiply(red_base_calc_icms.divide(BigDecimal.valueOf(100d)))); + } else { + valorBaseCalculoICMS = valorTotal; + } + + if (base.getIsenta() == 1) { + valorBaseCalculoICMS = null; + } + + registro.setValorTotal(valorTotal); + + // 1 - Demais; 2 - Região Metropolitanao ou seja, quando o campo CSTB for "40", esse campo deve vir "2". Do contrário, deve vir "1" + registro.setTributacaoICMS(registro.getCodigoSituacaoTribColunaB() == 40 ? 2 : 1); + + registro.setValorBaseCalculoICMS(valorBaseCalculoICMS); + registro.setAliquotaICMS(tributacao_importacao); + + if (valorTotal.doubleValue() != 0) { + listaRegistroECFTipoCCF.add(registro); + } + } + + Collections.sort(listaRegistroECFTipoCCF, new Comparator(){ + public int compare(ExportacaoECFTipoCCF e1, ExportacaoECFTipoCCF e2) { + String c1 = String.format("%06d", e1.getCoo()); + String c2 = String.format("%06d", e2.getCoo()); + + if (c1.equals("000001")) { + c1 = "999999"; + } + + if (c2.equals("000001")) { + c2 = "999999"; + } + + return c1.compareToIgnoreCase(c2); + } + }); + } + + private void gerarICF() { + listaRegistroECFTipoICF.clear(); + + ExportacaoECFTipoICF registro = null; + + Map group = new HashMap(); + + for (ExportacaoECFBase base : listaRegistroECF) { + BigDecimal valorTotal = base.getValorTributado(); + + if (valorTotal == null || valorTotal.doubleValue() == 0) { + continue; + } + + BigDecimal red_base_calc_icms = MoneyHelper.instanciar(base.getReducaoBaseCalcICMS()); + BigDecimal porc_red_municipal = MoneyHelper.instanciar(base.getPorcReducaoMunicipal()); + BigDecimal porc_red_estadual = MoneyHelper.instanciar(base.getPorcReducaoEstadual()); + BigDecimal tributacao_importacao = MoneyHelper.instanciar(base.getTributacaoImportacao()); + BigDecimal valorBaseCalculoICMS = BigDecimal.ZERO; + + if (red_base_calc_icms != null) { + BigDecimal aRed_base_calc_icms = MoneyHelper.dividir(red_base_calc_icms, BigDecimal.valueOf(100d)); + valorBaseCalculoICMS = MoneyHelper.subtrair(valorTotal, MoneyHelper.multiplicar(valorTotal, aRed_base_calc_icms)); + } else { + valorBaseCalculoICMS = valorTotal; + } + + BigDecimal valorICMSDebitado = BigDecimal.ZERO; + + if (tributacao_importacao != null) { + BigDecimal aTributacao_importacao = MoneyHelper.dividir(tributacao_importacao, BigDecimal.valueOf(100d)); + valorICMSDebitado = MoneyHelper.multiplicar(valorBaseCalculoICMS, aTributacao_importacao); + } + + BigDecimal valorICMSIsento = BigDecimal.ZERO; + BigDecimal valorICMSOutros = MoneyHelper.subtrair(valorTotal, valorBaseCalculoICMS); + + String ecf = base.getEcf(); + String datamov = base.getDataEmissao(); + String ufDestino = ""; + String ufOrigem = ""; + Integer municipioOrigem = 0; + Integer cfop = 0; // IM=5357; Serviço IE= 6357 + + // 00 - tributação normal; 20 - tributação com redução na base de calculo; 40 - isentos + Integer codigoSituacaoTribColunaB = null; + + if (base.getIsenta() == 1) { + codigoSituacaoTribColunaB = 40; + + valorICMSOutros = valorTotal; + } + + ufDestino = base.getUfDestino(); + ufOrigem = base.getUfOrigem(); + municipioOrigem = base.getMunicipioOrigem(); + + // IM=5357; Serviço IE= 6357 + if (base.getUfOrigem().equals(base.getUfDestino())) { + cfop = 5357; + } else { + cfop = 6357; + } + + // 00 - tributação normal; 20 - tributação com redução na base de calculo; 40 - isentos + if (codigoSituacaoTribColunaB == null) { + codigoSituacaoTribColunaB = base.getReducaoBaseCalcICMS().compareTo(BigDecimal.ZERO) == 0 ? 0 : 20; + } + + if (codigoSituacaoTribColunaB == 40) { + tributacao_importacao = BigDecimal.ZERO; + valorBaseCalculoICMS = BigDecimal.ZERO; + valorICMSDebitado = BigDecimal.ZERO; + valorICMSOutros = BigDecimal.ZERO; + + valorICMSIsento = valorTotal; + } + + String key = ecf + "|" + datamov + "|" + ufDestino + "|" + cfop.toString() + "|" + codigoSituacaoTribColunaB.toString() + "|" + municipioOrigem; + + if (group.containsKey(key)) { + registro = group.get(key); + + valorTotal = MoneyHelper.somar(valorTotal, registro.getValorTotal()); + valorBaseCalculoICMS = MoneyHelper.somar(valorBaseCalculoICMS, registro.getValorBaseCalculoICMS()); + valorICMSDebitado = MoneyHelper.somar(valorICMSDebitado, registro.getValorICMSDebitado()); + valorICMSIsento = MoneyHelper.somar(valorICMSIsento, registro.getValorICMSIsento()); + valorICMSOutros = MoneyHelper.somar(valorICMSOutros, registro.getValorICMSOutros()); + } else { + registro = new ExportacaoECFTipoICF(); + registro.setEcf(ecf); + registro.setDataEmissao(datamov); + registro.setUfDestino(ufDestino); + registro.setCfop(cfop); // IM=5357; Serviço IE= 6357 + registro.setCodigoSituacaoTribColunaB(codigoSituacaoTribColunaB); // 00 - tributação normal; 20 - tributação com redução na base de calculo; 40 - isentos + registro.setAliquotaICMS(tributacao_importacao); + registro.setUfOrigem(ufOrigem); + registro.setMunicipioOrigem(municipioOrigem); + + registro.setRedutorBaseCalculoIcms(red_base_calc_icms); + registro.setRedutorMunicipalIcms(porc_red_municipal); + registro.setRedutorEstadualIcms(porc_red_estadual); + + group.put(key, registro); + } + + registro.setValorTotal(valorTotal); + registro.setValorBaseCalculoICMS(valorBaseCalculoICMS); + registro.setValorICMSDebitado(valorICMSDebitado); + registro.setValorICMSIsento(valorICMSIsento); + registro.setValorICMSOutros(valorICMSOutros); + } + + for (Map.Entry entry : group.entrySet()) { + listaRegistroECFTipoICF.add(entry.getValue()); + } + + Collections.sort(listaRegistroECFTipoICF, new Comparator(){ + public int compare(ExportacaoECFTipoICF e1, ExportacaoECFTipoICF e2) { + String c1 = e1.getUfDestino(); + String c2 = e2.getUfDestino(); + + return c1.compareToIgnoreCase(c2); + } + }); + } + + private void gerarPRC() { + listaRegistroECFTipoPRC.clear(); + + ExportacaoECFTipoPRC registro = null; + + Map group = new HashMap(); + + for (ExportacaoECFBase base : listaRegistroECF) { + BigDecimal valorTotal = base.getValorTributado(); + + BigDecimal red_base_calc_icms = MoneyHelper.instanciar(base.getReducaoBaseCalcICMS()); + BigDecimal tributacao_importacao = MoneyHelper.instanciar(base.getTributacaoImportacao()); + BigDecimal valorBaseCalculoICMS = BigDecimal.ZERO; + + if (tributacao_importacao != null) { + tributacao_importacao = MoneyHelper.dividir(tributacao_importacao, BigDecimal.valueOf(100d)); + } + + if (red_base_calc_icms != null) { + BigDecimal aRed_base_calc_icms = MoneyHelper.dividir(red_base_calc_icms, BigDecimal.valueOf(100d)); + valorBaseCalculoICMS = MoneyHelper.subtrair(valorTotal, MoneyHelper.multiplicar(valorTotal, aRed_base_calc_icms)); + } else { + valorBaseCalculoICMS = valorTotal; + } + + BigDecimal valorICMS = BigDecimal.ZERO; + + if (tributacao_importacao != null) { + valorICMS = MoneyHelper.multiplicar(valorBaseCalculoICMS, tributacao_importacao); + } + + String key = base.getEcf() + "|" + base.getDataEmissao() + "|" + base.getUfOrigem() + "|" + base.getMunicipioOrigem(); + + if (group.containsKey(key)) { + registro = group.get(key); + + registro.setValorTotal(MoneyHelper.somar(registro.getValorTotal(), valorTotal)); + registro.setValorBaseCalculoICMS(MoneyHelper.somar(registro.getValorBaseCalculoICMS(), valorBaseCalculoICMS)); + registro.setValorICMS(MoneyHelper.somar(registro.getValorICMS(), valorICMS)); + + } else { + registro = new ExportacaoECFTipoPRC(); + registro.setEcf(base.getEcf()); + registro.setDataEmissao(base.getDataEmissao()); + registro.setUfOrigem(base.getUfOrigem()); + registro.setMunicipioOrigem(base.getMunicipioOrigem()); + registro.setValorTotal(valorTotal); + registro.setValorBaseCalculoICMS(valorBaseCalculoICMS); + registro.setValorICMS(valorICMS); + registro.setTributacao(tributacao_importacao); + } + + group.put(key, registro); + } + + for (Map.Entry entry : group.entrySet()) { + listaRegistroECFTipoPRC.add(entry.getValue()); + } + + Collections.sort(listaRegistroECFTipoPRC, new Comparator(){ + public int compare(ExportacaoECFTipoPRC e1, ExportacaoECFTipoPRC e2) { + String c1 = String.valueOf(e1.getMunicipioOrigem()); + String c2 = String.valueOf(e2.getMunicipioOrigem()); + + return c1.compareToIgnoreCase(c2); + } + }); + } +} diff --git a/src/com/rjconsultores/ventaboletos/utilerias/exportacaofiscal/vo/ExportacaoECFBase.java b/src/com/rjconsultores/ventaboletos/utilerias/exportacaofiscal/vo/ExportacaoECFBase.java new file mode 100644 index 000000000..6d55c91bd --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/utilerias/exportacaofiscal/vo/ExportacaoECFBase.java @@ -0,0 +1,236 @@ +package com.rjconsultores.ventaboletos.utilerias.exportacaofiscal.vo; + +import java.math.BigDecimal; + +public class ExportacaoECFBase { + private String estabelecimento; + private String dataEmissao; + private String numeroIdentificacaoECF; + private Integer cooReducaoZ; + private Integer cooInicial; + private Integer cooFinal; + private Integer contadorReducao; + private Integer cro; + private String estabelecimentoECF; + private String ecf; + private String numeroSerie; + private Integer coo; + private String numFolioSistema; + private String ufOrigem; + private Integer municipioOrigem; + private String ufDestino; + private Integer municipioDestino; + private BigDecimal reducaoBaseCalcICMS; + private BigDecimal porcReducaoMunicipal; + private BigDecimal porcReducaoEstadual; + private BigDecimal tributacaoImportacao; + private String infoPadraoBilhetePassagem; + + private Integer isenta; + private BigDecimal valorTributado; + private BigDecimal valorTotal; + + public ExportacaoECFBase() { + + } + + public String getEstabelecimento() { + return estabelecimento; + } + + public void setEstabelecimento(String estabelecimento) { + this.estabelecimento = estabelecimento; + } + + public String getDataEmissao() { + return dataEmissao; + } + + public void setDataEmissao(String dataEmissao) { + this.dataEmissao = dataEmissao; + } + + public String getNumeroIdentificacaoECF() { + return numeroIdentificacaoECF; + } + + public void setNumeroIdentificacaoECF(String numeroIdentificacaoECF) { + this.numeroIdentificacaoECF = numeroIdentificacaoECF; + } + + public Integer getCooReducaoZ() { + return cooReducaoZ; + } + + public void setCooReducaoZ(Integer cooReducaoZ) { + this.cooReducaoZ = cooReducaoZ; + } + + public Integer getCooInicial() { + return cooInicial; + } + + public void setCooInicial(Integer cooInicial) { + this.cooInicial = cooInicial; + } + + public Integer getCooFinal() { + return cooFinal; + } + + public void setCooFinal(Integer cooFinal) { + this.cooFinal = cooFinal; + } + + public Integer getContadorReducao() { + return contadorReducao; + } + + public void setContadorReducao(Integer contadorReducao) { + this.contadorReducao = contadorReducao; + } + + public Integer getCro() { + return cro; + } + + public void setCro(Integer cro) { + this.cro = cro; + } + + public String getEstabelecimentoECF() { + return estabelecimentoECF; + } + + public void setEstabelecimentoECF(String estabelecimentoECF) { + this.estabelecimentoECF = estabelecimentoECF; + } + + public String getEcf() { + return ecf; + } + + public void setEcf(String ecf) { + this.ecf = ecf; + } + + public String getNumeroSerie() { + return numeroSerie; + } + + public void setNumeroSerie(String numeroSerie) { + this.numeroSerie = numeroSerie; + } + + public Integer getCoo() { + return coo; + } + + public void setCoo(Integer coo) { + this.coo = coo; + } + + public String getNumFolioSistema() { + return numFolioSistema; + } + + public void setNumFolioSistema(String numFolioSistema) { + this.numFolioSistema = numFolioSistema; + } + + public String getUfOrigem() { + return ufOrigem; + } + + public void setUfOrigem(String ufOrigem) { + this.ufOrigem = ufOrigem; + } + + public Integer getMunicipioOrigem() { + return municipioOrigem; + } + + public void setMunicipioOrigem(Integer municipioOrigem) { + this.municipioOrigem = municipioOrigem; + } + + public String getUfDestino() { + return ufDestino; + } + + public void setUfDestino(String ufDestino) { + this.ufDestino = ufDestino; + } + + public Integer getMunicipioDestino() { + return municipioDestino; + } + + public void setMunicipioDestino(Integer municipioDestino) { + this.municipioDestino = municipioDestino; + } + + public BigDecimal getReducaoBaseCalcICMS() { + return reducaoBaseCalcICMS == null ? BigDecimal.ZERO : reducaoBaseCalcICMS; + } + + public void setReducaoBaseCalcICMS(BigDecimal reducaoBaseCalcICMS) { + this.reducaoBaseCalcICMS = reducaoBaseCalcICMS; + } + + public BigDecimal getPorcReducaoMunicipal() { + return porcReducaoMunicipal; + } + + public void setPorcReducaoMunicipal(BigDecimal porcReducaoMunicipal) { + this.porcReducaoMunicipal = porcReducaoMunicipal; + } + + public BigDecimal getPorcReducaoEstadual() { + return porcReducaoEstadual; + } + + public void setPorcReducaoEstadual(BigDecimal porcReducaoEstadual) { + this.porcReducaoEstadual = porcReducaoEstadual; + } + + public BigDecimal getTributacaoImportacao() { + return tributacaoImportacao; + } + + public void setTributacaoImportacao(BigDecimal tributacaoImportacao) { + this.tributacaoImportacao = tributacaoImportacao; + } + + public String getInfoPadraoBilhetePassagem() { + return infoPadraoBilhetePassagem; + } + + public void setInfoPadraoBilhetePassagem(String infoPadraoBilhetePassagem) { + this.infoPadraoBilhetePassagem = infoPadraoBilhetePassagem; + } + + public Integer getIsenta() { + return isenta; + } + + public void setIsenta(Integer isenta) { + this.isenta = isenta; + } + + public BigDecimal getValorTributado() { + return valorTributado; + } + + public void setValorTributado(BigDecimal valorTributado) { + this.valorTributado = valorTributado; + } + + public BigDecimal getValorTotal() { + return valorTotal; + } + + public void setValorTotal(BigDecimal valorTotal) { + this.valorTotal = valorTotal; + } +}