private void Validar() { if (NossoNumero.Length == 0 || NossoNumero.Equals("0")) { throw new ArgumentException("Não poder ser uma string vazia.", "NossoNumero"); } if (NossoNumero.Length > 14) { throw new ArgumentException("Não poder ter mais que 14 caracteres.", "NossoNumero"); } if (!Regex.IsMatch(NossoNumero, @"^[0-9]*$")) { throw new ArgumentException("Deve possuir apenas números.", "NossoNumero"); } if (SeuNumero.Length == 0) { throw new ArgumentException("Não poder ser uma string vazia.", "SeuNumero"); } if (SeuNumero.Length > 15) { throw new ArgumentException("Não poder ter mais que 15 caracteres.", "SeuNumero"); } }
/// <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> protected override CodigoBarras GerarCodigoBarras(Cedente cedente, string nossoNumero, DateTime dtVencto, decimal vrBoleto) { var barras = new CodigoBarras(); barras .Set(1, 3, "033") // Código do Banco na Câmara de Compensação = "033" .Set(4, 4, "9") // Código da Moeda = '9' .Set(6, 9, Helper.FatorVencimento(dtVencto)) // Fator de Vencimento .Set(10, 19, Convert.ToInt64(vrBoleto * 100).ToString("0000000000")) // Valor Nominal (zeros se for Moeda variável) .Set(20, 20, "9") //20 a 20 – 1 - Fixo 9 .Set(21, 27, cedente.CodCedente) // 7 - Código do cedente padrão satander .Set(28, 40, NossoNumero.Replace("-", "")) // 13 - Nosso número .Set(41, 41, "0") // IOS - Seguradoras(Se 7% informar 7. Limitado a 9%) Demais clientes usar 0 .Set(42, 44, "102") //3 - Tipo de modalidade da carteira 101, 102, 201 .Set(5, 5, Helper.Mod11(barras.Substring(1, 4) + barras.Substring(6, 44), 9)); // DAC return(barras); }