Example #1
0
        public ActionResult Cadastro(CadastroViewModel model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var c = new Markup();
                    c.Usuario = new Usuario();

                    c.Campanha        = Campanha.MarkUP;
                    c.Codun           = model.Codun;
                    c.Versao          = model.Versao;
                    c.NomeResponsavel = model.NomeResponsavel;
                    c.CpfResponsavel  = model.CpfResponsavel;
                    c.Modalidade      = model.ModalidadeMarkup;
                    c.DataNegociacao  = model.DataNegociacao != null?Convert.ToDateTime(model.DataNegociacao) : (DateTime)SqlDateTime.MinValue;

                    c.DataInicio            = Convert.ToDateTime(model.DataInicioContrato);
                    c.DataFim               = Convert.ToDateTime(model.DataFimContrato);
                    c.MediaHistorica        = Convert.ToDecimal(model.MediaHistorica.Replace(".", ""));
                    c.PeriodoMeses          = model.PeriodoMeses;
                    c.MetaPeriodo           = Convert.ToDecimal(model.MetaPeriodo.Replace(".", ""));
                    c.Markup                = model.MarkUP;
                    c.Desconto              = 1 - (2.52M / c.Markup);
                    c.Crescimento           = Convert.ToDecimal(model.CrescimentoProposto.Replace("%", "").Replace(".", ","));
                    c.MesesPagamentoRBR     = model.MesesPagamentoRBR;
                    c.NetlineHabilitado     = model.MesesPagamentoNetline != 0;
                    c.MesesPagamentoNetline = model.MesesPagamentoNetline;
                    c.Guelta                = model.Guelta;
                    c.Status                = StatusSolicitacao.Pendente;
                    c.Observacao            = model.Obervacao;
                    c.Acao    = Acao.Cadastrar;
                    c.Usuario = model.usuario;

                    var d = new MarkupDAL();
                    d.Cadastrar(c);

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

                    Email.EnviarEmailMarkup(c, destinatarios);

                    TempData["Sucesso"]   = true;
                    TempData["Resultado"] = "Solicitação de Cadastro enviada com sucesso. \n" +
                                            "Um E-mail de confirmação foi enviado, assim que o cliente estiver cadastrado você receberá uma confirmação via E-mail";
                    return(RedirectToAction("Cadastro", "Markup"));
                }
                catch (Exception e)
                {
                    TempData["Sucesso"]   = false;
                    TempData["Resultado"] = "Erro: " + e.Message;
                }
            }
            return(View(new CadastroViewModel()));
        }
        public ActionResult Cadastro(CadastroViewModel model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var c = new SemCampanha();
                    c.Cliente = new Cliente();
                    c.Usuario = new Usuario();

                    c.Campanha           = Campanha.SemCampanha;
                    c.Cliente.IdCliente  = model.IdTransacao;
                    c.Cliente.CodCliente = model.CodCliente;
                    c.Cliente.Codun      = model.Codun;
                    c.Versao             = model.Versao;
                    c.DataNegociacao     = model.DataNegociacao != null?Convert.ToDateTime(model.DataNegociacao) : (DateTime)SqlDateTime.MinValue;

                    c.DataInicio            = Convert.ToDateTime(model.DataInicioContrato);
                    c.Markup                = model.MarkUP;
                    c.Desconto              = 1 - (2.52M / c.Markup);
                    c.MesesPagamentoRBR     = model.MesesPagamentoRBR;
                    c.NetlineHabilitado     = model.MesesPagamentoNetline != 0;
                    c.MesesPagamentoNetline = model.MesesPagamentoNetline;
                    c.Guelta                = model.Guelta;
                    c.Status                = StatusSolicitacao.Pendente;
                    c.Observacao            = model.Obervacao;
                    c.Acao    = Acao.Cadastrar;
                    c.Usuario = model.usuario;

                    var d = new SemCampanhaDAL();
                    d.Cadastrar(c);

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

                    Email.EnviarEmailSemCampanha(c, destinatarios);

                    TempData["Sucesso"]   = true;
                    TempData["Resultado"] = "Solicitação de Cadastro enviada com sucesso. \n" +
                                            "Um E-mail de confirmação foi enviado, assim que o cliente estiver cadastrado você receberá uma confirmação via E-mail";
                    return(RedirectToAction("Cadastro", "SemCampanha"));
                }
                catch (Exception e)
                {
                    TempData["Sucesso"]   = false;
                    TempData["Resultado"] = "Erro: " + e.Message;
                }
            }
            return(View(new CadastroViewModel()));
        }
        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));
        }
        public ActionResult Cadastro(CadastroViewModel model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var c = new ClubR();
                    c.Usuario = new Usuario();

                    c.Campanha        = Campanha.ClubR;
                    c.Codun           = model.Codun;
                    c.Versao          = model.Versao;
                    c.NomeResponsavel = model.NomeResponsavel;
                    c.CpfResponsavel  = model.CpfResponsavel;
                    c.Modalidade      = model.ModalidadeClubR;
                    c.DataNegociacao  = model.DataNegociacao != null?Convert.ToDateTime(model.DataNegociacao) : (DateTime)SqlDateTime.MinValue;

                    c.DataInicio            = Convert.ToDateTime(model.DataInicioContrato);
                    c.DataFim               = Convert.ToDateTime(model.DataFimContrato);
                    c.MediaHistorica        = Convert.ToDecimal(model.MediaHistorica.Replace(".", ""));
                    c.PeriodoMeses          = model.PeriodoMeses;
                    c.MetaPeriodo           = Convert.ToDecimal(model.MetaPeriodo.Replace(".", ""));
                    c.Markup                = model.MarkUP;
                    c.Desconto              = 1 - (2.52M / c.Markup);
                    c.Crescimento           = Convert.ToDecimal(model.CrescimentoProposto.Replace("%", "").Replace(".", ","));
                    c.MesesPagamentoRBR     = model.MesesPagamentoRBR;
                    c.NetlineHabilitado     = model.MesesPagamentoNetline != 0;
                    c.MesesPagamentoNetline = model.MesesPagamentoNetline;
                    c.RebatePercent         = Convert.ToDecimal(model.RebatePercent.Replace("%", "")) / 100;
                    c.RebateValor           = c.MetaPeriodo * c.RebatePercent;
                    c.Guelta                = model.Guelta;
                    c.Status                = StatusSolicitacao.Pendente;
                    c.Observacao            = model.Obervacao;
                    c.FileContrato          = model.Contrato is null ? null : $"{c.Campanha}-{c.Codun}-{c.Versao}";
                    c.Acao    = Acao.Cadastrar;
                    c.Usuario = model.usuario;

                    var d = new ClubRDAL();
                    d.Cadastrar(c);

                    if (model.Contrato != null)
                    {
                        string pasta   = HttpContext.Server.MapPath("/Imagens/ClubR/");
                        string extesao = Path.GetExtension(model.Contrato.FileName);
                        model.Contrato.SaveAs(pasta + c.FileContrato + extesao);
                    }

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

                    Email.EnviarEmailClubR(c, destinatarios);

                    TempData["Sucesso"]   = true;
                    TempData["Resultado"] = "Solicitação de Cadastro enviada com sucesso. \n" +
                                            "Um E-mail de confirmação foi enviado, assim que o cliente estiver cadastrado você receberá uma confirmação via E-mail";
                    return(RedirectToAction("Cadastro", "ClubR"));
                }
                catch (Exception e)
                {
                    TempData["Sucesso"]   = false;
                    TempData["Resultado"] = "Erro: " + e.Message;
                }
            }
            return(View(new CadastroViewModel()));
        }