protected void CarregarAtividadeLigacao(AtividadeNewViewModel model, long atividadeId) { var ligacao = _ligacaoServico.BuscarPorAtividadeId(atividadeId); if (ligacao != null) { if (!string.IsNullOrEmpty(ligacao.NumeroOriginal)) { model.Ligacao.numeroOriginal = ligacao.NumeroOriginal; } model.Ligacao.sentido = ligacao.Sentido == "E" ? "Ligação Receptiva" : "Ligação Ativa"; model.Ligacao.telefoneID = ligacao.TelefoneId; model.Ligacao.ligacaoID = ligacao.Id; if (ligacao.TelefoneId != null) { var telefone = _telefoneServico.ObterPorId((long)ligacao.TelefoneId); if (telefone != null) { model.Ligacao.telefoneFormatado = telefone.ToString(); } } else { model.Ligacao.telefoneFormatado = model.Ligacao.numeroOriginal; } } }
public AtividadeNewViewModel Carregar(string userId, long?pessoaFisicaId, long?pessoaJuridicaId, long?potencialClientesId, long?ocorrenciaId) { var model = new AtividadeNewViewModel { pessoaFisicaID = pessoaFisicaId, pessoaJuridicaID = pessoaJuridicaId, potencialClienteID = potencialClientesId, ocorrenciaID = ocorrenciaId, criadoPor = userId }; var statusAtividadeLigacao = _statusAtividadeServico.ObterStatusAtividadeLigacaoReceptiva(); if (statusAtividadeLigacao != null) { model.listaStatusAtividade = statusAtividadeLigacao.ToList(); } var filas = _filaServico.ObterFilasLigacao(); if (filas != null) { model.listaFila = new SelectList(filas, "id", "nome"); } var canal = _canalServico.ObterCanalTelefone(); model.listaMidia = new SelectList(_midiaServico.ObterPor(null, canal.Id), "id", "nome"); return(model); }
protected void CarregarAtividadeTarefa(AtividadeNewViewModel model, long atividadeId) { var tarefa = _tarefaServico.BuscarPorAtividadeId(atividadeId); if (tarefa != null) { model.Tarefa.TarefaId = tarefa.Id; model.Tarefa.CriadoEm = tarefa.CriadoEm; model.Tarefa.AtividadeId = tarefa.AtividadeId; model.Tarefa.Descricao = tarefa.Descricao; model.Tarefa.ResponsavelPorUserId = tarefa.ResponsavelPorUserId; model.listaStatusAtividade = _statusAtividadeServico.ObterStatusAtividadeTarefa(); } }
protected void CarregarAtividadeEmail(AtividadeNewViewModel model, Atividade atividade, string userId) { var email = _emailServico.ObterEmailCompletoPor(null, atividade.Id); if (email == null) { return; } var envolvidos = _atividadeParteEnvolvidaServico.ObterPorAtividadeId(atividade.Id); model.Email = new EmailViewModel(email.AtividadeId, email.Id, email.CorpoDoEmail, email.Texto, email.Assunto, email.CriadoEm, email.Atividade.CriadoEm, envolvidos, email.Sentido); if (!string.IsNullOrEmpty(email.Sentido)) { model.listaStatusAtividade = email.Sentido.Trim().ToLower() == "s" ? _statusAtividadeServico.ObterStatusAtividadeEmailEnviado() : _statusAtividadeServico.ObterStatusAtividadeEmailRecebido(); } var canal = _canalServico.ObterPorNome("email"); if (canal != null) { model.listaMidia = new SelectList(_midiaServico.ObterPor(null, canal.FirstOrDefault().Id), "id", "nome"); } if (email.Atividade.AtendimentoId != null) { return; } var atendimento = new Atendimento(userId, _atendimentoServico.GerarNumeroProtocolo(DateTime.Now), canal != null ? canal.FirstOrDefault().Id : (int?)null, null); _atendimentoServico.Adicionar(atendimento); atividade.Atendimento = atendimento; atividade.AtendimentoId = atendimento.Id; model.atendimentoID = atendimento.Id; _atividadeServico.Atualizar(atividade); var atendimentoAtividade = new AtendimentoAtividade(atividade.Id, atendimento.Id); _atendimentoAtividadeServico.Adicionar(atendimentoAtividade); }
public AtividadeNewViewModel SalvarAtividade(AtividadeNewViewModel model, string userId) { switch (model.atividadeTipoID) { case 3: SalvarAtividadeLigacao(model, userId); break; case 4: SalvarAtividadeEmail(model, userId); break; case 5: SalvarAtividadeTarefa(model, userId); break; } return(model); }
protected void CarregarAtividadeChat(AtividadeNewViewModel model, Atividade atividade, string userId) { var where = new PredicateGroup { Operator = GroupOperator.And, Predicates = new List <IPredicate>() }; where.Predicates.Add(Predicates.Field <Chat>(f => f.AtividadeId, Operator.Eq, atividade.Id)); var chatAtividade = _chatServico.ObterPor(where); if (!chatAtividade.Any()) { return; } var chat = _chatServico.ObterPorId(chatAtividade.FirstOrDefault().Id); if (chat.Id <= 0) { return; } model.Chat = new ChatViewModel(atividade.Id, chat.Id, atividade.AtendimentoId, atividade.PessoasJuridicasId, atividade.PessoasFisicasId, atividade.StatusAtividadeId); model.listaStatusAtividade = _statusAtividadeServico.ObterStatusAtividadeChat(); if (atividade.AtendimentoId != null) { return; } var canal = _canalServico.ObterPorNome("CHAT"); var atendimento = new Atendimento(userId, _atendimentoServico.GerarNumeroProtocolo(DateTime.Now), canal != null ? canal.FirstOrDefault().Id : (int?)null, null); _atendimentoServico.Adicionar(atendimento); atividade.Atendimento = atendimento; atividade.AtendimentoId = atendimento.Id; model.atendimentoID = atendimento.Id; _atividadeServico.Atualizar(atividade); }
public AtividadeNewViewModel Editar(long id, string userId, bool linkFila) { if (linkFila) //Limpando Atividade da Fila atual { _atividadeServico.AtualizarDadosAtividadeEAtividadeFila(userId, id); } var model = new AtividadeNewViewModel(); var atividade = _atividadeServico.ObterPorIdDal(id); if (atividade != null) { if (atividade.AtividadeTipoId == 3) { var clienteTratativa = _atividadeParteEnvolvidaServico.BuscarUltimoClienteTratativa(atividade.Id); if (clienteTratativa != null) { atividade.PessoasFisicasId = clienteTratativa.PessoasFisicasId; atividade.PessoasJuridicasId = clienteTratativa.PessoasJuridicasId; } else { atividade.PessoasFisicasId = null; atividade.PessoasJuridicasId = null; } } model = Carregar(atividade.CriadoPorUserId, atividade.PessoasFisicasId, atividade.PessoasJuridicasId, atividade.PotenciaisClientesId, atividade.OcorrenciaId); var clienteContato = _atividadeParteEnvolvidaServico.BuscarClienteContato(atividade.Id); if (clienteContato != null) { if (clienteContato.PessoasFisicasId.HasValue) { model.ContatoPessoaFisicaId = (long)clienteContato.PessoasFisicasId; } else if (clienteContato.PessoasJuridicasId.HasValue) { model.ContatoPessoaJuridicaId = (long)clienteContato.PessoasJuridicasId; } } model.id = atividade.Id; model.atendimentoID = atividade.AtendimentoId; model.atividadeFinalizada = atividade.FinalizadoEm != null; model.atividadeTipoID = (int)atividade.AtividadeTipoId; model.contratoID = atividade.ContratoId; model.criadoEm = atividade.CriadoEm; model.descricao = atividade.Descricao; model.midiaID = atividade.MidiasId; model.previsaoDeExecucao = atividade.PrevisaoDeExecucao; model.statusAtividadeID = atividade.StatusAtividadeId; model.titulo = atividade.Titulo; model.UsuarioId = atividade.UsuarioId; model.finalizadoEm = atividade.FinalizadoEm; CarregarAtividadeLigacao(model, atividade.Id); CarregarAtividadeTarefa(model, atividade.Id); CarregarAtividadeEmail(model, atividade, userId); CarregarAtividadeChat(model, atividade, userId); if (model.Ligacao.sentido.ToLower().Contains("ativa")) { model.listaStatusAtividade = _statusAtividadeServico.ObterStatusAtividadeLigacaoAtiva(); } var listaAtividadesFilas = _atividadeFilaServico.ObterPorAtividadeId(atividade.Id).Where(c => c.SaiuDaFilaEm == null); if (listaAtividadesFilas.Any()) { model.filaID = listaAtividadesFilas.OrderByDescending(c => c.EntrouNaFilaEm).FirstOrDefault().FilaId; } if (atividade.AtendimentoId != null) { var atendimento = _atendimentoServico.ObterPorId((long)atividade.AtendimentoId); if (atendimento != null) { model.protocolo = atendimento.Protocolo; if (atendimento.MidiasId.HasValue && atendimento.MidiasId != 0) { var midia = _midiaServico.ObterPorId((int)atendimento.MidiasId); if (midia != null) { model.midia = midia.Nome; model.midiaID = (int)midia.Id; } } } } if (atividade.MidiasId != null && !model.midiaID.HasValue) { var midia = _midiaServico.ObterPorId((int)atividade.MidiasId); if (midia != null) { model.midia = midia.Nome; } } if (atividade.OcorrenciaId != null) { var ocorrencia = _ocorrenciaServico.ObterPorId((long)atividade.OcorrenciaId); if (ocorrencia != null) { if (!model.pessoaFisicaID.HasValue) { model.pessoaFisicaID = ocorrencia.PessoaFisicaId; } if (!model.pessoaJuridicaID.HasValue) { model.pessoaJuridicaID = ocorrencia.PessoaJuridicaId; } var ocorrenciaTipo = _ocorrenciaTipoServico.ObterPorId(ocorrencia.OcorrenciasTiposId); if (ocorrenciaTipo != null) { model.referente = ocorrenciaTipo.NomeExibicao; } } } var statusAtividade = _statusAtividadeServico.ObterPorId(atividade.StatusAtividadeId); if (statusAtividade != null) { model.nomeStatusAtividade = statusAtividade.Descricao; model.atividadeFinalizada = statusAtividade.FinalizaAtividade; } var criadoPor = _usuarioServico.ObterPorUserId(atividade.CriadoPorUserId); if (criadoPor != null) { model.criadoPor = criadoPor.Nome.ToUpper(); } var responsavel = _usuarioServico.ObterPorUserId(string.IsNullOrEmpty(atividade.ResponsavelPorUserId) ? atividade.CriadoPorUserId : atividade.ResponsavelPorUserId); if (responsavel != null) { model.responsavel = responsavel.Nome.ToUpper(); } model.podeEditar = string.IsNullOrEmpty(atividade.ResponsavelPorUserId) ? atividade.CriadoPorUserId == userId : atividade.ResponsavelPorUserId == userId; if (!string.IsNullOrEmpty(atividade.FinalizadoPorUserId)) { var usuarioFinalizador = _usuarioServico.ObterPorUserId(atividade.FinalizadoPorUserId); if (usuarioFinalizador != null) { model.UsuarioFinalizador = usuarioFinalizador.Nome; } } } else { model.ValidationResult.Add( new DomainValidation.Validation.ValidationError( "Não foram encontradas atividades para o ID informado.")); } return(model); }
protected void SalvarAtividadeTarefa(AtividadeNewViewModel model, string userId) { //Ainda não implementado; }
protected void SalvarAtividadeLigacao(AtividadeNewViewModel model, string userId) { if (model.id == null) // Adicionar { if (model.statusAtividadeID == null) { model.statusAtividadeID = _statusAtividadeServico.ObterStatusAtividadePadraoParaLigacao().Id; } int?canalId = null; var canal = _canalServico.ObterCanalTelefone(); if (canal.ValidationResult.IsValid) { canalId = canal.Id; } if (model.atendimentoID == null) { var atendimento = _atendimentoServico.AdicionarNovoAtendimento(canalId, userId, null); if (atendimento.ValidationResult.IsValid) { model.atendimentoID = atendimento.Id; } } var atividade = new Atividade(userId, (int)model.statusAtividadeID, model.atividadeTipoID, model.titulo, model.pessoaFisicaID, model.pessoaJuridicaID, model.potencialClienteID, model.ocorrenciaID, model.descricao, model.atendimentoID, model.midiaID, null, null, null, model.previsaoDeExecucao, canalId, userId) { PrevisaoDeExecucao = model.previsaoDeExecucao }; model.ValidationResult = _atividadeServico.Adicionar(atividade); if (model.ValidationResult.IsValid) { model.id = atividade.Id; var ligacao = new Ligacao(atividade.PessoasFisicasId, atividade.PessoasJuridicasId, atividade.PotenciaisClientesId, userId, model.Ligacao.sentido, atividade.Id, model.Ligacao.telefoneID, null, null, null); model.ValidationResult = _ligacaoServico.Adicionar(ligacao); if (model.ValidationResult.IsValid) { if (model.filaID != null) { ColocarAtividadeFila((int)model.filaID, atividade.Id); } } _servicoAtividadeParteEnvolvidaServico.Adicionar(new AtividadeParteEnvolvida(atividade.Id, atividade.PessoasFisicasId, atividade.PessoasJuridicasId, null, userId, TipoParteEnvolvida.ClienteTratado.Value, null, null)); } } else //Atualizar { var atividade = _atividadeServico.ObterPorId((long)model.id); if (atividade != null && atividade.FinalizadoEm == null) { if (model.statusAtividadeID != null) { var statusAtividade = _statusAtividadeServico.ObterPorId((long)model.statusAtividadeID); if (statusAtividade != null) { if (statusAtividade.FinalizaAtividade) { atividade.FinalizadoEm = DateTime.Now; atividade.FinalizadoPorUserId = userId; } } atividade.StatusAtividadeId = (int)model.statusAtividadeID; } atividade.Descricao = model.descricao; if (model.atendimentoID != null) { atividade.AtendimentoId = (long)model.atendimentoID; } _atividadeServico.Atualizar(atividade); } if (model.dataAgendamento != null) { if (model.statusAtividadeID == null) { model.statusAtividadeID = _statusAtividadeServico.ObterStatusAtividadeLigacaoReceptiva().FirstOrDefault().Id; } var novaAtividade = new Atividade() { PessoasFisicasId = atividade.PessoasFisicasId, PessoasJuridicasId = atividade.PessoasJuridicasId, PotenciaisClientesId = atividade.PotenciaisClientesId, OcorrenciaId = atividade.OcorrenciaId, CriadoPorUserId = userId, ContratoId = atividade.ContratoId, Descricao = model.descricao, MidiasId = atividade.MidiasId, StatusAtividadeId = _statusAtividadeServico.ObterStatusAtividadePadraoParaLigacao().Id, AtividadeTipoId = 3, Titulo = atividade.Titulo, //atendimentoID = model.atendimentoID, PrevisaoDeExecucao = model.dataAgendamento }; if (model.agendamentoPrivado != null) { if ((bool)model.agendamentoPrivado) { novaAtividade.ResponsavelPorUserId = novaAtividade.CriadoPorUserId; } } model.ValidationResult = _atividadeServico.Adicionar(novaAtividade); if (model.ValidationResult.IsValid) { var ligacao = _ligacaoServico.BuscarPorAtividadeId(atividade.Id); model.id = novaAtividade.Id; var novaligacao = new Ligacao(novaAtividade.PessoasFisicasId, novaAtividade.PessoasJuridicasId, novaAtividade.PotenciaisClientesId, userId, "S", novaAtividade.Id, ligacao.TelefoneId, ligacao.NumeroOriginal, null, null); model.ValidationResult = _ligacaoServico.Adicionar(novaligacao); if (model.ValidationResult.IsValid) { var filaID = _atividadeFilaServico.ObterUltimoVinculoPraAtividade(atividade.Id); if (filaID != null) { ColocarAtividadeFila(filaID.FilaId, novaAtividade.Id, novaAtividade.ResponsavelPorUserId); } } } } } }