public bool vender(int qtde)
 {
     if (qtde <= qtdeDisponivel())
     {
         while (qtde > 0)
         {
             Lote lote = GetLotes().Dequeue();
             if (qtde >= lote.Qtde)
             {
                 qtde -= lote.Qtde;
             }
         }
         return(true);
     }
     else
     {
         return(false);
     }
 }
Beispiel #2
0
        static void Main(string[] args)
        {
            Medicamentos listaMedicamentos;

            listaMedicamentos = new Medicamentos();

            Medicamento  m1    = new Medicamento();
            Queue <Lote> lotes = new Queue <Lote>();


            int ax;

            #region display
            Console.WriteLine("0. Finalizar");
            Console.WriteLine("1. Cadastrar medicamento");
            Console.WriteLine("2. Consultar medicamento sintético");
            Console.WriteLine("3. Consultar medicamento analítico");
            Console.WriteLine("4. Comprar medicamento");
            Console.WriteLine("5. Vender medicamento");
            Console.WriteLine("6. Listar medicamentos");
            Console.WriteLine("7. Deletar medicamento");
            #endregion

            #region processo
            do
            {
                Console.WriteLine("Escolha a opção desejada: ");
                ax = int.Parse(Console.ReadLine());

                switch (ax)
                {
                case 1:

                    int idMain; string nomeMain, nomeLaboratorio;
                    Console.WriteLine("Informe o ID do medicamento");
                    idMain = int.Parse(Console.ReadLine());

                    Console.WriteLine("Informe o Nome do Medicamento");
                    nomeMain = Console.ReadLine();

                    Console.WriteLine("Informe o Nome do Laboratorio");
                    nomeLaboratorio = Console.ReadLine();

                    listaMedicamentos.adicionar(new Medicamento(idMain, nomeMain, nomeLaboratorio));
                    break;

                case 2:

                    Console.WriteLine("Informe o ID");
                    idMain = int.Parse(Console.ReadLine());
                    m1.Id  = idMain;

                    Medicamento medPesqSint;
                    medPesqSint = listaMedicamentos.pesquisar(new Medicamento(idMain, "", ""));

                    if (medPesqSint.Id.Equals(""))
                    {
                        Console.WriteLine("ID não encontrado");
                    }
                    else
                    {
                        Console.WriteLine(medPesqSint.ToString());
                    }
                    break;

                case 3:
                    Console.WriteLine("Digite o ID");
                    idMain = int.Parse(Console.ReadLine());
                    m1.Id  = idMain;
                    Medicamento medPesqAnalit;
                    medPesqAnalit = listaMedicamentos.pesquisar(m1);
                    Console.WriteLine(medPesqAnalit.ToString());

                    foreach (Lote lt in medPesqAnalit.GetLotes())
                    {
                        if (idMain.Equals(lt.Id))
                        {
                            Console.WriteLine(lt.ToString());
                        }
                    }
                    break;

                case 4:
                    int      id, qtde;
                    DateTime dataVenc;
                    Console.WriteLine("Digite o ID do medicamento: ");
                    idMain = Int32.Parse(Console.ReadLine());
                    m1.Id  = idMain;
                    Medicamento pesquisa = listaMedicamentos.pesquisar(m1);
                    Console.WriteLine(" Digite o código:");
                    id = Convert.ToInt32(Console.ReadLine());
                    Console.WriteLine(" Digite a quantidade:");
                    qtde = int.Parse(Console.ReadLine());
                    Console.WriteLine(" Digite a data de validade:");
                    dataVenc = DateTime.Parse(Console.ReadLine());
                    Lote lo = new Lote(id, qtde, dataVenc);
                    pesquisa.comprar(lo);

                    break;

                case 5:
                    int qtdeMedicamento, idMedicamento;
                    Console.WriteLine("Informe o ID do medicamento");
                    idMedicamento = int.Parse(Console.ReadLine());
                    Console.WriteLine("Qual quantidade ira vender?");
                    qtdeMedicamento = int.Parse(Console.ReadLine());

                    Medicamento medicamentoEncontrado = listaMedicamentos.pesquisar(new Medicamento(idMedicamento, "", ""));
                    listaMedicamentos.MeusMedicamentos.ElementAt(idMedicamento).vender(qtdeMedicamento);
                    break;

                case 6:
                    foreach (Medicamento med in listaMedicamentos.MeusMedicamentos)
                    {
                        Console.WriteLine(med.ToString());
                    }
                    break;

                case 7:
                    Console.WriteLine("Informe o ID do medicamento");
                    idMain = int.Parse(Console.ReadLine());
                    m1.Id  = idMain;
                    if (m1.qtdeDisponivel() > 0)
                    {
                        Console.WriteLine("Sem medicamento");
                    }
                    else
                    {
                        listaMedicamentos.deletar(m1);
                    }

                    break;

                default:
                    Console.WriteLine("");
                    break;
                }
            } while (ax != 0);
            Console.ReadKey();
            #endregion
        }
Beispiel #3
0
 public void comprar(Lote lote)
 {
     lotes.Enqueue(lote);
 }
Beispiel #4
0
        public override bool Equals(object obj)
        {
            Lote l = ((Lote)obj);

            return(this.id.Equals(l.Id));
        }
Beispiel #5
0
        static void Main(string[] args)
        {
            int opcao, idPesq;

            do
            {
                Console.WriteLine("Digite a opção desejada: \n0 - Finalizar\n1 - Cadastrar medicamento\n2 - Consultar medicamento (Dados apenas)\n3 - Consultar medicamento(Dados + lote)\n4 - Comprar medicamento\n5 - Vender medicamento\n6 - Listar medicamentos");
                opcao = int.Parse(Console.ReadLine());

                switch (opcao)
                {
                case 1:
                    Console.Clear();
                    Console.WriteLine("Digite o ID do medicamento: ");
                    int idCad = int.Parse(Console.ReadLine());
                    Console.WriteLine("\nDigite o nome do medicamento: ");
                    string nome = Console.ReadLine();
                    Console.WriteLine("\nDigite o laboratório do medicamento: ");
                    string lab = Console.ReadLine();
                    medicamentos.adicionar(new Medicamento(idCad, nome, lab));
                    break;

                case 2:
                    Console.Clear();
                    Console.WriteLine("Digite o ID do medicamento a ser pesquisado:");
                    idPesq = int.Parse(Console.ReadLine());
                    Console.WriteLine(medicamentos.pesquisar(new Medicamento(idPesq, "", "")).toString());
                    break;

                case 3:
                    Console.WriteLine("Digite o ID do medicamento a ser pesquisado:");
                    idPesq = int.Parse(Console.ReadLine());
                    Console.WriteLine(medicamentos.pesquisarComDetalhes(new Medicamento(idPesq, "", "")).toString());
                    break;

                case 4:
                    Console.Clear();
                    Console.WriteLine("Digite o ID do remédio:");
                    int         idrem = int.Parse(Console.ReadLine());
                    Medicamento med   = medicamentos.pesquisar(new Medicamento(idrem, "", ""));
                    Console.WriteLine("\n" + med.toString());
                    Console.WriteLine("\nDigite o ID do lote:");
                    int idLote = int.Parse(Console.ReadLine());

                    Console.WriteLine("\nDigite a quantidade do lote:");
                    int qtd = int.Parse(Console.ReadLine());

                    Console.WriteLine("\nDigite a validade do lote:");
                    Console.WriteLine("Exemplo data: " + DateTime.Now.ToString("dd/MM/yyyy"));
                    DateTime data;
                    data = DateTime.ParseExact(Console.ReadLine(), "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture);

                    //Verificar se a data é maior que a atual
                    while (data < DateTime.Now)
                    {
                        Console.WriteLine(">>A data de válidade precisa ser maior que a atual.");
                        Console.WriteLine("Digite a validade do lote:");
                        Console.WriteLine("Exemplo data: " + DateTime.Now.ToString("dd/MM/yyyy"));
                        data = DateTime.ParseExact(Console.ReadLine(), "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture);
                    }

                    lote = new Lote(idLote, qtd, data);

                    med.comprar(lote);
                    break;

                case 5:
                    Console.Clear();
                    Console.WriteLine("Digite o ID do remédio:");
                    int         idrememedio = int.Parse(Console.ReadLine());
                    Medicamento rem         = medicamentos.pesquisar(new Medicamento(idrememedio, "", ""));
                    Console.WriteLine("\n" + rem.toString());
                    Console.WriteLine("\nDigite a quantidade do medicamento:");
                    int qtdVenda = int.Parse(Console.ReadLine());
                    rem.vender(qtdVenda);
                    break;

                case 6:
                    Console.Clear();
                    Console.WriteLine("Medicamentos:");
                    foreach (Medicamento m in medicamentos.getLista())
                    {
                        Console.WriteLine(m.toString());
                    }
                    break;

                default:
                    Console.WriteLine("Opção inválida");
                    break;
                }
            } while (opcao > 0);
        }