Пример #1
0
        public IActionResult Salvar(Cliente cliente, string hfListaAlunos, string hfListaEmails, string hfListaTelefones, string hfListaAtendimentos,
                                    string hfListaConcorrentes, string hfListaContabilidades, string hfListaLicenciamentoAmbiental)
        {
            string                                  mensagemErro                            = "";
            ClienteBLL                              clienteBLL                              = new ClienteBLL();
            AlunoBLL                                alunoBLL                                = new AlunoBLL();
            EmailClienteBLL                         emailClienteBLL                         = new EmailClienteBLL();
            TelefoneClienteBLL                      telefoneClienteBLL                      = new TelefoneClienteBLL();
            AtendimentosBLL                         atendimentosBLL                         = new AtendimentosBLL();
            RelacaoClienteConcorrenteBLL            relacaoClienteConcorrenteBLL            = new RelacaoClienteConcorrenteBLL();
            RelacaoClienteContabilidadeBLL          relacaoClienteContabilidadeBLL          = new RelacaoClienteContabilidadeBLL();
            RelacaoClienteLicenciamentoAmbientalBLL relacaoClienteLicenciamentoAmbientalBLL = new RelacaoClienteLicenciamentoAmbientalBLL();

            //CADASTRO / ATUALIZAÇÃO CLIENTE
            if (cliente.Codigo == null)
            {
                cliente.DataCadastro = DateTime.Now;

                if (clienteBLL.InsertCliente(cliente, out mensagemErro))
                {
                    TempData["mensagemSucesso"] = "Cliente cadastrado com sucesso!";
                }
                else
                {
                    TempData["mensagemErro"] = mensagemErro;
                    return(RedirectToAction("List"));
                }
            }
            else
            {
                if (clienteBLL.UpdateCliente(cliente, out mensagemErro))
                {
                    TempData["mensagemSucesso"] = "Cliente atualizado com sucesso!";
                }
                else
                {
                    TempData["mensagemErro"] = mensagemErro;
                    return(RedirectToAction("List"));
                }
            }

            //CADASTRO/ATUALIZAÇÃO DE ALUNOS
            if (!String.IsNullOrEmpty(hfListaAlunos))
            {
                List <Aluno> listaAlunos = JsonConvert.DeserializeObject <List <Aluno> >(hfListaAlunos);

                if (listaAlunos.Count > 0)
                {
                    foreach (Aluno item in listaAlunos)
                    {
                        if (item.tipo == Enumeradores.Tipo.New)
                        {
                            item.Cliente = cliente;
                            if (!alunoBLL.InserAluno(item, out mensagemErro))
                            {
                                mensagemErro = "Um ou mais alunos não foram cadastrados. Consulte o suporte!";
                            }
                        }
                        else if (item.tipo == Enumeradores.Tipo.Edit)
                        {
                            if (!alunoBLL.UpdateAluno(item, out mensagemErro))
                            {
                                mensagemErro = "Um ou mais alunos não foram atualizados. Consulte o suporte!";
                            }
                        }
                    }
                }

                if (mensagemErro.Length > 0)
                {
                    TempData["mensagemErro"] = mensagemErro;
                }
            }

            //CADASTRO/ATUALIZAÇÃO DE EMAILS
            if (!String.IsNullOrEmpty(hfListaEmails))
            {
                List <EmailCliente> listaEmails = JsonConvert.DeserializeObject <List <EmailCliente> >(hfListaEmails);

                if (listaEmails.Count > 0)
                {
                    foreach (EmailCliente item in listaEmails)
                    {
                        if (item.tipo == Enumeradores.Tipo.New)
                        {
                            item.Cliente = (int)cliente.Codigo;
                            if (!emailClienteBLL.insertEmail(item, out mensagemErro))
                            {
                                mensagemErro += " Um ou mais emails não foram cadastrados. Consulte o suporte!";
                            }
                        }
                        else if (item.tipo == Enumeradores.Tipo.Edit)
                        {
                            if (!emailClienteBLL.updateEmail(item, out mensagemErro))
                            {
                                mensagemErro += " Um ou mais emails não foram atualizados. Consulte o suporte!";
                            }
                        }
                    }
                }

                if (mensagemErro.Length > 0)
                {
                    TempData["mensagemErro"] = mensagemErro;
                }
            }

            //CADASTRO/ATUALIZAÇÃO DE TELEFONES
            if (!String.IsNullOrEmpty(hfListaTelefones))
            {
                List <TelefoneCliente> listaTelefones = JsonConvert.DeserializeObject <List <TelefoneCliente> >(hfListaTelefones);

                if (listaTelefones.Count > 0)
                {
                    foreach (TelefoneCliente item in listaTelefones)
                    {
                        if (item.tipo == Enumeradores.Tipo.New)
                        {
                            item.cliente = cliente;
                            if (!telefoneClienteBLL.InserTelefoneCliente(item, out mensagemErro))
                            {
                                mensagemErro += " Um ou mais telefones não foram cadastrados. Consulte o suporte!";
                            }
                        }
                        else if (item.tipo == Enumeradores.Tipo.Edit)
                        {
                            if (!telefoneClienteBLL.UpdateTelefoneCliente(item, out mensagemErro))
                            {
                                mensagemErro += " Um ou mais telefones não foram atualizados. Consulte o suporte!";
                            }
                        }
                    }
                }

                if (mensagemErro.Length > 0)
                {
                    TempData["mensagemErro"] = mensagemErro;
                }
            }

            //CADASTRO/ATUALIZAÇÃO DE ATENDIMENTOS
            if (!String.IsNullOrEmpty(hfListaAtendimentos))
            {
                List <Atendimentos> listaAtendimentos = JsonConvert.DeserializeObject <List <Atendimentos> >(hfListaAtendimentos);

                if (listaAtendimentos.Count > 0)
                {
                    //GET USUÁRIO CORRENTE
                    var    usuario = HttpContext.Request.Cookies["USUARIO"];
                    Pessoa pessoa  = PessoaBLL.getPessoaByLogin(usuario, out mensagemErro);

                    //GET ÚLTIMO PEDIDO CLIENTE
                    int codigoPedido = clienteBLL.getMaxCodigoPedido((int)cliente.Codigo, out mensagemErro);

                    if (codigoPedido != -1)
                    {
                        foreach (Atendimentos item in listaAtendimentos)
                        {
                            if (item.tipo == Enumeradores.Tipo.New)
                            {
                                item.Funcionario  = new Funcionario((int)pessoa.Codigo);
                                item.CodigoPedido = codigoPedido;
                                if (!atendimentosBLL.insertAtendimento(item, out mensagemErro))
                                {
                                    mensagemErro += " Um ou mais atendimentos não foram cadastrados. Consulte o suporte!";
                                }
                            }
                            else if (item.tipo == Enumeradores.Tipo.Edit)
                            {
                                if (!atendimentosBLL.updateAtendimento(item, out mensagemErro))
                                {
                                    mensagemErro += " Um ou mais atendimentos não foram atualizados. Consulte o suporte!";
                                }
                            }
                        }
                    }
                    else
                    {
                        mensagemErro = "Não foi possível cadastrar o atendimento para o cliente! O cliente deve possuir pelo menos um pedido cadastrado!";
                    }
                }

                if (mensagemErro.Length > 0)
                {
                    TempData["mensagemErro"] = mensagemErro;
                }
            }

            //CADASTRO DE RELAÇÃO CLIENTE CONCORRENTE
            if (!String.IsNullOrEmpty(hfListaConcorrentes))
            {
                List <RelacaoClienteConcorrente> listaConcorrentes = JsonConvert.DeserializeObject <List <RelacaoClienteConcorrente> >(hfListaConcorrentes);

                if (listaConcorrentes.Count > 0)
                {
                    foreach (RelacaoClienteConcorrente item in listaConcorrentes)
                    {
                        if (item.tipo == Enumeradores.Tipo.New)
                        {
                            item.CodigoCliente = (int)cliente.Codigo;
                            if (!relacaoClienteConcorrenteBLL.insertRelacaoClienteConcorrente(item, out mensagemErro))
                            {
                                mensagemErro += " Um ou mais relações não foram cadastrados. Consulte o suporte!";
                            }
                        }
                    }
                }

                if (mensagemErro.Length > 0)
                {
                    TempData["mensagemErro"] = mensagemErro;
                }
            }

            //CADASTRO DE RELAÇÃO CLIENTE CONTABILIDADE
            if (!String.IsNullOrEmpty(hfListaContabilidades))
            {
                List <RelacaoClienteContabilidade> listaConcorrentes = JsonConvert.DeserializeObject <List <RelacaoClienteContabilidade> >(hfListaContabilidades);

                if (listaConcorrentes.Count > 0)
                {
                    foreach (RelacaoClienteContabilidade item in listaConcorrentes)
                    {
                        if (item.tipo == Enumeradores.Tipo.New)
                        {
                            item.CodigoCliente = (int)cliente.Codigo;
                            if (!relacaoClienteContabilidadeBLL.insertRelacaoClienteContabilidade(item, out mensagemErro))
                            {
                                mensagemErro += " Um ou mais relações não foram cadastrados. Consulte o suporte!";
                            }
                        }
                    }
                }

                if (mensagemErro.Length > 0)
                {
                    TempData["mensagemErro"] = mensagemErro;
                }
            }

            //CADASTRO DE RELAÇÃO CLIENTE LICENCIAMENTO AMBIENTAL
            if (!String.IsNullOrEmpty(hfListaLicenciamentoAmbiental))
            {
                List <RelacaoClienteLicenciamentoAmbiental> listaConcorrentes = JsonConvert.DeserializeObject <List <RelacaoClienteLicenciamentoAmbiental> >(hfListaLicenciamentoAmbiental);

                if (listaConcorrentes.Count > 0)
                {
                    foreach (RelacaoClienteLicenciamentoAmbiental item in listaConcorrentes)
                    {
                        if (item.tipo == Enumeradores.Tipo.New)
                        {
                            item.CodigoCliente = (int)cliente.Codigo;
                            if (!relacaoClienteLicenciamentoAmbientalBLL.insertRelacaoClienteLicenciamento(item, out mensagemErro))
                            {
                                mensagemErro += " Um ou mais relações não foram cadastrados. Consulte o suporte!";
                            }
                        }
                    }
                }

                if (mensagemErro.Length > 0)
                {
                    TempData["mensagemErro"] = mensagemErro;
                }
            }

            return(RedirectToAction("List"));
        }