public bool deletar(Medicamento medicamento) { Medicamento pesquisaMedicamento = pesquisar(medicamento); if (pesquisaMedicamento.lotes.Count == 0 || pesquisaMedicamento.qtdeDisponivel() == 0) { listaMedicamentos.Remove(medicamento); return(true); } else { return(false); } }
static void Main(string[] args) { medicamentos = new Medicamentos(); int opcao = 0; do { Console.WriteLine("0. Finalizar processo"); Console.WriteLine("1. Cadastrar medicamento"); Console.WriteLine("2. Consultar medicamento (sintético)"); Console.WriteLine("3. Consultar medicamento (analítico)"); Console.WriteLine("4. Comprar medicamento (cadastrar lote)"); Console.WriteLine("5. Vender medicamento (abater do lote mais antigo)"); Console.WriteLine("6. Listar medicamentos (informar dados sintéticos)"); Console.Write("\nOPÇÃO: "); opcao = int.Parse(Console.ReadLine()); Console.Clear(); try { if (opcao == 0) { } else if (opcao == 1) { int idMed, idLote, qtde; string nome, laboratorio; DateTime venc; Console.WriteLine("Preencha os dados do remédio a ser cadastrado:\n"); Console.Write("ID: "); idMed = validaInt(); if (medicamentos.pesquisar(new Medicamento(idMed)) != null) { throw new Exception("Já existe um medicamento com esse ID"); } Console.Write("Nome: "); nome = Console.ReadLine(); Console.Write("Laboratório: "); laboratorio = Console.ReadLine(); Console.Write("Id do Lote: "); idLote = validaInt(); Console.Write("Quantidade: "); qtde = validaInt(); Console.Write("\nData de Vencimento: "); venc = validaData(); if (venc != DateTime.MinValue) { // Adicionando na lista de medicamentos medicamento = new Medicamento(idMed, nome, laboratorio); medicamentos.adicionar(medicamento); medicamento.comprar(new Lote(idLote, qtde, venc)); Console.WriteLine("Medicamento adicionado com sucesso!"); } else { Console.WriteLine("Tente novamente."); } Console.ReadKey(); } else if (opcao == 2) { Console.Write("Digite o ID do medicamento: "); medicamento = new Medicamento(validaInt()); medicamento = medicamentos.pesquisar(medicamento); if (medicamento == null) { throw new Exception("Medicamento não encontrado!"); } else { Console.WriteLine(medicamento.toString() + "\n"); } Console.ReadKey(); } else if (opcao == 3) { Console.Write("Digite o ID do medicamento: "); medicamento = new Medicamento(validaInt()); medicamento = medicamentos.pesquisar(medicamento); if (medicamento == null) { throw new Exception("Medicamento não encontrado!"); } else { Console.WriteLine(medicamento.toString() + "\n"); foreach (Lote lote in medicamento.lotes) { Console.WriteLine(lote.toString()); } } Console.ReadKey(); } else if (opcao == 4) { int idLote, qtde; DateTime venc; Console.Write("Digite o ID do medicamento: "); medicamento = new Medicamento(validaInt()); medicamento = medicamentos.pesquisar(medicamento); if (medicamento == null) { throw new Exception("Medicamento não encontrado!"); } else { Console.Write("Id do Lote: "); idLote = validaInt(); Console.Write("Quantidade: "); qtde = validaInt(); Console.Write("Data de Vencimento: "); venc = validaData(); if (venc != DateTime.MinValue) { medicamento.comprar(new Lote(idLote, qtde, venc)); Console.WriteLine("Medicamento adicionado com sucesso!"); } else { Console.WriteLine("Tente novamente."); } } Console.ReadKey(); } else if (opcao == 5) { int qtde; Console.WriteLine("Digite o ID do medicamento."); medicamento = new Medicamento(validaInt()); medicamento = medicamentos.pesquisar(medicamento); if (medicamento == null) { throw new Exception("Medicamento não encontrado!"); } else { Console.Write("Quantidade: "); qtde = validaInt(); if (medicamento.vender(qtde)) { Console.WriteLine("Medicamento vendido!"); if (medicamentos.deletar(medicamento)) { Console.WriteLine("Medicamento zerado e deletado..."); } else { Console.WriteLine("Resta: " + medicamento.qtdeDisponivel() + " no estoque..."); } } else { Console.WriteLine("Quantidade insuficiente..."); } } Console.ReadKey(); } else if (opcao == 6) { Console.WriteLine("Lista de todos os medicamentos"); if (medicamentos.listaMedicamentos.Count != 0) { foreach (Medicamento medicamento in medicamentos.listaMedicamentos) { Console.WriteLine("\n " + medicamento.toString()); } } else { Console.WriteLine("Estoque vazio..."); } Console.ReadKey(); } else { throw new Exception("Opção Inválida!"); } } catch (Exception e) { Console.WriteLine(e.Message); Console.ReadKey(); } Console.Clear(); } while (opcao != 0); }
static void Main(string[] args) { int opc = 1; Medicamentos medicamentos = new Medicamentos(); while (opc != 0) { Console.WriteLine("0. Finalizar processo"); Console.WriteLine("1. Cadastrar medicamento"); Console.WriteLine("2. Consultar medicamento (sintetico)"); Console.WriteLine("3. Consultar medicamento (analitico)"); Console.WriteLine("4. Comprar medicamento (cadastrar lote)"); Console.WriteLine("5. Vender medicamento"); Console.WriteLine("6. Listar medicamentos"); opc = int.Parse(Console.ReadLine()); switch (opc) { case 0: Console.WriteLine("tchau"); break; case 1: Console.WriteLine("Id do medicamento que deseja cadastrar"); int idNovoMedicamento = int.Parse(Console.ReadLine()); Console.WriteLine("Nome do medicamento que deseja cadastrar"); string nomeNovoMedicamento = Console.ReadLine(); Console.WriteLine("Laboratorio do medicamento que deseja cadastrar"); string laboratorioNovoMedicamento = Console.ReadLine(); Medicamento novoMedicamento = new Medicamento(idNovoMedicamento, nomeNovoMedicamento, laboratorioNovoMedicamento); medicamentos.adicionar(novoMedicamento); break; case 2: Console.WriteLine("Id do medicamento que deseja pesquisar"); int idPesquisa = int.Parse(Console.ReadLine()); Medicamento medicamentoAchado = medicamentos.pesquisar(new Medicamento(idPesquisa, "", "")); if (medicamentoAchado == null) { Console.WriteLine("Medicamento nao encontrado"); break; } Console.WriteLine(medicamentoAchado.ToString() + medicamentoAchado.qtdeDisponivel()); break; case 3: Console.WriteLine("Id do medicamento que deseja pesquisar"); idPesquisa = int.Parse(Console.ReadLine()); medicamentoAchado = medicamentos.pesquisar(new Medicamento(idPesquisa, "", "")); if (medicamentoAchado == null) { Console.WriteLine("Medicamento nao encontrado"); break; } Console.WriteLine(medicamentoAchado.ToString()); foreach (Lote l in medicamentoAchado.Lotes) { Console.WriteLine(l.ToString()); } break; case 4: Console.WriteLine("Id do medicamento que deseja pesquisar"); idPesquisa = int.Parse(Console.ReadLine()); medicamentoAchado = medicamentos.pesquisar(new Medicamento(idPesquisa, "", "")); if (medicamentoAchado == null) { Console.WriteLine("Medicamento nao encontrado"); break; } Console.WriteLine("Id do lote que deseja cadastrar"); int idNovoLote = int.Parse(Console.ReadLine()); Console.WriteLine("qual a quantidade do lote que deseja cadastrar"); int qtdeNovoLote = int.Parse(Console.ReadLine()); Boolean condicao = false; DateTime vencNovoLote = DateTime.MinValue; do { condicao = false; Console.WriteLine("qual a validade do lote que deseja cadastrar? (dd/MM/yyyy) "); try { vencNovoLote = DateTime.ParseExact(Console.ReadLine(), "dd/MM/yyyy", CultureInfo.CurrentCulture); if (DateTime.Now.CompareTo(vencNovoLote.Date) > 0) { Console.WriteLine("Data de vencimento tem que ser maior que a data atual!"); condicao = true; } } catch (Exception) { Console.WriteLine("aaaa"); condicao = true; } } while (condicao); medicamentoAchado.comprar(new Lote(idNovoLote, qtdeNovoLote, vencNovoLote)); Console.WriteLine(medicamentoAchado.qtdeDisponivel()); break; case 5: Console.WriteLine("Id do medicamento que deseja vender?"); idPesquisa = int.Parse(Console.ReadLine()); Console.WriteLine("Qual a quantidade que deseja vender?"); int qtdeVenda = int.Parse(Console.ReadLine()); medicamentoAchado = medicamentos.pesquisar(new Medicamento(idPesquisa, "", "")); if (medicamentoAchado == null) { Console.WriteLine("medicamento nao encontrado"); break; } condicao = medicamentoAchado.vender(qtdeVenda); if (condicao) { Console.WriteLine("Venda realizada com sucesso!"); Console.WriteLine(medicamentoAchado.qtdeDisponivel()); } else { Console.WriteLine("Venda não reazlizada quantidade pedida é maior que a disponível"); } break; case 6: foreach (Medicamento m in medicamentos.ListaMedicamentos) { Console.WriteLine(m.ToString()); } break; } } }