Exemple #1
0
        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)
            })));
        }
Exemple #2
0
        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,
            })));
        }
Exemple #3
0
        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));
        }
Exemple #4
0
        public IHttpActionResult GetContatoOcorrencia(long idCorrida)
        {
            // Busca Dados detalhados da corrida/OS
            var telefone = new CorridaRepositorio().BuscaTelefoneClienteCorrida(idCorrida);

            // Return
            return(Ok(telefone));
        }
Exemple #5
0
        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));
        }
Exemple #6
0
        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[] { }
            }));
        }
Exemple #7
0
        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));
        }
Exemple #8
0
        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
            })));
        }
Exemple #9
0
        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());
        }
Exemple #10
0
        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
            })));
        }
Exemple #11
0
        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.")
                }));
            }
        }
Exemple #12
0
        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
            })));
        }