public IHttpActionResult GetLogCorrida(long idCorrida) { // Busca Dados detalhados da corrida/OS var entidade = new CorridaRepositorio().BuscaLogCorrida(idCorrida); // Validacao if (entidade == null) { return(StatusCode(System.Net.HttpStatusCode.NoContent)); } // Return return(Ok(entidade.Select(c => new LogCorridaModel() { idCorrida = c.idCorrida, idEnderecoCorrida = c.idEnderecoCorrida, IDOcorrencia = c.IDOcorrencia, dtHoraChegada = c.dtHoraChegada, EnderecoCompleto = c.EnderecoCompleto, Observacao = c.vcObservacao, Latitude = c.vcLatitude, Longitude = c.vcLongitude, Status = c.Status, TelefoneContato = c.vcTelefoneContato, RegistroFoto = c.Foto, PessoaContato = c.vcPessoaContato, Atividade = MontaAtividade(c) }))); }
public IHttpActionResult GetLocalizacaoCorridas(int statusCorrida, int tipoProfissional) { #region Validações // Tipo profissional desejado TipoProfissional tipo; if (!Enum.TryParse(tipoProfissional.ToString(), out tipo)) { BadRequest(Mensagem.Validacao.TipoProfissionalInvalido); } // Status de corrida StatusCorrida status; if (!Enum.TryParse(statusCorrida.ToString(), out status)) { BadRequest(Mensagem.Validacao.StatusCorridaInvalido); } #endregion // Busca Dados resumidos var entidade = new CorridaRepositorio().BuscaLocalizacaoCorrida(status, tipo); // Validacao if (entidade == null || !entidade.Any()) { return(StatusCode(System.Net.HttpStatusCode.NoContent)); } // Return return(Ok(entidade.Select(pf => new LocalizacaoCorridaModel() { idCorrida = pf.idCorrida, geoPosicao = pf.vcLatitude + ";" + pf.vcLongitude, }))); }
public IHttpActionResult GetResumoChamados() { // Busca Dados resumidos var entidade = new DashboardRepositorio().BuscaResumoChamados(); // Busca status corrida var statusCorrida = new CorridaRepositorio().BuscaStatusCorrida(); var finaliza = statusCorrida.Where(s => s.bitFinaliza = true || s.bitCancela == true).Select(st => st.idStatusCorrida).ToArray(); var naoFinaliza = statusCorrida.Where(s => s.bitFinaliza = false && s.bitCancela == false).Select(st => st.idStatusCorrida).ToArray(); // valida retorno if (entidade != null && !entidade.Any()) { return(StatusCode(System.Net.HttpStatusCode.NoContent)); } // Separa chamados List <ResumoChamadoModel> ResumoMensal = new List <ResumoChamadoModel>(); // Percorre os meses var periodos = this.UltimosMesesAno(13); foreach (var periodo in periodos) { ResumoMensal.Add(new ResumoChamadoModel() { Mes = periodo, ChamadosAdvertentes = entidade.Where(x => x.DataRegistro?.ToString("MM/yyyy") == periodo && Array.Exists(naoFinaliza, z => z == (int)x.Status))?.Count() ?? 0, ChamadosConcluidos = entidade.Where(x => x.DataRegistro?.ToString("MM/yyyy") == periodo && Array.Exists(finaliza, z => z == (int)x.Status))?.Count() ?? 0 }); } // Return return(Ok(ResumoMensal)); }
public IHttpActionResult GetContatoOcorrencia(long idCorrida) { // Busca Dados detalhados da corrida/OS var telefone = new CorridaRepositorio().BuscaTelefoneClienteCorrida(idCorrida); // Return return(Ok(telefone)); }
public IHttpActionResult GetCorridaAberta(long idProfissional, int tipoProfissional) { // Busca Dados detalhados da corrida/OS var entidade = new CorridaRepositorio().BuscaCorridaAberta(idProfissional, tipoProfissional); // Validacao if (entidade == null) { return(StatusCode(System.Net.HttpStatusCode.NoContent)); } // Return return(Ok(entidade)); }
public IHttpActionResult GetCorrida(int idOS) { // Busca Dados detalhados da corrida/OS var entidade = new CorridaRepositorio().BuscaDetalheCorrida(idOS); // Validacao if (entidade == null || !entidade.Any()) { return(StatusCode(System.Net.HttpStatusCode.NoContent)); } // Return return(Ok(new DetalheCorridaModel() { IDCliente = entidade.FirstOrDefault().IDCliente, IDProfissional = entidade.FirstOrDefault().IDProfissional, NumeroOS = entidade.FirstOrDefault().NumeroOS, DataCriacao = entidade.FirstOrDefault().DataCriacao, DataInicio = entidade.FirstOrDefault().DataHoraInicio, NomeProfissional = entidade.FirstOrDefault().NomeProfissional, ValorEstimado = entidade.FirstOrDefault().ValorEstimado, Origem = new DetalheOSEnderecoModel() { EnderecoCompleto = entidade.FirstOrDefault().EnderecoCompleto, ProcurarPor = entidade.FirstOrDefault().ProcurarPor, Realizar = Realizar(entidade.FirstOrDefault()), StatusCorrida = entidade.FirstOrDefault().StatusCorrida, TempoEspera = entidade.FirstOrDefault().TempoEspera?.TimeOfDay, Observacao = entidade.FirstOrDefault().Observacao, CaminhoProtocolo = entidade.FirstOrDefault().CaminhoProtocolo, vcLatitude = entidade.FirstOrDefault().vcLatitude, vcLongitude = entidade.FirstOrDefault().vcLongitude }, Destinos = entidade.Count() > 1 ? entidade.Skip(1).Select(x => new DetalheOSEnderecoModel() { EnderecoCompleto = x.EnderecoCompleto, ProcurarPor = x.ProcurarPor, Realizar = Realizar(x), StatusCorrida = x.StatusCorrida, TempoEspera = x.TempoEspera?.TimeOfDay, Observacao = x.Observacao, CaminhoProtocolo = x.CaminhoProtocolo, vcLatitude = x.vcLatitude, vcLongitude = x.vcLongitude }).ToArray() : new DetalheOSEnderecoModel[] { } })); }
public IHttpActionResult PostCorrida([FromBody] IncluirCorridaDTO model) { // Busca Comissao var comissao = new ProfissionalRepositorio().BuscaComissaoProfissional(model.IDProfissional ?? 0); // Calculo Valor Estimado var valorEstimado = CalculaPrecoCorrida(new CalculoCorridaDTO() { IDCliente = model.IDCliente ?? 0, TipoVeiculo = model.TipoProfissional ?? 0, Localizacao = model.Enderecos.Select(c => new CalculoCorridaLocalidadeDTO() { Latitude = Double.Parse(c.Latitude.Replace(".", ",")), Longitude = Double.Parse(c.Longitude.Replace(".", ",")) }).ToArray() }); #if DEBUG var usuario = 55; #else var usuario = long.Parse(UsuarioAutenticado.LoginID); #endif // Busca tarifa cliente var idCorrida = new CorridaRepositorio().IncluirCorrida(new BHJet_Repositorio.Admin.Filtro.CorridaFiltro() { IDCliente = model.IDCliente, IDProfissional = model.IDProfissional, Comissao = comissao != null ? comissao.decPercentualComissao : (decimal?)null, TipoProfissional = model.TipoProfissional, ValorEstimado = valorEstimado.Preco, Enderecos = model.Enderecos.Select(c => new EnderecoModel() { Descricao = c.Descricao, Latitude = c.Latitude, Longitude = c.Longitude, Observacao = c.Observacao, ProcurarPessoa = c.ProcurarPessoa, TipoOcorrencia = c.TipoOcorrencia }).ToList() }, usuario); // Return return(Ok(idCorrida)); }
public IHttpActionResult GetOcorrenciaCorrida() { // Busca Dados detalhados da corrida/OS var entidade = new CorridaRepositorio().BuscaOcorrenciaCorrida(); // Validacao if (entidade == null || !entidade.Any()) { return(StatusCode(System.Net.HttpStatusCode.NoContent)); } // Return return(Ok(entidade.Select(oc => new OcorrenciaDTO() { ID = oc.idTipoOcorrenciaCorrida, Descricao = oc.vcTipoOcorrenciaCorrida }))); }
public IHttpActionResult PutAceitarOS(long idCorrida) { // Busca Dados detalhados da corrida/OS var corridaRep = new CorridaRepositorio(); // Verifica se corrida pertence ao usuario solicitado var pertence = corridaRep.CorridaPertenceUsuario(idCorrida, long.Parse(UsuarioAutenticado.LoginID)); if (!pertence) { return(StatusCode(System.Net.HttpStatusCode.Unauthorized)); } // Instancia new CorridaRepositorio().AceitarOrdemServico(idCorrida); // Return return(Ok()); }
public IHttpActionResult GetStatusCorrida() { // Busca Dados detalhados da corrida/OS var entidade = new CorridaRepositorio().BuscaStatusCorrida(); // Validacao if (entidade == null || !entidade.Any()) { return(StatusCode(System.Net.HttpStatusCode.NoContent)); } // Return return(Ok(entidade.Select(oc => new StatusModel() { StatusCorrida = oc.idStatusCorrida, DescricaoStatus = oc.vcDescricaoStatus, Cancela = oc.bitCancela, Finaliza = oc.bitFinaliza, Inicia = oc.bitInicia }))); }
public IHttpActionResult PutCancelarOS(int idOS) { try { // Busca Dados detalhados da corrida/OS var corridaRep = new CorridaRepositorio(); // Verifica se corrida pertence ao usuario solicitado var pertence = corridaRep.CorridaPertenceUsuario(idOS, long.Parse(UsuarioAutenticado.LoginID)); if (!pertence) { return(StatusCode(System.Net.HttpStatusCode.Unauthorized)); } // Verifica se já foi cancelada var corridaEncerrada = corridaRep.CorridaEncerrada(idOS); if (corridaEncerrada) { return(ResponseMessage(new HttpResponseMessage(HttpStatusCode.BadRequest) { Content = new StringContent($"A corrida {idOS} já foi cancelada ou encerrada.") })); } // Cancela corrida corridaRep.CancelaCorrida(idOS); // Return return(Ok()); } catch { return(ResponseMessage(new HttpResponseMessage(HttpStatusCode.NoContent) { Content = new StringContent($"Não foi possível cancelar a OS, por favor, entre em contato com a administração da BHJet.") })); } }
public IHttpActionResult GetCorridaCliente(long clienteID) { // Busca Dados detalhados da corrida/OS var entidade = new CorridaRepositorio().BuscaDetalheCorridaCliente(clienteID); // Validacao if (entidade == null || !entidade.Any()) { return(StatusCode(System.Net.HttpStatusCode.NoContent)); } // Return return(Ok(entidade.Select(dtm => new DetalheCorridaModel() { IDCliente = dtm.IDCliente, NumeroOS = dtm.NumeroOS, DataInicio = dtm.DataHoraInicio, NomeProfissional = dtm.NomeProfissional, ValorEstimado = dtm.ValorEstimado, ValorFinalizado = dtm.ValorFinalizado }))); }