public static void EnviarBoletoPorEmail(LoteBoleto loteBoleto, string nomeArquivo) { string emailDestinatario = ""; string emailRemetente = ""; BoletoBancario boleto = null; var modeloBoleto = new RepositorioModeloBoleto().BuscarPorId(loteBoleto.ModeloBoletoId); string boletoGeradoId = null; if (loteBoleto.TituloId != null) { var titulo = new RepositorioRecebimento().BuscarPorId((int)loteBoleto.TituloId); emailDestinatario = loteBoleto.EmailDestinatario; emailRemetente = titulo.Empresa.EmailFinanceiro; boleto = Util.GerarBoletoBancario((int)loteBoleto.TituloId, loteBoleto.ModeloBoletoId); boletoGeradoId = new RepositorioBoletoGerado().Listar(b => b.TituloId == titulo.Id).FirstOrDefault().Id.ToString(); } if (loteBoleto.TituloRecorrenteId != null) { var titulo = new RepositorioTituloRecorrente().BuscarPorId((int)loteBoleto.TituloRecorrenteId); emailDestinatario = loteBoleto.EmailDestinatario; emailRemetente = titulo.Empresa.EmailFinanceiro; boleto = Util.GerarBoletoBancario((int)loteBoleto.TituloRecorrenteId, loteBoleto.Valor, loteBoleto.DataVencimento, loteBoleto.ModeloBoletoId); boletoGeradoId = new RepositorioBoletoGerado().Listar(b => b.TituloRecorrenteId == titulo.Id && b.DataVencimento == loteBoleto.DataVencimento).FirstOrDefault().Id.ToString(); } var pdf = StringToPdf(boleto.MontaHtmlEmbedded(false, true)); var anexos = new List <Stream>(); anexos.Add(pdf); modeloBoleto.TextoEmail = modeloBoleto.TextoEmail.Replace("#tokenBoleto#", EnderecoHost() + "/AtualizacaoBoleto?tokenBoleto=" + Criptografia.Encriptar(boletoGeradoId)); var email = new Email(emailDestinatario, modeloBoleto.TextoEmail, modeloBoleto.AssuntoEmail, emailRemetente, anexos, new List <string>() { Path.GetFileName(nomeArquivo) }); email.DispararMensagem(); }
public static FaturaViewModel GerarFatura(LoteBoleto itemBoleto) { FaturaViewModel fatura = new FaturaViewModel(); var db = new Contexto(); var titulo = db.Titulos.Find(itemBoleto.TituloId); var conta = titulo.Conta; var pessoa = titulo.Pessoa; var empresa = titulo.Empresa; var tokenIUGU = db.Parametros.FirstOrDefault(e => e.EmpresaId == db.EmpresaId).TokenIUGU; int numeroBanco = conta.Banco.Codigo; var modeloBoleto = db.ModelosBoleto.Find(itemBoleto.ModeloBoletoId); var emails = pessoa.EmailFinanceiro.Replace(",", ";").Replace(" ", "").Split(';'); fatura.cc_emails = string.Join(";", emails.Skip(1)); fatura.email = emails.First(); fatura.due_date = titulo.DataVencimento.ToString("yyyy-MM-dd"); fatura.items.Add(new ItemFatura() { description = modeloBoleto.Instrucao, price_cents = (int)(titulo.Valor * 100), quantity = 1 }); fatura.return_url = ""; fatura.fines = true; fatura.late_payment_fine = (int)modeloBoleto.Multa; fatura.per_day_interest = true; if (modeloBoleto.PercentualDesconto > 0) { fatura.early_payment_discount = true; fatura.early_payment_discounts.Add(new ItemDesconto() { days = modeloBoleto.DiasDesconto, percent = modeloBoleto.PercentualDesconto.ToString().Replace(",", ".") }); } fatura.payable_with = "bank_slip"; fatura.payer.cpf_cnpj = pessoa.Cpf; fatura.payer.name = pessoa.Nome; if (pessoa.Telefones.Count > 0) { fatura.payer.phone_prefix = pessoa.Telefones.First().Telefone.Ddd; fatura.payer.phone = pessoa.Telefones.First().Telefone.Numero; } fatura.payer.address = new Address() { zip_code = pessoa.Endereco.Cep, street = pessoa.Endereco.Logradouro, number = pessoa.Endereco.Numero == "" ? "0" : pessoa.Endereco.Numero, district = pessoa.Endereco.Bairro, city = pessoa.Endereco.Cidade, state = pessoa.Endereco.Uf, country = "Brasil", complement = pessoa.Endereco.Complemento }; //TODO: colocar todos os campos necessarios return(fatura); }