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); }
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); }
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); }
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); }