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

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@70871 d1611594-4594-4d17-8e1d-87c2c4800839
master
alberto 2017-06-29 20:28:03 +00:00
parent da63d62a8c
commit e873a877f1
3 changed files with 52 additions and 31 deletions

View File

@ -58,6 +58,8 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
private static final String DATE_FORMAT_DMYHMS = "dd/MM/yyyy hh:mm:ss";
private static final String DATE_FORMAT_DMY = "dd/MM/yyyy";
private static final String CODIGO_INDICADOR_CONTR_PREVIDENCIARIA = "00000060";
private static Logger log = Logger.getLogger(FiscalHibernateDAO.class);
@Autowired
@ -1383,7 +1385,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
registro.setValorIsentas(totalIsenta);
registro.setEstabelecimentoECF(rs.getString("codestabelecimentoimpressora"));
registro.setNumeroSerie(rs.getString("numserie"));
registro.setInfoPadraoBilhetePassagem("00000060");
registro.setInfoPadraoBilhetePassagem(CODIGO_INDICADOR_CONTR_PREVIDENCIARIA);
retorno.add(registro);
}
@ -1544,6 +1546,10 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
BigDecimal tributacao_importacao = rs.getBigDecimal("tributacao_importacao");
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 {
@ -1607,7 +1613,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
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(" (CASE WHEN (nvl((CASE WHEN s.aliasorigen_id IS NULL THEN pos.regionmetropolitana_id ELSE po.regionmetropolitana_id END),-1) = nvl((CASE WHEN s.aliasdestino_id IS NULL THEN pds.regionmetropolitana_id ELSE pd.regionmetropolitana_id END),-2)) THEN 1 ELSE 0 END) as isenta,");
sb.append(" (CASE WHEN (nvl((CASE WHEN s.aliasorigen_id IS NULL THEN po.regionmetropolitana_id ELSE pos.regionmetropolitana_id END),-1) = nvl((CASE WHEN s.aliasdestino_id IS NULL THEN pd.regionmetropolitana_id ELSE pds.regionmetropolitana_id END),-2)) THEN 1 ELSE 0 END) as isenta,");
sb.append(" r4.impsubtotal as valortotal");
sb.append(" from fiscal_r4 r4");
sb.append(" join fiscal_r2 r2 on r2.numserie20 = r4.numserie20 and r2.datamov = r4.datamov");
@ -1724,6 +1730,8 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
String key = ecf + "|" + datamov + "|" + ufDestino + "|" + cfop.toString() + "|" + codigoSituacaoTribColunaB.toString();
log.info(key.toString());
if (group.containsKey(key)) {
registro = group.get(key);
@ -1746,6 +1754,8 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
registro.setRedutorBaseCalculoIcms(red_base_calc_icms);
registro.setRedutorMunicipalIcms(porc_red_municipal);
registro.setRedutorEstadualIcms(porc_red_estadual);
group.put(key, registro);
}
registro.setValorTotal(valorTotal.setScale(2, BigDecimal.ROUND_HALF_EVEN));
@ -1753,8 +1763,6 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
registro.setValorICMSDebitado(valorICMSDebitado.setScale(2, BigDecimal.ROUND_HALF_EVEN));
registro.setValorICMSIsento(valorICMSIsento.setScale(2, BigDecimal.ROUND_HALF_EVEN));
registro.setValorICMSOutros(valorICMSOutros.setScale(2, BigDecimal.ROUND_HALF_EVEN));
group.put(key, registro);
}
for (Map.Entry<String, ExportacaoECFTipoICF> entry : group.entrySet()) {
@ -2077,7 +2085,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
return retorno;
}
@Override
@Override @Deprecated
public List<ExportacaoRMDTipoBPS> buscarRegistroRMDTipoBPS(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado) {
List<ExportacaoRMDTipoBPS> retorno = new ArrayList<ExportacaoRMDTipoBPS>();
@ -2212,7 +2220,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
return retorno;
}
@Override
@Override @Deprecated
public List<ExportacaoRMDTipoDBP> buscarRegistroRMDTipoDBP(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado) {
List<ExportacaoRMDTipoDBP> retorno = new ArrayList<ExportacaoRMDTipoDBP>();
@ -2456,7 +2464,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
ResultSet rs = ps.executeQuery();
ExportacaoRMDTipoSeqBPS registroBPR = null;
ExportacaoRMDTipoSeqBPS registroBPS = null;
ExportacaoRMDTipoSeqDBP registroDBP = null;
Integer numeroInicial = 0;
@ -2499,20 +2507,21 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
dataEmissaoControle = dataEmissao;
cfopControle = cfop;
registroBPR = new ExportacaoRMDTipoSeqBPS();
registroBPR.setEspecie("BPR");
registroBPR.setNumeroInicial(numeroInicial);
registroBPR.setCodigoEstabelecimento(codigoEstabelecimento);
registroBPR.setNumeroAIDF(numeroAIDF);
registroBPR.setSerieAIDF(serieAIDF);
registroBPR.setSubSerieAIDF(subSerieAIDF);
registroBPR.setNumeroAIDFRMD(numeroAIDFRMD);
registroBPR.setSerieAIDFRMD(serieAIDFRMD);
registroBPR.setSubSerieAIDFRMD(subSerieAIDFRMD);
registroBPR.setNumeroRMD(numeroRMD);
registroBPR.setDataEmissao(dataEmissao);
listaBPS.add(registroBPR);
registroBPS = new ExportacaoRMDTipoSeqBPS();
registroBPS.setEspecie("BPR");
registroBPS.setNumeroInicial(numeroInicial);
registroBPS.setCodigoEstabelecimento(codigoEstabelecimento);
registroBPS.setNumeroAIDF(numeroAIDF);
registroBPS.setSerieAIDF(serieAIDF);
registroBPS.setSubSerieAIDF(subSerieAIDF);
registroBPS.setNumeroAIDFRMD(numeroAIDFRMD);
registroBPS.setSerieAIDFRMD(serieAIDFRMD);
registroBPS.setSubSerieAIDFRMD(subSerieAIDFRMD);
registroBPS.setNumeroRMD(numeroRMD);
registroBPS.setDataEmissao(dataEmissao);
registroBPS.setInfoPadraoBilhetePassagem(CODIGO_INDICADOR_CONTR_PREVIDENCIARIA);
listaBPS.add(registroBPS);
quantidadeTotal = 0;
quantidadeCancelado = 0;
@ -2530,19 +2539,19 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
numeroFinal = numeroFormulario;
registroBPR.setNumeroFinal(numeroFinal);
registroBPS.setNumeroFinal(numeroFinal);
registroBPR.setQuantidadeTotal(quantidadeTotal);
registroBPR.setQuantidadeCancelados(quantidadeCancelado);
registroBPR.setValorTotal(totalizador);
registroBPS.setQuantidadeTotal(quantidadeTotal);
registroBPS.setQuantidadeCancelados(quantidadeCancelado);
registroBPS.setValorTotal(totalizador);
// DBP
registroDBP = new ExportacaoRMDTipoSeqDBP(ufDestino);
Integer indice = registroBPR.getListaDBP().indexOf(registroDBP);
Integer indice = registroBPS.getListaDBP().indexOf(registroDBP);
if (indice == -1) {
registroBPR.getListaDBP().add(registroDBP);
registroBPS.getListaDBP().add(registroDBP);
registroDBP.setCfop(cfop); // IM=5357; Serviço IE= 6357
registroDBP.setUfOrigem(ufOrigem);
@ -2566,7 +2575,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
registroDBP.setValorICMSIsento(BigDecimal.ZERO);
registroDBP.setValorICMSOutros(BigDecimal.ZERO);
} else {
registroDBP = registroBPR.getListaDBP().get(indice);
registroDBP = registroBPS.getListaDBP().get(indice);
}
BigDecimal valorBaseCalculoICMS = BigDecimal.ZERO;

View File

@ -576,13 +576,14 @@ public class ExportacaoFiscal {
sb.append(formataCaracter(VAZIO, false, 9)).append(SEPARADOR); // Posição 32
sb.append(formataCaracter(VAZIO, false, 8)).append(SEPARADOR); // Posição 33
sb.append(formataCaracter(VAZIO, false, 3)).append(SEPARADOR); // Posição 34
sb.append(formataCaracter(VAZIO, false, 3)); // Posição 35
sb.append(formataCaracter(VAZIO, false, 3)).append(SEPARADOR); // Posição 35
sb.append(formataCaracter("N", false, 3)); // Posição 36
writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA);
}
}
@Deprecated
private void adicionarRegistroRMDTipoBPS(PrintWriter writer, List<ExportacaoRMDTipoBPS> listaRegistroRMDTipoBPS) {
for (ExportacaoRMDTipoBPS registro : listaRegistroRMDTipoBPS) {
Integer codigoEstabelecimento = registro.getCodigoEstabelecimento();
@ -639,6 +640,7 @@ public class ExportacaoFiscal {
}
}
@Deprecated
private void adicionarRegistroRMDTipoDBP(PrintWriter writer, List<ExportacaoRMDTipoDBP> listaRegistroRMDTipoDBP) {
for (ExportacaoRMDTipoDBP registro : listaRegistroRMDTipoDBP) {
String ufDestino = registro.getUfDestino();
@ -695,7 +697,8 @@ public class ExportacaoFiscal {
String serieAIDFRMD = registro.getSerieAIDFRMD();
String subSerieAIDFRMD = registro.getSubSerieAIDFRMD();
Integer numeroRMD = registro.getNumeroRMD();
String infoPadraoBilhetePassagem = registro.getInfoPadraoBilhetePassagem();
StringBuilder sb = new StringBuilder();
sb.append("BPS").append(SEPARADOR);
sb.append(String.format("%04d", codigoEstabelecimento)).append(SEPARADOR);
@ -728,7 +731,7 @@ public class ExportacaoFiscal {
sb.append("01").append(SEPARADOR);
sb.append(formataCaracter(VAZIO, false, 3)).append(SEPARADOR); // Posição 30
sb.append(formataCaracter(VAZIO, false, 3)).append(SEPARADOR); // Posição 31
sb.append(formataCaracter(VAZIO, false, 8)); // Posição 32
sb.append(formataCaracter(infoPadraoBilhetePassagem, false, 8));
writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA);

View File

@ -20,6 +20,7 @@ public class ExportacaoRMDTipoSeqBPS {
private String subSerieAIDFRMD;
private Integer numeroRMD;
private Integer quantidadeTotal;
private String infoPadraoBilhetePassagem;
private List<ExportacaoRMDTipoSeqDBP> listaDBP;
public ExportacaoRMDTipoSeqBPS() {
@ -161,6 +162,14 @@ public class ExportacaoRMDTipoSeqBPS {
this.quantidadeTotal = quantidadeTotal;
}
public String getInfoPadraoBilhetePassagem() {
return infoPadraoBilhetePassagem;
}
public void setInfoPadraoBilhetePassagem(String infoPadraoBilhetePassagem) {
this.infoPadraoBilhetePassagem = infoPadraoBilhetePassagem;
}
public List<ExportacaoRMDTipoSeqDBP> getListaDBP() {
return listaDBP;
}