コード例 #1
0
        public LocalOcorrenciaViewModel CarregarSelecionarLocal(int?segmentoId, double latitude, double longitude,
                                                                string enderecoProduto)
        {
            var retorno   = new LocalOcorrenciaViewModel();
            var segmentos = _servicoCampoDinamicoOpcao.ObterPor("CTRPRODUT", "Padrão", "DL", "Segmento");

            var locaisLista = new List <LocalListaViewModel>();

            if (segmentoId != null)
            {
                var segmento = _servicoCampoDinamicoOpcao.ObterPorId((long)segmentoId);

                if (segmento != null)
                {
                    var locais = _servicoLocal.Pesquisar(segmento.Nome, latitude, longitude);

                    if (locais != null)
                    {
                        locaisLista.AddRange(locais.Select(local => new LocalListaViewModel(local)));
                    }
                }
            }

            retorno.EnderecoProdutoViewModel = new EnderecoProdutoViewModel {
                EnderecoProduto = enderecoProduto
            };
            retorno.ListaSegmentos     = new SelectList(segmentos, "id", "nome");
            retorno.SegmentoId         = segmentoId;
            retorno.ListaPesquisaLocal = locaisLista;
            return(retorno);
        }
コード例 #2
0
        public LocalOcorrenciaViewModel ObterLocalTiposAtendimento(long localId, string enderecoProduto,
                                                                   string nomeSegmento)
        {
            var local = _servicoLocal.ObterPorId(localId);
            var listaLocalTipoAtendimento = _servicoLocalAtendimentoTipo.ObterLocalTiposAtendimentoPorLocalId(localId);
            var retorno = new LocalOcorrenciaViewModel
            {
                EnderecoProdutoViewModel = new EnderecoProdutoViewModel {
                    EnderecoProduto = enderecoProduto
                },
                NomeSegmento = nomeSegmento,
                ListaLocalTipoAtendimento = new SelectList(listaLocalTipoAtendimento, "id", "nome"),
                Local = new LocalViewModel(local.nome, local.nomeContato, "", local.logradouro, local.numero,
                                           local.bairro, local.cidade, local.estado, local.cep, local.latitude, local.longitude,
                                           local.telefone01,
                                           local.telefone02, local.telefone03, local.email01, local.email02, local.webSite, null, null)
            };

            return(retorno);
        }
コード例 #3
0
        public LocalOcorrenciaViewModel AdicionarEnderecoProduto(AdicionarEnderecoProdutoViewModel model)
        {
            var    retorno = new LocalOcorrenciaViewModel();
            var    segmentos = _servicoCampoDinamicoOpcao.ObterPor("CTRPRODUT", "Padrão", "DL", "Segmento");
            long?  segmentoId = null;
            string cidade = "", estado = "";
            //double latitude, longitude;
            var locaisLista = new List <LocalListaViewModel>();

            var chaveGoogleApi = Chave();

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

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

            if (model.CidadeId != null)
            {
                var Cidade = _servicoCidade.ObterPorId((long)model.CidadeId);
                if (Cidade != null)
                {
                    cidade = Cidade.Nome;
                    estado = Cidade.Uf;
                }
            }

            var retornoEnderecoGoogleApi = GoogleAPI.ObterLatitudeLongitudePorEndereco(_chaveGoogleApi, model.Cep,
                                                                                       model.Logradouro,
                                                                                       model.Numero, model.Bairro, cidade, estado);

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


            if (retornoEnderecoGoogleApi.ValidationResult.IsValid && retornoEnderecoGoogleApi.Enderecos.Any())
            {
                if (segmentoId != null)
                {
                    var segmento = _servicoCampoDinamicoOpcao.ObterPorId((long)segmentoId);

                    if (segmento != null)
                    {
                        var locais = _servicoLocal.Pesquisar(segmento.Nome,
                                                             retornoEnderecoGoogleApi.Enderecos.FirstOrDefault().Latidude.Value,
                                                             retornoEnderecoGoogleApi.Enderecos.FirstOrDefault().Latidude.Value);

                        if (locais != null)
                        {
                            foreach (var local in locais)
                            {
                                locaisLista.Add(new LocalListaViewModel(local));
                            }
                        }
                    }
                }

                retorno.EnderecoProdutoViewModel = new EnderecoProdutoViewModel(model, cidade, estado, segmentos,
                                                                                segmentoId,
                                                                                retornoEnderecoGoogleApi.Enderecos.FirstOrDefault().Latidude.Value,
                                                                                retornoEnderecoGoogleApi.Enderecos.FirstOrDefault().Longitude.Value, locaisLista);

                retorno.ListaSegmentos = new SelectList(segmentos, "id", "nome");
                retorno.SegmentoId     = segmentoId;
            }
            else
            {
                retorno.ValidationResult = retornoEnderecoGoogleApi.ValidationResult;
            }

            return(retorno);
        }
コード例 #4
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);
        }