package com.rjconsultores.ventaboletos.layouts; import java.util.Collection; import java.util.List; import org.jrimum.texgit.Record; import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; import com.rjconsultores.ventaboletos.blocos.CabecalhoRetorno; import com.rjconsultores.ventaboletos.blocos.DadosBoleto; import com.rjconsultores.ventaboletos.blocos.DetalheMulta; import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; import com.rjconsultores.ventaboletos.blocos.DetalheRetorno; import com.rjconsultores.ventaboletos.blocos.RateioDeCredito; import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; import com.rjconsultores.ventaboletos.blocos.RodapeRetorno; import com.rjconsultores.ventaboletos.blocos.itau.CabecalhoRemessaItau; import com.rjconsultores.ventaboletos.blocos.itau.DetalheObrigatorioItau; import com.rjconsultores.ventaboletos.enuns.BancoLayout; import com.rjconsultores.ventaboletos.utils.FormataUtil; public class ItauFlatFile extends AbstractFlatFile implements RemessaInterface { private static final String SOMENTE_CLASSE_DE_RETORNO = "Somente classe de Retorno."; public ItauFlatFile() { super(BancoLayout.ITAU_400_Envio); } @Override protected void createHeader(CabecalhoRemessa cabecalhoRemessaParam) { Record header = getFlatFile().createRecord("Header"); CabecalhoRemessaItau cabecalhoRemessa = (CabecalhoRemessaItau) cabecalhoRemessaParam; //header.setValue("IdentificacaoRemessa", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getIdentificacaoRemessa(), 1)); //header.setValue("LiteralRemessa", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getLiteralRemessa(), 7)); //header.setValue("CodigoDeServico", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getCodigoDeServico(), 2)); //header.setValue("LiteralServico", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getLiteralServico(), 15)); header.setValue("Agencia", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getAgencia().toString(), 4)); //header.setValue("Zeros", "00"); header.setValue("Conta", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getConta().toString(), 5)); header.setValue("DacConta", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getDacConta().toString(), 1)); header.setValue("Brancos1", FormataUtil.formatarValorPorTamanho(" ", 8)); header.setValue("NomeEmpresa", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNomeEmpresa().toString(), 30)); //header.setValue("CodigoCompensacao", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getIdentificacaoRemessa(), 3)); //header.setValue("NomeBanco", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getIdentificacaoRemessa(), 15)); header.setValue("DataGeracao", FormataUtil.formataData(cabecalhoRemessa.getDataGeracao())); header.setValue("Brancos2", FormataUtil.formatarValorPorTamanho(" ", 294)); header.setValue("NumeroSequencialRegistro", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNumeroSequencialRegistro().toString(), 6)); getFlatFile().addRecord(header); } @Override protected void createTransacaoTitulos(DetalheObrigatorio tituloParam) { Record transacaoTitulos = getFlatFile().createRecord("TransacaoTitulo"); DetalheObrigatorioItau titulo = (DetalheObrigatorioItau) tituloParam; //transacaoTitulos.setValue("CodigoInscricao", FormataUtil.formatarValorPorTamanho(titulo.getCodigoInscricao().toString(), 2)); transacaoTitulos.setValue("NumeroInscricao", FormataUtil.formatarValorPorTamanho(titulo.getNumCpfCnpj(), 14)); transacaoTitulos.setValue("Agencia", FormataUtil.formatarValorPorTamanho(titulo.getAgencia().toString(), 4)); transacaoTitulos.setValue("Zeros", "00"); transacaoTitulos.setValue("Conta", FormataUtil.formatarValorPorTamanho(titulo.getConta().toString(), 5)); transacaoTitulos.setValue("DacConta", FormataUtil.formatarValorPorTamanho(titulo.getDacConta().toString(), 1)); transacaoTitulos.setValue("Brancos1", FormataUtil.formatarValorPorTamanho(" ", 4)); transacaoTitulos.setValue("InstrucaoAlegacao", FormataUtil.formatarValorPorTamanho(titulo.getInstrucaoAlegacao().toString(), 4)); transacaoTitulos.setValue("UsoDaEmpresa", FormataUtil.formatarValorPorTamanho(titulo.getUsoDaEmpresa(), 25)); transacaoTitulos.setValue("NossoNumero", FormataUtil.formatarValorPorTamanho(titulo.getNossoNumero().toString(), 8)); transacaoTitulos.setValue("QtdMoeda", titulo.getQtdMoeda()); transacaoTitulos.setValue("NrCarteira", FormataUtil.formatarValorPorTamanho(titulo.getNrCarteira().toString(), 3)); transacaoTitulos.setValue("UsoDoBanco", FormataUtil.formatarValorPorTamanho(titulo.getUsoDoBanco(), 21)); // transacaoTitulos.setValue("CodigoCarteira", FormataUtil.formatarValorPorTamanho(titulo.getCodigoCarteira(), 1)); transacaoTitulos.setValue("CodigoDeOcorrencia", FormataUtil.formatarValorPorTamanho(titulo.getCodigoDeOcorrencia().toString(), 2)); transacaoTitulos.setValue("NumeroDoDocumento", FormataUtil.formatarValorPorTamanho(titulo.getNumeroDoDocumento().toString(), 10)); transacaoTitulos.setValue("Vencimento", FormataUtil.formataData(titulo.getVencimento())); transacaoTitulos.setValue("Valor", titulo.getValor()); //transacaoTitulos.setValue("CodigoCompensacaoBancoRecebedor", FormataUtil.formatarValorPorTamanho(titulo.getCodigoCompensacaoBancoRecebedor().toString(), 3)); transacaoTitulos.setValue("AgenciaCobradora", FormataUtil.formatarValorPorTamanho(titulo.getAgenciaCobradora().toString(), 5)); transacaoTitulos.setValue("EspecieDeTitulo", FormataUtil.formatarValorPorTamanho(titulo.getEspecieDeTitulo().toString(), 2)); transacaoTitulos.setValue("Aceite", FormataUtil.formatarValorPorTamanho(titulo.getAceite(), 1)); transacaoTitulos.setValue("Emissao", FormataUtil.formataData(titulo.getEmissao())); transacaoTitulos.setValue("Instrucao1", FormataUtil.formatarValorPorTamanho(titulo.getInstrucao1(), 2)); transacaoTitulos.setValue("Instrucao2", FormataUtil.formatarValorPorTamanho(titulo.getInstrucao2(), 2)); transacaoTitulos.setValue("JurosDeMora", titulo.getJurosDeMora()); transacaoTitulos.setValue("DataDesconto", FormataUtil.formataData(titulo.getDataDesconto())); transacaoTitulos.setValue("DescontoConcedido", titulo.getDescontoConcedido()); transacaoTitulos.setValue("IOF_Devido", titulo.getIOF_Devido()); transacaoTitulos.setValue("AbatimentoConcedido", titulo.getAbatimentoConcedido()); transacaoTitulos.setValue("TipoInscricaoSacado", FormataUtil.formatarValorPorTamanho(titulo.getTipoInscricaoSacado().getId(), 2)); transacaoTitulos.setValue("NumeroInscricaoSacado", FormataUtil.formatarValorPorTamanho(titulo.getNumeroInscricaoSacado().toString(), 14)); transacaoTitulos.setValue("NomeSacado", FormataUtil.formatarValorPorTamanho(titulo.getNomeSacado().toString(), 30)); transacaoTitulos.setValue("Brancos2", FormataUtil.formatarValorPorTamanho(" ", 2)); transacaoTitulos.setValue("LogradouroSacado", FormataUtil.formatarValorPorTamanho(titulo.getLogradouroSacado().toString(), 40)); transacaoTitulos.setValue("BairroSacado", FormataUtil.formatarValorPorTamanho(titulo.getBairroSacado().toString(), 12)); transacaoTitulos.setValue("CepSacado", FormataUtil.formatarValorPorTamanho(titulo.getCepSacado().toString(), 8)); transacaoTitulos.setValue("Cidade", FormataUtil.formatarValorPorTamanho(titulo.getCidade(), 15)); transacaoTitulos.setValue("Estado", FormataUtil.formatarValorPorTamanho(titulo.getEstado(), 2)); transacaoTitulos.setValue("SacadorAvalista", FormataUtil.formatarValorPorTamanho(titulo.getSacadorAvalista(), 30)); transacaoTitulos.setValue("Brancos3", FormataUtil.formatarValorPorTamanho(" ", 2)); transacaoTitulos.setValue("DataDeMora", FormataUtil.formataData(titulo.getDataDeMora())); transacaoTitulos.setValue("Prazo", FormataUtil.formatarValorPorTamanho(titulo.getPrazo().toString(), 2)); transacaoTitulos.setValue("Brancos4", FormataUtil.formatarValorPorTamanho(" ", 2)); transacaoTitulos.setValue("NumeroSequencialRegistro", FormataUtil.formatarValorPorTamanho(titulo.getNumeroSequencialRegistro().toString(), 6)); DadosBoleto dadosBoleto = titulo.getDadosBoleto(); try{ if(dadosBoleto != null){ transacaoTitulos.addInnerRecord(createDadosBoletos(dadosBoleto)); } }catch(UnsupportedOperationException e){ } DetalheMulta detalheMulta = titulo.getDetalheMulta(); try{ if(detalheMulta != null){ transacaoTitulos.addInnerRecord(createDetalheMulta(detalheMulta)); } }catch(UnsupportedOperationException e){ } getFlatFile().addRecord(transacaoTitulos); } @Override protected Record createDadosBoletos(DadosBoleto boleto) { throw new UnsupportedOperationException("Não necessário..."); } protected Record createDetalheMulta(DetalheMulta detalheMulta) { Record detalhe = getFlatFile().createRecord("DetalheMulta"); detalhe.setValue("CodigoMulta", FormataUtil.formatarValorPorTamanho(detalheMulta.getCodigoMulta(), 1)); detalhe.setValue("DataMulta", FormataUtil.formataData( detalheMulta.getDataMulta()) ); detalhe.setValue("ValorMulta", FormataUtil.formatarValorPorTamanho(detalheMulta.getPercentualMulta(), 13)); detalhe.setValue("NumeroSequencialRegistro", FormataUtil.formatarValorPorTamanho(detalheMulta.getNumeroSequencial(), 6)); return detalhe; } @Override protected void createTrailler(RodapeRemessa trailler) { Record trailer = getFlatFile().createRecord("Trailler"); trailer.setValue("NumeroSequencialRegistro", FormataUtil.formatarValorPorTamanho(trailler.getNumeroSequencialRegistro().toString(), 6)); getFlatFile().addRecord(trailer); } @Override protected CabecalhoRetorno readHeader(Record header) { throw new UnsupportedOperationException(SOMENTE_CLASSE_DE_RETORNO); } @Override protected List readTransacaoTitulos(Collection registrosDeTransacoes) { throw new UnsupportedOperationException(SOMENTE_CLASSE_DE_RETORNO); } @Override protected RodapeRetorno readTrailler(Record trailler) { throw new UnsupportedOperationException(SOMENTE_CLASSE_DE_RETORNO); } @Override protected Record createRateioDeCredito(RateioDeCredito rateioDeCredito) { throw new UnsupportedOperationException("Não necessário..."); } }