/// <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); }
/// <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); }
/// <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); }
/// <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); }