public Aluno_pgto TratarRetorno(Transaction transaction) { Aluno_pgto ap = new Aluno_pgtoDB().Buscar(Convert.ToInt32(transaction.Reference.Replace("AP", ""))); int status = transaction.TransactionStatus; //if (transaction.TransactionStatus == Uol.PagSeguro.Enums.TransactionStatus.Initiated) // status = 0; //if (transaction.TransactionStatus == Uol.PagSeguro.Enums.TransactionStatus.WaitingPayment) // status = 1; //if (transaction.TransactionStatus == Uol.PagSeguro.Enums.TransactionStatus.InAnalysis) // status = 2; //if (transaction.TransactionStatus == Uol.PagSeguro.Enums.TransactionStatus.Paid) // status = 3; //if (transaction.TransactionStatus == Uol.PagSeguro.Enums.TransactionStatus.Available) // status = 4; //if (transaction.TransactionStatus == Uol.PagSeguro.Enums.TransactionStatus.InDispute) // status = 5; //if (transaction.TransactionStatus == Uol.PagSeguro.Enums.TransactionStatus.Refunded) // status = 6; //if (transaction.TransactionStatus == Uol.PagSeguro.Enums.TransactionStatus.Cancelled) // status = 7; Aluno_pgto_Transacao apt = new Aluno_pgto_TransacaoDB().Buscar(ap, transaction.Code, status); if (apt == null) { apt = new Aluno_pgto_Transacao() { aluno_pgto = ap, code = transaction.Code, data = DateTime.Now, status = status }; apt.Salvar(); } if (ap != null) { ap.aluno = new AlunoDB().Buscar(ap.aluno.codigo); //salva o code no Aluno_MedTV //msg do status apt.msg = TransacaoMsg(status); //3 Paga if (transaction.TransactionStatus == 3) { //se não estiver ativo, ativa o usuário if (ap.situacao != 2) { ap.Ativar(); } } //4 Disponivel if (transaction.TransactionStatus == 4) { LancaEntrada(ap.aluno, ap.curso, apt.data); } //5 Em disputa if (transaction.TransactionStatus == 5) { //se estiver ativo, desativa o usuário if (ap.situacao == 2) { ap.Desativar(); } new Envio_emailDB().Salvar(new Envio_email() { data = DateTime.Now, assunto = "Cenbrap alterações de pagamento", texto = "Alterações no pagamento.<BR>Aluno: " + ap.aluno.nome + "(" + ap.aluno.cpf + ")<BR>Msg: " + apt.msg, para = emailNotificacaoPagamento }); } apt.data = DateTime.Now; apt.Alterar(); } return(ap); }
public Retorno Incluir(Curso curso, Aluno aluno, int forma_pgto = 3, bool enviar = true, string cupom = "", bool pagImprimirBoleto = false) { Retorno retorno = new Retorno(); Aluno_cursoDB db = new Aluno_cursoDB(); int qtd = db.Qtd(curso); if (qtd > curso.total_alunos) { retorno.erro = true; retorno.mensagem = "Todas as vagas foram preenchidas."; } else { Aluno_curso ac = new Aluno_curso(); ac = db.Buscar(curso, aluno); if (ac == null) { ac = new Aluno_curso() { aluno = aluno, curso = curso, adesao = DateTime.Now }; ac.Salvar(); } bool possuiCupom = false; if (cupom.Length >= 6) { CupomDesconto cd = new CupomDescontoDB().Buscar(cupom); if (cd != null) { possuiCupom = true; CupomDesconto_utilizacao cdu = new CupomDesconto_utilizacao(0, cd, aluno, DateTime.Now, curso.codigo); cdu.Salvar(); } } //verifica se tem data limite e se tiver, pega o valor da matricula1 if (curso.data_limite1 > Convert.ToDateTime("01/01/2000")) { if (curso.data_limite1 >= DateTime.Now) { curso.matricula = curso.matricula1; } } //Verifica se é para adicionar a primeira mensalidade if (curso.pgto_1parcela == 1) { curso.matricula += curso.valor / curso.qtd_parcelas; } if (curso.matricula == 0) { curso.matricula = curso.valor; } //se for jornada e assinante MEDTV string url = HttpContext.Current.Request.Url.AbsoluteUri; if ((url.IndexOf("psiquiatriaocupacional") > -1) || (url.IndexOf("congressomedicina") > -1)) { //verifica se tem cupom de desconto if (possuiCupom && DateTime.Now <= Convert.ToDateTime("25/06/2018")) { curso.matricula = 770; } if (new Aluno_MedTVDB().Ativo(aluno)) { curso.matricula = Convert.ToDecimal(Convert.ToDouble(curso.matricula) * 0.95); curso.matricula1 = Convert.ToDecimal(Convert.ToDouble(curso.matricula1) * 0.95); } } //verifica se tem cupom de desconto para pos if (possuiCupom && curso.tipo == 0) { curso.matricula = Convert.ToDecimal(Convert.ToDouble(curso.matricula) * 0.80); } Aluno_pgto ap = new Aluno_pgto(); ap = new Aluno_pgtoDB().Buscar(ac); if (ap == null) { ap = new Aluno_pgto() { aluno = aluno, curso = curso, aluno_curso = ac, data = DateTime.Now, data_gerado = DateTime.Now, forma_pgto = forma_pgto, total = (double)curso.matricula, total_parcelas = curso.qtd_parcelas, matricula = (double)curso.matricula, vencimento = Vencimento(DateTime.Now.AddDays(2)), parcela = 1 }; ap.Salvar(); ap.codigo = new Aluno_pgtoDB().Buscar(ac).codigo; } else { if (ap.vencimento < DateTime.Now && pagImprimirBoleto) { retorno.link = "https://www.cenbrap.com.br/Inscreva/Contrato/" + curso.codigo + "/" + aluno.codigo; return(retorno); } ap.data = DateTime.Now; ap.data_gerado = DateTime.Now; ap.total = (double)curso.matricula; ap.total_parcelas = curso.qtd_parcelas; ap.matricula = (double)curso.matricula; ap.vencimento = Vencimento(DateTime.Now.AddDays(2)); ap.forma_pgto = forma_pgto; ap.Alterar(); } retorno.valor = ap.matricula; retorno.id = ap.codigo; #region "Boleto Bancário" if (forma_pgto == 3) { Boleto boleto = new Boleto() { //conta = 6, conta = 8, data = DateTime.Now, valor = ap.matricula, vencimento = ap.vencimento, instrucoes = "Sr(a). Caixa nao receber apos o vencimento<br><br>Inscricao: " + curso.titulo + "", aluno_pgto = ap }; //Verifica se tem boleto e se ele ainda está dentro da data de vencimento se tiver utiliza o mesmo número int boleto_codigo = new BoletoDB().BuscarVencimento(ap); if (boleto_codigo == 0) { boleto.Salvar(); } else { boleto.codigo = boleto_codigo; //boleto.Salvar(); } retorno.link = "https://boleto.cenbrap.com.br/boleto/?id=" + boleto.codigo; if ((enviar) && (!possuiCupom)) { Email_tipo et = new Email_tipoDB().Buscar(curso.tipo, "Inscricao-boleto"); string txt = ""; string assunto = ""; string link_boleto = ""; //se for o pre-curso if (curso.codigo == 355) { assunto = "Boleto - " + curso.titulo; txt = "<strong>Olá " + aluno.nome + "</strong><BR><BR>Será um prazer recebê-lo(a) no nosso curso Pré-Congresso sobre 'Transtornos Mentais Relacionados ao Trabalho'.<BR><BR>Forma de Pagamento:Boleto Bancário<BR><BR><a href='https://www.cenbrap.com.br/ImprimirBoleto/" + curso.codigo + "/" + aluno.codigo + "/'><span style='color:#006;'>Clique aqui</span> para gerar o boleto bancário com vencimento em " + ap.vencimento.ToShortDateString() + ".</a><BR><BR>Lembramos que sua inscrição somente será confirmada após realização do pagamento.<BR><BR>Estamos à disposição para eventuais esclarecimentos.<BR><BR>Atenciosamente,<BR><BR>Congresso Brasileiro de Medicina do Trabalho e Perícias Médicas<br /><br /><span style='font-size: 8pt;'><span style='color: #808080;'><strong>Fernando Silva Tiago | </strong></span><span style='color: #808080;'><span style='color: #888888;'><em>Assessoria de Comunicação</em></span></span></span><br /> <span style='margin-top: 0px; margin-bottom: 0px;'><span style='font-size: 8pt;'><span style='color: #888888;'>0300 313 1538</span>"; link_boleto = "https://www.cenbrap.com.br/ImprimirBoleto/" + curso.codigo + "/" + aluno.codigo + "/"; } else { if (curso.codigo == 391) { assunto = "Boleto - www.psiquiatriaocupacional.com.br"; txt = "<strong>Olá " + aluno.nome + "</strong><BR><BR>Será um prazer recebê-lo(a) no nosso curso Pré-Congresso sobre 'Exame Psíquico'.<BR><BR>Forma de Pagamento:Boleto Bancário<BR><BR><a href='https://www.cenbrap.com.br/ImprimirBoleto/" + curso.codigo + "/" + aluno.codigo + "/'><span style='color:#006;'>Clique aqui</span> para gerar o boleto bancário com vencimento em " + ap.vencimento.ToShortDateString() + ".</a><BR><BR>Lembramos que sua inscrição somente será confirmada após realização do pagamento.<BR><BR>Estamos à disposição para eventuais esclarecimentos.<BR><BR>Atenciosamente,<BR><BR>Congresso Brasileiro de Medicina do Trabalho e Perícias Médicas<br /><br /><span style='font-size: 8pt;'><span style='color: #808080;'><strong>Fernando Silva Tiago | </strong></span><span style='color: #808080;'><span style='color: #888888;'><em>Assessoria de Comunicação</em></span></span></span><br /> <span style='margin-top: 0px; margin-bottom: 0px;'><span style='font-size: 8pt;'><span style='color: #888888;'>0300 313 1538</span>"; link_boleto = "https://www.cenbrap.com.br/ImprimirBoleto/" + curso.codigo + "/" + aluno.codigo + "/"; } else { if (et == null) { assunto = "Boleto - " + curso.titulo; txt = "<strong>Olá " + aluno.nome + "</strong><BR><BR>Será um prazer recebê-lo(a) no " + curso.titulo + ".<BR><BR>Forma de Pagamento:Boleto Bancário<BR><BR><a href='https://www.cenbrap.com.br/ImprimirBoleto/" + curso.codigo + "/" + aluno.codigo + "/'><span style='color:#006;'>Clique aqui</span> para gerar o boleto bancário com vencimento em " + ap.vencimento.ToShortDateString() + ".</a><BR><BR>Lembramos que sua inscrição somente será confirmada após realização do pagamento.<BR><BR>Estamos à disposição para eventuais esclarecimentos.<BR><BR>Atenciosamente,<BR><BR>" + curso.titulo + "<br /><br /><span style='font-size: 8pt;'><span style='color: #808080;'><strong>Fernando Silva Tiago | </strong></span><span style='color: #808080;'><span style='color: #888888;'><em>Assessoria de Comunicação</em></span></span></span><br /> <span style='margin-top: 0px; margin-bottom: 0px;'><span style='font-size: 8pt;'><span style='color: #888888;'>0300 313 1538</span>"; link_boleto = "https://www.cenbrap.com.br/ImprimirBoleto/" + curso.codigo + "/" + aluno.codigo + "/"; } else { assunto = et.assunto; txt = et.texto; if (curso.codigo == 374) { assunto = assunto.Replace("congressomedicina", "psiquiatriaocupacional"); txt = txt.Replace("congressomedicina", "psiquiatriaocupacional"); //txt = txt.Replace("nosso Congresso", "nossa Jornada"); txt = txt.Replace("Medicina do Trabalho e Perícias Médicas", "Psiquiatria Ocupacional"); } if (txt.IndexOf("#TITULOCURSO#") > 0) { txt = txt.Replace("#TITULOCURSO#", curso.titulo); } if (txt.IndexOf("#NOMEALUNO#") > 0) { txt = txt.Replace("#NOMEALUNO#", aluno.nome); } if (txt.IndexOf("#VENCIMENTOBOLETO#") > 0) { txt = txt.Replace("#VENCIMENTOBOLETO#", ap.vencimento.ToShortDateString()); } if (txt.IndexOf("#URLBOLETO#") > 0) { txt = txt.Replace("#URLBOLETO#", "https://www.cenbrap.com.br/ImprimirBoleto/" + curso.codigo + "/" + aluno.codigo + "/"); } link_boleto = "https://www.cenbrap.com.br/ImprimirBoleto/" + curso.codigo + "/" + aluno.codigo + "/"; } } } //Verificar primeiro se já foi enviado esse e-mail para o aluno nas últimas 24h if (!new Envio_emailDB().Existe(aluno.email, assunto, link_boleto)) { new Envio_emailDB().Salvar(new Envio_email() { data = DateTime.Now, assunto = assunto, texto = txt, para = aluno.email }); } } else { retorno.id = boleto.codigo; } } #endregion #region "Cartão Cielo" if (forma_pgto == 5) { ap.curso = new CursoDB().Buscar(ap.curso.codigo); ap.aluno = new AlunoDB().Buscar(ap.aluno.codigo); string txt_curso = ap.curso.Tipo() + ": " + ap.curso.titulo; if (txt_curso.Length > 128) { txt_curso = txt_curso.Substring(0, 128); } string telefone = ap.aluno.ddd + ap.aluno.telefone; telefone = telefone.Replace("(", "").Replace(")", "").Replace("-", "").Replace(" ", "").Replace(".", "").Replace(",", "").Replace("(", ""); if (telefone.Length > 11) { telefone = telefone.Substring(0, 11); } while (telefone.Length < 10) { telefone = "0" + telefone; } ap.aluno_curso.AbriuCartao(); retorno.link = new IntegrarCielo().Gerar(ap.codigo, ap.matricula, txt_curso, ap.aluno.nome, ap.aluno.cpf, ap.aluno.email, telefone); } #endregion #region "Recorrencia Cielo" if (forma_pgto == 9) { ap.curso = new CursoDB().Buscar(ap.curso.codigo); ap.aluno = new AlunoDB().Buscar(ap.aluno.codigo); string txt_curso = ap.curso.Tipo() + ": " + ap.curso.titulo; if (txt_curso.Length > 128) { txt_curso = txt_curso.Substring(0, 128); } string telefone = ap.aluno.ddd + ap.aluno.telefone; telefone = telefone.Replace("(", "").Replace(")", "").Replace("-", "").Replace(" ", "").Replace(".", "").Replace(",", "").Replace("(", ""); if (telefone.Length > 11) { telefone = telefone.Substring(0, 11); } while (telefone.Length < 10) { telefone = "0" + telefone; } ap.aluno_curso.AbriuCartao(); retorno.link = new PagamentoPagseguroCenbrap().Pagamento(ap); } #endregion } return(retorno); }