Esempio n. 1
0
        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");
        }
Esempio n. 2
0
        /// <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);
        }