public ReceptivoViewModel Carregar(long atividadeId, bool novoClienteTratativa) { var model = new ReceptivoViewModel(); var ligacao = _servicoLigacao.BuscarLigacaoCompleta(null, atividadeId); long?tratativaPessoaJuriciaId = null; long?tratativaPessoaFisicaId = null; var nomeClienteContato = string.Empty; if (ligacao == null) { model.ValidationResult.Add( new ValidationError("Nenhuma Atividade retornada com o Id informado: " + atividadeId)); return(model); } if (!ligacao.ValidationResult.IsValid) { foreach (var erro in ligacao.ValidationResult.Erros) { model.ValidationResult.Add(erro); } return(model); } if (!novoClienteTratativa) { var clienteTratativa = _servicoAtividadeParteEnvolvida.BuscarUltimoClienteTratativa(atividadeId); if (clienteTratativa != null) { tratativaPessoaFisicaId = clienteTratativa.PessoasFisicasId; tratativaPessoaJuriciaId = clienteTratativa.PessoasJuridicasId; } } var statuAtividade = _servicoStatusAtividade.ObterPorId(ligacao.Atividade.StatusAtividadeId); var clienteContato = _servicoAtividadeParteEnvolvida.BuscarClienteContato(atividadeId); if (clienteContato != null) { if (clienteContato.PessoasFisicasId.HasValue) { var pessoaFisica = _servicoPessoaFisica.ObterPorId((long)clienteContato.PessoasFisicasId); if (pessoaFisica != null) { nomeClienteContato = pessoaFisica.Nome; } } else if (clienteContato.PessoasJuridicasId.HasValue) { var pessoaJuridica = _servicoPessoaJuridica.ObterPorId((long)clienteContato.PessoasJuridicasId); if (pessoaJuridica != null) { nomeClienteContato = pessoaJuridica.RazaoSocial; } } } var canal = _canalServico.ObterCanalTelefone(); var listaMidias = new SelectList(_servicoMidia.ObterPor(null, canal.Id), "id", "nome"); var listaStatusAtividade = new SelectList(_servicoStatusAtividade.ObterStatusAtividadeLigacaoReceptiva(), "id", "descricao"); return(new ReceptivoViewModel((long)ligacao.Atividade.AtendimentoId, ligacao.Id, ligacao.AtividadeId, ligacao.Documento, ligacao.NumeroOriginal, ligacao.Atividade.Atendimento.Protocolo, ligacao.Atividade.MidiasId, ligacao.Atividade.PessoasFisicasId, ligacao.Atividade.PessoasJuridicasId, tratativaPessoaFisicaId, tratativaPessoaJuriciaId, listaMidias, listaStatusAtividade, nomeClienteContato, false, statuAtividade.FinalizaAtividade, statuAtividade.Descricao)); }
public ReceptivoViewModel NovaLigacaoReceptiva(string userId, string informacaoUra, string numeroTelefone, string codLigacao, string terminal) { var statusUra = false; var ligacao = new Ligacao(); if (!string.IsNullOrEmpty(numeroTelefone)) { ligacao = _servicoLigacao.ObterLigacaoReceptivaUra(numeroTelefone); statusUra = true; if (ligacao.Id > 0) { if (ligacao.Atividade != null) { if (ligacao.Atividade.Id > 0) { if (ligacao.Atividade.Atendimento != null) { if (ligacao.Atividade.Atendimento.Id > 0) { _servicoLigacao.AtualizarLigacaoGeradorProtocoloUra(userId, ligacao.Id, ligacao.Atividade.Id, ligacao.Atividade.Atendimento.Id); } } } } } } if (ligacao.Id == 0) { ligacao = _servicoLigacao.AdicionarLigacaoReceptiva(userId, numeroTelefone, null); } if (ligacao.ValidationResult.IsValid) { if (!string.IsNullOrEmpty(ligacao.Documento)) { informacaoUra = ligacao.Documento; } var canalTelefoneId = Convert.ToInt32(CanalEnum.Telefone); var listaMidias = new SelectList(_servicoMidia.ObterPor(null, canalTelefoneId), "id", "nome"); var listaStatusAtividade = new SelectList(_servicoStatusAtividade.ObterStatusAtividadeLigacaoReceptiva(), "id", "descricao"); if (ligacao.Atividade == null || ligacao.Atividade.AtendimentoId == null) { return(null); } if (ligacao.Atividade.Atendimento != null) { return(new ReceptivoViewModel((long)ligacao.Atividade.AtendimentoId, ligacao.Id, ligacao.AtividadeId, informacaoUra, numeroTelefone, ligacao.Atividade.Atendimento.Protocolo, null, null, null, null, null, listaMidias, listaStatusAtividade, null, statusUra, false, null)); } } else { var retorno = new ReceptivoViewModel { ValidationResult = ligacao.ValidationResult }; return(retorno); } return(null); }