public AtividadeViewModel SalvarAtendimentoLigacao(AtividadeViewModel view) { var entidade = _atividadeServico.ObterPorId(view.id); entidade.PrevisaoDeExecucao = view.previsaoDeExecucao; entidade.Descricao = view.descricao; entidade.Titulo = view.titulo ?? ""; _atividadeServico.Atualizar(entidade); entidade = _atividadeServico.ObterPorId(view.id); if (view.filaID != null) { _atividadeServico.AtualizarResponsavel(entidade.Id, null, null); var listaAtividadeFila = _atividadeFilaServico.ObterPorAtividadeId(entidade.Id).Where(c => c.SaiuDaFilaEm == null); foreach (var item in listaAtividadeFila) { _atividadeFilaServico.AtualizaSaiuDaFilaEm(item.Id); } _atividadeFilaServico.Adicionar(new AtividadeFila(entidade.Id, Convert.ToInt32(view.filaID))); } var ligacao = _ligacaoServico.ObterPorId(view.LigacaoViewModel.id); ligacao.PessoaFisicaId = view.LigacaoViewModel.pessoaFisicaID; ligacao.PessoaJuridicaId = view.LigacaoViewModel.pessoaJuridicaID == 0 ? null : view.LigacaoViewModel.pessoaJuridicaID; ligacao.TelefoneId = view.LigacaoViewModel.telefoneID; ligacao.Sentido = view.LigacaoViewModel.sentido; var retornoLigacao = _ligacaoServico.Atualizar(ligacao); return(new AtividadeViewModel(entidade.Id, entidade.AtividadeTipoId, view.LigacaoViewModel.pessoaFisicaID, view.LigacaoViewModel.pessoaJuridicaID)); }
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); }