Пример #1
0
        public List <Medicamento_farmacia> Medicemento_farmacia_refinado(List <Medicamento_farmacia> lista)
        {
            List <Medicamento_farmacia> real     = new List <Medicamento_farmacia>();
            Medicamento_farmacia        entidade = null;

            foreach (var item in lista)
            {
                entidade = new Medicamento_farmacia
                {
                    id_fabricante     = item.id_fabricante,
                    id_farmacia       = item.id_farmacia,
                    id_medicamento    = item.id_medicamento,
                    referencia        = item.referencia,
                    estado            = item.estado,
                    situacao          = item.situacao,
                    preco             = item.preco,
                    dosagem           = item.dosagem,
                    registo           = item.registo,
                    stock             = item.stock,
                    apresentacao      = item.apresentacao,
                    actualizacao      = item.actualizacao,
                    Carrinho          = null,
                    Fabricante        = null,
                    Medicamento       = null,
                    Reserva           = null,
                    Sucursal_farmacia = null
                };
                real.Add(entidade);
            }
            return(real);
        }
        public async Task <IHttpActionResult> PostMedicamento_farmacia(Medicamento_farmacia medicamento_farmacia)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.Medicamento_farmacia.Add(medicamento_farmacia);

            try
            {
                await db.SaveChangesAsync();
            }
            catch (DbUpdateException)
            {
                if (Medicamento_farmaciaExists(medicamento_farmacia.id_medicamento))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }

            return(CreatedAtRoute("DefaultApi", new { id = medicamento_farmacia.id_medicamento }, medicamento_farmacia));
        }
        public async Task <IHttpActionResult> PutMedicamento_farmacia(long id, Medicamento_farmacia medicamento_farmacia)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != medicamento_farmacia.id_medicamento)
            {
                return(BadRequest());
            }

            db.Entry(medicamento_farmacia).State = EntityState.Modified;

            try
            {
                await db.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!Medicamento_farmaciaExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
        public async Task <IHttpActionResult> GetMedicamento_farmacia(long id)
        {
            Medicamento_farmacia medicamento_farmacia = await db.Medicamento_farmacia.FindAsync(id);

            if (medicamento_farmacia == null)
            {
                return(NotFound());
            }

            return(Ok(medicamento_farmacia));
        }
        public async Task <IHttpActionResult> DeleteMedicamento_farmacia(long id)
        {
            Medicamento_farmacia medicamento_farmacia = await db.Medicamento_farmacia.FindAsync(id);

            if (medicamento_farmacia == null)
            {
                return(NotFound());
            }

            db.Medicamento_farmacia.Remove(medicamento_farmacia);
            await db.SaveChangesAsync();

            return(Ok(medicamento_farmacia));
        }
Пример #6
0
        public List <Pesquisas> Procura_farmacias(string local, string data, long id_usuario, float?raio)
        {
            if (raio == null)
            {
                raio = 5;
            }

            //TempData["pesquisa"] = (List<Medicamento_farmacia>)lista;
            //Inicializacao da magia de pesquisa;

            List <Sucursal_farmacia>    farmacias  = new List <Sucursal_farmacia>();
            List <Receita>              receitas   = new List <Receita>();
            List <Medicamento_farmacia> resultado  = new List <Medicamento_farmacia>();
            List <Medicamento_farmacia> resultado2 = new List <Medicamento_farmacia>();
            List <Pesquisas>            resumo     = new List <Pesquisas>();
            Pesquisas            consulta          = new Pesquisas();
            Medicamento_farmacia med_farm          = new Medicamento_farmacia();
            Receita_real         real         = new Receita_real();
            List <Reserva>       reserva      = new List <Reserva>();
            Reserva reserva_melhor            = new Reserva();
            List <Medicamento_receita> lista2 = new List <Medicamento_receita>();
            Medicamento_receita        rm     = new Medicamento_receita();
            long    contador   = 1;
            decimal distancia2 = 0;

            //Fim da magia de pesquisa

            //Magia de pesquisa

            if (data != null)
            {
                Posicao_padrao posicao = Get_posicao(id_usuario);
                resultado = Farmacias_proximas((int)raio, id_usuario);
                if (resultado != null)
                {
                    receitas = Minha_receita(id_usuario);
                    foreach (var item in resultado)
                    {
                        int encontrado = 0;
                        if (farmacias.Where(e => e.id_sucursal == item.id_farmacia).Count() == 0 && receitas.Where(a => a.id_medicamento == item.id_medicamento).Count() > 0)
                        {
                            Receita ras = receitas.Where(a => a.id_medicamento == item.id_medicamento).FirstOrDefault();

                            //total = (decimal)(ras.quantidade * item.preco);
                            encontrado++;

                            distancia2 = (decimal)(Math.Round(Calcula_distancia((float)item.Sucursal_farmacia.latitude, (float)item.Sucursal_farmacia.longitude, 'K', posicao), 1));
                            consulta   = new Pesquisas
                            {
                                id                = contador,
                                id_fabricante     = item.id_fabricante,
                                referencia        = item.referencia,
                                id_farmacia       = item.id_farmacia,
                                raio              = raio,
                                ditancia_farmacia = distancia2,
                                total_encontrado  = encontrado,
                                id_medicamento    = ras.id_medicamento,
                                data              = ras.data,
                                dosagem           = ras.composicao,
                                forma             = ras.forma,
                                id_registo        = ras.id_registo,
                                id_usuario        = ras.id_usuario,
                                preco_unitario    = item.preco,
                                quantidade        = ras.quantidade,
                                total_receita     = receitas.Count(),
                                total_valor       = (decimal)(ras.quantidade * item.preco)
                            };
                            contador++;
                            resumo.Add(consulta);
                            //farmacias.Add(item.Sucursal_farmacia);
                            encontrado = 0;
                        }
                    }

                    //Historico de pesquisas sobre os medicamentos da receita

                    /*
                     * foreach (var item in receitas)
                     * {
                     *  try
                     *  {
                     *      reserva_melhor = reserva.Where(e => e.dosagem.Contains(item.composicao) && e.desc_quantidade.Contains(item.forma) && e.id_medicamento == item.id_medicamento).OrderBy(e => e.valor_actual).First();
                     *      if (reserva_melhor != null)
                     *      {
                     *         // var distancia2 = Math.Round(Calcula_distancia((float)reserva_melhor.Medicamento_farmacia.Sucursal_farmacia.latitude, (float)reserva_melhor.Medicamento_farmacia.Sucursal_farmacia.longitude, 'K', posicao), 1);
                     *          med_farm = resultado2.Where(e => e.id_medicamento == item.id_medicamento && e.apresentacao.Equals(item.forma) && e.dosagem.Equals(item.composicao) && e.id_farmacia == reserva_melhor.id_farmacia && e.id_fabricante == reserva_melhor.id_fabricante && e.preco == reserva_melhor.valor_actual).FirstOrDefault();
                     *          rm = new Medicamento_receita
                     *          {
                     *              consulta = med_farm,
                     *              distancia = (float)distancia2
                     *          };
                     *          lista2.Add(rm);
                     *
                     *      }
                     *
                     *  }
                     *  catch { }
                     * }
                     */
                    //Envio do resultado para a pagina de disponibilização do resultado
                }
            }
            //Fim da magia de pesquisa

            return(resumo);
        }