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_DMYHMS = "dd/MM/yyyy hh:mm:ss";
private static final String DATE_FORMAT_DMY = "dd/MM/yyyy"; 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); private static Logger log = Logger.getLogger(FiscalHibernateDAO.class);
@Autowired @Autowired
@ -1383,7 +1385,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
registro.setValorIsentas(totalIsenta); registro.setValorIsentas(totalIsenta);
registro.setEstabelecimentoECF(rs.getString("codestabelecimentoimpressora")); registro.setEstabelecimentoECF(rs.getString("codestabelecimentoimpressora"));
registro.setNumeroSerie(rs.getString("numserie")); registro.setNumeroSerie(rs.getString("numserie"));
registro.setInfoPadraoBilhetePassagem("00000060"); registro.setInfoPadraoBilhetePassagem(CODIGO_INDICADOR_CONTR_PREVIDENCIARIA);
retorno.add(registro); retorno.add(registro);
} }
@ -1544,6 +1546,10 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
BigDecimal tributacao_importacao = rs.getBigDecimal("tributacao_importacao"); BigDecimal tributacao_importacao = rs.getBigDecimal("tributacao_importacao");
BigDecimal valorBaseCalculoICMS = BigDecimal.ZERO; BigDecimal valorBaseCalculoICMS = BigDecimal.ZERO;
if ("30|40|41|50|60".contains(registro.getCodigoSituacaoTribColunaB().toString())) {
tributacao_importacao = BigDecimal.ZERO;
}
if (red_base_calc_icms != null) { if (red_base_calc_icms != null) {
valorBaseCalculoICMS = valorTotal.subtract(valorTotal.multiply(red_base_calc_icms.divide(BigDecimal.valueOf(100d)))); valorBaseCalculoICMS = valorTotal.subtract(valorTotal.multiply(red_base_calc_icms.divide(BigDecimal.valueOf(100d))));
} else { } 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.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.porcredestadual ELSE eis.porcredestadual END) as porc_red_estadual,");
sb.append(" (CASE WHEN s.aliasorigen_id IS NULL THEN ei.tributacaoimportacao ELSE eis.tributacaoimportacao END) as tributacao_importacao,"); sb.append(" (CASE WHEN s.aliasorigen_id IS NULL THEN ei.tributacaoimportacao ELSE eis.tributacaoimportacao END) as tributacao_importacao,");
sb.append(" (CASE WHEN (nvl((CASE WHEN s.aliasorigen_id IS NULL THEN 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(" r4.impsubtotal as valortotal");
sb.append(" from fiscal_r4 r4"); sb.append(" from fiscal_r4 r4");
sb.append(" join fiscal_r2 r2 on r2.numserie20 = r4.numserie20 and r2.datamov = r4.datamov"); sb.append(" join fiscal_r2 r2 on r2.numserie20 = r4.numserie20 and r2.datamov = r4.datamov");
@ -1724,6 +1730,8 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
String key = ecf + "|" + datamov + "|" + ufDestino + "|" + cfop.toString() + "|" + codigoSituacaoTribColunaB.toString(); String key = ecf + "|" + datamov + "|" + ufDestino + "|" + cfop.toString() + "|" + codigoSituacaoTribColunaB.toString();
log.info(key.toString());
if (group.containsKey(key)) { if (group.containsKey(key)) {
registro = group.get(key); registro = group.get(key);
@ -1746,6 +1754,8 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
registro.setRedutorBaseCalculoIcms(red_base_calc_icms); registro.setRedutorBaseCalculoIcms(red_base_calc_icms);
registro.setRedutorMunicipalIcms(porc_red_municipal); registro.setRedutorMunicipalIcms(porc_red_municipal);
registro.setRedutorEstadualIcms(porc_red_estadual); registro.setRedutorEstadualIcms(porc_red_estadual);
group.put(key, registro);
} }
registro.setValorTotal(valorTotal.setScale(2, BigDecimal.ROUND_HALF_EVEN)); 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.setValorICMSDebitado(valorICMSDebitado.setScale(2, BigDecimal.ROUND_HALF_EVEN));
registro.setValorICMSIsento(valorICMSIsento.setScale(2, BigDecimal.ROUND_HALF_EVEN)); registro.setValorICMSIsento(valorICMSIsento.setScale(2, BigDecimal.ROUND_HALF_EVEN));
registro.setValorICMSOutros(valorICMSOutros.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()) { for (Map.Entry<String, ExportacaoECFTipoICF> entry : group.entrySet()) {
@ -2077,7 +2085,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
return retorno; return retorno;
} }
@Override @Override @Deprecated
public List<ExportacaoRMDTipoBPS> buscarRegistroRMDTipoBPS(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado) { public List<ExportacaoRMDTipoBPS> buscarRegistroRMDTipoBPS(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado) {
List<ExportacaoRMDTipoBPS> retorno = new ArrayList<ExportacaoRMDTipoBPS>(); List<ExportacaoRMDTipoBPS> retorno = new ArrayList<ExportacaoRMDTipoBPS>();
@ -2212,7 +2220,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
return retorno; return retorno;
} }
@Override @Override @Deprecated
public List<ExportacaoRMDTipoDBP> buscarRegistroRMDTipoDBP(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado) { public List<ExportacaoRMDTipoDBP> buscarRegistroRMDTipoDBP(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado) {
List<ExportacaoRMDTipoDBP> retorno = new ArrayList<ExportacaoRMDTipoDBP>(); List<ExportacaoRMDTipoDBP> retorno = new ArrayList<ExportacaoRMDTipoDBP>();
@ -2456,7 +2464,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
ResultSet rs = ps.executeQuery(); ResultSet rs = ps.executeQuery();
ExportacaoRMDTipoSeqBPS registroBPR = null; ExportacaoRMDTipoSeqBPS registroBPS = null;
ExportacaoRMDTipoSeqDBP registroDBP = null; ExportacaoRMDTipoSeqDBP registroDBP = null;
Integer numeroInicial = 0; Integer numeroInicial = 0;
@ -2499,20 +2507,21 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
dataEmissaoControle = dataEmissao; dataEmissaoControle = dataEmissao;
cfopControle = cfop; cfopControle = cfop;
registroBPR = new ExportacaoRMDTipoSeqBPS(); registroBPS = new ExportacaoRMDTipoSeqBPS();
registroBPR.setEspecie("BPR"); registroBPS.setEspecie("BPR");
registroBPR.setNumeroInicial(numeroInicial); registroBPS.setNumeroInicial(numeroInicial);
registroBPR.setCodigoEstabelecimento(codigoEstabelecimento); registroBPS.setCodigoEstabelecimento(codigoEstabelecimento);
registroBPR.setNumeroAIDF(numeroAIDF); registroBPS.setNumeroAIDF(numeroAIDF);
registroBPR.setSerieAIDF(serieAIDF); registroBPS.setSerieAIDF(serieAIDF);
registroBPR.setSubSerieAIDF(subSerieAIDF); registroBPS.setSubSerieAIDF(subSerieAIDF);
registroBPR.setNumeroAIDFRMD(numeroAIDFRMD); registroBPS.setNumeroAIDFRMD(numeroAIDFRMD);
registroBPR.setSerieAIDFRMD(serieAIDFRMD); registroBPS.setSerieAIDFRMD(serieAIDFRMD);
registroBPR.setSubSerieAIDFRMD(subSerieAIDFRMD); registroBPS.setSubSerieAIDFRMD(subSerieAIDFRMD);
registroBPR.setNumeroRMD(numeroRMD); registroBPS.setNumeroRMD(numeroRMD);
registroBPR.setDataEmissao(dataEmissao); registroBPS.setDataEmissao(dataEmissao);
registroBPS.setInfoPadraoBilhetePassagem(CODIGO_INDICADOR_CONTR_PREVIDENCIARIA);
listaBPS.add(registroBPR); listaBPS.add(registroBPS);
quantidadeTotal = 0; quantidadeTotal = 0;
quantidadeCancelado = 0; quantidadeCancelado = 0;
@ -2530,19 +2539,19 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
numeroFinal = numeroFormulario; numeroFinal = numeroFormulario;
registroBPR.setNumeroFinal(numeroFinal); registroBPS.setNumeroFinal(numeroFinal);
registroBPR.setQuantidadeTotal(quantidadeTotal); registroBPS.setQuantidadeTotal(quantidadeTotal);
registroBPR.setQuantidadeCancelados(quantidadeCancelado); registroBPS.setQuantidadeCancelados(quantidadeCancelado);
registroBPR.setValorTotal(totalizador); registroBPS.setValorTotal(totalizador);
// DBP // DBP
registroDBP = new ExportacaoRMDTipoSeqDBP(ufDestino); registroDBP = new ExportacaoRMDTipoSeqDBP(ufDestino);
Integer indice = registroBPR.getListaDBP().indexOf(registroDBP); Integer indice = registroBPS.getListaDBP().indexOf(registroDBP);
if (indice == -1) { if (indice == -1) {
registroBPR.getListaDBP().add(registroDBP); registroBPS.getListaDBP().add(registroDBP);
registroDBP.setCfop(cfop); // IM=5357; Serviço IE= 6357 registroDBP.setCfop(cfop); // IM=5357; Serviço IE= 6357
registroDBP.setUfOrigem(ufOrigem); registroDBP.setUfOrigem(ufOrigem);
@ -2566,7 +2575,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
registroDBP.setValorICMSIsento(BigDecimal.ZERO); registroDBP.setValorICMSIsento(BigDecimal.ZERO);
registroDBP.setValorICMSOutros(BigDecimal.ZERO); registroDBP.setValorICMSOutros(BigDecimal.ZERO);
} else { } else {
registroDBP = registroBPR.getListaDBP().get(indice); registroDBP = registroBPS.getListaDBP().get(indice);
} }
BigDecimal valorBaseCalculoICMS = BigDecimal.ZERO; 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, 9)).append(SEPARADOR); // Posição 32
sb.append(formataCaracter(VAZIO, false, 8)).append(SEPARADOR); // Posição 33 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)).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 sb.append(formataCaracter("N", false, 3)); // Posição 36
writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA); writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA);
} }
} }
@Deprecated
private void adicionarRegistroRMDTipoBPS(PrintWriter writer, List<ExportacaoRMDTipoBPS> listaRegistroRMDTipoBPS) { private void adicionarRegistroRMDTipoBPS(PrintWriter writer, List<ExportacaoRMDTipoBPS> listaRegistroRMDTipoBPS) {
for (ExportacaoRMDTipoBPS registro : listaRegistroRMDTipoBPS) { for (ExportacaoRMDTipoBPS registro : listaRegistroRMDTipoBPS) {
Integer codigoEstabelecimento = registro.getCodigoEstabelecimento(); Integer codigoEstabelecimento = registro.getCodigoEstabelecimento();
@ -639,6 +640,7 @@ public class ExportacaoFiscal {
} }
} }
@Deprecated
private void adicionarRegistroRMDTipoDBP(PrintWriter writer, List<ExportacaoRMDTipoDBP> listaRegistroRMDTipoDBP) { private void adicionarRegistroRMDTipoDBP(PrintWriter writer, List<ExportacaoRMDTipoDBP> listaRegistroRMDTipoDBP) {
for (ExportacaoRMDTipoDBP registro : listaRegistroRMDTipoDBP) { for (ExportacaoRMDTipoDBP registro : listaRegistroRMDTipoDBP) {
String ufDestino = registro.getUfDestino(); String ufDestino = registro.getUfDestino();
@ -695,6 +697,7 @@ public class ExportacaoFiscal {
String serieAIDFRMD = registro.getSerieAIDFRMD(); String serieAIDFRMD = registro.getSerieAIDFRMD();
String subSerieAIDFRMD = registro.getSubSerieAIDFRMD(); String subSerieAIDFRMD = registro.getSubSerieAIDFRMD();
Integer numeroRMD = registro.getNumeroRMD(); Integer numeroRMD = registro.getNumeroRMD();
String infoPadraoBilhetePassagem = registro.getInfoPadraoBilhetePassagem();
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.append("BPS").append(SEPARADOR); sb.append("BPS").append(SEPARADOR);
@ -728,7 +731,7 @@ public class ExportacaoFiscal {
sb.append("01").append(SEPARADOR); 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 30
sb.append(formataCaracter(VAZIO, false, 3)).append(SEPARADOR); // Posição 31 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); writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA);

View File

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