Пример #1
0
        public OcorrenciaFormViewModel ObterPorId(long id, string userId, long?atendimentoId)
        {
            var ocorrencia = _servicoOcorrencia.ObterOcorrenciaCompletaPorId(id);

            if (ocorrencia != null)
            {
                var listaAnotacao = _servicoAnotacao.ObterPorOcorrenciaId(id);
                var listaContrato = _servicoContrato.ObterContratosNovaOcorrencia(ocorrencia.PessoaFisicaId,
                                                                                  ocorrencia.PessoaJuridicaId);
                var ddLsOcorrenciaTipo = ObterOcorrenciaTipoDdlViewModel(ocorrencia.OcorrenciasTiposId);
                var ocorrenciaTipo     = _servicoOcorrenciaTipo.ObterPorId(ocorrencia.OcorrenciasTiposId);
                var podeEditar         = string.IsNullOrEmpty(ocorrencia.ResponsavelPorAspNetUserId)
                    ? ocorrencia.CriadoPorUserId == userId
                    : ocorrencia.ResponsavelPorAspNetUserId == userId;

                if (podeEditar)
                {
                    if (ocorrencia.StatusEntidade != null)
                    {
                        if (ocorrencia.StatusEntidade.finalizador)
                        {
                            podeEditar = false;
                        }
                    }
                }

                var viewDinamicaModel = _viewDinamicaAppServico.Carregar("OCORRENCIA", "padrão", null, ocorrencia.Id,
                                                                         podeEditar);
                var statusEntidade = ocorrencia.StatusEntidadesId > 0
                    ? _servicoStatusEntidade.ObterPorId(ocorrencia.StatusEntidadesId)
                    : null;

                //DateTime? previsao = null;

                //if (ocorrenciaTipo != null)
                //{
                //    if (ocorrenciaTipo.TempoPrevistoAtendimento > 0)
                //    {
                //        previsao = ocorrencia.CriadoEm.AddMinutes(ocorrenciaTipo.TempoPrevistoAtendimento);
                //    }
                //}

                var usuarioFinalizador = string.Empty;

                if (!string.IsNullOrEmpty(ocorrencia.FinalizadoPorUserId))
                {
                    var finalizadoPor = _servicoUsuario.ObterPorUserId(ocorrencia.FinalizadoPorUserId);

                    if (finalizadoPor != null)
                    {
                        usuarioFinalizador = finalizadoPor.Nome;
                    }
                }


                var nomeCampoChave1  = _servicoConfiguracao.ObterNomeCampoChave1Ocorrencia();
                var valorCampoChave1 = _servicoConfiguracao.ObterValorPadraoCampoChave1Ocorrencia();
                var retorno          = new OcorrenciaFormViewModel(null, listaContrato, ocorrencia, listaAnotacao, statusEntidade,
                                                                   atendimentoId, ddLsOcorrenciaTipo, null, ocorrenciaTipo.VincularLocal, viewDinamicaModel, podeEditar,
                                                                   ocorrencia.PrevisaoInicial, ocorrencia.CampoChave1, nomeCampoChave1,
                                                                   string.IsNullOrEmpty(valorCampoChave1),
                                                                   usuarioFinalizador);


                ///*Regra colocada em 25/10/2018 de forma emergencial para abrir ocorrência dentro de um iframe somente para a AIG....*/
                //var tipoAberturaOcorrencia = _servicoConfiguracao.ObterTipoAberturaOcorrencia();
                //if (tipoAberturaOcorrencia != null)
                //    if (tipoAberturaOcorrencia.Valor == "IFRAME")
                //        retorno.CarregadaEmIframe = true;

                //Carregar Local
                var local = _servicoLocal.ObterLocalPorOcorrenciaId(ocorrencia.Id);
                if (local == null)
                {
                    return(retorno);
                }

                var nomeCidade = "";
                var nomeEstado = "";

                if (local.LocalOcorrencia.CidadesId != null)
                {
                    var cidade = _servicoCidadeServico.ObterPorId((int)local.LocalOcorrencia.CidadesId);
                    if (cidade != null)
                    {
                        nomeCidade = cidade.Nome;
                        nomeEstado = cidade.Uf;
                    }
                }

                var enderecoProduto = new EnderecoProdutoViewModel(local.LocalOcorrencia.Logradouro,
                                                                   local.LocalOcorrencia.Numero, local.LocalOcorrencia.Cep, local.LocalOcorrencia.Bairro,
                                                                   nomeCidade, nomeEstado, local.LocalOcorrencia.Complemento);
                var local2 = new LocalViewModel(local.nome, local.LocalTipo.Nome, local.logradouro, local.numero,
                                                local.bairro, local.cidade, local.estado, local.cep, local.telefone01, local.telefone02,
                                                local.telefone03, local.email01, local.email02, local.webSite, enderecoProduto.EnderecoCompleto,
                                                local.LocalOcorrencia.LocalTipoAtendimento.nome);
                retorno.Local = local2;

                return(retorno);
            }
            var validacaoRetorno = new ValidationResult();

            validacaoRetorno.Add(new ValidationError("Nenhuma ocorrência encontrada com os parâmetros informados."));
            return(new OcorrenciaFormViewModel {
                ValidationResult = validacaoRetorno
            });
        }