Пример #1
0
        /// <summary>
        /// Rotina de Geração do Campo livre usado no Código de Barras para formar o IPTE
        /// </summary>
        /// <param name="blt">Intancia da Classe de Boleto</param>
        /// <returns>String de 25 caractere que representa 'Campo Livre'</returns>
        public static string CampoLivre(Boleto blt, string cAgencia, string cCodCedente, string cNossoNumero)
        {
            string[] cAgenciaParts = cAgencia.Split('-', '/');
            string   cAgenciaConta = CobUtil.Right(cAgenciaParts[0], 2);
            string   cAgenciaDig   = CobUtil.Right(cAgenciaParts[1], 1);

            cCodCedente  = CobUtil.Right(cCodCedente, 9);
            cNossoNumero = CobUtil.Right(cNossoNumero, 8);

            if (Int32.Parse(cCodCedente) == 0)
            {
                throw new Exception("Informe o código do cedente");
            }

            // cAgenciaDig
            string cDAC = CobUtil.Modulo11Padrao(cAgenciaConta + cNossoNumero, 9).ToString();

            blt.NossoNumeroExibicao = cNossoNumero + "-" + cDAC;
            cNossoNumero            = cNossoNumero + cDAC;

            string cLivre = cAgenciaConta + cCodCedente + cNossoNumero + "047";

            // (Corresponde à Chave ASBACE)
            int nD1 = CobUtil.Modulo10(cLivre);
            int nD2 = CobUtil.Modulo11Negativo(cLivre + nD1.ToString());

            if (nD2 == -1) // Veja a rotina do modulo11
            {
                nD1 = nD1 + 1;
                nD2 = CobUtil.Modulo11Negativo(cLivre + nD1.ToString());
            }
            cLivre = cLivre + nD1.ToString() + nD2.ToString();

            return(cLivre);
        }
Пример #2
0
        /// <summary>
        /// Rotina de Geração do Campo livre usado no Código de Barras para formar o IPTE
        /// </summary>
        /// <param name="blt">Intancia da Classe de Boleto</param>
        /// <returns>String de 25 caractere que representa 'Campo Livre'</returns>
        public static string CampoLivre(Boleto blt, string cCodCedente, string cModalidade, string cNossoNumero)
        {
            cCodCedente = CobUtil.Right(cCodCedente, 11);
            cModalidade = CobUtil.Right(cModalidade, 1);

            if (CobUtil.GetInt(cCodCedente) == 0)
            {
                throw new Exception("Informe o código do cedente");
            }
            if (CobUtil.GetInt(cModalidade) == 0)
            {
                throw new Exception("Informe o a modalidade");
            }

            string cDAC12 = NossoNumero(ref cNossoNumero);
            string cLivre = cNossoNumero + cCodCedente + cModalidade + "021";

            blt.NossoNumeroExibicao = cNossoNumero + "-" + cDAC12;

            // (Corresponde à Chave ASBACE)
            int nD1 = CobUtil.Modulo10(cLivre);
            int nD2 = CobUtil.Modulo11Negativo(cLivre + nD1.ToString());

            if (nD2 == -1) // Veja a rotina do modulo11
            {
                nD1 = nD1 + 1;
                nD2 = CobUtil.Modulo11Negativo(cLivre + nD1.ToString());
            }

            cLivre = cLivre + nD1.ToString() + nD2.ToString();
            return(cLivre);
        }
Пример #3
0
        /// <summary>
        /// Rotina de Geração do Campo livre usado no Código de Barras para formar o IPTE
        /// </summary>
        /// <param name="blt">Intancia da Classe de Boleto</param>
        /// <returns>String de 25 caractere que representa 'Campo Livre'</returns>
        public static string CampoLivre(Boleto blt, string cAgenciaNumero, string cContaNumero, string cModalidade, string cNossoNumero)
        {
            cNossoNumero   = CobUtil.Right(cNossoNumero, 9);    // O Nosso Numero tem que ter sempre 9 posições, sendo a primeira o digito "9"
            cAgenciaNumero = CobUtil.Right(cAgenciaNumero, 4);
            cModalidade    = CobUtil.Right(cModalidade, 2);     // (mas será utilizado somente o ultimo digito da modalidade)
            cContaNumero   = CobUtil.Right(cContaNumero, 6);    // numero da conta sem o digito

            if (CobUtil.GetInt(cModalidade) == 0)
            {
                throw new Exception("Informe a Modalidade");
            }

            if (cNossoNumero.Substring(0, 1) != "9")
            {
                throw new Exception("Para o Banco 'Nossa Caixa' o 'Nosso Numero' deve ter 9 posições iniciado sempre pelo digito '9'");
            }

            string cContaDig = blt.Conta.Split('-')[1];

            //O campo nosso numero tem que iniciar com 9 e ter 9 digitos
            string cLivre = cNossoNumero +
                            cAgenciaNumero +
                            cModalidade.Substring(1) + // utiliza apenas o ultimo digito da modalidade
                            cContaNumero +
                            "151";

            int D1 = CobUtil.Modulo10(cLivre);
            int D2 = CobUtil.Modulo11Negativo(cLivre + D1.ToString());

            while (D2 == -1) // Veja a rotina do modulo11
            {
                D1 = D1 + 1;
                D2 = CobUtil.Modulo11Negativo(cLivre + D1.ToString());
            }
            cLivre = cLivre + D1.ToString() + D2.ToString();

            //Calucla o digito do Nosso Numero

            int nTotal = DVNossaCaixa(cAgenciaNumero + cModalidade + "0" + cContaNumero) + int.Parse(cContaDig);

            nTotal = nTotal + DVNossaCaixa(cNossoNumero);

            int nResto = nTotal % 10;

            nResto = 10 - nResto;

            blt.NossoNumeroExibicao = cNossoNumero + "-" + nResto;
            blt.CarteiraExibicao    = "CIDENT";
            blt.AgenciaConta        = cAgenciaNumero + "/" + cModalidade + "/" + blt.Conta;

            return(cLivre);
        }
Пример #4
0
        /// <summary>
        /// Rotina de Geração do Campo livre usado no Código de Barras para formar o IPTE
        /// </summary>
        /// <param name="blt">Intancia da Classe de Boleto</param>
        /// <returns>String de 25 caractere que representa 'Campo Livre'</returns>
        public static string CampoLivre(Boleto blt, string cAgenciaNumero, string cContaNumero, string cCarteira, string cNossoNumero)
        {
            cAgenciaNumero = CobUtil.Right(cAgenciaNumero, 3);
            cContaNumero   = CobUtil.Right(cContaNumero, 7);
            cCarteira      = CobUtil.Right(cCarteira, 1);
            cNossoNumero   = CobUtil.Right(cNossoNumero, 6);

            if (CobUtil.GetInt(cCarteira) == 0)
            {
                throw new Exception("Informe a Carteira");
            }

            //O campo nosso numero tem que iniciar com 9 e ter 9 digitos
            string cLivre = "000" +
                            cAgenciaNumero +
                            cContaNumero +
                            cCarteira +
                            cNossoNumero +
                            "070";

            int D1 = CobUtil.Modulo10(cLivre);
            int D2 = CobUtil.Modulo11Negativo(cLivre + D1.ToString());

            while (D2 == -1) // Veja a rotina do modulo11
            {
                D1 = D1 + 1;
                D2 = CobUtil.Modulo11Negativo(cLivre + D1.ToString());
            }
            cLivre = cLivre + D1.ToString() + D2.ToString();

            //Monta o Nosso Numero
            blt.NossoNumeroExibicao = cCarteira + cNossoNumero + "070" + D1.ToString() + D2.ToString();

            // Monta a Exibição da Agencia/Conta
            blt.AgenciaConta = "000 " + cAgenciaNumero + " " + cContaNumero;

            return(cLivre);
        }