private int BB_Registro5_Opcional(CNAB cnab, BoletoInfo boleto) { // Apenas mostrando de forma simples, que nem todos os boletos precisariam ter o registro opcional if (boleto.BoletoID % 2 == 0) // no caso somente os boletos de numero impar teriam o registro { return(0); // informa que não foi inserido nenhum registro opcional, assim a numero de sequencia do registro permanece o mesmo } // Define as informações do registro opcional 5 para registro de valores de multa var regR = new Reg <CNAB400Remessa5BB>(); // Os valores default nem precisa definir regR[CNAB400Remessa5BB.CodigoMulta] = 1; // Coloque o que quiser(logico de acordo com a documentação) regR[CNAB400Remessa5BB.DataMulta] = boleto.DataVencimento.AddDays(15); // 15 dias após o vencimento regR[CNAB400Remessa5BB.ValorMulta] = boleto.ValorDocumento * 0.02; // 2% do valor do documento regR[CNAB400Remessa5BB.Sequencial] = cnab.SequencialRegistro; // Já como esse evento é chamado por ultimo, ele está no valor correto, mas se precisar adicionar mais que 1 registro ai tem que adicionar +N, e retornar sempre o numero de registros incluidos cnab.Add(regR); return(1); // Nomero de registro opcionais incluidos }
private int Caixa_SegmentoR_Opcional(CNAB cnab, BoletoInfo boleto) { // Apenas mostrando de forma simples, que nem todos os boletos precisariam ter o registro opcional if (boleto.BoletoID % 2 == 0) // no caso somente os boletos de numero impar teriam o registro { return(0); // informa que não foi inserido nenhum registro opcional, assim a numero de sequencia do registro permanece o mesmo } // Define as informações do segmento opcional R (da mesma forma pode ser criado qualquer tipo de registro opcional) var regR = new Reg <CNAB240SegmentoRCaixa>(); regR[CNAB240SegmentoRCaixa.Lote] = cnab.SequencialLote; // o número da sequencia só é alterado quando sair deste evento regR[CNAB240SegmentoRCaixa.Nregistro] = cnab.SequencialRegistro; regR[CNAB240SegmentoRCaixa.email] = "*****@*****.**"; regR[CNAB240SegmentoRCaixa.Informacao] = "info..."; cnab.Add(regR); // regX[CNAB240SegmentoXCaixa.Lote] = cnab.SequencialLote + 1; // Se houver mais registros o numero sequencial deve ser incrementadp // cnab.Add(regX); // E neste caso o retorno teria que ser 2 (numero de itens adicionados) return(1); // Nomero de registro opcionais incluidos }