Ejemplo n.º 1
0
        public ActionResult CadastrarClienteAR(string txtNomeCliente, string txtHabilitacaoCliente, string txtCpfCliente, string txtRgCliente, string txtNascimentoCliente, string txtEmailCliente, string txtTelefoneCliente, string txtEnderecoCliente, string txtBairroCliente, string txtCidadeCliente, string selEstadoCliente, string txtCepCliente, string selSituacaoCliente, string txtSenhaCliente)
        {
            if (ValidarAdmin.UsuarioValido())
            {
                ClienteDAL clienteDAL = new ClienteDAL();
                UsuarioDAL usuarioDAL = new UsuarioDAL();
                Cliente    cliente    = new Cliente();
                Usuario    usuario    = new Usuario();

                Cliente clienteEmail = clienteDAL.SelecionarClienteEmail(txtEmailCliente);
                Cliente clienteHabil = clienteDAL.SelecionarClienteHabilitacao(txtHabilitacaoCliente);
                Cliente clienteCpf   = clienteDAL.SelecionarClienteCpf(txtCpfCliente);
                Usuario usuarioEmail = usuarioDAL.SelecionarUsuarioEmail(txtEmailCliente);

                if ((usuarioEmail.EmailUsuario != null) || (clienteEmail.EmailCliente != null))
                {
                    TempData[Constantes.MensagemAlerta] = "Já existe um cliente vinculado a este e-mail!";
                    return(View("CadastrarClienteUI"));
                }
                else if (clienteHabil.HabilitacaoCliente != null)
                {
                    TempData[Constantes.MensagemAlerta] = "Já existe um cliente vinculado a esta Habilitação!";
                    return(View("CadastrarClienteUI"));
                }
                else if (clienteCpf.CpfCliente != null)
                {
                    TempData[Constantes.MensagemAlerta] = "Já existe um cliente vinculado a este Cpf!";
                    return(View("CadastrarClienteUI"));
                }
                else
                {
                    usuario = new Usuario(txtEmailCliente, txtSenhaCliente, cliente.TipoUsuarioCliente, Convert.ToChar(selSituacaoCliente));
                    cliente = new Cliente(txtNomeCliente, txtHabilitacaoCliente, txtCpfCliente, txtRgCliente, Convert.ToDateTime(txtNascimentoCliente), txtEmailCliente, txtTelefoneCliente, txtEnderecoCliente, txtBairroCliente, txtCidadeCliente, selEstadoCliente, txtCepCliente, Convert.ToChar(selSituacaoCliente));

                    usuarioDAL.CadastrarUsuario(usuario);
                    clienteDAL.CadastrarCliente(cliente);

                    TempData[Constantes.MensagemAlerta] = "Cliente cadastrado com sucesso!";
                    return(RedirectToAction("Index", "Inicio"));
                }
            }
            else
            {
                return(RedirectToAction("Login", "AreaRestrita"));
            }
        }
        public ActionResult Cadastro(CadastroViewModel model)
        {
            try
            {
                var keyList = new List <string>();

                if (model.CobrancaIgualCadastro)
                {
                    keyList.Add("EnderecoCobranca");
                    model.EnderecoCobranca = new EnderecoViewModel(model.EnderecoCadastro);
                }

                if (model.EntregaIgualCadastro)
                {
                    keyList.Add("EnderecoEntrega");
                    model.EnderecoEntrega = new EnderecoViewModel(model.EnderecoCadastro);
                }
                else if (model.EntregaIgualCobranca)
                {
                    keyList.Add("EnderecoEntrega");
                    model.EnderecoEntrega = new EnderecoViewModel(model.EnderecoCobranca);
                }

                foreach (var item in keyList)
                {
                    foreach (var key in ModelState.Keys.ToList().Where(key => key.StartsWith((item))))
                    {
                        ModelState.Remove(key);
                    }
                }

                if (ModelState.IsValid)
                {
                    var c = new Cliente();
                    c.Agente   = new Representante();
                    c.Promotor = new Representante();
                    c.Usuario  = new Usuario();

                    c.CodCliente               = model.CodCliente;
                    c.Codun                    = model.Codun;
                    c.RazaoSocial              = model.RazaoSocial;
                    c.NomeFantasia             = model.NomeFantasia;
                    c.Cnpj                     = model.Cnpj.Replace(".", "").Replace("-", "").Replace("/", "");
                    c.InscricaoEstadual        = model.InscricaoEstadual;
                    c.InscricaoMunicipal       = model.InscricaoMunicipal;
                    c.Classe                   = model.Classe;
                    c.Status                   = StatusSolicitacao.Pendente;
                    c.Observacao               = model.Observacao;
                    c.DataCadastro             = DateTime.Now;
                    c.Agente.IdRepresentante   = model.IdAgente;
                    c.Promotor.IdRepresentante = model.IdPromotor;
                    c.Usuario                  = model.usuario;

                    //Necessario passar o idEndereco para caso de Edicao
                    c.Enderecos = new List <Endereco>()
                    {
                        new Endereco(model.EnderecoCadastro.IdEndereco, TipoEndereco.Cadastro, model.EnderecoCadastro.Logradouro, model.EnderecoCadastro.Numero,
                                     model.EnderecoCadastro.Complemento, model.EnderecoCadastro.Bairro, model.EnderecoCadastro.Municipio, model.EnderecoCadastro.UF,
                                     model.EnderecoCadastro.Cep, model.EnderecoCadastro.Telefone1, model.EnderecoCadastro.Telefone2, model.EnderecoCadastro.Email, false, false),

                        new Endereco(model.EnderecoCobranca.IdEndereco, TipoEndereco.Cobranca, model.EnderecoCobranca.Logradouro, model.EnderecoCobranca.Numero,
                                     model.EnderecoCobranca.Complemento, model.EnderecoCobranca.Bairro, model.EnderecoCobranca.Municipio, model.EnderecoCobranca.UF,
                                     model.EnderecoCobranca.Cep, model.EnderecoCobranca.Telefone1, model.EnderecoCobranca.Telefone2, model.EnderecoCobranca.Email, model.CobrancaIgualCadastro, false),

                        new Endereco(model.EnderecoEntrega.IdEndereco, TipoEndereco.Entrega, model.EnderecoEntrega.Logradouro, model.EnderecoEntrega.Numero, model.EnderecoEntrega.Complemento,
                                     model.EnderecoEntrega.Bairro, model.EnderecoEntrega.Municipio, model.EnderecoEntrega.UF, model.EnderecoEntrega.Cep,
                                     model.EnderecoEntrega.Telefone1, model.EnderecoEntrega.Telefone2, model.EnderecoCobranca.Email, model.EntregaIgualCadastro, model.EntregaIgualCobranca)
                    };

                    var d = new ClienteDAL();

                    if (model.IdTransacao is null)
                    {
                        c.Acao     = Acao.Cadastrar;
                        model.Acao = c.Acao;
                        if (!d.VerificarCNPJ(c.Cnpj))
                        {
                            d.CadastrarCliente(c);

                            TempData["Sucesso"]   = true;
                            TempData["Resultado"] = "Solicitação de Cadastro enviada com sucesso.\n" +
                                                    "Um E-mail de confirmação foi enviado para você, assim que o cliente estiver cadastrado você receberá uma confirmação via E-mail.\n " +
                                                    "Se o cliente não estiver coligado a nenhum Codun já existente, clique no botão Cadastrar Modalidade Comercial.\n " +
                                                    $"IdTransação: {c.IdCliente}";
                            model.IdTransacao = c.IdCliente;

                            try
                            {
                                var           r             = new RepresentanteDAL();
                                List <string> destinatarios = r.ListaDestinatarios(c.Usuario.IdUsuario);

                                Email.EnviarEmailCadastroCliente(c, destinatarios);
                            }
                            catch (Exception e)
                            {
                                TempData["Sucesso"]   = true;
                                TempData["Resultado"] = $"{e.Message} Se o cliente não estiver coligado a nenhum Codun já existente, clique no botão Cadastrar Modalidade Comercial.\n " +
                                                        $"IdTransação: {c.IdCliente}";
                            }
                        }
                        else
                        {
                            TempData["Sucesso"]   = false;
                            TempData["Resultado"] = "Já existe um cliente cadastrado com o CNPJ informado";
                        }
                    }

                    else
                    {
                        c.Acao      = Acao.Atualizar;
                        model.Acao  = c.Acao;
                        c.IdCliente = (int)model.IdTransacao;
                        d.AtualizarCliente(c);

                        try
                        {
                            var           r             = new RepresentanteDAL();
                            List <string> destinatarios = r.ListaDestinatarios(c.Usuario.IdUsuario);

                            Email.EnviarEmailEdicaoCliente(c, destinatarios);

                            TempData["Sucesso"]   = true;
                            TempData["Resultado"] = "Solicitação de atualização de dados cadastrais enviada com sucesso.\n" +
                                                    "Um E-mail de confirmação foi enviado para você, assim que o cliente estiver cadastrado você receberá uma confirmação via E-mail.";
                        }
                        catch (Exception e)
                        {
                            TempData["Sucesso"]   = true;
                            TempData["Resultado"] = e.Message;
                        }
                    }
                }
            }
            catch (Exception e)
            {
                TempData["Sucesso"]   = false;
                TempData["Resultado"] = "Operação não concluída. Erro: " + e.Message;
            }
            return(View(model));
        }
Ejemplo n.º 3
0
 public void CadastrarCliente(Cliente cliente)
 {
     clienteDAL.CadastrarCliente(cliente);
 }