200 lines
12 KiB
Java
200 lines
12 KiB
Java
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.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.sicoob.CabecalhoLoteRemessaSicoob;
|
|
import com.rjconsultores.ventaboletos.blocos.sicoob.CabecalhoRemessaSicoob;
|
|
import com.rjconsultores.ventaboletos.blocos.sicoob.DetalheObrigatorioDadosPagadorSicoob;
|
|
import com.rjconsultores.ventaboletos.blocos.sicoob.DetalheObrigatorioSicoob;
|
|
import com.rjconsultores.ventaboletos.blocos.sicoob.RodapeRemessaLoteSicoob;
|
|
import com.rjconsultores.ventaboletos.blocos.sicoob.RodapeRemessaSicoob;
|
|
import com.rjconsultores.ventaboletos.enuns.BancoLayout;
|
|
import com.rjconsultores.ventaboletos.utils.FormataUtil;
|
|
|
|
public class SicoobFlatFile extends AbstractFlatFile implements RemessaInterface {
|
|
|
|
public SicoobFlatFile() {
|
|
super(BancoLayout.SICOOB_240_Envio);
|
|
}
|
|
|
|
@Override
|
|
protected void createHeader(CabecalhoRemessa cabecalhoRemessaParam) {
|
|
|
|
Record header = getFlatFile().createRecord("HeaderArquivo");
|
|
|
|
CabecalhoRemessaSicoob cabecalhoRemessa = (CabecalhoRemessaSicoob) cabecalhoRemessaParam;
|
|
|
|
header.setValue("CpfCnpj", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getCpfCnpj().toString(), 1));
|
|
header.setValue("NumCpfCnpj", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNumCpfCnpj(), 14));
|
|
header.setValue("NumAgencia", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNumAgencia(), 5));
|
|
header.setValue("DigAgencia", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getDigAgencia(), 1));
|
|
header.setValue("NumContaCorrente", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNumContaCorrente(), 12));
|
|
header.setValue("DigContaCorrente", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getDigContaCorrente(), 1));
|
|
header.setValue("NomeEmpresa", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNomeEmpresa(), 30));
|
|
header.setValue("NumRemessa", FormataUtil.formatarValorPorTamanhoZeroEsquerda(cabecalhoRemessa.getNumRemessa().toString(), 6));
|
|
header.setValue("DataGeracao", FormataUtil.formataDataToString(cabecalhoRemessa.getDataGravacao(), "000000", "ddMMyyyy"));
|
|
header.setValue("HoraGeracao", FormataUtil.formataDataToString(cabecalhoRemessa.getDataGravacao(), "000000", "HHmmss"));
|
|
|
|
getFlatFile().addRecord(header);
|
|
|
|
createHeaderLote(cabecalhoRemessa.getCabecalhoLoteRemessaSicoob());
|
|
}
|
|
|
|
private void createHeaderLote(CabecalhoLoteRemessaSicoob cabecalhoLote) {
|
|
|
|
Record header = getFlatFile().createRecord("HeaderLote");
|
|
|
|
if(cabecalhoLote.getLoteServico() != null){
|
|
header.setValue("LoteServico", FormataUtil.formatarValorPorTamanhoZeroEsquerda(cabecalhoLote.getLoteServico().toString(), 4));
|
|
}
|
|
|
|
header.setValue("NumCpfCnpj", FormataUtil.formatarValorPorTamanho(cabecalhoLote.getNumCpfCnpj(), 14));
|
|
header.setValue("CpfCnpj", FormataUtil.formatarValorPorTamanho(cabecalhoLote.getCpfCnpj().toString(), 1));
|
|
header.setValue("NumAgencia", FormataUtil.formatarValorPorTamanho(cabecalhoLote.getNumAgencia(), 5));
|
|
header.setValue("DigAgencia", FormataUtil.formatarValorPorTamanho(cabecalhoLote.getDigAgencia(), 1));
|
|
header.setValue("NumContaCorrente", FormataUtil.formatarValorPorTamanho(cabecalhoLote.getNumContaCorrente(), 12));
|
|
header.setValue("DigContaCorrente", FormataUtil.formatarValorPorTamanho(cabecalhoLote.getDigContaCorrente(), 1));
|
|
header.setValue("NomeEmpresa", FormataUtil.formatarValorPorTamanho(cabecalhoLote.getNomeEmpresa(), 30));
|
|
header.setValue("NumeroRemessa", FormataUtil.formatarValorPorTamanhoZeroEsquerda(cabecalhoLote.getNumeroRemessa().toString(), 8));
|
|
header.setValue("DataGeracao", FormataUtil.formataData(cabecalhoLote.getDataGeracao()));
|
|
// header.setValue("DataCredito", FormataUtil.formataData(cabecalhoLote.getDataCredito()));
|
|
|
|
getFlatFile().addRecord(header);
|
|
}
|
|
|
|
@Override
|
|
protected void createTransacaoTitulos(DetalheObrigatorio tituloParam) {
|
|
|
|
Record transacaoTitulos = getFlatFile().createRecord("SegmentoP");
|
|
|
|
DetalheObrigatorioSicoob dadosTitulos = (DetalheObrigatorioSicoob) tituloParam;
|
|
|
|
if(dadosTitulos.getLoteServico() != null){
|
|
transacaoTitulos.setValue("LoteServico", FormataUtil.formatarValorPorTamanhoZeroEsquerda(dadosTitulos.getLoteServico().toString(), 4));
|
|
}
|
|
transacaoTitulos.setValue("NumSeqRegistro", FormataUtil.formatarValorPorTamanhoZeroEsquerda(dadosTitulos.getNumSeqRegistro().toString(), 5));
|
|
transacaoTitulos.setValue("NumAgencia", FormataUtil.formatarValorPorTamanho(dadosTitulos.getNumAgencia(), 5));
|
|
transacaoTitulos.setValue("DigAgencia", FormataUtil.formatarValorPorTamanho(dadosTitulos.getDigAgencia(), 1));
|
|
transacaoTitulos.setValue("NumContaCorrente", FormataUtil.formatarValorPorTamanho(dadosTitulos.getNumContaCorrente(), 12));
|
|
transacaoTitulos.setValue("DigContaCorrente", FormataUtil.formatarValorPorTamanho(dadosTitulos.getDigContaCorrente(), 1));
|
|
transacaoTitulos.setValue("NossoNumero", FormataUtil.formatarValorPorTamanho(dadosTitulos.getNossoNumero(), 20));
|
|
transacaoTitulos.setValue("CodCarteira",dadosTitulos.getCodCarteira());
|
|
transacaoTitulos.setValue("NumeroDoDocumento", FormataUtil.formatarValorPorTamanho(dadosTitulos.getNumeroDoDocumento(), 15));
|
|
transacaoTitulos.setValue("Vencimento", FormataUtil.formataData(dadosTitulos.getVencimento()));
|
|
transacaoTitulos.setValue("Valor", dadosTitulos.getValor());
|
|
transacaoTitulos.setValue("Emissao", FormataUtil.formataData(dadosTitulos.getEmissao()));
|
|
transacaoTitulos.setValue("CodMora", FormataUtil.formatarValorPorTamanho(dadosTitulos.getCodMora().toString(), 1));
|
|
transacaoTitulos.setValue("DataMora", FormataUtil.formataDataToString(dadosTitulos.getDataMora(), "00000000"));
|
|
transacaoTitulos.setValue("JurosDeMora", dadosTitulos.getJurosDeMora());
|
|
transacaoTitulos.setValue("CodigoDesconto", FormataUtil.formatarValorPorTamanho(dadosTitulos.getCodigoDesconto().toString(), 1));
|
|
transacaoTitulos.setValue("DataDesconto", FormataUtil.formataDataToString(dadosTitulos.getDataDesconto(), "00000000"));
|
|
transacaoTitulos.setValue("DescontoConcedido", dadosTitulos.getDescontoConcedido());
|
|
transacaoTitulos.setValue("IOF_Devido", dadosTitulos.getIofDevido());
|
|
transacaoTitulos.setValue("AbatimentoConcedido", dadosTitulos.getAbatimentoConcedido());
|
|
transacaoTitulos.setValue("NossoNumeroEmp", FormataUtil.formatarValorPorTamanho(dadosTitulos.getNossoNumeroEmp(), 25));
|
|
transacaoTitulos.setValue("CodigoProtesto", FormataUtil.formatarValorPorTamanho(dadosTitulos.getCodigoProtesto().toString(), 1));
|
|
transacaoTitulos.setValue("DiasProtesto", FormataUtil.formatarValorPorTamanho(dadosTitulos.getDiasProtesto().toString(), 2));
|
|
transacaoTitulos.setValue("NumeroContrato", FormataUtil.formatarValorPorTamanhoZeroEsquerda(dadosTitulos.getNumeroContrato().toString(), 10));
|
|
|
|
getFlatFile().addRecord(transacaoTitulos);
|
|
createTransacaoTitulosSeguimentoQ(transacaoTitulos, dadosTitulos.getDetalheObrigatorioDadosPagadorSicoob());
|
|
|
|
}
|
|
|
|
private void createTransacaoTitulosSeguimentoQ(Record recordFather, DetalheObrigatorioDadosPagadorSicoob dadosPagadorSicoobl) {
|
|
|
|
Record transacaoTitulos = getFlatFile().createRecord("SegmentoQ");
|
|
|
|
if(dadosPagadorSicoobl.getLoteServico() != null){
|
|
transacaoTitulos.setValue("LoteServico", FormataUtil.formatarValorPorTamanhoZeroEsquerda(dadosPagadorSicoobl.getLoteServico().toString(), 4));
|
|
}
|
|
|
|
transacaoTitulos.setValue("NumSeqRegistro", FormataUtil.formatarValorPorTamanhoZeroEsquerda(dadosPagadorSicoobl.getNumeroSequencialRegistro().toString(), 5));
|
|
transacaoTitulos.setValue("TipoInscricaoSacado", FormataUtil.formatarValorPorTamanho(dadosPagadorSicoobl.getTipoInscricaoSacado().toString(), 1));
|
|
transacaoTitulos.setValue("NumeroInscricaoSacado", FormataUtil.formatarValorPorTamanho(dadosPagadorSicoobl.getNumeroInscricaoSacado(), 15));
|
|
transacaoTitulos.setValue("NomeSacado", FormataUtil.formatarValorPorTamanho(dadosPagadorSicoobl.getNomeSacado(), 40));
|
|
transacaoTitulos.setValue("LogradouroSacado", FormataUtil.formatarValorPorTamanho(dadosPagadorSicoobl.getLogradouroSacado(), 40));
|
|
transacaoTitulos.setValue("BairroSacado", FormataUtil.formatarValorPorTamanho(dadosPagadorSicoobl.getBairroSacado(), 15));
|
|
transacaoTitulos.setValue("CepSacado", FormataUtil.formatarValorPorTamanhoZeroEsquerda(dadosPagadorSicoobl.getCepSacado().toString(), 5));
|
|
transacaoTitulos.setValue("SufixoCep", FormataUtil.formatarValorPorTamanhoZeroEsquerda(dadosPagadorSicoobl.getSufixoCep().toString(), 3));
|
|
transacaoTitulos.setValue("Cidade", FormataUtil.formatarValorPorTamanho(dadosPagadorSicoobl.getCidade(), 15));
|
|
transacaoTitulos.setValue("Estado", FormataUtil.formatarValorPorTamanho(dadosPagadorSicoobl.getCveEstado(), 2));
|
|
|
|
try{
|
|
transacaoTitulos.setValue("CodBancoCorresp", FormataUtil.formatarValorPorTamanho(dadosPagadorSicoobl.getCodBancoCorresp().toString(), 3));
|
|
}catch(Exception e){
|
|
|
|
}
|
|
transacaoTitulos.setValue("NossoNumeroNoBancoCorresp", FormataUtil.formatarValorPorTamanho(dadosPagadorSicoobl.getNossoNumeroNoBancoCorresp(), 20));
|
|
|
|
recordFather.addInnerRecord(transacaoTitulos);
|
|
}
|
|
|
|
@Override
|
|
protected void createTrailler(RodapeRemessa trailler){
|
|
|
|
RodapeRemessaSicoob rodapeRemessaSicoob = (RodapeRemessaSicoob) trailler;
|
|
|
|
createTraillerLote(rodapeRemessaSicoob.getRodapeRemessaLoteSicoob());
|
|
|
|
Record traillerArquivo = getFlatFile().createRecord("TraillerArquivo");
|
|
|
|
traillerArquivo.setValue("QtdLotes", FormataUtil.formatarValorPorTamanhoZeroEsquerda(rodapeRemessaSicoob.getQtdLotes().toString(), 6));
|
|
traillerArquivo.setValue("QtdArquivos", FormataUtil.formatarValorPorTamanhoZeroEsquerda(rodapeRemessaSicoob.getQtdArquivos().toString(), 6));
|
|
traillerArquivo.setValue("QtdContas", FormataUtil.formatarValorPorTamanhoZeroEsquerda(rodapeRemessaSicoob.getQtdContas().toString(), 6));
|
|
|
|
getFlatFile().addRecord(traillerArquivo);
|
|
}
|
|
|
|
private void createTraillerLote(RodapeRemessaLoteSicoob rodapeRemessaLoteSicoob) {
|
|
|
|
|
|
Record traillerArquivo = getFlatFile().createRecord("TraillerLote");
|
|
|
|
if(rodapeRemessaLoteSicoob.getLoteServico() != null){
|
|
traillerArquivo.setValue("LoteServico", FormataUtil.formatarValorPorTamanhoZeroEsquerda(rodapeRemessaLoteSicoob.getLoteServico().toString(), 4));
|
|
}
|
|
|
|
traillerArquivo.setValue("QtdTitulosSimples", FormataUtil.formatarValorPorTamanhoZeroEsquerda(rodapeRemessaLoteSicoob.getQtdRegistros().toString(), 6));
|
|
traillerArquivo.setValue("ValorTitulosSimples", FormataUtil.formatarValorPorTamanhoZeroEsquerda(rodapeRemessaLoteSicoob.getValorRegistros().toString(), 15) );
|
|
|
|
getFlatFile().addRecord(traillerArquivo);
|
|
}
|
|
|
|
@Override
|
|
protected CabecalhoRetorno readHeader(Record header) {
|
|
throw new UnsupportedOperationException("Somente classe de Retorno.");
|
|
}
|
|
|
|
@Override
|
|
protected List<DetalheRetorno> readTransacaoTitulos(Collection<Record> registrosDeTransacoes) {
|
|
throw new UnsupportedOperationException("Somente classe de Retorno.");
|
|
}
|
|
|
|
@Override
|
|
protected RodapeRetorno readTrailler(Record trailler) {
|
|
throw new UnsupportedOperationException("Somente classe de Retorno.");
|
|
}
|
|
|
|
@Override
|
|
protected Record createDadosBoletos(DadosBoleto boleto) {
|
|
throw new UnsupportedOperationException("Não necessário...");
|
|
}
|
|
|
|
@Override
|
|
protected Record createRateioDeCredito(RateioDeCredito rateioDeCredito) {
|
|
throw new UnsupportedOperationException("Não necessário...");
|
|
}
|
|
}
|