Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Criação de parâmetro para logomarca. #338

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
79 changes: 78 additions & 1 deletion Boleto2.Net/Banco/Banco.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Boleto2Net.Exceptions;
using Boleto2Net.Extensions;
using Microsoft.VisualBasic;
Expand All @@ -25,7 +26,83 @@ public static IBanco Instancia(int codigoBanco)
=> (Bancos.ContainsKey(codigoBanco) ? Bancos[codigoBanco] : throw Boleto2NetException.BancoNaoImplementado(codigoBanco)).Value;

public static IBanco Instancia(Bancos codigoBanco)
=> Instancia((int)codigoBanco);
{
var _banco = Instancia((int)codigoBanco);
var bundleAssembly = AppDomain.CurrentDomain.GetAssemblies()
.First(x => x.FullName.Contains("Boleto2Net"));
var logoFile = bundleAssembly.GetManifestResourceNames()
.First(x => x.Contains(((int)codigoBanco).ToString().PadLeft(3, '0')));

using (var stream = bundleAssembly.GetManifestResourceStream(logoFile))
{
System.Drawing.Image _logo = System.Drawing.Image.FromStream(stream);
using (var ms = new System.IO.MemoryStream())
{
_logo.Save(ms, _logo.RawFormat);
_banco.Logo = ms.ToArray();
}
}

return _banco;
}

/// <summary>
/// Formata Mensagens de Juros e Multa e Desconto nas instru��es do Caixa
/// </summary>
/// <param name="boleto"></param>
public static void FormataMensagemInstrucao(Boleto boleto)
{
boleto.MensagemInstrucoesCaixaFormatado = "";

//JUROS
if (boleto.ImprimirValoresAuxiliares == true && boleto.ValorJurosDia > 0)
{
if (boleto.DataJuros.Ticks > 0)
boleto.MensagemInstrucoesCaixaFormatado += $"Cobrar juros de R$ {boleto.ValorJurosDia.ToString("N2")} por dia de atraso AP�S {boleto.DataJuros.AddDays(-1).ToString("dd/MM/yyyy")}.{Environment.NewLine}";
else
boleto.MensagemInstrucoesCaixaFormatado += $"Cobrar juros de R$ {boleto.ValorJurosDia.ToString("N2")} por dia de atraso.{Environment.NewLine}";

if (boleto.DataLimiteRecebimento.Ticks > 0)
boleto.MensagemInstrucoesCaixaFormatado += $"N�o receber ap�s o dia {boleto.DataLimiteRecebimento.ToString("dd/MM/yyyy")}.{Environment.NewLine}";


}
if (boleto.ImprimirValoresAuxiliares == true && boleto.PercentualJurosDia > 0)
{
if (boleto.DataJuros.Ticks > 0)
boleto.MensagemInstrucoesCaixaFormatado += $"Cobrar juros de {boleto.PercentualJurosDia.ToString("N2")}% por dia de atraso AP�S {boleto.DataJuros.AddDays(-1).ToString("dd/MM/yyyy")}.{Environment.NewLine}";
else
boleto.MensagemInstrucoesCaixaFormatado += $"Cobrar juros de {boleto.PercentualJurosDia.ToString("N2")}% por dia de atraso.{Environment.NewLine}";
}


//MULTA
if (boleto.ImprimirValoresAuxiliares == true && boleto.ValorMulta > 0)
{
boleto.MensagemInstrucoesCaixaFormatado += $"Cobrar multa de R$ {boleto.ValorMulta.ToString("N2")} a partir DE {boleto.DataMulta.ToString("dd/MM/yyyy")}.{Environment.NewLine}";
}
if (boleto.ImprimirValoresAuxiliares == true && boleto.PercentualMulta > 0)
{
boleto.MensagemInstrucoesCaixaFormatado += $"Cobrar multa de {boleto.PercentualMulta.ToString("N2")}% a partir DE {boleto.DataMulta.ToString("dd/MM/yyyy")}.{Environment.NewLine}";
}

//DESCONTO
if (boleto.ImprimirValoresAuxiliares == true && boleto.ValorDesconto > 0)
{
boleto.MensagemInstrucoesCaixaFormatado += $"Conceder desconto de R$ {boleto.ValorDesconto.ToString("N2")} AT� {boleto.DataDesconto.ToString("dd/MM/yyyy")}{Environment.NewLine}";
}

//Aqui, define se a mensagem de instru��o manual deve ser impressa,
//na minha vis�o se o usu�rio passou uma instru��o, esta deveria ser impressa sempre.
//Entretanto, para manter o comportamento atual sem quebrar nenhuma aplica��o, foi criado um par�metro com valor "false"
//https://github.com/BoletoNet/BoletoNetCore/pull/91
if (boleto.ImprimirMensagemInstrucao && boleto.MensagemInstrucoesCaixa?.Length > 0)
{
boleto.MensagemInstrucoesCaixaFormatado += Environment.NewLine;
boleto.MensagemInstrucoesCaixaFormatado += boleto.MensagemInstrucoesCaixa;
}

}

/// <summary>
/// Formata c�digo de barras
Expand Down
1 change: 1 addition & 0 deletions Boleto2.Net/Banco/BancoBanrisul.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ internal sealed class BancoBanrisul : IBanco
internal static Lazy<IBanco> Instance { get; } = new Lazy<IBanco>(() => new BancoBanrisul());

public Cedente Cedente { get; set; }
public byte[] Logo { get; set; }
public int Codigo { get; } = 41;
public string Nome { get; } = "Banrisul";
public string Digito { get; } = "8";
Expand Down
18 changes: 16 additions & 2 deletions Boleto2.Net/Banco/BancoBradesco.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ internal sealed class BancoBradesco : IBanco
internal static Lazy<IBanco> Instance { get; } = new Lazy<IBanco>(() => new BancoBradesco());

public Cedente Cedente { get; set; }
public byte[] Logo { get; set; }
public int Codigo { get; } = 237;
public string Nome { get; } = "Bradesco";
public string Digito { get; } = "2";
Expand Down Expand Up @@ -842,8 +843,21 @@ private string GerarDetalheRemessaCNAB400Registro1(Boleto boleto, ref int numero
reg.Adicionar(TTiposDadoEDI.ediNumericoSemSeparador_, 0148, 002, 0, AjustaEspecieCnab400(boleto.EspecieDocumento), '0');
reg.Adicionar(TTiposDadoEDI.ediAlphaAliEsquerda_____, 0150, 001, 0, boleto.Aceite, ' ');
reg.Adicionar(TTiposDadoEDI.ediDataDDMMAA___________, 0151, 006, 0, boleto.DataEmissao, ' ');
reg.Adicionar(TTiposDadoEDI.ediNumericoSemSeparador_, 0157, 002, 0, boleto.CodigoInstrucao1, '0');
reg.Adicionar(TTiposDadoEDI.ediNumericoSemSeparador_, 0159, 002, 0, boleto.CodigoInstrucao2, '0');

string vInstrucao1, vInstrucao2;
if (boleto.CodigoProtesto == TipoCodigoProtesto.ProtestarDiasCorridos && boleto.DiasProtesto > 0
&& boleto.CodigoInstrucao1.PadLeft(2, '0') == "00" && boleto.CodigoInstrucao2.PadLeft(2, '0') == "00" )
{
vInstrucao1 = "06";
vInstrucao2 = boleto.DiasProtesto.ToString();
}
else
{
vInstrucao1 = boleto.CodigoInstrucao1;
vInstrucao2 = boleto.CodigoInstrucao2;
}
reg.Adicionar(TTiposDadoEDI.ediInteiro______________, 0157, 002, 0, vInstrucao1, '0'); //157-158
reg.Adicionar(TTiposDadoEDI.ediInteiro______________, 0159, 002, 0, vInstrucao2, '0'); //159-160
reg.Adicionar(TTiposDadoEDI.ediNumericoSemSeparador_, 0161, 013, 2, boleto.ValorJurosDia, '0');

if (boleto.ValorDesconto == 0)
Expand Down
2 changes: 2 additions & 0 deletions Boleto2.Net/Banco/BancoBrasil.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ internal sealed class BancoBrasil : IBanco
internal static Lazy<IBanco> Instance { get; } = new Lazy<IBanco>(() => new BancoBrasil());

public Cedente Cedente { get; set; }
public byte[] Logo { get; set; }
public int Codigo { get; } = 1;
public string Nome { get; } = "Banco do Brasil";
public string Digito { get; } = "9";
Expand Down Expand Up @@ -936,6 +937,7 @@ private static string GerarDetalheRemessaCNAB400Registro5Multa(Boleto boleto, re
reg.Adicionar(TTiposDadoEDI.ediNumericoSemSeparador_, 0004, 001, 0, "1", '0');
reg.Adicionar(TTiposDadoEDI.ediDataDDMMAA___________, 0005, 006, 0, boleto.DataMulta, ' ');
reg.Adicionar(TTiposDadoEDI.ediNumericoSemSeparador_, 0011, 012, 2, boleto.ValorMulta, '0');
reg.Adicionar(TTiposDadoEDI.ediAlphaAliDireita______, 0023, 003, 0, boleto.DiasLimiteRecebimento.HasValue ? boleto.DiasLimiteRecebimento.Value.ToString("000") : string.Empty, ' ');
reg.Adicionar(TTiposDadoEDI.ediAlphaAliEsquerda_____, 0023, 372, 0, string.Empty, ' ');
reg.Adicionar(TTiposDadoEDI.ediNumericoSemSeparador_, 0395, 006, 0, numeroRegistroGeral, '0');
reg.CodificarLinha();
Expand Down
1 change: 1 addition & 0 deletions Boleto2.Net/Banco/BancoCaixa.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ internal sealed class BancoCaixa : IBanco
internal static Lazy<IBanco> Instance { get; } = new Lazy<IBanco>(() => new BancoCaixa());

public Cedente Cedente { get; set; }
public byte[] Logo { get; set; }
public int Codigo { get; } = 104;
public string Nome { get; } = "Caixa Econ�mica Federal";
public string Digito { get; } = "0";
Expand Down
1 change: 1 addition & 0 deletions Boleto2.Net/Banco/BancoItau.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ internal sealed class BancoItau : IBanco
internal static Lazy<IBanco> Instance { get; } = new Lazy<IBanco>(() => new BancoItau());

public Cedente Cedente { get; set; }
public byte[] Logo { get; set; }
public int Codigo { get; } = 341;
public string Nome { get; } = "Itaú";
public string Digito { get; } = "7";
Expand Down
1 change: 1 addition & 0 deletions Boleto2.Net/Banco/BancoSafra.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ internal sealed class BancoSafra : IBanco
public List<string> IdsRetornoCnab400RegistroDetalhe { get; } = new List<string> { "1" };
public bool RemoveAcentosArquivoRemessa { get; } = true;
private int NumeroArquivoRemessaCNAB400 { get; set; } // Safra repete o número do arquivo remessa na linha de detalhe (CNAB 400)
public byte[] Logo { get; set; }

public void FormataCedente()
{
Expand Down
1 change: 1 addition & 0 deletions Boleto2.Net/Banco/BancoSantander.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ internal sealed class BancoSantander : IBanco
internal static Lazy<IBanco> Instance { get; } = new Lazy<IBanco>(() => new BancoSantander());

public Cedente Cedente { get; set; }
public byte[] Logo { get; set; }
public int Codigo { get; } = 033;
public string Nome { get; } = "Santander";
public string Digito { get; } = "7";
Expand Down
1 change: 1 addition & 0 deletions Boleto2.Net/Banco/BancoSicoob.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ private BancoSicoob()
}

public Cedente Cedente { get; set; }
public byte[] Logo { get; set; }

public int Codigo { get; } = 756;
public string Nome { get; } = "Sicoob";
Expand Down
3 changes: 2 additions & 1 deletion Boleto2.Net/Banco/BancoSicredi.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ internal sealed class BancoSicredi : IBanco
internal static Lazy<IBanco> Instance { get; } = new Lazy<IBanco>(() => new BancoSicredi());

public Cedente Cedente { get; set; }
public byte[] Logo { get; set; }
public int Codigo { get; } = 748;
public string Nome { get; } = "Sicredi";
public string Digito { get; } = "X";
Expand Down Expand Up @@ -593,7 +594,7 @@ private string GerarHeaderRemessaCNAB240(int numeroArquivoRemessa, ref int numer

reg.Adicionar(TTiposDadoEDI.ediAlphaAliEsquerda_____, 0072, 001, 0, String.Empty, ' ');

reg.Adicionar(TTiposDadoEDI.ediAlphaAliEsquerda_____, 0073, 030, 0, Cedente.Nome, ' ');
reg.Adicionar(TTiposDadoEDI.ediAlphaAliEsquerda_____, 0073, 030, 0, Cedente.Nome, ' ');
reg.Adicionar(TTiposDadoEDI.ediAlphaAliEsquerda_____, 0103, 030, 0, "SICREDI", ' ');
reg.Adicionar(TTiposDadoEDI.ediAlphaAliEsquerda_____, 0133, 010, 0, String.Empty, ' ');
reg.Adicionar(TTiposDadoEDI.ediNumericoSemSeparador_, 0143, 001, 0, "1", '0');
Expand Down
1 change: 1 addition & 0 deletions Boleto2.Net/Banco/IBanco.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ namespace Boleto2Net
public interface IBanco
{
Cedente Cedente { get; set; }
byte[] Logo { get; set; }
int Codigo { get; }
string Nome { get; }
string Digito { get; }
Expand Down
15 changes: 15 additions & 0 deletions Boleto2.Net/Boleto/Boleto.cs
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,15 @@ public Boleto(IBanco banco, Boolean ignorarCarteira)
public string NossoNumero { get; set; } = string.Empty;
public string NossoNumeroDV { get; set; } = string.Empty;
public string NossoNumeroFormatado { get; set; } = string.Empty;
public DateTime DataLimiteRecebimento { get; set; }

/// <summary>
/// Quantidade de dias para recebimento ap�s o vencimento (exclusivo BB)
/// Prazo permitido para recebimento do boleto ap�s o vencimento. Ap�s este prazo, o boleto ser� baixado.
/// Este registro deve ser utilizado somente quando o campo 21.2 (Carteira de Cobran�a) � Comando � for igual a "01" - Registro de T�tulo
/// Este Registro deve, obrigatoriamente, ser inserido ap�s o Registro Detalhe Obrigat�rio correspondente ao t�tulo
/// </summary>
public int? DiasLimiteRecebimento { get; set; } = null;

public TipoCarteira TipoCarteira { get; set; } = TipoCarteira.CarteiraCobrancaSimples;
public string Carteira { get; set; } = string.Empty;
Expand Down Expand Up @@ -111,9 +120,14 @@ public Boleto(IBanco banco, Boolean ignorarCarteira)
public string ComplementoInstrucao3 { get; set; } = string.Empty;

public string MensagemInstrucoesCaixa { get; set; } = string.Empty;

public string MensagemInstrucoesCaixaFormatado { get; set; } = string.Empty;

public string QRCode { get; set; } = string.Empty;

public string MensagemArquivoRemessa { get; set; } = string.Empty;
public string RegistroArquivoRetorno { get; set; } = string.Empty;
public bool ImprimirMensagemInstrucao { get; set; }

public IBanco Banco { get; set; }
public Sacado Sacado { get; set; } = new Sacado();
Expand Down Expand Up @@ -158,6 +172,7 @@ public void ValidarDados()
Banco.FormataNossoNumero(this);
Boleto2Net.Banco.FormataCodigoBarra(this);
Boleto2Net.Banco.FormataLinhaDigitavel(this);
Boleto2Net.Banco.FormataMensagemInstrucao(this);
}
}
}
2 changes: 1 addition & 1 deletion Boleto2.Net/Boleto/Cedente.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

namespace Boleto2Net
{
[Serializable, Browsable(false)]
[Serializable, Browsable(true)]
public class Cedente
{
private string _cpfcnpj;
Expand Down
2 changes: 1 addition & 1 deletion Boleto2.Net/Boleto/Sacado.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

namespace Boleto2Net
{
[Serializable(), Browsable(false)]
[Serializable(), Browsable(true)]
public class Sacado
{
private string _cpfcnpj = string.Empty;
Expand Down