protected override LinhaDigitavel GerarLinhaDigitavel(CodigoBarras barras) { var linha = new LinhaDigitavel(); linha.Campo1 .Add(barras.Substring(1, 3)) // Código do Banco na Câmara de Compensação "399" .Add(barras.Substring(4)) // Código da moeda "9" (*) .Add(barras.Substring(20, 24)) // Início do código de beneficiário .Add(Helper.Mod10(linha.Campo1.Substring(1, 9)).ToString()); // DV linha.Campo2 .Add(barras.Substring(25, 26)) // Final do código de beneficiário .Add(barras.Substring(27, 34)) // Início do Nosso Número .Add(Helper.Mod10(linha.Campo2.Substring(1, 10))); // DV linha.Campo3 .Add(barras.Substring(35, 39)) // Final do Nosso Número (Sem os dígitos verificadores) .Add(barras.Substring(40, 43)) // Data de vencimento no formato Juliano .Add("2") // Código do produto .Add(Helper.Mod10(linha.Campo3.Substring(1, 10))); // DV linha.Campo4 .Add(barras.Substring(5)); // DAC ou Dígito Verificador (posição 05 do Código de Barras) linha.Campo5 .Add(barras.Substring(6, 9)) // Fator de Vencimento (posição 06 a 09 do código de barras) .Add(barras.Substring(10, 19)); // Valor nominal (posição 10 a 19 do código de barras com zeros entre o fator de vencimento e o valor). return(linha); }
protected override LinhaDigitavel GerarLinhaDigitavel(CodigoBarras barras) { var linha = new LinhaDigitavel(); //campo livre = barras de 20 a 44 //Composto pelo código de Banco, código da moeda, as cinco primeiras posições do campo livre e o dígito verificador deste campo; linha.Campo1 .Add(barras.Substring(1, 3)) // Constante, Código do Banco junto a Câmara de Compensação (posição 01 a 03 do Código de Barras). .Add(barras.Substring(4)) // Moeda (posição 04 a 04 do Código de Barras) .Add(barras.Substring(20, 24)) // cinco primeiras posições do campo livre .Add(Helper.Mod10(linha.Campo1.Substring(1, 9))); // DV //Composto pelas posições 6ª a 15ª do campo livre e o dígito verificador deste campo; linha.Campo2 .Add(barras.Substring(25, 34)) .Add(Helper.Mod10(linha.Campo2.Substring(1, 10))); // DV //Composto pelas posições 16ª a 25ª do campo livre e o dígito verificador deste campo; linha.Campo3 .Add(barras.Substring(35, 44)) // posições 16ª a 25ª do campo livre .Add(Helper.Mod10(linha.Campo3.Substring(1, 10))); // DV //Composto pelo dígito verificador do código de barras, ou seja, a 5ª posição do código de barras; linha.Campo4 .Add(barras.Substring(5, 5)); // DAC ou Dígito Verificador (posição 05 do Código de Barras) //Composto pelo fator de vencimento com 4(quatro) caracteres e o valor do documento com 10(dez) caracteres, sem separadores e sem edição. linha.Campo5 .Add(barras.Substring(6, 9)) // Fator de Vencimento (posição 06 a 09 do código de barras) .Add(barras.Substring(10, 19)); // Valor nominal (posição 10 a 19 do código de barras com zeros entre o fator de vencimento e o valor). return(linha); }
protected override LinhaDigitavel GerarLinhaDigitavel(CodigoBarras barras) { var linha = new LinhaDigitavel(); linha.Campo1 .Add(barras.Substring(1, 3)) // Código do Banco na Câmara de Compensação "001" .Add(barras.Substring(4)) // Código da moeda "9" (*) .Add(barras.Substring(20, 24)) // Posição 20 a 24 do código de barras .Add(Helper.Mod10(linha.Campo1.Substring(1, 9))); // DV linha.Campo2 .Add(barras.Substring(25, 34)) // Posição 25 a 34 do código de barras .Add(Helper.Mod10(linha.Campo2.Substring(1, 10))); // DV linha.Campo3 .Add(barras.Substring(35, 44)) // Posição 35 a 44 do código de barras .Add(Helper.Mod10(linha.Campo3.Substring(1, 10))); // DV linha.Campo4 .Add(barras.Substring(5)); // DAC ou Dígito Verificador (posição 05 do Código de Barras) linha.Campo5 .Add(barras.Substring(6, 9)) // Fator de Vencimento (posição 06 a 09 do código de barras) .Add(barras.Substring(10, 19)); // Valor nominal (posição 10 a 19 do código de barras com zeros entre o fator de vencimento e o valor). return(linha); }
protected override CodigoBarras GerarCodigoBarras(Cedente cedente, string nossoNumero, DateTime dtVencto, decimal vrBoleto) { var barras = new CodigoBarras(); barras .Set(1, 3, "001") // Código do Banco na Câmara de Compensação = "001" .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, 25, cedente.Convenio) // Número do Convênio de Seis Posições .Set(26, 42, NossoNumero) // Nosso-Número Livre do cliente .Set(43, 44, "21") // "21" Tipo de Modalidade de Cobrança .Set(5, 5, Helper.Mod11(barras.Substring(1, 4) + barras.Substring(6, 44), 9)); // DAC return(barras); }
protected override CodigoBarras GerarCodigoBarras(Cedente cedente, string nossoNumero, DateTime dtVencto, decimal vrBoleto) { var barras = new CodigoBarras(); barras .Set(1, 3, "237") // Código do Banco "041" .Set(4, 4, "9") // Moeda de Emissão (9 = REAL) .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, 23, cedente.Agencia.Substring(0, cedente.Agencia.Length - 1).PadLeft(4, '0')) //agencia cedente sem dv (tam 4 - pos 20 a 23) .Set(24, 25, cedente.Carteira.PadLeft(2, '0')) //carteira (tam 2 - pos 24 a 25) .Set(26, 36, nossoNumero.PadLeft(11, '0')) //nosso numero sem dv (tam 11 - pos 26 a 36) .Set(37, 43, cedente.CodCedente.Substring(0, cedente.CodCedente.Length - 1).PadLeft(7, '0')) //conta cedente sem dv (tam 7 - pos 37 a 43) .Set(44, 44, "0") // 0 .Set(5, 5, Helper.Mod11(barras.Substring(1, 4) + barras.Substring(6, 44), 9)); // DAC return(barras); }
protected override CodigoBarras GerarCodigoBarras(Cedente cedente, string nossoNumero, DateTime dtVencto, decimal vrBoleto) { var barras = new CodigoBarras(); barras .Set(1, 3, "399") // Código do Banco na Câmara de Compensação = "399" .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, 26, cedente.CodCedente) //Código do Beneficiário .Set(27, 39, nossoNumero) //Nosso Número .Set(40, 43, Helper.FormataJuliano(dtVencto)) // Data de Vencimento no Formato Juliano .Set(44, 44, "2") // Código do Produto CNR .Set(5, 5, Helper.Mod11(string.Concat(barras.Substring(1, 4), barras.Substring(6, 44)), 9, 0)); //Calcula DAC (Remove o char do DAC) return(barras); }
/// <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); }
protected override CodigoBarras GerarCodigoBarras(Cedente cedente, string nossoNumero, DateTime dtVencto, decimal vrBoleto) { var barras = new CodigoBarras(); barras .Set(1, 3, "341") // Código do Banco na Câmara de Compensação = '341' .Set(4, 4, "9") // Código da Moeda = '9' .Set(6, 9, Helper.FatorVencimento(dtVencto)) // Fator de Vencimento (Anexo 6) .Set(10, 19, Convert.ToInt64(vrBoleto * 100).ToString("0000000000")) // Valor .Set(20, 22, cedente.Carteira.PadLeft(3, '0')) // Carteira .Set(23, 31, FormataNossoNumero(nossoNumero, cedente, dtVencto).Replace("-", "").Replace("/", "").Substring(3, 9)) //Nosso Número + DAC [Agência /Conta/Carteira/Nosso Número] (Anexo 4) .Set(32, 35, cedente.Agencia.PadLeft(4, '0')) //N.º da Agência cedente .Set(36, 40, cedente.CodCedente.PadLeft(5, '0')) //N.º da Conta Corrente .Set(41, 41, Helper.Mod10(cedente.Agencia + cedente.CodCedente)) // DAC [Agência/Conta Corrente] (Anexo 3) .Set(42, 44, "000") // Zeros .Set(5, 5, Helper.Mod11(barras.Substring(1, 4) + barras.Substring(6, 44), 9)); //DAC código de Barras (Anexo 2) return(barras); }
protected override CodigoBarras GerarCodigoBarras(Cedente cedente, string nossoNumero, DateTime dtVencto, decimal vrBoleto) { var barras = new CodigoBarras(); barras .Set(1, 3, "041") // Constante "041" .Set(4, 4, "9") // Moeda de Emissão (9 = REAL) .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, "2") // Produto: "2" Cobrança Direta, Fichário emitido pelo CLIENTE .Set(21, 21, "1") // Constante "1" .Set(22, 25, cedente.Agencia) // Código da Agência, com quatro dígitos, sem o Número de Controle. .Set(26, 32, cedente.CodCedente) // Código do Cedente sem Número de Controle. .Set(33, 40, nossoNumero) // Nosso Número sem Número de Controle .Set(41, 42, "40") // Constante "40" (significa agencia com 4 digitos) .Set(43, 43, Helper.Mod10(barras.Substring(20, 42))) // DV1 - Mod10 .Set(44, 44, Helper.Mod11(barras.Substring(20, 43), 7)) // DV2 - Mod11 .Set(5, 5, Helper.Mod11(barras.Substring(1, 4) + barras.Substring(6, 44), 9)); // DAC return(barras); }
protected override Utils.CodigoBarras GerarCodigoBarras(Cedente cedente, string nossoNumero, DateTime dtVencto, decimal vrBoleto) { var barras = new CodigoBarras(); nossoNumero = nossoNumero.PadLeft(17, '0').Insert(2, "/"); barras .Set(1, 3, "104") // Código do Banco na Câmara de Compensação = "104" .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, 25, cedente.CodCedente) //Código do Beneficiário .Set(26, 26, Helper.Mod11(barras.Substring(20, 25), 9, 3)) //DV Código do Beneficiário .Set(27, 29, nossoNumero.Substring(3, 3)) //Nosso número sequência 1 .Set(30, 30, "2") //Tipo de Cobrança (1 - Registrada / 2 - Sem Registro) .Set(31, 33, nossoNumero.Substring(6, 3)) //Nosso número sequência 2 .Set(34, 34, "4") //Identificador de Emissão de Boleto (4 - Beneficiário) .Set(35, 43, nossoNumero.Substring(9, 9)) //Nosso número sequência 2 .Set(44, 44, Helper.Mod11(barras.Substring(20, 43), 9, 3)) //DV Campo Livre .Set(5, 5, Helper.Mod11(string.Concat(barras.Substring(1, 4), barras.Substring(6, 44)), 9, 0)); //DAC return(barras); }
protected override LinhaDigitavel GerarLinhaDigitavel(CodigoBarras barras) { var linha = new LinhaDigitavel(); ////campo livre = barras de 20 a 44 //Campo 1 (AAABC.CCDDX) linha.Campo1 .Add(barras.Substring(1, 3)) //AAA = Código do Banco na Câmara de Compensação ( Itaú=341) .Add(barras.Substring(4)) //B = Código da moeda = "9" (*) .Add(barras.Substring(20, 22)) //CCC = Código da carteira de cobrança .Add(barras.Substring(23, 24)) //DD = Dois primeiros dígitos do Nosso Número .Add(Helper.Mod10(linha.Campo1.Substring(1, 9))); //X = DAC que amarra o campo 1 (Anexo3) //Campo 2 (DDDDD.DEFFFY) linha.Campo2 .Add(barras.Substring(25, 30)) //DDDDDD= Restante do Nosso Número .Add(barras.Substring(31, 31)) //E = DAC do campo [ Agência/Conta/Carteira/ Nosso Número ] .Add(barras.Substring(32, 34)) //FFF = Três primeiros números que identificam a Agência .Add(Helper.Mod10(linha.Campo2.Substring(1, 10))); // Y = DAC que amarra o campo 2 (Anexo 3) //Campo 3 (FGGGG.GGHHHZ) linha.Campo3 .Add(barras.Substring(35, 35)) // F = Restante do número que identifica a agência .Add(barras.Substring(36, 41)) // GGGGGG = Número da conta corrente + DAC .Add(barras.Substring(42, 44)) // HHH = Zeros ( Não utilizado ) .Add(Helper.Mod10(linha.Campo3.Substring(1, 10))); // Z = DAC que amarra o campo 3 (Anexo 3) //Campo 4 (K) linha.Campo4 .Add(barras.Substring(5, 5)); // K = DAC do Código de Barras (Anexo 2 ) //Campo 5 (UUUUVVVVVVVVVV) linha.Campo5 .Add(barras.Substring(6, 9)) // UUUU= Fator de vencimento .Add(barras.Substring(10, 19)); // VVVVVVVVVV= valor do Título (*) return(linha); }
/// <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 - 1 - 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> protected override LinhaDigitavel GerarLinhaDigitavel(CodigoBarras barras) { var linha = new LinhaDigitavel(); linha.Campo1 .Add(barras.Substring(1, 3)) // Código do Banco na Câmara de Compensação "033" .Add(barras.Substring(4)) // Código da moeda "9" (*) .Add(barras.Substring(4)) //1 - Fixo 9 .Add(barras.Substring(21, 24)) //4 - Código cedente padrão santander .Add(Helper.Mod10(linha.Campo1.Substring(1, 9))); // DV linha.Campo2 .Add(barras.Substring(25, 27)) // 11-13 3 - Restante do código cedente .Add(barras.Substring(28, 34)) // 14-20 7 primeiros campos do N/N .Add(Helper.Mod10(linha.Campo2.Substring(1, 10))); // DV 21-21 1 9 (01) Dígito verificador do segundo grupo linha.Campo3 .Add(barras.Substring(35, 40)) //22 - 27 - 6 - Restante do nosso número .Add(barras.Substring(41, 41)) //IOS – somente para Seguradoras (Se 7% informar 7, limitado a 9%) Demais clientes usar 0 (zero) .Add(barras.Substring(42, 44)) //29-31 3 Tipo de Modalidade Carteira 101-Cobrança Simples Rápida COM Registro 102- Cobrança simples SEM Registro 201- Penhor .Add(Helper.Mod10(linha.Campo3.Substring(1, 10))); // DV linha.Campo4 .Add(barras.Substring(5)); // DAC ou Dígito Verificador (posição 05 do Código de Barras) linha.Campo5 .Add(barras.Substring(6, 9)) // 34 - 36 - 4 - Fator de vencimento .Add(barras.Substring(10, 19)); // 37 - 47 - 10 - Valor do título return(linha); }
protected override LinhaDigitavel GerarLinhaDigitavel(CodigoBarras barras) { var linha = new LinhaDigitavel(); linha.Campo1 .Add(barras.Substring(1, 3)) // Constante, Código do Banco junto a Câmara de Compensação (posição 01 a 03 do Código de Barras). .Add(barras.Substring(4)) // Moeda (posição 04 a 04 do Código de Barras) .Add(barras.Substring(20)) // Constante, identifica o Produto (posição 20 do Código de Barras) .Add(barras.Substring(21)) // Constante, identifica o Sistema BDL - Carteira de Letras (posição 21 do Código de Barras). .Add(barras.Substring(22, 24)) // Agência, sem o NC, quatro primeiros dígitos (posição 22 a 25 do Código de Barras) .Add(Helper.Mod10(linha.Campo1.Substring(1, 9))); // DV linha.Campo2 .Add(barras.Substring(25)) // Agência, sem o NC, quatro primeiros dígitos (posição 22 a 25 do Código de Barras) .Add(barras.Substring(26, 32)) // Código do Cedente, sem o NC, sete primeiros dígitos (posição 26 a 32 Do Código de Barras). .Add(barras.Substring(33, 34)) // Nosso Número, sem o NC, oito primeiros dígitos. (posição 33 a 40 do Código de Barras). .Add(Helper.Mod10(linha.Campo2.Substring(1, 10))); // DV linha.Campo3 .Add(barras.Substring(35, 40)) // Nosso Número, sem o NC, oito primeiros dígitos. (posição 33 a 40 do Código de Barras). .Add(barras.Substring(41, 42)) // Constante. Indica agência com 4 Dígitos. .Add(barras.Substring(43, 44)) //Número de Controle, cálculo através dos módulos 10 e 11. (posição 43 a 44 do Código de Barras). .Add(Helper.Mod10(linha.Campo3.Substring(1, 10))); // DV linha.Campo4 .Add(barras.Substring(5, 5)); // DAC ou Dígito Verificador (posição 05 do Código de Barras) linha.Campo5 .Add(barras.Substring(6, 9)) // Fator de Vencimento (posição 06 a 09 do código de barras) .Add(barras.Substring(10, 19)); // Valor nominal (posição 10 a 19 do código de barras com zeros entre o fator de vencimento e o valor). return(linha); }