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")); }