public static void modificarCodVend() /*Punto (B)*/ { if (Farmacia.cantidadVentas() != 0) // Verifica si hay ventas) { Console.WriteLine("Actualización de Venta\n"); Console.Write("Ticket-factura de la venta a modificar\n"); int ticket = validTicket("existe"); // Valida que el ticket sea un valor correcto y exista if (ticket != 000) { Console.WriteLine("Nuevo codigo de vendedor\n"); int codNuevoVendedor = validCodigo(); // Valida que el empleado nuevo al que se le quiere asignar la venta exista if (codNuevoVendedor != 000) { Farmacia.modificaCodVend(ticket, codNuevoVendedor); Console.Clear(); Console.WriteLine($"Se ha actualizado el codigo de vendedor de la venta con numero de ticket: {ticket}"); } else { Msj.opCancelada(); } } else { Msj.opCancelada(); } } else { Console.Clear(); Console.WriteLine("No hay ventas para mostrar"); } }
public static void borrarEmp() { if (Farmacia.cantEm() != 0) // Verifica si hay un empleado cargado { Console.WriteLine("Eliminar empleado\n"); int codVendedor = validCodigo(); // Valida y busca si el codigo de empleado esta cargado if (codVendedor == 000) // Si no se recuerda el codigo se ingresa 000 para cancelar { Msj.opCancelada(); } else { if (Msj.conf($"Seguro quiere eliminar el usuario?") == true) // Consulta si se quiere eliminar el empleado { Farmacia.eliminarEmp(codVendedor); // Elimina el empleado codAsig.Remove(codVendedor); // Elimina el codigo que tenia asignado Console.Clear(); Console.WriteLine("Usuario del empleado fue eliminado."); } else { Msj.opCancelada(); } } } else { Console.Clear(); Console.WriteLine("No hay empleados cargados"); } }
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(); }
public static void borrarVenta() /* Punto (C) */ { if (Farmacia.cantidadVentas() != 0) // Verifica que haya ventas para eliminar. Si no hay emite un mensaje. { Console.WriteLine("Eliminar Venta\n"); // Titulo int ticket = validTicket("existe"); // Valida el Ticket sea un valor correcto y verifica que exista Console.Clear(); if (ticket != 000) { if (Msj.conf($"Quiere eliminar la venta con numero {ticket}?") == true) { Farmacia.eliminarVenta(ticket); ticketAsig.Remove(ticket); // Elimina el ticket asignado } else { Msj.opCancelada(); } } else { Msj.opCancelada(); } } else { Console.Clear(); Console.WriteLine("No hay venta para eliminar"); } }
/******************************************* METODO DE PRE-CARGA *********************************************************/ public static void preCargaEmp() // Carga de dos Empleados { Farmacia.agregarEmp("COSME", "FULANITO", 1, 0); codAsig.Add(1); Farmacia.agregarEmp("MAX", "POWER", 2, 0); codAsig.Add(2); }
/*********************************************************************************************************************/ /******************************************** METODO DE VENDEDOR *****************************************************/ static void reporteMayorVendedor() /*Punto (F)*/ { double mayorMonto = 0; int codVendedorMayor = 0; if (Farmacia.cantEm() != 0) // Verifica si hay empleados cargados { foreach (Empleado vend in Farmacia.todosEmpleados()) // Recorre la lista de todos los empleados { if (vend.MontoVenta > mayorMonto) { mayorMonto = vend.MontoVenta; // Actualiza monto mayor de venta para comparar codVendedorMayor = vend.CodEmpleado; // Guarda el codigo del empleado con mayor venta para luego mostrarlo } } if (codVendedorMayor == 0) { Console.WriteLine("No hay registrado de un vendedor con una venta."); } else { Console.WriteLine($"Vendedor con mayor Venta: {Farmacia.verEmpleado(codVendedorMayor)}"); // Muestra el vendedor } } else { Console.Clear(); Console.WriteLine("No hay empleados cargados"); } }
static void borrarVenta() /* Punto (C) */ { if (Farmacia.cantidadVentas() != 0) // Verifica que haya ventas para eliminar. Si no hay emite un mensaje. { Console.WriteLine("Eliminar Venta\n"); // Titulo int ticket = validTicket("existe"); // Valida el Ticket sea un valor correcto y verifica que exista Console.Clear(); if (ticket != 000) { if (Msj.conf($"Quiere eliminar la venta con numero {ticket}?") == true) { bool eliminado = false; foreach (Venta v in Farmacia.todasVentas()) { if (v.NroTicket == ticket) { if (v.CodVendedor != 000) // Verifica que la venta este asignada a un empleado { foreach (Empleado e in Farmacia.todosEmpleados()) // Se busca el vendedor asignado para restar la venta { if (e.CodEmpleado == v.CodVendedor) { e.MontoVenta -= v.Importe; // Resta el importe de la venta } } } Farmacia.eliminarVenta(v); // Elimina la venta ticketAsig.Remove(ticket); // Elimina el ticket que se le había asignado eliminado = true; break; // Evita que salga error de ingreso } } if (eliminado == true) // Muestra mensaje de eliminado { Console.Clear(); Console.WriteLine("Venta Eliminada."); } ticketAsig.Remove(ticket); // Elimina el ticket asignado } else { Msj.opCancelada(); } } else { Msj.opCancelada(); } } else { Console.Clear(); Console.WriteLine("No hay venta para eliminar"); } }
static void buscaDrogaPlan() /*Punto (E)*/ { if (Farmacia.cantidadVentas() != 0) // Verifica si hay ventas, si las hay solicita los parametros de busqueda. { Console.WriteLine("Listado de ventas por Droga y Plan determinado\n"); string droga = ""; string plan = ""; bool esPlan; do { esPlan = true; // Se setea en true para que no quede en un bucle infinito Console.Write("Indique la droga del medicamento: "); droga = Console.ReadLine().ToUpper(); // Pasa a Mayusc. para realizar la comparacion Console.Write("Indique el Plan: "); plan = Console.ReadLine().ToUpper(); // Pasa a Mayusc. para realizar la comparacion if (plan == "PARTICULAR" || plan.Trim() == "") { esPlan = false; Console.Clear(); Console.WriteLine("Ingreso 'Particular', el cual no es un plan"); // Sale el aviso para ingreso de "PARTICULAR" como plan Msj.pausa(); } }while(esPlan != true); foreach (Venta v in Farmacia.todasVentas()) { if (v.FechaHora.ToString("MM") == fechaHora.ToString("MM")) // Compara el mes de venta con el actual para mostrar solo lo del mes en curso { if (v.Droga.ToUpper() == droga && v.Plan.ToUpper() == plan) // Busca la droga y el plan solicitado { listaDrogaPlan.Add(v); // Agrega la venta a la lista auxiliar para listar } } } if (listaDrogaPlan.Count == 0) { Console.Clear(); Console.WriteLine("No hay ventas con los parametros de busqueda ingresado"); } else { Console.Clear(); Console.WriteLine("Resultado de busqueda: \n"); foreach (Venta v in listaDrogaPlan) { Farmacia.verVenta(v.NroTicket); // Se envia el numero de ticket para que imprima las ventas } } } else { Console.Clear(); Console.WriteLine("No se registran ventas"); } }
static void borrarEmp() { if (Farmacia.cantEm() != 0) // Verifica si hay un empleado cargado { Console.WriteLine("Eliminar empleado\n"); int codVendedor = validCodigo(); // Valida y busca si el codigo de empleado esta cargado if (codVendedor == 000) // Si no se recuerda el codigo se ingresa 000 para cancelar { Msj.opCancelada(); } else { foreach (Empleado e in Farmacia.todosEmpleados()) { if (e.CodEmpleado == codVendedor) // Busca el vendedor solicitado { bool tieneVentas = Msj.advVenta(codVendedor, Farmacia.todasVentas(), e); // Verifica si el vendedor tiene ventas y hace una advertencia en caso de tenerlas, ademas devueve un true en caso de tener ventas if (Msj.conf($"Seguro quiere eliminar el empleado {e.Apellido}, {e.Nombre} empleado?") == true) // Consulta si se quiere eliminar el empleado { Farmacia.eliminarEmp(e); // Elimina el empleado if (tieneVentas == true) // Si el vendedor tenia ventas asigna a dichas ventas 000 para indicar que el vendedor de la venta fue eliminado { foreach (Venta v in Farmacia.todasVentas()) { if (e.CodEmpleado == v.CodVendedor) { v.CodVendedor = 000; // Asigna 000 para luego mostrar que el vendedor fue eliminado } } } break; // Evita que salga error de Index } else { Msj.opCancelada(); break; // Sale del For } } } codAsig.Remove(codVendedor); // Elimina el codigo que tenia asignado Console.Clear(); Console.WriteLine("El empleado fue eliminado."); } } else { Console.Clear(); Console.WriteLine("No hay empleados cargados"); } }
static void modificarCodVend() /*Punto (B)*/ { if (Farmacia.cantidadVentas() != 0) // Verifica si hay ventas) { Console.WriteLine("Actualización de Venta\n"); Console.Write("Ticket-factura de la venta a modificar\n"); int ticket = validTicket("existe"); // Valida que el ticket sea un valor correcto y exista if (ticket != 000) { Console.WriteLine("Nuevo codigo de vendedor\n"); int codNuevoVendedor = validCodigo(); // Valida que el empleado nuevo al que se le quiere asignar la venta exista if (codNuevoVendedor != 000) { foreach (Venta v in Farmacia.todasVentas()) { if (v.NroTicket == ticket) { foreach (Empleado e in Farmacia.todosEmpleados()) // Se recorre la lista de empleados { if (e.CodEmpleado == v.CodVendedor) { e.MontoVenta -= v.Importe; // Resta el monto de venta al viejo Vendedor } if (e.CodEmpleado == codNuevoVendedor) { e.MontoVenta += v.Importe; // Suma el monto de venta al nuevo Vendedor } } v.CodVendedor = codNuevoVendedor; // Una vez realizadas las modificaciones se setea el codigo del nuevo vendedor de la venta } } Console.Clear(); Console.WriteLine($"Se ha actualizado el codigo de vendedor de la venta con numero de ticket: {ticket}"); } else { Msj.opCancelada(); } } else { Msj.opCancelada(); } } else { Console.Clear(); Console.WriteLine("No hay ventas para mostrar"); } }
/*********************************************************************************************************************/ /******************************************** METODOS DE VENTAS ******************************************************/ static void nuevaVenta() /*Punto (A)*/ { Console.WriteLine("Registro de Venta\n"); // Titulo int codVendedor = validCodigo(); if (codVendedor == 000) // Si no recuerdan y ponen 000, se cancela la operacion. Pueden ir a ver el listado de empleados para ver los disponibles { Console.Clear(); Console.WriteLine("Venta cancelada!\nConsulte listado de empleado para ver los disponibles."); } else { int nroTicket = validTicket("repite"); // Valida el codigo y verifica que no se repita if (nroTicket != 000) { Console.Write("Ingrese el nombre comercial del medicamento: "); string nomCom = Console.ReadLine().ToUpper(); // Queda almacenado en mayusculas Console.Write($"Ingrese la Droga de {nomCom.ToUpper()}: "); string droga = Console.ReadLine().ToUpper(); // Queda almacenado en mayusculas Console.WriteLine("\nATENCIóN! Si no es por Obra Social ingrese 'particular'."); Console.Write("Ingrese la obra social: "); string obSocial = Console.ReadLine().ToUpper(); // Queda almacenado en mayusculas Console.WriteLine("\nATENCIóN!! Si no es por un plan determinado deje un espacio."); Console.Write("Ingrese el plan: "); string plan = Console.ReadLine().ToUpper(); // Queda almacenado en mayusculas double importe = validImporte(nomCom); Venta venta = new Venta(nomCom, droga, obSocial, plan, importe, codVendedor, nroTicket, fechaHora); // Crea objeto venta Farmacia.agregarVenta(venta); // Envia la venta ticketAsig.Add(nroTicket); foreach (Empleado e in Farmacia.todosEmpleados()) // Se busaca y suma el monto de la venta al vendedor ingresado. { if (e.CodEmpleado == codVendedor) { e.MontoVenta += importe; //Suma y actualiza el monto de venta del Vendedor } } Console.Clear(); Console.WriteLine("Venta Registrada"); } else { Msj.opCancelada(); } } }
/*********************************************************************************************************************/ /******************************************* METODOS DE EMPLEADOS ****************************************************/ public static void nuevoEmp() { Console.WriteLine("Registro de nuevo empleado\n"); Console.Write("Ingrese nombre: "); string nom = Console.ReadLine().ToUpper(); // Queda almacenado en mayusculas Console.Write("Ingrese apellido: "); string ape = Console.ReadLine().ToUpper(); // Queda almacenado en mayusculas int codVendedor = asingCod(); Farmacia.agregarEmp(nom, ape, codVendedor, 0); // Crea objeto Empleado Console.Clear(); Console.WriteLine($"Se ha completado el registro del empleado\n{codVendedor}: {nom} {ape}"); }
static void todosEmpleados() // Muestra todos los empleados { if (Farmacia.cantEm() != 0) // Verifica si hay empleados cargados { Console.WriteLine($"Listado de empleados:\n"); foreach (Empleado e in Farmacia.todosEmpleados()) { Console.WriteLine(Farmacia.verEmpleado(e.CodEmpleado)); } } else { Console.Clear(); Console.WriteLine("No hay empleados cargados"); } }
public static void todasVentas() { // Retorna la lista if (Farmacia.cantidadVentas() != 0) // Verifica si hay ventas. { Console.WriteLine("Listado de Ventas: "); foreach (Venta x in Farmacia.todasVentas()) { Farmacia.verVenta(x.NroTicket); } } else { Console.Clear(); Console.WriteLine("No hay ventas para mostrar"); } }
public static void buscaDrogaPlan() /*Punto (E)*/ { if (Farmacia.cantidadVentas() != 0) // Verifica si hay ventas, si las hay solicita los parametros de busqueda. { Console.WriteLine("Listado de ventas por Droga y Plan determinado\n"); string droga = ""; string plan = ""; bool esPlan = true; do { Console.Write("Indique la droga del medicamento: "); droga = Console.ReadLine().ToUpper(); // Pasa a Mayusc. para realizar la comparacion Console.Write("Indique el Plan: "); plan = Console.ReadLine().ToUpper(); // Pasa a Mayusc. para realizar la comparacion if (plan == "PARTICULAR") { esPlan = false; Msj.noPlan(); // Sale el aviso para ingreso de "PARTICULAR" como plan Msj.pausa(); } }while(esPlan != true); ArrayList listaDrogaPlan = Farmacia.ventasDrogaPlan(droga, plan); // Se envia los parametros para que devuelva una lista de lo solicitado if (listaDrogaPlan.Count == 0) { Console.Clear(); Console.WriteLine("Hay ventas con los parametros de busqueda ingresado"); } else { Console.Clear(); Console.WriteLine("Resultado de busqueda: \n"); foreach (Venta v in listaDrogaPlan) { Farmacia.verVenta(v.NroTicket); // Se envia el numero de ticket para que imprima las ventas } } } else { Console.Clear(); Console.WriteLine("No se registran ventas"); } }
/*********************************************************************************************************************/ /******************************************** METODO DE VENDEDOR *****************************************************/ public static void reporteMayorVendedor() /*Punto (F)*/ { if (Farmacia.cantEm() != 0) // Verifica si hay empleados cargados { int codVendedorMayor = Farmacia.informarMayorVendedor(); if (codVendedorMayor == 0) { Console.WriteLine("No hay registrado de un vendedor con una venta."); } else { Console.WriteLine($"Vendedor con mayor Venta: {Farmacia.verEmpleado(codVendedorMayor)}"); // Muestra el vendedor } } else { Console.Clear(); Console.WriteLine("No hay empleados cargados"); } }
/*********************************************************************************************************************/ /******************************************** METODOS DE VENTAS ******************************************************/ public static void nuevaVenta() /*Punto (A)*/ { Console.WriteLine("Registro de Venta\n"); // Titulo int codVendedor = validCodigo(); if (codVendedor == 000) // Si no recuerdan y ponen 000, se cancela la operacion. Pueden ir a ver el listado de empleados para ver los disponibles { Console.Clear(); Console.WriteLine("Venta cancelada!\nConsulte listado de empleado para ver los disponibles."); } else { int nroTicket = validTicket("repite"); // Valida el codigo y verifica que no se repita if (nroTicket != 000) { Console.Write("Ingrese el nombre comercial del medicamento: "); string nomCom = Console.ReadLine().ToUpper(); // Queda almacenado en mayusculas Console.Write($"Ingrese la Droga de {nomCom.ToUpper()}: "); string droga = Console.ReadLine().ToUpper(); // Queda almacenado en mayusculas Console.WriteLine("\nATENCIóN! Si no es por Obra Social ingrese 'particular'."); Console.Write("Ingrese la obra social: "); string obSocial = Console.ReadLine().ToUpper(); // Queda almacenado en mayusculas Console.WriteLine("\nATENCIóN!! Si no es por un plan determinado deje un espacio."); Console.Write("Ingrese el plan: "); string plan = Console.ReadLine().ToUpper(); // Queda almacenado en mayusculas double importe = validImporte(nomCom); Farmacia.agregarVenta(nomCom, droga, obSocial, plan, importe, codVendedor, nroTicket, fechaHora); // Envia datos a agregar venta Console.Clear(); Console.WriteLine("Venta Registrada"); } else { Msj.opCancelada(); } } }
public static void porcVentasQuinOS() /*Punto (D)*/ { int cantV = Farmacia.cantidadVentas(); // Cantidad de ventas if (cantV != 0) // Verifica si la lista esta vacia. { int cantVOS = Farmacia.infoVentasQuinOS(); // Cantidad de ventas con Obra Social if (cantVOS == 0) // Si el cantidad es 0 significa que no hay ventas con obra social en la primera quincena { Console.WriteLine("No hay ventas en la primera quincena del corriente mes."); } else { double porc = (cantVOS * 100) / cantV; // Realiza cuenta de porcentaje Console.WriteLine($"El porcentaje de ventas de la primera quincena con Obra Social es: {porc}%"); } } else { Console.Clear(); Console.WriteLine("No se registran ventas"); } }
static void porcVentasQuinOS() /*Punto (D)*/ { int cantV = Farmacia.cantidadVentas(); // Obtiene la cantidad de ventas int contVOS = 0; // Contador de ventas con Obra Social int mesAct = int.Parse(fechaHora.ToString("MM")); // Recupera y guarda el mes actual if (cantV != 0) // Verifica que haya al menos una venta registrada { foreach (Venta v in Farmacia.todasVentas()) { int mesV = int.Parse(v.FechaHora.ToString("MM")); // Recupera y guarda el mes de la venta int diaV = int.Parse(v.FechaHora.ToString("dd")); // Recupera y guarda el dia de la venta if (mesV == mesAct && diaV >= 1 && diaV <= 15) // Verifica que se este en la primera quincena del mes { if (v.ObraSocial.ToLower() != "particular") // Busca las ventas por OBRA SOCIAL { // Ya que busca todo lo que difiere de particular contVOS++; // Cuenta las Ventas con Obra Social } } } if (contVOS == 0) // Si el cantidad es 0 significa que no hay ventas con obra social en la primera quincena { Console.WriteLine("No hay ventas en la primera quincena del corriente mes."); } else { double porc = (contVOS * 100) / cantV; // Realiza cuenta de porcentaje Console.WriteLine($"El porcentaje de ventas de la primera quincena con Obra Social es: {porc}%"); } } else { Console.Clear(); Console.WriteLine("No hay ventas registradas."); } }
/******************************************** METODO DE MENU *********************************************************/ public static void menu() { do { op = opPrincipal(); switch (op) { case 1: // VENTAS do { op = opVenta(); switch (op) { case 1: // Punto a) Console.Clear(); nuevaVenta(); Msj.pausa(); break; case 2: // Punto c) Console.Clear(); borrarVenta(); Msj.pausa(); break; case 3: // Punto d) Console.Clear(); porcVentasQuinOS(); Msj.pausa(); break; case 4: /// Punto e) Console.Clear(); buscaDrogaPlan(); Msj.pausa(); break; case 5: // Punto b) Console.Clear(); modificarCodVend(); Msj.pausa(); break; case 6: // Lista de todas las ventas Console.Clear(); Farmacia.todasVentas(); Msj.pausa(); break; case 7: // Vuelve al menu principal Console.Clear(); break; case 0: // Opcion que evita que envie 2 mensaje break; default: Msj.opcIncorrecta(); break; } } while (op != 1 && op != 2 && op != 3 && op != 4 && op != 5 && op != 6 && op != 7); // Tiene que selecionar una opcion valida para poder continuar op = 0; // Evita que al seleccionar la opcion 3 se salga. break; case 2: // VENDEDORES do { op = opEmpleado(); switch (op) { case 1: Console.Clear(); nuevoEmp(); Msj.pausa(); break; case 2: Console.Clear(); borrarEmp(); Msj.pausa(); break; case 3: // Punto F Console.Clear(); reporteMayorVendedor(); Msj.pausa(); break; case 4: // Muestra todos los empleados Console.Clear(); Farmacia.todosEmpleados(); Msj.pausa(); break; case 5: // Vuelve al menu principal Console.Clear(); break; case 0: // Opcion que evita que envie 2 mensaje break; default: Msj.opcIncorrecta(); break; } } while (op != 1 && op != 2 && op != 3 && op != 4 && op != 5); // Tiene que selecionar una opcion valida para poder continuar op = 0; // evita que al seleccionar la opcion 3 se salga. break; case 3: //SALIR Console.Clear(); Msj.bien_desp(); Console.Write("\nGracias, vuelva prontos!\n\nPresione cualquier tecla para finalizar..."); Console.ReadKey(); Console.Clear(); Environment.Exit(1); break; case 0: // Opcion que evita que envie 2 mensaje break; default: Msj.opcIncorrecta(); break; } } while (op != 3); }