public IActionResult Put(int id, [FromBody] DoadorDTO doador) { if (id != doador.Id) { return(new BadRequestResult()); } if (ModelState.IsValid) { Doador d = _context.Doador.Include(q => q.Endereco).SingleOrDefault(q => q.CodDoador == id); if (d == null) { return(new BadRequestResult()); } if (d.GetType() == typeof(PessoaFisica)) { //verifica se ja está cadastrado o cpf if (_context.DoadorPessoaFisica.Any(q => q.Cpf == doador.CpfCnpj && q.CodDoador != id)) { ModelState.AddModelError("Cpf", "Este CPF já está cadastrado"); return(new BadRequestObjectResult(ModelState)); } PessoaFisica pf = (PessoaFisica)d; pf.Nome = doador.NomeRazaoSocial; pf.Cpf = doador.CpfCnpj; pf.Celular = doador.Celular; pf.Telefone = doador.Telefone; pf.Email = doador.Email; pf.Endereco.Bairro = doador.Endereco.Bairro; pf.Endereco.Cep = doador.Endereco.Cep; pf.Endereco.Cidade = doador.Endereco.Cidade; pf.Endereco.Complemento = doador.Endereco.Complemento; pf.Endereco.Estado = doador.Endereco.Estado; pf.Endereco.Logradouro = doador.Endereco.Logradouro; pf.Endereco.Numero = doador.Endereco.Numero; } if (d.GetType() == typeof(PessoaJuridica)) { //verifica se ja está cadastrado o cnpj if (_context.DoadorPessoaJuridica.Any(q => q.Cnpj == doador.CpfCnpj && q.CodDoador != id)) { ModelState.AddModelError("Cpf", "Este CPF já está cadastrado"); return(new BadRequestObjectResult(ModelState)); } PessoaJuridica pj = (PessoaJuridica)d; pj.RazaoSocial = doador.NomeRazaoSocial; pj.Cnpj = doador.CpfCnpj; pj.Celular = doador.Celular; pj.Telefone = doador.Telefone; pj.Email = doador.Email; pj.Endereco.Bairro = doador.Endereco.Bairro; pj.Endereco.Cep = doador.Endereco.Cep; pj.Endereco.Cidade = doador.Endereco.Cidade; pj.Endereco.Complemento = doador.Endereco.Complemento; pj.Endereco.Estado = doador.Endereco.Estado; pj.Endereco.Logradouro = doador.Endereco.Logradouro; pj.Endereco.Numero = doador.Endereco.Numero; } try { _context.SaveChanges(); return(new ObjectResult(doador)); } catch (Exception e) { if (e.InnerException.Message.Contains("Email")) { ModelState.AddModelError("Email", "Este email ja está cadastrado"); } return(new BadRequestObjectResult(ModelState)); } } else { return(new BadRequestObjectResult(ModelState)); } }
public IActionResult SendRelatorio(int id, [FromQuery] DateTime?start, [FromQuery] DateTime?end) { Doador doador = _context.Doador.SingleOrDefault(q => q.CodDoador == id); if (start == null || end == null || doador == null) { ModelState.AddModelError("Erro", "Este CPF já está cadastrado"); return(new BadRequestObjectResult(ModelState)); } var doacoes = _context.DoacaoDinheiro.Where(q => q.CodDoador == id && q.Data >= start.Value && q.Data <= end.Value); if (doacoes.Count() == 0) { ModelState.AddModelError("Erro", "Nenhuma doação para enviar"); return(new BadRequestObjectResult(ModelState)); } StringBuilder sb = new StringBuilder(); sb.Append(@"<table> <tr> <th>Data</th> <th>Valor</th> </tr>"); string linhaD = @"<tr> <td>{0}</td> <td>R$ {1}</td> </tr>"; foreach (var doacao in doacoes) { sb.Append(String.Format(linhaD, doacao.Data.ToString("dd/MM/yyyy"), doacao.Valor.ToString("N2", CultureInfo.CurrentCulture))); } sb.Append("</table>"); string nomeRazaoSocial = doador.GetType() == typeof(PessoaFisica) ? ((PessoaFisica)doador).Nome : ((PessoaJuridica)doador).RazaoSocial; string subject = "Relação de doações"; string message = @"<!DOCTYPE html> <html> <head> <style> table { font-family: arial, sans-serif; border-collapse: collapse; } td, th { border: 1px solid #dddddd; text-align: left; padding: 8px; border: 1px solid black; } </style> </head> <body> <p>A Associação Beneficente Benedito Pacheco (Reintegra Turma da Sopa), organização sem fins lucrativos informa que o doador " + nomeRazaoSocial + " realizou as seguintes doações:</p><br />" + sb.ToString() + @"<br /> Dados da Associação:<br /> <p><b>Razão Social:</b> Associação Beneficente Benedito Pacheco (Reintegra Turma da Sopa)<br /> <b>CNPJ:</b> 00.214.708.0001-45<br /> <b>INSCRIÇÃO ESTADUAL:</b> 149.595.063.113<br /> <b>CNAS:</b> Proc.71010.002110/2006-39<br /> <b>COMAS:</b> Conselho Municipal de Assistência Social – 243/2015<br /> <b>Utilidade Pública Federal:</b> processo MJ – 08200116_2003-13<br /> <b>Utilidade Pública Municipal:</b> 44.357/2004-10-21<br /> <b>Utilidade Pública Estadual:</b> Lei Nº 15.812, de 22 de abril de 2015 <br /> <b>Endereço:</b> Rua Bernardino de Campos,1474<br /> <b>Bairro:</b> Brooklin Paulista<br /> <b>CEP:</b> 04620-004<br /> <b>Município:</b> São Paulo-SP<br /> <b>Fone/ Fax: (11) 5533-7143</p> <br /> <p>O doador deve informar a transferência do valor na ficha “Doações Efetuadas” com o código “80 – Doações em espécie”</p> <p><b>Atenção doador a Nota Fiscal Paulista</b></p> <p>Os comprovantes fiscais podem ser usados em benefício de nossa causa. //Junte os cupons fiscais sem a identificação de CPF ou CNPJ e entregue em nossa sede ou a um de nossos voluntários, assim os créditos da Nota Fiscal Paulista serão utilizados em nossas ações solidarias.</p><br /> </body> </html>"; _emailSender.SendEmailAsync(doador.Email, subject, message); return(new OkResult()); }
public IActionResult Get(int id) { Doador d = _context.Doador .Include(q => q.Endereco) .SingleOrDefault(q => q.CodDoador == id); if (d == null) { return(new NotFoundResult()); } DoadorDTO dto = new DoadorDTO(); if (d.GetType() == typeof(PessoaFisica)) { dto.Id = d.CodDoador; dto.NomeRazaoSocial = ((PessoaFisica)d).Nome; dto.CpfCnpj = ((PessoaFisica)d).Cpf; dto.Celular = d.Celular; dto.Telefone = d.Telefone; dto.Email = d.Email; dto.Tipo = "PF"; dto.Endereco = new EnderecoDTO() { Id = d.Endereco.Id, Bairro = d.Endereco.Bairro, Cep = d.Endereco.Cep, Cidade = d.Endereco.Cidade, Complemento = d.Endereco.Complemento, Estado = d.Endereco.Estado, Logradouro = d.Endereco.Logradouro, Numero = d.Endereco.Numero }; } if (d.GetType() == typeof(PessoaJuridica)) { dto.Id = d.CodDoador; dto.NomeRazaoSocial = ((PessoaJuridica)d).RazaoSocial; dto.CpfCnpj = ((PessoaJuridica)d).Cnpj; dto.Celular = d.Celular; dto.Telefone = d.Telefone; dto.Email = d.Email; dto.Tipo = "PJ"; dto.Endereco = new EnderecoDTO() { Id = d.Endereco.Id, Bairro = d.Endereco.Bairro, Cep = d.Endereco.Cep, Cidade = d.Endereco.Cidade, Complemento = d.Endereco.Complemento, Estado = d.Endereco.Estado, Logradouro = d.Endereco.Logradouro, Numero = d.Endereco.Numero }; } this.Response.Headers.Add("totalItems", "1"); return(new ObjectResult(dto)); }