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")); }
public JsonResult ConfirmarItemRota(int codigoRota, int codigoPedido, int codigoInstrutor, DateTime dataInicioTreinamento, DateTime dataFimTreinamento, DateTime dataInicioColeta, DateTime dataFimColeta, int?codigoSala, int?codigoHotel, string observacao, string ObservacaoInstrutor, string nomeCliente, string horarioAtendimento, string[] listaEmails) { string mensagemErro; ParceiroBLL parceiroBLL = new ParceiroBLL(); ItemPedidoBLL itemPedidoBLL = new ItemPedidoBLL(); var usuario = new Funcionario(Convert.ToInt32(HttpContext.Request.Cookies["CODIGO_USUARIO"])); //ATUALIZAR PEDIDOS COM OS DADOS INFORMADOS CabecalhoPedidoBLL cabecalhoPedidoBLL = new CabecalhoPedidoBLL(); CabecalhoPedido cab = cabecalhoPedidoBLL.GetPedidoByCodigo(codigoPedido, out mensagemErro); if (cab != null) { cab.FuncionarioInstrutor = new Funcionario(codigoInstrutor); cab.DataInicioTreinamento = dataInicioTreinamento; cab.DataFinalTreinamento = dataFimTreinamento; if (codigoSala.HasValue && codigoSala > 0) { cab.ParceiraSalaTreinamento = parceiroBLL.getParceiros(codigoSala, null, null, null, null, out mensagemErro).First(); } if (codigoHotel.HasValue && codigoHotel > 0) { cab.ParceiroHotel = parceiroBLL.getParceiros(codigoHotel, null, null, null, null, out mensagemErro).First(); } cab.InfoTreinamento = ObservacaoInstrutor; cab.StatusNegociacao = new StatusNegociacao() { CodigoStatus = 13 }; //ENVIAR PARA AGUARDANDO GERAÇÃO DE DOCUMENTOS if (!cabecalhoPedidoBLL.updateCabecalhoPedido(cab, out mensagemErro)) { return(Json(new { sucesso = false, mensagemErro = mensagemErro })); } //Grava Notificação //NotificacoesBLL notificacoesBLL = new NotificacoesBLL(); //Notificacoes notificacao = new Notificacoes(); //notificacao.FuncionarioCriador = usuario; //notificacao.FuncionarioDestino = new Funcionario() { Codigo = cab.FuncionarioVendedor.Codigo }; //notificacao.Mensagem = "Pedido " + cab.Codigo + " incluído na rota!"; //notificacoesBLL.insertNotificacao(notificacao, out mensagemErro); //ATUALIZA ITEM ROTA ItemRota itemRota = ItemRotaBLL.selectItensRota(codigoRota, out mensagemErro).Where(x => x.CabecalhoPedido.Codigo == codigoPedido).FirstOrDefault(); if (itemRota != null) { itemRota.Aprovado = true; ItemRotaBLL.updateRota(itemRota, out mensagemErro); } } else { return(Json(new { sucesso = false, mensagemErro = mensagemErro })); } //BUSCAR ITENS PEDIDO var listaItens = itemPedidoBLL.getItemPedido(null, (int)cab.Codigo, out mensagemErro); var listaItensConcat = ""; listaItensConcat = "<ul>"; foreach (ItemPedido item in listaItens) { listaItensConcat += "<li>" + item.Produto.Descricao + "</li>"; } listaItensConcat += "</ul>"; //MONTAR LISTA COM HORÁRIOS string listHorarios = "<ul>"; foreach (string item in horarioAtendimento.Split(new string[] { "###" }, StringSplitOptions.None)) { //if (Convert.ToDateTime(item.Substring(0, 10)).Date >= dataInicioTreinamento.Date && Convert.ToDateTime(item.Substring(0, 10)).Date <= dataFimTreinamento.Date) //{ // listHorarios += "<li>" + item + " (Treinamento) " + "</li>"; //} //else //{ // listHorarios += "<li>" + item + " (Coleta de dados) " + "</li>"; //} listHorarios += "<li>" + item + "</li>"; } listHorarios += "</ul>"; //MONTAR EMAIL CLIENTE string templateEmail = System.IO.File.ReadAllText("./wwwRoot/Templates/TemplateEmailRoteirizacao.html"); templateEmail = templateEmail.Replace("@nomeCliente", nomeCliente) .Replace("@razaoSocial", cab.Cliente.RazaoSocial) .Replace("@instrutor", cab.FuncionarioInstrutor.Nome) .Replace("@servicos", listaItensConcat) .Replace("@dataAtendimento", listHorarios) .Replace("@observacao", "<strong>2º Obs.:</strong> " + observacao) .Replace("@localAtendimento", (cab.ParceiraSalaTreinamento == null || cab.ParceiraSalaTreinamento.Codigo == 0 ? "Posto" : cab.ParceiraSalaTreinamento.Descricao + " - " + cab.ParceiraSalaTreinamento.Endereco + "," + cab.ParceiraSalaTreinamento.Cidade.Descricao + "-" + cab.ParceiraSalaTreinamento.Cidade.Estado)); if (listaItens.Where(x => x.Produto.CategoriaProduto.Codigo == 1).Count() > 0) { templateEmail = templateEmail.Replace("@infoAdicionais", @"<strong>Informações Adicionais:</strong> <br /> <ul> <li>A Cia do Treinamento se resguarda do direto de não realizar os treinamentos, caso o número mínimo de participantes por turma não seja atingida.</li> <br /> <li>A Cia do Treinamento se resguarda do direito de somente encaminhar o certificado dos alunos que comparecerem integralmente aos treinamentos.</li> <br /> <li>Não será permitido ao inscrito, troca de horário no decorrer do treinamento.</li> <br /> <li>Caso o inscrito não compareça ao Treinamento o valor da inscrição não será devolvido. Deverá ser feito uma nova inscrição e um novo pagamento.</li> </ul>" ); } else { templateEmail = templateEmail.Replace("@infoAdicionais", ""); } //INCLUIR RELATO string relatoAtendimento = System.IO.File.ReadAllText("./wwwRoot/Templates/TemplateRelatoRoteirizacao.txt"); relatoAtendimento = relatoAtendimento.Replace("@nomeCliente", nomeCliente) .Replace("@razaoSocial", cab.Cliente.RazaoSocial) .Replace("@instrutor", cab.FuncionarioInstrutor.Nome) .Replace("@servicos", listaItensConcat) .Replace("@dataAtendimento", horarioAtendimento) .Replace("@observacao", "2º Obs.: " + observacao) .Replace("@localAtendimento", (cab.ParceiraSalaTreinamento == null || cab.ParceiraSalaTreinamento.Codigo == 0 ? "Posto" : cab.ParceiraSalaTreinamento.Descricao + " - " + cab.ParceiraSalaTreinamento.Endereco + "," + cab.ParceiraSalaTreinamento.Cidade.Descricao + "-" + cab.ParceiraSalaTreinamento.Cidade.Estado)); if (!String.IsNullOrEmpty(relatoAtendimento)) { Atendimentos atendimento = new Atendimentos(); atendimento.CodigoPedido = (int)cab.Codigo; atendimento.DataRegistro = DateTime.Now; atendimento.Descricao = relatoAtendimento; atendimento.Funcionario = usuario; AtendimentosBLL atendimentosBLL = new AtendimentosBLL(); if (!atendimentosBLL.insertAtendimento(atendimento, out mensagemErro)) { return(Json(new { sucesso = false, mensagemErro = mensagemErro })); } } if (listaEmails.Length > 0) { string emails = ""; for (var i = 0; i < listaEmails.Length; i++) { emails += listaEmails[i] + ","; } emails += "[email protected]," + cab.FuncionarioVendedor.Email; //ENVIAR EMAIL PARA O CLIENTE string Assunto = "A/C " + nomeCliente + " - Confirmação de Atendimento a " + cab.Cliente.Cidade.Descricao + " - " + cab.Cliente.Cidade.Estado + " / Cia do Treinamento"; string retornoEmail = Uteis.SendMailRoteirizacao(usuario.Login, emails, Assunto, templateEmail, usuario.Email); } return(Json(new { sucesso = true })); }