Exemple #1
0
        public void FormataNossoNumero(Boleto boleto)
        {
            try
            {
                if (String.IsNullOrEmpty(boleto.IdentificadorInternoBoleto) ||
                    String.IsNullOrEmpty(boleto.IdentificadorInternoBoleto.TrimStart('0')))
                {
                    throw new Exception("Sequencial Nosso Número não foi informado.");
                }

                if (boleto.CarteiraCobranca.Tipo != "1" && boleto.CarteiraCobranca.Tipo != "2")
                {
                    throw new Exception(
                              "Informe o tipo da carteira. 1 - COBRANÇA DIRETA SEM REGISTRO 2 - COBRANÇA DIRETA COM REGISTRO");
                }

                if (String.IsNullOrEmpty(boleto.CedenteBoleto.ContaBancariaCedente.Agencia))
                {
                    throw new Exception("Informe a Agencia da conta do cedente.");
                }

                if (String.IsNullOrEmpty(boleto.CedenteBoleto.ContaBancariaCedente.Conta))
                {
                    throw new Exception("Informe a Conta da conta do cedente.");
                }

                if (String.IsNullOrEmpty(boleto.CedenteBoleto.ContaBancariaCedente.DigitoConta))
                {
                    throw new Exception("Informe o Dígito da conta do cedente.");
                }

                var chave = "000" + boleto.CedenteBoleto.ContaBancariaCedente.Agencia.PadLeft(3, '0') +
                            boleto.CedenteBoleto.ContaBancariaCedente.Conta.PadLeft(6, '0') +
                            boleto.CedenteBoleto.ContaBancariaCedente.DigitoConta +
                            boleto.CarteiraCobranca.Tipo +
                            boleto.IdentificadorInternoBoleto.PadLeft(6, '0') +
                            CodigoBanco.PadLeft(3, '0');

                /*Calcular primeiro digito*/
                var D1 = Common.Mod10(chave);
                chave += D1;

                /*Calcular segundo digito*/
                var D2 = Common.Mod11Base7BRB(chave);
                chave += D2;

                boleto.SetNossoNumeroFormatado(string.Format("{0}{1}{2}{3}{4}", boleto.CarteiraCobranca.Tipo,
                                                             boleto.IdentificadorInternoBoleto.PadLeft(6, '0'), CodigoBanco.PadLeft(3, '0'), D1, D2));
            }
            catch (Exception ex)
            {
                throw new Exception(string.Format("<BoletoBr>" +
                                                  "{0}Mensagem: Falha ao formatar nosso número." +
                                                  "{0}Carteira: " + boleto.CarteiraCobranca.Codigo +
                                                  "{0}Numeração Sequencial: " + boleto.NossoNumeroFormatado), ex);
            }
        }
        public void FormataLinhaDigitavel(Boleto boleto)
        {
            var nossoNumero = boleto.NossoNumeroFormatado.Replace("-", "").PadLeft(8, '0');

            #region AAABC.DDDDE

            var codigoBanco      = CodigoBanco.PadLeft(3, '0');                                       //3
            var codigoMoeda      = MoedaBanco;                                                        //1
            var carteiraCobranca = boleto.CarteiraCobranca.Codigo.ExtrairValorDaLinha(1, 1);          //1
            var codigoAgencia    = boleto.CedenteBoleto.ContaBancariaCedente.Agencia.PadLeft(4, '0'); //4

            var calculoDv1 = Common.Mod10(string.Format("{0}{1}{2}{3}", codigoBanco, codigoMoeda, carteiraCobranca,
                                                        codigoAgencia)).ToString(CultureInfo.InvariantCulture); //1

            var grupo1 = string.Format("{0}{1}{2}.{3}{4}", codigoBanco, codigoMoeda, carteiraCobranca, codigoAgencia, calculoDv1);

            #endregion

            #region FFGGG.GGGGHI

            var codigoModalidade          = boleto.CarteiraCobranca.Codigo.ExtrairValorDaLinha(3, 4);                                  //2
            var codigoCedente             = (boleto.CedenteBoleto.CodigoCedente + boleto.CedenteBoleto.DigitoCedente).PadLeft(7, '0'); //7
            var primeiroDigitoNossoNumero = nossoNumero.ExtrairValorDaLinha(1, 1);

            var calculoDv2 = Common.Mod10(string.Format("{0}{1}{2}", codigoModalidade, codigoCedente,
                                                        primeiroDigitoNossoNumero)).ToString(CultureInfo.InvariantCulture); //1

            var grupo2 = string.Format("{0}{1}.{2}{3}{4}", codigoModalidade, codigoCedente.ExtrairValorDaLinha(1, 3),
                                       codigoCedente.ExtrairValorDaLinha(4, 7), primeiroDigitoNossoNumero, calculoDv2);

            #endregion

            #region HHHHH.HHJJJK

            var restanteNossoNumero = nossoNumero.ExtrairValorDaLinha(2, 8);                                                                   //7
            var numeroParcela       = "001";                                                                                                   //3

            var calculoDv3 = Common.Mod10(string.Format("{0}{1}", restanteNossoNumero, numeroParcela)).ToString(CultureInfo.InvariantCulture); //1

            var grupo3 = string.Format("{0}.{1}{2}{3}", restanteNossoNumero.ExtrairValorDaLinha(1, 5),
                                       restanteNossoNumero.ExtrairValorDaLinha(6, 7), numeroParcela, calculoDv3);

            #endregion

            #region MMMMNNNNNNNNNN

            var fatorVencimento = Common.FatorVencimento(boleto.DataVencimento).ToString();                            //4
            var valorNominal    = boleto.ValorBoleto.ToString("f").Replace(",", "").Replace(".", "").PadLeft(10, '0'); //10

            var grupo4 = string.Format("{0}{1}", fatorVencimento, valorNominal);

            #endregion

            boleto.LinhaDigitavelBoleto = string.Format("{0} {1} {2} {3} {4}", grupo1, grupo2, grupo3, _dvCodigoBarras, grupo4);
        }
Exemple #3
0
 private string GerarCodigoDeBarras(Boleto boleto, string valorBoleto, string cmp_livre, string dv_cmpLivre, int?dv_geral = null)
 {
     return(string.Format("{0}{1}{2}{3}{4}{5}{6}",
                          CodigoBanco.PadLeft(3, '0'),
                          boleto.Moeda,
                          dv_geral.HasValue ? dv_geral.Value.ToString() : string.Empty,
                          Common.FatorVencimento(boleto.DataVencimento),
                          valorBoleto,
                          cmp_livre,
                          dv_cmpLivre));
 }
Exemple #4
0
        public void FormataLinhaDigitavel(Boleto boleto)
        {
            var nossoNumero = boleto.NossoNumeroFormatado.Replace("-", "").PadLeft(8, '0');

            #region Campo 1

            var codigoBanco = CodigoBanco.PadLeft(3, '0'); //3
            var codigoMoeda = MoedaBanco;                  //1
            var livre1      = _campoLivre.Substring(0, 5);

            var calculoDv1 = Common.Mod10(string.Format("{0}{1}{2}", codigoBanco, codigoMoeda, livre1)).ToString(CultureInfo.InvariantCulture); //1
            var campo1     = string.Format("{0}{1}{2}{3}", codigoBanco, codigoMoeda, livre1, calculoDv1);
            var grupo1     = string.Format("{0}.{1}", campo1.Substring(0, 5), campo1.Substring(5, 5));

            #endregion

            #region Campo 2

            var livre2     = _campoLivre.Substring(5, 10);
            var calculoDv2 = Common.Mod10(livre2).ToString(CultureInfo.InvariantCulture); //1
            var campo2     = string.Format("{0}{1}", livre2, calculoDv2);
            var grupo2     = string.Format("{0}.{1}", campo2.Substring(0, 5), campo2.Substring(5, 6));

            #endregion

            #region Campo 3

            var livre3     = _campoLivre.Substring(15, 10);
            var calculoDv3 = Common.Mod10(livre3).ToString(CultureInfo.InvariantCulture); //1
            var campo3     = string.Format("{0}{1}", livre3, calculoDv3);
            var grupo3     = string.Format("{0}.{1}", campo3.Substring(0, 5), campo3.Substring(5, 6));

            #endregion

            #region Campo 5

            var fatorVencimento = Common.FatorVencimento(boleto.DataVencimento).ToString();                            //4
            var valorNominal    = boleto.ValorBoleto.ToString("f").Replace(",", "").Replace(".", "").PadLeft(10, '0'); //10

            var grupo5 = string.Format("{0}{1}", fatorVencimento, valorNominal);

            #endregion

            boleto.LinhaDigitavelBoleto = string.Format("{0} {1} {2} {3} {4}", grupo1, grupo2, grupo3, _dvCodigoBarras, grupo5);
        }
Exemple #5
0
        /// <summary>
        ///
        ///   *******
        ///
        ///	O Código de barra para cobrança contém 44 posições dispostas da seguinte forma:
        ///    01 a 03 -  3 - 033 fixo - Código do banco
        ///    04 a 04 -  1 - 9 fixo - Código da moeda (R$)
        ///    05 a 05 -  1 - Dígito verificador do Código de barras
        ///    06 a 09 -  4 - Fator de vencimento
        ///    10 a 19 - 10 - Valor
        ///    20 a 20 -  1 - Fixo 9
        ///    21 a 27 -  7 - Código do cedente padrão satander
        ///    28 a 40 - 13 - Nosso número
        ///    41 - 41 - 1 -  IOS  - Seguradoras(Se 7% informar 7. Limitado  a 9%) Demais clientes usar 0
        ///    42 - 44 - 3 - Tipo de modalidade da carteira 101, 102, 201
        ///
        ///   *******
        ///
        /// </summary>
        public void FormataCodigoBarra(Boleto boleto)
        {
            var          codigoBanco     = CodigoBanco.PadLeft(3, '0');                                                                     //3
            var          codigoMoeda     = MoedaBanco;                                                                                      //1
            var          fatorVencimento = Common.FatorVencimento(boleto.DataVencimento).ToString().PadLeft(4, '0');                        //4
            var          valorNominal    = boleto.ValorBoleto.ToStringParaVoloresDecimais().PadLeft(10, '0');                               //10
            const string fixo            = "9";                                                                                             //1
            var          codigoCedente   = boleto.CedenteBoleto.CodigoCedente.PadLeft(7, '0');                                              //7
            var          nossoNumero     = boleto.NossoNumeroFormatado.Replace("-", "").Replace(",", "").Replace(".", "").PadLeft(13, '0'); //13
            var          ios             = boleto.PercentualIOS.ToString();                                                                 //1
            var          tipoCarteira    = boleto.CarteiraCobranca.Codigo;                                                                  //3;

            boleto.CodigoBarraBoleto = string.Format("{0}{1}{2}{3}{4}{5}{6}{7}{8}", codigoBanco, codigoMoeda,
                                                     fatorVencimento, valorNominal, fixo, codigoCedente, nossoNumero, ios, tipoCarteira);

            var calculoDv = Mod10Mod11Santander(boleto.CodigoBarraBoleto, 9).ToString();

            boleto.CodigoBarraBoleto = string.Format("{0}{1}{2}{3}{4}{5}{6}{7}{8}{9}", codigoBanco, codigoMoeda,
                                                     calculoDv, fatorVencimento, valorNominal, fixo, codigoCedente, nossoNumero, ios, tipoCarteira);
        }
        public void FormataCodigoBarra(Boleto boleto)
        {
            var codigoBanco     = CodigoBanco.PadLeft(3, '0');                                                                 //3
            var codigoMoeda     = MoedaBanco;                                                                                  //1
            var fatorVencimento = Common.FatorVencimento(boleto.DataVencimento).ToString();                                    //4
            var valorNominal    = boleto.ValorBoleto.ToString("f").Replace(",", "").Replace(".", "").PadLeft(10, '0');         //10

            var carteiraCobranca  = boleto.CarteiraCobranca.Codigo.ExtrairValorDaLinha(1, 1);                                  //1
            var codigoAgencia     = boleto.CedenteBoleto.ContaBancariaCedente.Agencia.PadLeft(4, '0');                         //4
            var codigoModalidade  = boleto.CarteiraCobranca.Codigo.ExtrairValorDaLinha(3, 4);                                  //2
            var codigoCedente     = (boleto.CedenteBoleto.CodigoCedente + boleto.CedenteBoleto.DigitoCedente).PadLeft(7, '0'); //7
            var nossoNumeroBoleto = boleto.NossoNumeroFormatado.Replace("-", "").PadLeft(8, '0');                              //8
            var numeroParcela     = "001";                                                                                     //3;

            boleto.CodigoBarraBoleto = string.Format("{0}{1}{2}{3}{4}{5}{6}{7}{8}{9}", codigoBanco, codigoMoeda,
                                                     fatorVencimento, valorNominal, carteiraCobranca, codigoAgencia, codigoModalidade, codigoCedente,
                                                     nossoNumeroBoleto, numeroParcela);

            _dvCodigoBarras = Common.Mod11Peso2a9(boleto.CodigoBarraBoleto);

            boleto.CodigoBarraBoleto = string.Format("{0}{1}{2}{3}{4}{5}{6}{7}{8}{9}{10}", codigoBanco, codigoMoeda,
                                                     _dvCodigoBarras, fatorVencimento, valorNominal, carteiraCobranca, codigoAgencia, codigoModalidade, codigoCedente,
                                                     nossoNumeroBoleto, numeroParcela);
        }
Exemple #7
0
        public void FormataCodigoBarra(Boleto boleto)
        {
            var codigoBanco     = CodigoBanco.PadLeft(3, '0');                                                         //3
            var codigoMoeda     = MoedaBanco;                                                                          //1
            var fatorVencimento = Common.FatorVencimento(boleto.DataVencimento).ToString();                            //4
            var valorNominal    = boleto.ValorBoleto.ToString("f").Replace(",", "").Replace(".", "").PadLeft(10, '0'); //10

            var codigoAgencia    = boleto.CedenteBoleto.ContaBancariaCedente.Agencia.PadLeft(4, '0');                  //4
            var carteiraCobranca = boleto.CarteiraCobranca.Codigo.PadLeft(3, '0');                                     //3

            /*Numero da Operação*/
            var numeroOperacao = boleto.CedenteBoleto.Operacao.PadLeft(7, '0');                    //7

            var nossoNumeroBoleto = boleto.NossoNumeroFormatado.Replace("-", "").PadLeft(11, '0'); //11
            var campoLivre        = string.Format("{0}{1}{2}{3}", codigoAgencia, carteiraCobranca, numeroOperacao, nossoNumeroBoleto);

            boleto.CodigoBarraBoleto = string.Format("{0}{1}{2}{3}{4}", codigoBanco, codigoMoeda, fatorVencimento, valorNominal, campoLivre);

            _dvCodigoBarras = Common.Mod11Peso2a9(boleto.CodigoBarraBoleto);

            boleto.CodigoBarraBoleto = string.Format("{0}{1}{2}{3}{4}{5}", codigoBanco, codigoMoeda, _dvCodigoBarras, fatorVencimento, valorNominal, campoLivre);

            _campoLivre = campoLivre;
        }
Exemple #8
0
        /// <summary>
        ///
        ///   *******
        ///
        ///	A Linha Digitavel para cobrança contém 44 posições dispostas da seguinte forma:
        ///   1º Grupo -
        ///    01 a 03 -  3 - 033 fixo - Código do banco
        ///    04 a 04 -  1 - 9 fixo - Código da moeda (R$) outra moedas 8
        ///    05 a 05 –  1 - Fixo 9
        ///    06 a 09 -  4 - Código cedente padrão santander
        ///    10 a 10 -  1 - Código DV do primeiro grupo
        ///   2º Grupo -
        ///    11 a 13 –  3 - Restante do código cedente
        ///    14 a 20 -  7 - 7 primeiros campos do nosso número
        ///    21 a 21 - 13 - Código DV do segundo grupo
        ///   3º Grupo -
        ///    22 - 27 - 6 -  Restante do nosso número
        ///    28 - 28 - 1 - IOS  - Seguradoras(Se 7% informar 7. Limitado  a 9%) Demais clientes usar 0
        ///    29 - 31 - 3 - Tipo de carteira
        ///    32 - 32 - 1 - Código DV do terceiro grupo
        ///   4º Grupo -
        ///    33 - 33 - 1 - Composto pelo DV do código de barras
        ///   5º Grupo -
        ///    34 - 36 - 4 - Fator de vencimento
        ///    37 - 47 - 10 - Valor do título
        ///   *******
        ///
        /// </summary>
        public void FormataLinhaDigitavel(Boleto boleto)
        {
            var nossoNumero     = boleto.NossoNumeroFormatado.Replace("-", "").PadLeft(13, '0'); //13
            var codigoCedente   = boleto.CedenteBoleto.CodigoCedente.PadLeft(7, '0');
            var fatorVencimento = Common.FatorVencimento(boleto.DataVencimento).ToString();
            var ios             = boleto.PercentualIOS.ToString(); //1

            #region Grupo1

            var          codigoBanco    = CodigoBanco.PadLeft(3, '0');   //3
            var          codigoModeda   = MoedaBanco;                    //1
            const string fixo           = "9";                           //1
            var          codigoCedente1 = codigoCedente.Substring(0, 4); //4
            var          calculoDv1     =
                Common.Mod10(string.Format("{0}{1}{2}{3}", codigoBanco, codigoModeda, fixo, codigoCedente1))
                .ToString(CultureInfo.InvariantCulture);     //1

            var grupo1 = string.Format("{0}{1}{2}.{3}{4}", codigoBanco, codigoModeda, fixo, codigoCedente1,
                                       calculoDv1);

            #endregion

            #region Grupo2

            var codigoCedente2 = codigoCedente.Substring(4, 3); //3
            var nossoNumero1   = nossoNumero.Substring(0, 7);   //7
            var calculoDv2     =
                Common.Mod10(string.Format("{0}{1}", codigoCedente2, nossoNumero1))
                .ToString(CultureInfo.InvariantCulture);
            var grupo2 = string.Format("{0}{1}{2}", codigoCedente2, nossoNumero1, calculoDv2);

            grupo2 = " " + grupo2.Substring(0, 5) + "." + grupo2.Substring(5, 6);

            #endregion

            #region Grupo3

            var nossoNumero2 = nossoNumero.Substring(7, 6);    //6
            var tipoCarteira = boleto.CarteiraCobranca.Codigo; //3
            var calculoDv3   =
                Common.Mod10(string.Format("{0}{1}{2}", nossoNumero2, ios, tipoCarteira))
                .ToString(CultureInfo.InvariantCulture);     //1

            var grupo3 = string.Format("{0}{1}{2}{3}", nossoNumero2, ios, tipoCarteira, calculoDv3);
            grupo3 = " " + grupo3.Substring(0, 5) + "." + grupo3.Substring(5, 6) + " ";

            #endregion

            #region Grupo4

            var dVcodigoBanco  = CodigoBanco.PadLeft(3, '0'); //3
            var dVcodigoMoeda  = MoedaBanco;                  //1
            var dVvalorNominal = boleto.ValorBoleto.ToString("f").Replace(",", "").Replace(".", "").PadLeft(10, '0');
            //10
            const string dVfixo          = "9";                                                //1
            var          dVcodigoCedente = boleto.CedenteBoleto.CodigoCedente.PadLeft(7, '0'); //7
            var          dVtipoCarteira  = boleto.CarteiraCobranca.Codigo;                     //3;

            var calculoDVcodigo = string.Format("{0}{1}{2}{3}{4}{5}{6}{7}{8}",
                                                dVcodigoBanco, dVcodigoMoeda, fatorVencimento, dVvalorNominal, dVfixo, dVcodigoCedente, nossoNumero,
                                                ios, dVtipoCarteira);

            var grupo4 = Mod10Mod11Santander(calculoDVcodigo, 9) + " ";

            #endregion

            #region Grupo5

            var valorNominal = boleto.ValorBoleto.ToString("f").Replace(",", "").Replace(".", "").PadLeft(10, '0'); //10

            var grupo5 = string.Format("{0}{1}", fatorVencimento, valorNominal);

            #endregion

            boleto.LinhaDigitavelBoleto = string.Format("{0}{1}{2}{3}{4}", grupo1, grupo2, grupo3, grupo4, grupo5);
        }
        /// <summary>
        /// Monta o Html do boleto bancário com as imagens embutidas no conteúdo, sem necessidade de links externos
        /// de acordo com o padrão http://en.wikipedia.org/wiki/Data_URI_scheme
        /// </summary>
        /// <param name="convertLinhaDigitavelToImage">Converte a Linha Digitável para imagem, com o objetivo de evitar malwares.</param>
        /// <returns>Html do boleto gerado</returns>
        /// <desenvolvedor>Iuri André Stona</desenvolvedor>
        /// <criacao>23/01/2014</criacao>
        /// <alteracao>08/08/2014</alteracao>
        public string MontaHtmlEmbedded(bool convertLinhaDigitavelToImage = false)
        {
            OnLoad(EventArgs.Empty);

            var assembly = Assembly.GetExecutingAssembly();

            var    streamLogo = assembly.GetManifestResourceStream("BoletoNet.Imagens." + CodigoBanco.ToString("000") + ".jpg");
            string base64Logo = Convert.ToBase64String(new BinaryReader(streamLogo).ReadBytes((int)streamLogo.Length));
            string fnLogo     = string.Format("data:image/gif;base64,{0}", base64Logo);

            var    streamBarra = assembly.GetManifestResourceStream("BoletoNet.Imagens.barra.gif");
            string base64Barra = Convert.ToBase64String(new BinaryReader(streamBarra).ReadBytes((int)streamBarra.Length));
            string fnBarra     = string.Format("data:image/gif;base64,{0}", base64Barra);

            var    cb = new C2of5i(Boleto.CodigoBarra.Codigo, 1, 50, Boleto.CodigoBarra.Codigo.Length);
            string base64CodigoBarras = Convert.ToBase64String(cb.ToByte());
            string fnCodigoBarras     = string.Format("data:image/gif;base64,{0}", base64CodigoBarras);

            if (convertLinhaDigitavelToImage)
            {
                string linhaDigitavel = Boleto.CodigoBarra.LinhaDigitavel.Replace("  ", " ").Trim();

                var    imagemLinha = Utils.DrawText(linhaDigitavel, new Font("Arial", 30, FontStyle.Bold), Color.Black, Color.White);
                string base64Linha = Convert.ToBase64String(Utils.ConvertImageToByte(imagemLinha));

                string fnLinha = string.Format("data:image/gif;base64,{0}", base64Linha);

                Boleto.CodigoBarra.LinhaDigitavel = @"<img style=""max-width:420px; margin-bottom: 2px"" src=" + fnLinha + " />";
            }

            string s = HtmlOffLine(null, fnLogo, fnBarra, fnCodigoBarras).ToString();

            if (convertLinhaDigitavelToImage)
            {
                s = s.Replace(".w500", "");
            }

            return(s);
        }
Exemple #10
0
        public void FormataLinhaDigitavel(Boleto boleto)
        {
            boleto.Moeda = MoedaBanco;

            var nossoNumeroLinhaDigitavel        = boleto.NossoNumeroFormatado.PadLeft(13, '0');
            var codigoCedente                    = boleto.CedenteBoleto.CodigoCedente.PadLeft(7, '0');
            var digitoAutoConferenciaNossoNumero = Common.Mod11(boleto.NossoNumeroFormatado, 7).ToString(CultureInfo.InvariantCulture);

            var C1 = string.Empty;
            var C2 = string.Empty;
            var C3 = string.Empty;
            var C5 = string.Empty;

            string AAA;
            string B;
            string CCCCC;
            string DD;
            string DDDDDD;
            string EEEE;
            string EEEEEEEE;
            string FFFFF;
            string FFFFFFF;
            string GGGGG;
            string HHHH;
            string IIIIIIIIII;
            string X;
            string Y;
            string Z;
            string W;

            if (boleto.CarteiraCobranca.Codigo == "CSB")
            {
                #region AAABC.CCCCX

                AAA   = CodigoBanco.PadLeft(3, '0');
                B     = boleto.Moeda;
                CCCCC = boleto.NossoNumeroFormatado.Substring(0, 5);
                X     = Common.Mod10(AAA + B + CCCCC).ToString(CultureInfo.InvariantCulture);

                C1  = String.Format("{0}{1}{2}.", AAA, B, CCCCC.Substring(0, 1));
                C1 += String.Format("{0}{1} ", CCCCC.Substring(1, 4), X);

                #endregion

                #region DDDDD.DEEEEY

                // ReSharper disable once InconsistentNaming
                DDDDDD = boleto.NossoNumeroFormatado.Substring(5, 5) + digitoAutoConferenciaNossoNumero;
                // ReSharper disable once InconsistentNaming
                EEEE = boleto.CedenteBoleto.ContaBancariaCedente.Agencia.PadLeft(4, '0');
                Y    = Common.Mod10(DDDDDD + EEEE).ToString(CultureInfo.InvariantCulture);

                C2  = String.Format("{0}.", DDDDDD.Substring(0, 5));
                C2 += string.Format("{0}{1}{2} ", DDDDDD.Substring(5, 1), EEEE, Y);

                #endregion

                #region FFFFF.FF001Z

                // ReSharper disable once InconsistentNaming
                FFFFFFF = boleto.CedenteBoleto.ContaBancariaCedente.Conta.PadLeft(7, '0');
                Z       = Common.Mod10(FFFFFFF + "001").ToString(CultureInfo.InvariantCulture);

                C3  = String.Format("{0}.", FFFFFFF.Substring(0, 5));
                C3 += String.Format("{0}001{1}", FFFFFFF.Substring(5, 2), Z);

                #endregion
            }
            if (boleto.CarteiraCobranca.Codigo == "CNR")
            {
                #region AAABC.CCCCX

                AAA   = CodigoBanco.PadLeft(3, '0');
                B     = boleto.Moeda;
                CCCCC = boleto.CedenteBoleto.CodigoCedente.Substring(0, 5);
                X     = Common.Mod10(AAA + B + CCCCC).ToString(CultureInfo.InvariantCulture);

                C1  = string.Format("{0}{1}{2}.", AAA, B, CCCCC.Substring(0, 1));
                C1 += string.Format("{0}{1} ", CCCCC.Substring(1, 4), X);

                #endregion AAABC.CCDDX

                #region DDEEE.EEEEEY

                // ReSharper disable once InconsistentNaming
                DD = boleto.CedenteBoleto.CodigoCedente.Substring(5, 2);
                // ReSharper disable once InconsistentNaming
                EEEEEEEE = nossoNumeroLinhaDigitavel.Substring(0, 8);
                Y        = Common.Mod10(DD + EEEEEEEE).ToString(CultureInfo.InvariantCulture);

                C2  = string.Format("{0}{1}.", DD, EEEEEEEE.Substring(0, 3));
                C2 += string.Format("{0}{1} ", EEEEEEEE.Substring(3, 5), Y);

                #endregion DDEEE.EEEEEY

                #region FFFFF.GGGGGZ

                // ReSharper disable once InconsistentNaming
                FFFFF = nossoNumeroLinhaDigitavel.Substring(8, 5);
                // ReSharper disable once InconsistentNaming
                GGGGG = (boleto.DataVencimento.DayOfYear + boleto.DataVencimento.ToString("yy").Substring(1, 1)).PadLeft(4,
                                                                                                                         '0') + "2";

                Z = Common.Mod10(FFFFF + GGGGG).ToString(CultureInfo.InvariantCulture);

                C3  = string.Format("{0}.", FFFFF);
                C3 += string.Format("{0}{1}", GGGGG, Z);

                #endregion FFFFF.GGGGGZ
            }

            // ReSharper disable once InconsistentNaming
            W = String.Format(" {0} ", _digitoAutoConferenciaCodigoBarras);

            #region HHHHIIIIIIIIII

            // ReSharper disable once InconsistentNaming
            HHHH = Common.FatorVencimento(boleto.DataVencimento).ToString(CultureInfo.InvariantCulture);
            // ReSharper disable once InconsistentNaming
            IIIIIIIIII = boleto.ValorBoleto.ToString("f").Replace(",", "").Replace(".", "");

            IIIIIIIIII = IIIIIIIIII.PadLeft(10, '0');
            C5         = HHHH + IIIIIIIIII;

            #endregion HHHHHHHHHHHHHH

            boleto.LinhaDigitavelBoleto = C1 + C2 + C3 + W + C5;
        }