public StatusAtendimentoViewModel Carregar(long atividadeId) { _statusAtendimentoViewModal.AtividadeId = atividadeId; var atividade = _atividadeServico.ObterPorId(atividadeId); _statusAtendimentoViewModal.StatusAtividade = _statusAtividadeServico.ObterStatusAtividadeTarefa(); _statusAtendimentoViewModal.Descricao = _statusAtividadeServico.ObterPorId(atividade.StatusAtividadeId).Descricao; return(_statusAtendimentoViewModal); }
public _LigacaoViewModel Carregar(long?id, long?atividadiId) { var ligacao = _servicoLigacao.ObterPor(id, atividadiId); if (ligacao == null) { var retorno = new _LigacaoViewModel(); retorno.ValidationResult.Add( new ValidationError("Nenhuma Ligação Encontrada com os parametros fornecidos")); return(retorno); } if (ligacao.Atividade.Atendimento == null) { var atendimento = _servicoAtendimento.AdicionarNovoAtendimento(1, "f712efbb-4646-4870-8f37-a687cb2e8978", ligacao.Atividade.MidiasId); if (atendimento != null) { ligacao.Atividade.Atendimento = atendimento; } } if (ligacao.TelefoneId.HasValue) { ligacao.Telefone = _servicoTelefone.ObterPorId(ligacao.TelefoneId.Value); } if (ligacao.Atividade.StatusAtividadeId > 0) { ligacao.Atividade.StatusAtividade = _statusAtividadeServico.ObterPorId(ligacao.Atividade.StatusAtividadeId); } var midias = _servicoMidia.ObterTodos(); var statusAtividades = ligacao.Receptiva == null ? _statusAtividadeServico.ObterTodos() : (ligacao.Receptiva.Value ? _statusAtividadeServico.ObterStatusAtividadeLigacaoReceptiva() : _statusAtividadeServico.ObterStatusAtividadeLigacaoAtiva()); return(new _LigacaoViewModel(ligacao, midias, statusAtividades)); }
public void AtualizarStatus(long atividadeId, int statusAtividadeId, string userId, int?midiaId) { var atividade = _repositorio.ObterPorId(atividadeId); var statusAtividade = _servicoStatusAtividade.ObterPorId(statusAtividadeId); if (atividade == null || statusAtividade == null) { return; } atividade.StatusAtividadeId = statusAtividadeId; if (midiaId.HasValue && midiaId > 0) { atividade.MidiasId = midiaId; } if (statusAtividade.FinalizaAtividade) { atividade.FinalizadoEm = DateTime.Now; atividade.FinalizadoPorUserId = userId; } _repositorio.Atualizar(atividade); if (atividade.AtividadeTipoId == 4) { var atividadeFilas = _servicoAtividadeFila.ObterPorAtividadeId(atividadeId); if (atividadeFilas == null) { return; } foreach (var atividadeFila in atividadeFilas) { if (!atividadeFila.SaiuDaFilaEm.HasValue) { _servicoAtividadeFila.AtualizaSaiuDaFilaEm(atividadeFila.Id); } } } }
public AtendimentoFormViewModel CarregarChat(long?chatId, long?atividadeId) { Chat chat = null; if (!chatId.HasValue) { if (atividadeId.HasValue) { chat = _chatServico.ObterPorAtividadeId((long)atividadeId); if (chat != null) { chatId = chat.Id; } } } var model = new AtendimentoFormViewModel { CanalId = (int)CanalValueObjects.Chat, NomeCanal = "Chat", ChatId = chatId, AtendimentoChat = true }; if (chat == null) { chat = _chatServico.ObterPorId((long)chatId); } if (chat == null) { model.ValidationResult.Add(new ValidationError("Nenhum Chat encontrado com o Id Informado")); return(model); } var atividade = _atividadeServico.ObterPorId(chat.AtividadeId); if (atividade == null) { model.ValidationResult.Add( new ValidationError("Nenhuma Atividade encontrado com o Id: " + chat.AtividadeId)); return(model); } var statusAtividade = _statusAtividadeServico.ObterPorId(atividade.StatusAtividadeId); var atendimento = _atendimentoServico.ObterPorId(atividade.AtendimentoId.Value); if (atendimento == null) { model.ValidationResult.Add( new ValidationError("Nenhum Atendimento encontrado com o Id: " + atividade.AtendimentoId)); return(model); } var chatSolicitacao = _chatSolicitacaoServico.ObterPorId(chat.ChatSolicitacaoId); if (chatSolicitacao != null) { model.Documento = chatSolicitacao.Documento; } model.ListaStatus = _statusAtividadeServico.ObterPor(model.CanalId, model.Sentido ?? "E", null).ToList(); model.Midias = new SelectList(_midiaServico.ObterPor(null, model.CanalId), "id", "nome"); model.Procotolo = atendimento.Protocolo; model.AtendimentoId = atendimento.Id; model.AtividadeId = atividade.Id; model.MidiaId = atendimento.MidiasId; model.PessoaFisicaId = atividade.PessoasFisicasId; model.PessoaJuridicaId = atividade.PessoasJuridicasId; model.AtendimentoFinalizado = atividade.FinalizadoEm.HasValue; model.Status = statusAtividade != null ? statusAtividade.Descricao : null; return(model); }
//protected ICollection<StatusAtividade> ObterStatusAtividades(int canal, string sentido) //{ // var listaStatus = new List<StatusAtividade>(); // if (string.IsNullOrEmpty(sentido)) // sentido = "s"; //return listaStatus; // sentido = sentido.ToLower(); // switch (canal) // { // case (int) CanalValueObjects.Telefone: // listaStatus = sentido == "s" // ? _statusAtividadeServico.ObterStatusAtividadeLigacaoAtiva().ToList() // : _statusAtividadeServico.ObterStatusAtividadeLigacaoReceptiva().ToList(); // break; // case (int) CanalValueObjects.Email: // listaStatus = sentido == "s" // ? _statusAtividadeServico.ObterStatusAtividadeEmail().ToList() // : _statusAtividadeServico.ObterStatusAtividadeEmailRecebido().ToList(); // break; // case (int) CanalValueObjects.Chat: // // Vai ser preciso implementar o Chat // break; // } // return listaStatus; //} public AtendimentoFormViewModel Atualizar(AtendimentoFormViewModel model) { switch (model.CanalId) { case (int)CanalValueObjects.Telefone: break; case (int)CanalValueObjects.Email: model.Email.Sentido = model.Sentido; model.Email.UsuarioId = model.UsuarioId; model.Email.StatusId = model.StatusId; model.Email = TratarEmail(model.Email); if (!model.Email.ValidationResult.IsValid) { model.ValidationResult = model.Email.ValidationResult; } model.AtividadeId = model.Email.AtividadeId; break; case (int)CanalValueObjects.Chat: break; default: model.ValidationResult.Add(new ValidationError("Canal informado inválido!")); return(model); } if (!model.ValidationResult.IsValid) { return(model); } var statusAtendimentos = _statusAtividadeServico.ObterPorId((int)model.StatusId); //Somente atualiza os dados de Atendimento if (!model.AtendimentoId.HasValue) { return(model); } var atendimento = _atendimento.ObterPorId((long)model.AtendimentoId); atendimento.MidiasId = model.MidiaId; atendimento.CanalOrigemId = model.CanalId = model.CanalId; if (statusAtendimentos.FinalizaAtendimento) { atendimento.FinalizadoEm = DateTime.Now; atendimento.FinalizadoPorUserId = model.UsuarioId; } if (atendimento.IsValid()) { _atendimento.Atualizar(atendimento); } return(model); }
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); } } } } } }
public ValidationResult AtualizarStatusAtividade(long ligacaoId, int statusAtividadeId, long atendimentoId, long atividadeId, string userId, int midiaId) { var retorno = new ValidationResult(); var statusAtividade = _servicoStatusAtividade.ObterPorId(statusAtividadeId); if (!string.IsNullOrEmpty(statusAtividade.EntidadeNecessaria)) { var podeAtualizar = _servicoStatusAtividade.VerificarEntidadeRequeridaAtendimento(atendimentoId, statusAtividadeId); if (!podeAtualizar) { retorno.Add( new ValidationError( string.Format( "Não é possível alterar o status desse atendimento, pois ainda não houve criação e/ou interação de uma: {0}", statusAtividade.EntidadeNecessaria))); return(retorno); } } if (!string.IsNullOrEmpty(statusAtividade.EntidadeNaoNecessaria)) { var podeAtualizar = _servicoStatusAtividade.VerificarEntidadeNaoRequeridaAtendimento(atendimentoId, statusAtividadeId); if (!podeAtualizar) { retorno.Add( new ValidationError( string.Format( "Não é possível alterar o status desse atendimento, pois houve criação e/ou interação de uma: {0}", statusAtividade.EntidadeNaoNecessaria))); return(retorno); } } var ligacao = _servicoLigacao.ObterPorId(ligacaoId); if (ligacao == null) { retorno.Add( new ValidationError( string.Format( "Não foi possível alterar o status desse atendimento, nenhuma Ligação retornada com o Id: {0}", ligacaoId))); return(retorno); } atividadeId = ligacao.AtividadeId; var atividade = _servicoAtividade.ObterPorId(atividadeId); if (atividade == null) { retorno.Add( new ValidationError( string.Format( "Não foi possível alterar o status desse atendimento, nenhuma Atividade retornada com o Id: {0}", atividadeId))); return(retorno); } _servicoAtividade.Atualizar(atividade, statusAtividade, userId, midiaId); var atendimento = _servicoAtendimento.ObterPorId(atendimentoId); if (atendimento != null) { if (statusAtividade.FinalizaAtendimento) { atendimento.FinalizadoEm = DateTime.Now; atendimento.FinalizadoPorUserId = userId; } atendimento.MidiasId = midiaId; _servicoAtendimento.Atualizar(atendimento); } ligacao.FinalizadoEm = DateTime.Now; _servicoLigacao.Atualizar(ligacao); return(retorno); }
public ReportFiltroViewModel CarregarFiltrosPorExtenso(ReportFiltroViewModel model) { //model.dsAtividadeTipo if (model.AtividadeTipoId != null && string.IsNullOrEmpty(model.DsAtividadeTipo)) { model.DsAtividadeTipo = _servicoAtividadeTipo.ObterPorId((int)model.AtividadeTipoId).Nome; } //model.dsCanal if (model.AtividadeTipoId != null && string.IsNullOrEmpty(model.DsCanal)) { model.DsCanal = _servicoAtividadeTipo.ObterPorId((int)model.AtividadeTipoId).Nome; } //model.dsCriadoPor if (!string.IsNullOrEmpty(model.CriadoPor) && string.IsNullOrEmpty(model.DsCriadoPor)) { model.DsCriadoPor = _servicoUsuario.ObterPorUserId(model.CriadoPor).Nome; } //model.dsCliente if (model.PessoaFisicaId != null || model.PessoaJuridicaId != null || model.PotenciaisClientesId != null && string.IsNullOrEmpty(model.DsCliente)) { if (model.PessoaFisicaId != null) { model.DsCliente = _servicoPessoaFisica.ObterPorId((long)model.PessoaFisicaId).Nome; } if (model.PessoaJuridicaId != null) { model.DsCliente = _servicoPessoaJuridica.ObterPorId((long)model.PessoaJuridicaId).RazaoSocial; } if (model.PotenciaisClientesId != null) { model.DsCliente = _servicoPotenciaisCliente.ObterPorId((long)model.PotenciaisClientesId).nome; } } //model.dsMidia if (model.MidiaId != null && string.IsNullOrEmpty(model.DsMidia) && model.MidiaId != 99999) { model.DsMidia = _servicoMidia.ObterPorId((int)model.MidiaId).Nome; } //model.dsOcorrenciaTipo if (model.OcorrenciaTipoId != null) { model.DsOcorrenciaTipo = _servicoOcorrenciaTipo.ObterPorId((int)model.OcorrenciaTipoId).Nome; } //model.dsOcorrenciaTratativa if (!string.IsNullOrEmpty(model.OcorrenciaTratativa) && string.IsNullOrEmpty(model.DsOcorrenciaTratativa)) { model.DsOcorrenciaTratativa = model.OcorrenciaTratativa.ToLower() == "c" ? "Criado" : "Tratado"; } //model.dsSentido if (!string.IsNullOrEmpty(model.Sentido) && string.IsNullOrEmpty(model.DsSentido)) { model.DsSentido = model.Sentido.ToLower() == "e" ? "Receptivo" : "Ativo"; } //model.dsStatusAtividade if (model.StatusAtividadeId != null && string.IsNullOrEmpty(model.DsStatusAtividade)) { model.DsStatusAtividade = _servicoStatusAtividade.ObterPorId((int)model.StatusAtividadeId).Descricao; } //model.dsStatusEntidade if (model.StatusEntidadeId != null && string.IsNullOrEmpty(model.DsStatusEntidade)) { model.DsStatusEntidade = _servicoStatusEntidade.ObterPorId((int)model.StatusEntidadeId).nome; } if (model.FilaId != null && string.IsNullOrEmpty(model.DsFila)) { model.DsFila = _servicoFila.ObterPorId((int)model.FilaId).Nome; } if (model.CanalId.HasValue && string.IsNullOrEmpty(model.DsCanal)) { model.DsCanal = _canalServico.ObterPorId((int)model.CanalId).Nome; } if (model.AtividadesNoPrazo.HasValue) { model.DsAtividadesNoPrazo = model.AtividadesNoPrazo.Value ? "Sim" : "Não"; } if (model.ProdutoId.HasValue && string.IsNullOrEmpty(model.DsProduto)) { model.DsProduto = _produtoServico.ObterPorId(model.ProdutoId.Value).nome; } return(model); }