コード例 #1
0
ファイル: Util.cs プロジェクト: agilusinformatica/agilusfinan
        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();
        }
コード例 #2
0
ファイル: Util.cs プロジェクト: agilusinformatica/agilusfinan
        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);
        }