/// <summary> /// Carrega as variáveis internas do boleto /// </summary> /// <param name="Cedente">Informações do Cedente</param> /// <param name="Sacado">Informações do Sacado</param> /// <param name="Boleto">Informações do Boleto</param> public void MakeBoleto(CedenteInfo Cedente, SacadoInfo Sacado, BoletoInfo Boleto) { this.Cedente = Cedente.Cedente; if (!string.IsNullOrEmpty(Cedente.CNPJ)) { this.CedenteDocumentoTipo = (Cedente.Tipo == 1 ? "CPF" : "CNPJ"); this.CedenteDocumento = Cedente.CNPJ; } this.Banco = Cedente.Banco; this.Agencia = Cedente.Agencia; this.Conta = Cedente.Conta; this.Carteira = Cedente.Carteira; this.Modalidade = Cedente.Modalidade; this.Convenio = Cedente.Convenio; this.CodCedente = Cedente.CodCedente; this.UsoBanco = Cedente.UsoBanco; this.CIP = Cedente.CIP; this.useSantander = Cedente.useSantander; this.CedenteEndereco = Cedente.Endereco; this.Informacoes = Cedente.Informacoes; this.Sacado = Sacado.Sacado; if (!string.IsNullOrEmpty(Sacado.Documento)) { this.SacadoDocumento = (Sacado.Tipo == 1 ? "CPF: " : "CNPJ: ") + Sacado.Documento; } this.SacadoEndereco = Sacado.Endereco; this.Bairro = Sacado.Bairro; this.Cidade = Sacado.Cidade; this.Cep = Sacado.Cep; this.UF = Sacado.UF; this.Avalista = Sacado.Avalista; this.NumeroDocumento = Boleto.NumeroDocumento; this.NossoNumero = Boleto.NossoNumero; this.Quantidade = Boleto.Quantidade; this.ParcelaNumero = Boleto.ParcelaNumero; this.ParcelaTotal = Boleto.ParcelaTotal; this.ValorUnitario = Boleto.ValorUnitario; this.ValorDocumento = Math.Round(Boleto.ValorDocumento, 2); this.ValorAcrescimo = Boleto.ValorAcrescimo; this.ValorCobrado = Boleto.ValorCobrado; this.ValorOutras = Boleto.ValorOutras; this.DataDocumento = Boleto.DataDocumento; this.DataVencimento = Boleto.DataVencimento; this.DataProcessamento = Boleto.DataProcessamento; this.Demonstrativo = Boleto.Demonstrativo; this.Instrucoes = Boleto.Instrucoes; this.LocalPagamento = Boleto.LocalPagamento ?? BoletoTextos.LocalPagamento; this.Aceite = Boleto.Aceite; this.Especie = Boleto.Especie; // Valores que podem alterar a forma de exibição de acordo com o banco this.CarteiraExibicao = Cedente.Carteira; this.AgenciaConta = this.Agencia + "/" + this.Conta; // quando é gerado isntrução, também é gerado o calculo da multa quando vencido if (Boleto.CalculaMultaMora && Boleto.DataVencimento.Date < DateTime.Now.Date && // TODAY! Apenas para evitar erros com horario se o vencimento contiver 'horas' (Boleto.ValorMora > 0 || Boleto.PercentualMora > 0) && Boleto.PercentualMulta > 0) { int nDias; if (Boleto.DataPagamento > Boleto.DataVencimento) { nDias = (int)Boleto.DataPagamento.Subtract(DataVencimento).TotalDays; } else { nDias = (int)DateTime.Now.Subtract(DataVencimento).TotalDays; } if (Boleto.PercentualMora > 0 && Boleto.ValorMora == 0) // http://calculoexato.com.br/parprima.aspx?codMenu=DividBoletoVencido // http://exame.abril.com.br/seu-dinheiro/ferramentas/boleto-vencido.shtml { double nValorComMulta = (1 + Boleto.PercentualMulta) * Boleto.ValorDocumento; double nValorMora = nValorComMulta * Boleto.PercentualMora * nDias; this.ValorMoraMulta = Boleto.PercentualMulta * Boleto.ValorDocumento + nValorMora; } else { this.ValorMoraMulta = Boleto.PercentualMulta * Boleto.ValorDocumento + Boleto.ValorMora * nDias; } if (this.ValorMoraMulta < 0.01) { this.ValorMoraMulta = 0.01; } else { this.ValorMoraMulta = Math.Round(this.ValorMoraMulta, 2); } } if (Boleto.DataDesconto != DateTime.MinValue && Boleto.DataDesconto >= DateTime.Now) { this.ValorDesconto = Boleto.ValorDesconto; } else { this.ValorDesconto = Boleto.ValorDesconto; } }