Exemplo n.º 1
0
        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));
            }
        }
Exemplo n.º 2
0
        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());
        }
Exemplo n.º 3
0
        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));
        }