public void CampoLivre_BB() { Boleto blt = new Boleto(); string cl; // Logica 1 cl = Banco_do_Brasil.CampoLivre(blt, "", "", "2719715", "19", "18", "27197150000000014"); Console.WriteLine( "Campo Livre para código do cedente de 7 dígitos e nosso número de 17 dígitos: " + cl + " Agência/Conta: " + blt.AgenciaConta + " Nosso Número: " + blt.NossoNumeroExibicao); Assert.IsTrue(cl == "0000002719715000000001418"); // Nosso Numero ------12345678901234567-- // Exemplo documentação pagina 22 string cDAC = Banco_do_Brasil.NossoNumeroDV("05009401448"); Console.WriteLine("DAC: " + cDAC); Assert.IsTrue(cDAC == "1"); }
/// <summary> /// Gera o aquivo baseado nas coleção de todas informações passada até o momento /// </summary> /// <returns></returns> public override string Remessa() { string[] cAgDig = Cedente.Agencia.Split('-'); string[] cCCDig = Cedente.Conta.Split('-'); string[] cBanco = Cedente.Banco.Split('-'); Bancos banco = (Bancos)CobUtil.GetInt(cBanco[0]); if (banco != Bancos.BANCO_DO_BRASIL) { throw new Exception("Esta classe é valida apenas para o Banco do Brasil"); } else if (cAgDig.Length != 2) { throw new Exception("Informe a agência e digito no formato 9999-9"); } else if (cCCDig.Length != 2) { throw new Exception("Informe a conta e digito no formato 99999999-9"); } // Proximo item SequencialRegistro = 1; regArqHeader[CNAB400Header1BB.Agencia] = cAgDig[0]; regArqHeader[CNAB400Header1BB.AgenciaDV] = cAgDig[1]; regArqHeader[CNAB400Header1BB.ContaCorrente] = cCCDig[0]; regArqHeader[CNAB400Header1BB.ContaCorrenteDV] = cCCDig[1]; regArqHeader[CNAB400Header1BB.Cedente] = Cedente.Cedente; regArqHeader[CNAB400Header1BB.Data] = DataHoje; regArqHeader[CNAB400Header1BB.Remessa] = NumeroLote; regArqHeader[CNAB400Header1BB.ConvenioLider] = Cedente.Convenio; regArqHeader[CNAB400Header1BB.Sequencia] = SequencialRegistro++; // Limpa os objetos de saida/entrada Data.Clear(); Clear(); // atualiza o lote //regArqHeader[CNAB400Header1Bradesco.Lote] = NumeroLote; // o sequencial do header é sempre 1 (FIXO) Add(regArqHeader); BoletoInfo boleto; SacadoInfo sacado; Reg <CNAB400Remessa1BB> regBoleto; foreach (string n in this.Boletos.NossoNumeros) { boleto = Boletos[n]; sacado = boleto.Sacado; regBoleto = new Reg <CNAB400Remessa1BB>(); regBoleto[CNAB400Remessa1BB.CedenteTipo] = Cedente.Tipo; regBoleto[CNAB400Remessa1BB.Documento] = Cedente.DocumentoNumeros; regBoleto[CNAB400Remessa1BB.Agencia] = cAgDig[0]; regBoleto[CNAB400Remessa1BB.AgenciaDV] = cAgDig[1]; regBoleto[CNAB400Remessa1BB.ContaCorrente] = cCCDig[0]; regBoleto[CNAB400Remessa1BB.ContaCorrenteDV] = cCCDig[1]; regBoleto[CNAB400Remessa1BB.Convenio] = Cedente.Convenio; regBoleto[CNAB400Remessa1BB.EmpresaCodigo] = sacado.SacadoCodigo; regBoleto[CNAB400Remessa1BB.NossoNumero] = Banco_do_Brasil.NossoNumero(Cedente.Convenio, Cedente.Modalidade, Cedente.Carteira, boleto.NossoNumero); regBoleto[CNAB400Remessa1BB.Indicativo] = " "; // TODO: Fazer indicativo (informações adicionais de sacador/avalista) regBoleto[CNAB400Remessa1BB.Modalidade] = Cedente.Modalidade; regBoleto[CNAB400Remessa1BB.Carteira] = Cedente.Carteira; regBoleto[CNAB400Remessa1BB.Comando] = boleto.Comando; regBoleto[CNAB400Remessa1BB.NumeroDocumento] = boleto.NumeroDocumento; regBoleto[CNAB400Remessa1BB.DataVencimento] = boleto.DataVencimento; regBoleto[CNAB400Remessa1BB.ValorDocumento] = boleto.ValorDocumento; regBoleto[CNAB400Remessa1BB.Especie] = (int)boleto.Especie; regBoleto[CNAB400Remessa1BB.Aceite] = boleto.Aceite; regBoleto[CNAB400Remessa1BB.DataDocumento] = boleto.DataDocumento; regBoleto[CNAB400Remessa1BB.Instrucao1] = boleto.Instrucao1; regBoleto[CNAB400Remessa1BB.Instrucao2] = boleto.Instrucao2; regBoleto[CNAB400Remessa1BB.JurosValor] = boleto.ValorMora; regBoleto[CNAB400Remessa1BB.DataDesconto] = boleto.DataDesconto; regBoleto[CNAB400Remessa1BB.ValorDesconto] = boleto.ValorDesconto; regBoleto[CNAB400Remessa1BB.SacadoTipo] = sacado.Tipo; regBoleto[CNAB400Remessa1BB.SacadoDocumento] = sacado.DocumentoNumeros; regBoleto[CNAB400Remessa1BB.Sacado] = sacado.Sacado; regBoleto[CNAB400Remessa1BB.Endereco] = sacado.Endereco; regBoleto[CNAB400Remessa1BB.Bairro] = sacado.Bairro; regBoleto[CNAB400Remessa1BB.CEP] = sacado.CepNumeros; regBoleto[CNAB400Remessa1BB.Cidade] = sacado.Cidade; regBoleto[CNAB400Remessa1BB.UF] = sacado.UF; regBoleto[CNAB400Remessa1BB.IndicativoValor] = ""; // TODO: valor de acordo com o indicativo if (boleto.DiasProtesto > 0) { regBoleto[CNAB400Remessa1BB.DiasProtesto] = boleto.DiasProtesto; } regBoleto[CNAB400Remessa1BB.Sequencia] = SequencialRegistro++; // adiciona o boleto convertido em registro AddBoleto(regBoleto, boleto); AddOpcionais(boleto); } regArqTrailer[CNAB400ArquivoTrailer.Sequencia] = SequencialRegistro; Add(regArqTrailer); // Gera o Texto de saida da forma padrão return(this.Conteudo); }