/// <summary> /// Función para grabar los valores de configuración en un archivo BINARIO Codificación UTF-8!!! /// <paramref name="ruta">La ruta del archivo donde vamos a guardar los datos</paramref> /// <paramref name="pass">La constraseña de acceso al archivo y modulo de configuracion</paramref> /// <paramref name="horasbase">Las horas consideradas salario normal. El resto sería horas extra</paramref> /// <paramref name="maxeurxhora">El máximo que euros por hora que se puede ganar</paramref> /// <paramref name="maxhoras">El máximo de horas que puede tener la nómina. Horas mensuales...</paramref> /// <paramref name="preciojornada">El precio al que se cobra la hora de jornada</paramref> /// <paramref name="incrementoextra">El incremento que llevan las horas extra</paramref> /// <paramref name="impuestos">El porcentaje de impuestos a aplicar</paramref> /// </summary> public static bool grabarValoresBinary(string ruta, string pass, int maxhoras, int horasbase, float maxeurxhora, float preciojornada, float incrementoextra, float impuestos) { bool grabado = false; try { FileStream fs; BinaryWriter bw; fs = File.Open(ruta, FileMode.OpenOrCreate, FileAccess.Write); bw = new BinaryWriter(fs); bw.Write(pass.PadRight(30)); // ESCRIBIMOS UN STRING > LEER STRING:ReadString bw.Write(maxhoras); // ESCRIBIMOS UN ENTERO > LEER ENTERO:ReadInt32 bw.Write(horasbase); // ESCRIBIMOS UN ENTERO > LEER ENTERO:ReadInt32 bw.Write(maxeurxhora); // ESCBIRIMOS UN ENTERO > LEER ENTERO:ReadInt32 bw.Write(preciojornada); // ESCBIRIMOS UN ENTERO > LEER ENTERO:ReadInt32 bw.Write(incrementoextra); // ESCRIBIMOS UN FLOAT > LEER UN FLOAT:ReadSingle bw.Write(impuestos); // ESCRIBIMOS UN FLOAT > LEER UN FLOAT:ReadSingle bw.Flush(); // TIRAMOS DE LA CADENA //bw.Close(); bw.Dispose(); // CERRAMOS LA TAPA DEL W.C. grabado = true; CH.lcdColor("\ni> LOS VALORES BINARIOS HAN SIDO GRABADOS EN EL FICHERO DE CONFIGURACIÓN 'config.data'", ConsoleColor.Green); CH.pausa(); } catch (IOException ex) { CH.lcdColor("!> ERR: " + ex.Message + ". -> Contacte con el Administrador", ConsoleColor.Red); CH.pausa(); } return(grabado); }
/// <summary> /// Función para leer el nombre de una empresa. Comprueva que no sea vacío si sólo números. /// </summary> public static string leerEmpresa() { string salida; string aux; int numero; bool salir; salir = false; numero = 0; aux = ""; salida = ""; do { Console.Write("?> NOMBRE DE LA EMPRESA: "); aux = Console.ReadLine(); if ((String.IsNullOrEmpty(aux)) || (Int32.TryParse(aux, out numero))) { CH.lcdColor("!> INTRODUCE UN NOMBRE COMPUESTO POR LETRAS!!", ConsoleColor.Red); } else { salida = aux; salir = true; } } while (!salir); return(salida); } // END LEER EMPRESA
/// <summary> /// Función para grabar los valores de configuración en un archivo de TEXTO /// <paramref name="ruta">La ruta del archivo donde vamos a guardar los datos</paramref> /// <paramref name="pass">La constraseña de acceso al archivo y modulo de configuracion</paramref> /// <paramref name="horasbase">Las horas consideradas salario normal. El resto sería horas extra</paramref> /// <paramref name="maxeurxhora">El máximo que euros por hora que se puede ganar</paramref> /// <paramref name="maxhoras">El máximo de horas que puede tener la nómina. Horas mensuales...</paramref> /// <paramref name="preciojornada">El precio al que se cobra la hora de jornada</paramref> /// <paramref name="incrementoextra">El incremento que llevan las horas extra</paramref> /// <paramref name="impuestos">El porcentaje de impuestos a aplicar</paramref> /// <return>True or False</return> /// </summary> public static bool grabarValores(string ruta, string pass, int maxhoras, int horasbase, float maxeurxhora, float preciojornada, float incrementoextra, float impuestos) { bool grabado = false; try { StreamWriter sw = File.CreateText(ruta); sw.WriteLine("pass:"******"max_horas:" + maxhoras); sw.WriteLine("horas_base:" + horasbase); sw.WriteLine("max_euros_hora:" + maxeurxhora); sw.WriteLine("precio_jornada:" + preciojornada); sw.WriteLine("incremento_extra:" + incrementoextra); sw.WriteLine("impuestos:" + impuestos); CH.lcdColor("\ni> LOS NUEVOS VALORES HAN SIDO GRABADOS EN EL FICHERO DE CONFIGURACIÓN", ConsoleColor.Green); CH.pausa(); sw.Flush(); sw.Dispose(); grabado = true; } catch (IOException ex) { CH.lcdColor(ex.Message + ". -> Contacte con el Administrador", ConsoleColor.Red); CH.pausa(); } return(grabado); }
// MÉTODO QUE DEVUELVE UNA OPCIÓN DENTRO DEL TOPE INDICADO // @param - tope: la opción máxima posible en byte (no más de 255 opciones) // @return - byte: la opción elegida public static byte leerOpcion(byte tope) { byte opcion = 0; bool salir = false; string aux = null; do { Console.ForegroundColor = ConsoleColor.Cyan; Console.Write("?> OK... ¿QUÉ DESEAS HACER?: "); Console.ForegroundColor = ConsoleColor.Gray; aux = Console.ReadLine(); if (byte.TryParse(aux, out opcion)) { if (opcion >= 0 && opcion <= tope) { salir = true; } else { Console.WriteLine("!> OPCIÓN FUERA DE RANGO [0-" + tope + "]"); } } else { CH.lcdColor("!> ¿¡Perdona!?... ?@#!!", ConsoleColor.Red); } } while (!salir); return(opcion); }
// FUNCIÓN PARA LEER UN FLOTANTE O DECIMAL POR PANTALLA // @param - string: el mensaje a mostrar por pantalla // @return - float: el número introducido public static float leerFloat(string msg) { float cantidad = 0.0F; bool salir = false; string aux = null; do { Console.Write("?> " + msg + ": "); aux = Console.ReadLine(); if (!(String.IsNullOrEmpty(aux)) && (Single.TryParse(aux, out cantidad))) { if (cantidad <= 100 && cantidad >= 0) { salir = true; } else { CH.lcdColor("!> NO MAS DE 100% O MENOS QUE 0%!! ... @#!", ConsoleColor.Red); } } else { CH.lcdColor("!> Valor NO valido!! ... @#!", ConsoleColor.Red); } } while (!salir); return(cantidad); }
public static string leerPass(string msg) { string passw = ""; Console.Write("?> " + msg + " : "); while (true) { var key = Console.ReadKey(true); if (key.Key == ConsoleKey.Enter) { if (passw.Length < 8) { CH.lcdColor("!> LA PASS DEBE TENER MÁS DE 8 LETRAS", ConsoleColor.Red); passw = ""; Console.Write("?> " + msg + " : "); } else { break; } } passw += key.KeyChar; } return(passw.Trim()); }
// FUNCION PARA LEER UN DNI POR PANTALLA, CON VALIDACON POR REGEXP // @return - string: el documento a comprobar public static string leerDni() { bool salir = false; string aux = null; decimal dec = 0; do { Console.Write("?> INTRODUCE UN DNI: "); aux = Console.ReadLine(); if ((String.IsNullOrEmpty(aux)) || (decimal.TryParse(aux, out dec))) { CH.lcdColor("!> ¿¡Perdona!?... ?@#!!", ConsoleColor.Red); } else { if (esValidoCifNifNIE(aux)) { salir = true; } else { CH.lcdColor("!> FORMATO DNI/NIF/CIF ERRONEO!!", ConsoleColor.Red); } } } while (!salir); return(aux); }
/// <summary> /// Procedimiento para listar todos los trabajadore de una empresa. Recibe la Gestoría al completo y el indice de la empresa /// que queremos para mostrar los trabajadores. Podría hacerse solo con la lista de trabajadores... /// </summary> public static void listaTrabajadores(Gestora migestoria, byte empresa) { string cadena; CH.cls(); cadena = ""; cadena += "\nLISTADO DE TRABAJADORES EMPRESA: " + migestoria.empresas[empresa - 1].nombre + "\n"; cadena += "================================="; for (int i = 0; i < migestoria.empresas[empresa - 1].nombre.Length; i++) { cadena += "="; } cadena += "\n"; Console.WriteLine(cadena); cadena = ""; if (migestoria.empresas[empresa - 1].plantilla == null) { CH.lcdColor("i> LA EMPRESA ACTIVA TODAVÍA NO TIENE TRABAJADORES\n", ConsoleColor.Red); } else { Console.ForegroundColor = ConsoleColor.Blue; Console.WriteLine("{0} {1}{2} ", "APELLIDOS".PadRight(10), " NOMBRE".PadLeft(11), "D.N.I. ".PadLeft(13)); Console.ForegroundColor = ConsoleColor.White; foreach (Trabajador trabajador in migestoria.empresas[empresa - 1].plantilla) { Console.WriteLine("{0} {1} {2}", trabajador.apellidos.PadRight(15), trabajador.nombre.PadRight(10), trabajador.dni.PadRight(10)); } //Console.WriteLine(cadena); } ConsoleHelper.pausa(); }
public static byte leerOpcionTrabajadorOp(byte tope, string tipo) { byte opcion = 0; bool salir = false; string aux = null; do { Console.Write("\n?> ¿Y QUÉ TRABAJADOR QUIERES " + tipo + "?: "); aux = Console.ReadLine(); if (byte.TryParse(aux, out opcion)) { if (opcion >= 0 && opcion <= tope) { salir = true; } else { CH.lcdColor("!> OPCIÓN FUERA DE RANGO [1-" + tope + "]", ConsoleColor.DarkYellow); } } else { CH.lcdColor("!> ¿¡Perdona!?... ?@#!!", ConsoleColor.Red); } } while (!salir); return(opcion); }
/// <summary> /// Procedimiento para listar las empresas de la gestoria, con o sin indices /// <paramref name="indices">True o False para indicar si queremos indices o no</paramref> /// <paramref name="migestoria">La Gestoria</paramref> /// </summary> public static void listadoEmpresas(Gestora migestoria, bool indices) { int indice; int trabajadores; string salida; indice = 1; trabajadores = 0; salida = "\nLISTADO DE EMPRESAS\n===================\n"; CH.lcd(salida); Console.ForegroundColor = ConsoleColor.Blue; if (indices) { Console.WriteLine("{0}{1}{2}", "ID".PadRight(5), "NOMBRE".PadRight(15), "TRABAJADORES"); } else { Console.WriteLine("{0}{1}", "NOMBRE".PadRight(15), "TRABAJADORES"); } Console.ForegroundColor = ConsoleColor.White; salida = ""; if (migestoria.empresas != null) { if (migestoria.empresas.Length > 0) { for (int i = 0; i < migestoria.empresas.Length; i++) { if (migestoria.empresas[i].plantilla != null) { trabajadores = migestoria.empresas[i].plantilla.Length; } if (indices) { Console.WriteLine("{0}{1}{2}", indice.ToString().PadRight(5), migestoria.empresas[i].nombre.PadRight(15), trabajadores); } else { Console.WriteLine("{0}{1}", migestoria.empresas[i].nombre.PadRight(15), trabajadores); } indice++; trabajadores = 0; } } } else { salida += "\n!> NO HAY NINGUNA EMPRESA REGISTRADA, MELÓN!!"; } CH.lcdColor(salida, ConsoleColor.Red); //ConsoleHelper.pausa(); }
public static void modificarTrabajador(ref Trabajador trabajador) { Console.WriteLine(">> DATOS DEL TRABAJADOR:\n" + trabajador.ToString()); Console.WriteLine(">> AHORA DAME LOS NUEVOS DATOS..."); try { trabajador.nombre = ConsoleHelper.leerNombre(); trabajador.apellidos = ConsoleHelper.leerApellidos(); trabajador.dni = ConsoleHelper.leerDni(); CH.lcdColor("\n>> DATOS DEL TRABAJADOR ACTUALIZADOS!", ConsoleColor.Green); } catch (Exception ex) { Console.WriteLine(">> ERROR: " + ex.Message); } }
public static void listarDatosBin(int maxhoras, int horasbase, float maxeurxhora, float preciojornada, float factorextra, float impuestos) { string cadena; cadena = "\nLISTADO DE VALORES CONFIGURACION !!BINARY!!!\n"; cadena += "============================================\n"; CH.lcdColor(cadena, ConsoleColor.Cyan); cadena = "1. MAXIMO HORAS.....: " + maxhoras + "\n"; cadena += "2. HORAS SAL. NORMAL: " + horasbase + "\n"; cadena += "3. EUR MAX. X HORA..: " + maxeurxhora + "\n"; cadena += "4. PRECIO JORNADA...: " + preciojornada + "\n"; cadena += "5. FACTOR INC. EXTRA: " + factorextra + "\n"; cadena += "6. % IMPUESTOS......: " + impuestos + "\n"; CH.lcd(cadena); }
// METODO PARA LISTAR LAS NOMINAS POR INDICE DEL TRABJADOR. RECIBE EL TIPOTRABAJADOR public static void listarTrabajadores(Empresa empresa) { if (empresa.plantilla != null) { Console.WriteLine("\nLISTADO DE TRABAJADORES"); Console.WriteLine("======================="); for (int i = 0; i < empresa.plantilla.Length; i++) { Console.WriteLine((i + 1) + ". " + empresa.plantilla[i].nombre + " " + empresa.plantilla[i].apellidos); } } else { CH.lcdColor("\n!> LA EMPRESA NO TIENE TRABAJADORES CONTRATADOS!", ConsoleColor.Red); } }
public static void menu_empresa() { string salida; salida = "\n"; ConsoleHelper.cls(); salida += "+----------------------+\n"; salida += "| MENU DE EMPRESAS |\n"; salida += "+----------------------+\n"; CH.lcdColor(salida, ConsoleColor.Cyan); salida = "1. NUEVA EMPRESA\n"; salida += "2. CONSULTAR EMPRESA\n"; salida += "3. MODIFICAR EMPRESA\n"; salida += "4. BORRAR EMPRESA\n\n"; salida += "5. LISTAR EMPRESAS\n\n"; salida += "0. VOLER AL MENÚ PRINCIPAL\n\n"; Console.Write(salida); }
public static void menuTrabajador(byte empresa, Gestora migestoria) { ConsoleHelper.cls(); string cadena = null; cadena += "\n+======================+\n"; cadena += "| MENU DE TRABAJADORES |\n"; cadena += "+======================+\n\n"; cadena += "*> EMPRESA: " + empresa + ". " + migestoria.empresas[empresa - 1].nombre + " <*\n"; CH.lcdColor(cadena, ConsoleColor.Cyan); cadena = "1. REGISTRAR TRABAJADOR\n"; cadena += "2. CONSULTAR TRABAJADOR\n"; cadena += "3. MODIFICAR TRABAJADOR\n"; cadena += "4. DESPEDIR TRABAJADOR\n\n"; cadena += "5. LISTAR TRABAJADORES\n\n"; cadena += "0. << GORVER <<\n"; Console.WriteLine(cadena); }
// FUNCIÓN QUE DEVUELVE UN STRING (CUALQUIER COSA) QUE NO ESTE VACIO PEDIDO POR TECLADO // MOSTRANDO UN MENSAJE PERSONALIZADO POR PANTALLA // @param - string: un mensaje para mostrar por pantalla public static string leerCadena(string msg) { bool salir = false; string aux = null; do { Console.Write("?> " + msg + ": "); aux = Console.ReadLine(); if ((String.IsNullOrEmpty(aux))) { CH.lcdColor("!> ¿¡Perdona!?... ?@#!!", ConsoleColor.Red); } else { salir = true; } } while (!salir); return(aux); }
public static void menu_principal(string nombre) { CH.cls(); string salida = "\n"; salida += "+===============================+\n"; salida += "| MENU DE OPCIONES GESTORIA |\n"; salida += "| - - - - - - - - - - - |\n"; salida += "| " + nombre + " |\n"; salida += "+===============================+\n"; CH.lcdColor(salida, ConsoleColor.Cyan); salida = "1. GESTIÓN DE EMPRESAS\n"; salida += "2. GESTIÓN DE TRABAJADORES\n"; salida += "3. GESTIÓN DE NOMINAS\n\n"; salida += "4. MÓDULO DE ADMINISTRACIÓN\n\n"; salida += "5. CARGA DATOS [MODO DEBUG]\n\n"; salida += "0. SALIR\n\n"; CH.lcd(salida); }
// FUNCIÓN DE DEVUELVE UN STRING (NO NUMERO REAL) PEDIDO POR TECLADO // @param - string: el mensaje a mostrar // @return - string: el string introducido public static string leerString(string msg) { bool salir = false; string aux = null; int numero = 0; do { Console.Write("?> " + msg + ": "); aux = Console.ReadLine(); if ((String.IsNullOrEmpty(aux)) || (Int32.TryParse(aux, out numero))) { CH.lcdColor("!> ¿¡Perdona!?... ?@#!!", ConsoleColor.Red); } else { salir = true; } } while (!salir); return(aux); }
/// <summary> /// Procedimiento para mostar el menu principal para la gestión de nóminas, previa seleccion /// de empresa y trabajador /// <paramref name="empresa">La empresa activa con los trabajadores</paramref> /// <paramref name="trabajador">El trabajador Activo...</paramref> /// <paramref name="migestoria">La getoria entera ... ?!?!</paramref> /// </summary> public static void menuNomina(byte empresa, byte trabajador, Gestora migestoria) { string salida; CH.cls(); salida = "\n"; salida += "+---------------------+\n"; salida += "| MENU DE NÓMINAS |\n"; salida += "+---------------------+\n\n"; salida += "*> EMPRESA.: " + empresa + ". " + migestoria.empresas[empresa - 1].nombre + " <*\n"; salida += "*> EMPLEADO: " + trabajador + ". " + migestoria.empresas[empresa - 1].plantilla[trabajador - 1].nombre + " " + migestoria.empresas[empresa - 1].plantilla[trabajador - 1].apellidos + " <*\n"; CH.lcdColor(salida, ConsoleColor.Cyan); salida = "1. AÑADIR UNA NOMINA\n"; salida += "2. CONSULTAR NOMINA\n"; salida += "3. MODIFICAR NOMINA\n"; salida += "4. ELIMINAR NOMINA\n\n"; salida += "5. LISTAR NOMINAS\n\n"; salida += "0. << GORVER <<\n"; CH.lcd(salida); }
public static int leerNumero(string msg) { bool salir = false; string aux = ""; int numero = 0; do { Console.Write("?> " + msg + ": "); aux = Console.ReadLine(); if ((!String.IsNullOrWhiteSpace(aux) && Int32.TryParse(aux, out numero))) { salir = true; } else { CH.lcdColor("!> Valor NO VÁLIDO!", ConsoleColor.Red); } } while (!salir); return(numero); }
/// <summary> /// METODO PARA CAMBIAR UNA NÓMINA POR OTRA /// RECIBE EL TRABAJADOR POR REFERENCIA Y LA NOMINA A CAMBIAR. /// CREA UNA NUEVA Y LA CAMBIA /// <paramref name="nomina">La nomina a sustituir</paramref> /// <paramref name="trabajador">El trabajador de la nómina en cuestion</paramref> /// </summary> public static void pedirNuevaNomina(ref Trabajador trabajador, Nomina nomina) { Nomina nueva_nomina = new Nomina(); bool salir = false; DatosBase datos; datos = ControlerAdministracion.cargarDatos(); do { try { nueva_nomina.nombre = trabajador.nombre; nueva_nomina.apellidos = trabajador.apellidos; Console.WriteLine("i> OK, AMO... VAMOS A CREAR UNA NUEVA NÓMINA PARA SUSTITUIRLA"); pedirDatosNomina(ref nueva_nomina); nueva_nomina.eurosHoras = datos.preciojoranda; // ESTA CONSTANTE ESTA EN CONTROLER GESTORIA, PERO ¿COMO SE LLEGA DE AQUI ALLI? nueva_nomina.calcularBruto(datos.horasbase, datos.incrementoextra); // HAY QUE PASARLE EL MAX. DE HORAS NORMALES (EL RESTO SON EXTRAS) Y EL FACTOR DE INCREMENTO nueva_nomina.calcularImpuestos(datos.impuestos); // EL PORCENTAJE DE LA TASA DE IMPUESTOS Console.WriteLine("\n" + nueva_nomina.ToString()); if (trabajador.modificarNomina(nomina, nueva_nomina)) { CH.lcdColor("i> NÓMINA MODIFICADA CORRECTAMENTE", ConsoleColor.Green); salir = true; //ConsoleHelper.pausa(); } else { CH.lcdColor("\n!> ERROR MODIFICANDO LA NÓMINA", ConsoleColor.Red); }; } catch (Exception ex) { CH.lcdColor("!> ERR: " + ex.Message.ToUpper(), ConsoleColor.Red); } } while (!salir); }