public static double validImporte(string nomCom) { double importe = 0; bool ok; do { ok = true; // Setea bool para que no entre un bucle infinito al pedir el precio try { Console.Write($"Ingrese el precio (con IVA) de {nomCom.ToUpper()}: $"); importe = double.Parse(Console.ReadLine()); if (importe < 0) // Si el valor es menor a 0 lo vuelve a consultar ya que no es valido { // No se condiciona para cuando es igual a 0 porque el medicamento puede ser gratuito --> $0 ok = false; Console.Clear(); Console.WriteLine("El importe no debe ser menor a $0!\nIntente nuevamente."); Msj.pausa(); } } catch (Exception) { ok = false; // si ingresa un caracter invalido cambia a false para que vuelva a preguntar Msj.tryCatch(); // Devuelve mensaje de valor invalido } } while (ok != true); // Se ejecuta hasta que ingrese un valor valido y mayor a 0 return(importe); }
public static void creaFarma() // Solicita datos y crea la farmacia { Console.WriteLine("Debe crear una Farmacia"); Console.Write("Ingrese el nombre: "); rSoc = Console.ReadLine(); Console.Write($"Ingrese la dirección de {rSoc}: "); dir = Console.ReadLine(); bool ok; do { ok = true; Console.Write($"Ingrese el telefono(sin guiones) de {rSoc}: "); try { tel = int.Parse(Console.ReadLine()); } catch (System.Exception) { ok = false; Msj.tryCatch(); } } while (ok != true); farmacia = new Farmacia(rSoc, dir, tel); // Se crea la farmacia Console.Clear(); Console.WriteLine($"Se creo la Farmacia: {rSoc}"); Console.ReadKey(); }
static int validTicket(string que) // Solicita un codigo, lo valida y verifica que no se repita o que exista segun el string que recibe { bool encontre = false; bool ok; int nroTicket = 123; do { ok = true; // Setea bool para que no entre un bucle infinito al pedir el ticket try { Console.Write("Ingrese el Nro de Ticket: "); nroTicket = int.Parse(Console.ReadLine()); if (nroTicket != 000) { foreach (int nro in ticketAsig) { if (nro == nroTicket) // Si encuentra el numero de ticket en los ticket asignados significa que existe la venta { encontre = true; if (que == "repite") // Si que es igual a repite significa que tiene que verificar que el codigo no se repita { ok = false; Console.Clear(); Console.WriteLine($"El numero de ticket {nroTicket} ya fue ingresado!\nVuelva a intentar\n"); Console.WriteLine($"Si no recuerda o desconoce el numero de ticket correcto, ingrese 000 para cancelar\n"); break; // Cuando encuentra coincidencia se sale del foreach } else // Si que es igual a existe tiene que verificar que el codigo exista { ok = true; break; // Para que deje de seguir buscando } } } if (que == "existe" && encontre == false) { throw new TicketNoValido(); // Si no se encuentra el ticket ejecuta el try-catch } } else { ok = true; // Se setea ok en true para salir del bucle break; } } catch (TicketNoValido) { // Si no se encuentra(encontre en false) nada muestra el mesnaje ok = false; Console.Clear(); Console.WriteLine($"No se encontro el Ticket con codigo: {nroTicket}"); Console.WriteLine("Si no recuerda o desconoce el numero de ticket correcto, el numero de ticket ingrese 000 para cancelar\n"); } catch (System.Exception) { ok = false; Msj.tryCatch(); } }while (ok != true && nroTicket != 000); // Hasta que no ingrese un Ticket valido y no repetido o exita se ejecuta el while return(nroTicket); // Devuelve un Ticket valido y que exista o no se repita segun lo requerido }
public static int selecOp() // Devuelve la opcion seleccionada la cual pasa por un try-catch para validar { int op = 0; try { op = int.Parse(Console.ReadLine()); } catch (Exception) { op = 0; // seleciona un case que no hace nada para evitar el default y que envie doble mensaje Msj.tryCatch(); Msj.pausa(); } return(op); }
/*********************************************************************************************************************/ /******************************************** OTROS METODOS **********************************************************/ static int validCodigo() /*Valida codigo de empleado*/ { int codVendedor = 123; bool encontre = false; do { try { Console.Write("Ingrese el codigo del empleado: "); codVendedor = int.Parse(Console.ReadLine()); if (codVendedor != 000) { foreach (int nro in codAsig) // Recorre codigos asignados { if (nro == codVendedor) // Si encuentra que el codigo fue asignado quiere decir que el empleado existe { encontre = true; } } if (encontre == false) { throw new EmpleadoNoEncont(); // Si no se encuentra el empleado ejecuta el try-catch } } else { encontre = true; // Se setea en true para salir del blucle } } catch (EmpleadoNoEncont) { Console.Clear(); Console.WriteLine($"No se encontroo el Empleado con codigo: {codVendedor}\nSi no se acuerda ingrese 000 para salir.\n"); } catch (Exception) { Msj.tryCatch(); // Devuelve mensaje de valor invalido } } while (encontre != true && codVendedor != 000); // Se ejecuta el While hasta que ingresa un codigo valido o ingrese 000, en este ultimo caso se cancela la operación siguiente return(codVendedor); }