Ejemplo n.º 1
0
        public EnderecoProdutoViewModel Pesquisar(EnderecoProdutoViewModel model)
        {
            model.ListaPesquisaLocal = new List <LocalListaViewModel>();

            if (model.SegmentoID == null)
            {
                return(model);
            }

            var segmento = _servicoCampoDinamicoOpcao.ObterPorId((long)model.SegmentoID);

            if (segmento == null)
            {
                return(model);
            }

            var locais = _servicoLocal.Pesquisar(segmento.Nome, (double)model.Latitude,
                                                 (double)model.Longitude);
            var locaisLista = new List <LocalListaViewModel>();

            if (locais != null)
            {
                locaisLista.AddRange(locais.Select(local => new LocalListaViewModel(local)));
            }
            model.ListaPesquisaLocal = locaisLista;
            return(model);
        }
Ejemplo n.º 2
0
        public EnderecoProdutoViewModel ObterLocalTiposAtendimento(EnderecoProdutoViewModel model)
        {
            //Mudar
            if (model.LocalID == null)
            {
                return(model);
            }
            var local = _servicoLocal.ObterPorId((long)model.LocalID);

            model.EnderecoLocal        = local.nome.ToUpper();
            model.LocalTipoAtendimento = new LocaTipoAtendimentoViewModel(local.id,
                                                                          _servicoLocalAtendimentoTipo.ObterLocalTiposAtendimentoPorLocalId(local.id));

            return(model);
        }
Ejemplo n.º 3
0
        public LocalOcorrenciaViewModel ObterEnderecoEntidadeSelecionada(EnderecoProdutoViewModel model)
        {
            var retorno = new LocalOcorrenciaViewModel();

            if (model.EnderecoID != null)
            {
                long entidadeId;
                var  tipoEntidade = model.EnderecoID.Substring(0, 2);
                long.TryParse(model.EnderecoID.Substring(3, (model.EnderecoID.Length - 3)), out entidadeId);
                var    segmentos = _servicoCampoDinamicoOpcao.ObterPor("CTRPRODUT", "Padrão", "DL", "Segmento");
                long?  segmentoId = null;
                string cidade = "", estado = "";
                //double latitude, longitude;

                if (model.ContratoID != null)
                {
                    var valorPreenchido = _servicoCampodDinamicoPreenchido.ObterCampoDinamicoPreenchido("CTRPRODUT",
                                                                                                        "Padrão", "Segmento", (long)model.ContratoID);
                    if (valorPreenchido != null)
                    {
                        segmentoId = valorPreenchido.CamposDinamicosOpcoesId;
                    }
                }

                retorno.SegmentoId     = segmentoId;
                retorno.ListaSegmentos = new SelectList(segmentos, "id", "nome");

                var chaveGoogleApi = Chave();
                if (!chaveGoogleApi)
                {
                    retorno.ValidationResult.Add(new ValidationError(_chaveGoogleApi));
                    return(retorno);
                }

                DadosEnderecoGoogle retornoEnderecoGoogleApi;
                switch (tipoEntidade.ToLower())
                {
                case "pf":
                    var pessoaFisica = _servicoPessoaFisica.ObterPorId(entidadeId);
                    if (pessoaFisica.CidadeId != null)
                    {
                        var Cidade = _servicoCidade.ObterPorId((long)pessoaFisica.CidadeId);
                        if (Cidade != null)
                        {
                            cidade = Cidade.Nome;
                            estado = Cidade.Uf;
                        }
                    }

                    retornoEnderecoGoogleApi = GoogleAPI.ObterLatitudeLongitudePorEndereco(_chaveGoogleApi,
                                                                                           pessoaFisica.CodigoPostal, pessoaFisica.Logradouro, pessoaFisica.Numero, pessoaFisica.Bairro,
                                                                                           cidade, estado);

                    //latitude = GoogleAPI.ObterLatitudeLongitudePorEndereco(_chaveGoogleApi,
                    //    pessoaFisica.CodigoPostal, pessoaFisica.Logradouro, pessoaFisica.Numero, pessoaFisica.Bairro,
                    //    cidade, estado, out longitude);

                    if (retornoEnderecoGoogleApi.ValidationResult.IsValid &&
                        retornoEnderecoGoogleApi.Enderecos.Any())
                    {
                        retorno.EnderecoProdutoViewModel = new EnderecoProdutoViewModel(model, pessoaFisica, cidade,
                                                                                        estado, segmentos, segmentoId,
                                                                                        retornoEnderecoGoogleApi.Enderecos.FirstOrDefault().Latidude.Value,
                                                                                        retornoEnderecoGoogleApi.Enderecos.FirstOrDefault().Longitude.Value);
                    }
                    else
                    {
                        retorno.ValidationResult = retornoEnderecoGoogleApi.ValidationResult;
                    }

                    break;

                case "pj":
                    var pessoaJuridica = _servicoPessoaJuridica.ObterPorId(entidadeId);
                    if (pessoaJuridica.CidadeId != null)
                    {
                        var Cidade = _servicoCidade.ObterPorId((long)pessoaJuridica.CidadeId);
                        if (Cidade != null)
                        {
                            cidade = Cidade.Nome;
                            estado = Cidade.Uf;
                        }
                    }

                    retornoEnderecoGoogleApi = GoogleAPI.ObterLatitudeLongitudePorEndereco(_chaveGoogleApi,
                                                                                           pessoaJuridica.CodigoPostal, pessoaJuridica.Logradouro, pessoaJuridica.Numero,
                                                                                           pessoaJuridica.Bairro, cidade, estado);

                    //latitude = GoogleAPI.ObterLatitudeLongitudePorEndereco(_chaveGoogleApi,
                    //    pessoaJuridica.CodigoPostal, pessoaJuridica.Logradouro, pessoaJuridica.Numero, pessoaJuridica.Bairro, cidade, estado, out longitude);

                    if (retornoEnderecoGoogleApi.ValidationResult.IsValid &&
                        retornoEnderecoGoogleApi.Enderecos.Any())
                    {
                        retorno.EnderecoProdutoViewModel = new EnderecoProdutoViewModel(model, pessoaJuridica,
                                                                                        cidade,
                                                                                        estado, segmentos, segmentoId,
                                                                                        retornoEnderecoGoogleApi.Enderecos.FirstOrDefault().Latidude.Value,
                                                                                        retornoEnderecoGoogleApi.Enderecos.FirstOrDefault().Longitude.Value);
                    }
                    else
                    {
                        retorno.ValidationResult = retornoEnderecoGoogleApi.ValidationResult;
                    }

                    break;
                }
            }

            return(retorno);
        }
Ejemplo n.º 4
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
            });
        }
Ejemplo n.º 5
0
        public OcorrenciaFormViewModel CarregarVisualizar(long ocorrenciaId)
        {
            var ocorrencia = _servicoOcorrencia.ObterPorId(ocorrenciaId);

            if (ocorrencia != null)
            {
                var pessoaFisica   = new PessoaFisica();
                var pessoaJuridica = new PessoaJuridica();
                var Cidade         = new Cidade();
                var statusEntidade = new StatusEntidade();

                var viewModel = new OcorrenciaFormViewModel
                {
                    OcorrenciaID = ocorrenciaId,
                    OcorrenciaTiposXOcorrencia =
                        _ocorrenciaTiposXOcorrenciaServico.ObterDadosOcorrenciaTiposXOcorrencia(ocorrenciaId),
                    atualizadoEm   = ocorrencia.AtualizadoEm,
                    criadoEm       = ocorrencia.CriadoEm,
                    StatusEntidade = _servicoStatusEntidade.ObterPorId(ocorrencia.StatusEntidadesId)
                };

                statusEntidade = ocorrencia.StatusEntidadesId > 0
                    ? _servicoStatusEntidade.ObterPorId(ocorrencia.StatusEntidadesId)
                    : null;

                viewModel.StatusEntidade = statusEntidade;
                viewModel.criadoEm       = ocorrencia.CriadoEm;
                viewModel.atualizadoEm   = ocorrencia.AtualizadoEm;

                if (ocorrencia.PessoaFisicaId != null)
                {
                    pessoaFisica = _servicoPessoaFisica.ObterPorId((long)ocorrencia.PessoaFisicaId);

                    if (pessoaFisica.CidadeId != null)
                    {
                        Cidade = _servicoCidadeServico.ObterPorId((long)pessoaFisica.CidadeId);
                    }

                    _cliente       = new ClientePerfilViewModel(pessoaFisica, "", Cidade, false);
                    pessoaJuridica = null;
                }
                else if (ocorrencia.PessoaJuridicaId != null)
                {
                    pessoaJuridica = _servicoPessoaJuridica.ObterPorId((long)ocorrencia.PessoaJuridicaId);
                    if (pessoaJuridica.CidadeId != null)
                    {
                        Cidade = _servicoCidadeServico.ObterPorId((long)pessoaJuridica.CidadeId);
                    }
                    _cliente     = new ClientePerfilViewModel(pessoaJuridica, "", Cidade, false);
                    pessoaFisica = null;
                }

                _cliente.Visualizar = true;
                viewModel.Cliente   = _cliente;

                //Carregar Local
                var local = _servicoLocal.ObterLocalPorOcorrenciaId(ocorrencia.Id);
                if (local != null)
                {
                    string nomeCidade = "";
                    string 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);
                    viewModel.Local = local2;
                }

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

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