Exportação Fiscal : ECF e RMD (issue 8120)
git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@72811 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
cf7b1c465e
commit
02a384ca65
|
@ -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<ImportacionNaoFiscalVO> 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<ExportacaoECFTipoCFC> buscarRegistroECFTipoCFC(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado);
|
||||
|
||||
public List<ExportacaoECFTipoCCF> buscarRegistroECFTipoCCF(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado);
|
||||
|
|
|
@ -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<ExportacaoECFTipoCFC> buscarRegistroECFTipoCFC(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado) {
|
||||
List<ExportacaoECFTipoCFC> retorno = new ArrayList<ExportacaoECFTipoCFC>();
|
||||
|
@ -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);
|
||||
|
||||
|
|
|
@ -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<ExportacaoECFTipoCFC> listaRegistroECFTipoCFC = new ArrayList<ExportacaoECFTipoCFC>(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<ExportacaoECFTipoCCF> listaRegistroECFTipoCCF = new ArrayList<ExportacaoECFTipoCCF>(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<ExportacaoECFTipoICF> listaRegistroECFTipoICF = new ArrayList<ExportacaoECFTipoICF>(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<ExportacaoECFTipoPRC> listaRegistroECFTipoPRC = new ArrayList<ExportacaoECFTipoPRC>(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);
|
||||
|
|
|
@ -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<ExportacaoECFBase> listaRegistroECF;
|
||||
|
||||
private List<ExportacaoECFTipoCFC> listaRegistroECFTipoCFC;
|
||||
private List<ExportacaoECFTipoCCF> listaRegistroECFTipoCCF;
|
||||
private List<ExportacaoECFTipoICF> listaRegistroECFTipoICF;
|
||||
private List<ExportacaoECFTipoPRC> listaRegistroECFTipoPRC;
|
||||
|
||||
public ExportacaoECF() {
|
||||
listaRegistroECF = new ArrayList<ExportacaoECFBase>(0);
|
||||
|
||||
listaRegistroECFTipoCFC = new ArrayList<ExportacaoECFTipoCFC>(0);
|
||||
listaRegistroECFTipoCCF = new ArrayList<ExportacaoECFTipoCCF>(0);
|
||||
listaRegistroECFTipoICF = new ArrayList<ExportacaoECFTipoICF>(0);
|
||||
listaRegistroECFTipoPRC = new ArrayList<ExportacaoECFTipoPRC>(0);
|
||||
}
|
||||
|
||||
public List<ExportacaoECFBase> getListaRegistroECF() {
|
||||
return listaRegistroECF;
|
||||
}
|
||||
|
||||
public List<ExportacaoECFTipoCFC> getListaRegistroECFTipoCFC() {
|
||||
return listaRegistroECFTipoCFC;
|
||||
}
|
||||
|
||||
public List<ExportacaoECFTipoCCF> getListaRegistroECFTipoCCF() {
|
||||
return listaRegistroECFTipoCCF;
|
||||
}
|
||||
|
||||
public List<ExportacaoECFTipoICF> getListaRegistroECFTipoICF() {
|
||||
return listaRegistroECFTipoICF;
|
||||
}
|
||||
|
||||
public List<ExportacaoECFTipoPRC> getListaRegistroECFTipoPRC() {
|
||||
return listaRegistroECFTipoPRC;
|
||||
}
|
||||
|
||||
public void gerarListas() {
|
||||
gerarCFC();
|
||||
gerarCCF();
|
||||
gerarICF();
|
||||
gerarPRC();
|
||||
}
|
||||
|
||||
private void gerarCFC() {
|
||||
listaRegistroECFTipoCFC.clear();
|
||||
|
||||
ExportacaoECFTipoCFC registro = null;
|
||||
|
||||
Map<String, ExportacaoECFTipoCFC> group = new HashMap<String, ExportacaoECFTipoCFC>(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<String, ExportacaoECFTipoCFC> entry : group.entrySet()) {
|
||||
listaRegistroECFTipoCFC.add(entry.getValue());
|
||||
}
|
||||
|
||||
Collections.sort(listaRegistroECFTipoCFC, new Comparator<ExportacaoECFTipoCFC>(){
|
||||
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<ExportacaoECFTipoCCF>(){
|
||||
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<String, ExportacaoECFTipoICF> group = new HashMap<String, ExportacaoECFTipoICF>();
|
||||
|
||||
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<String, ExportacaoECFTipoICF> entry : group.entrySet()) {
|
||||
listaRegistroECFTipoICF.add(entry.getValue());
|
||||
}
|
||||
|
||||
Collections.sort(listaRegistroECFTipoICF, new Comparator<ExportacaoECFTipoICF>(){
|
||||
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<String, ExportacaoECFTipoPRC> group = new HashMap<String, ExportacaoECFTipoPRC>();
|
||||
|
||||
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<String, ExportacaoECFTipoPRC> entry : group.entrySet()) {
|
||||
listaRegistroECFTipoPRC.add(entry.getValue());
|
||||
}
|
||||
|
||||
Collections.sort(listaRegistroECFTipoPRC, new Comparator<ExportacaoECFTipoPRC>(){
|
||||
public int compare(ExportacaoECFTipoPRC e1, ExportacaoECFTipoPRC e2) {
|
||||
String c1 = String.valueOf(e1.getMunicipioOrigem());
|
||||
String c2 = String.valueOf(e2.getMunicipioOrigem());
|
||||
|
||||
return c1.compareToIgnoreCase(c2);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue