//Método para la Modificación de los diferentes aspectos de un trabajador en concreto public static void ModificarTrabajador(ref Trabajador[] listaTrabajadores) { int posicion = 0; string eleccion = null; string dni = null; bool salir = false, existe = false; bool error = false; string pregunta = null; string mensaje = null; if (error == false) { dni = Interfaz.PlantillaPedirDni(); //Pedimos el DNI a modificar con la plantilla de la intefaz existe = ExisteTrabajador(listaTrabajadores, dni, ref posicion); } if (existe) { do { try { //Llamamos a la plantilla para ver la elección escogida eleccion = Interfaz.PlantillaEleccionModificar(); switch (eleccion) //Según la elección escogida realiza una acción u otra { //Caso 1: Modificación del DNI case "1": listaTrabajadores[posicion].dni_pre = Interfaz.ElementoModificar(eleccion); break; //Caso 2: Modificación del NOMBRE case "2": listaTrabajadores[posicion].nombre_pre = Interfaz.ElementoModificar(eleccion); break; //Caso 1: Modificación de los APELLIDOS case "3": listaTrabajadores[posicion].apellidos_pre = Interfaz.ElementoModificar(eleccion); break; } error = false; mensaje = "Operación realizada con éxito."; pregunta = "¿Quieres modificar otro aspecto? s/n >> "; Interfaz.Continuar(mensaje); Interfaz.Pregunta(ref pregunta, ref salir); Ficheros.GuardarTrabajadores(listaTrabajadores); // Si todo ha sido validado, lo guardamos en el fichero } catch (Exception ex) { Interfaz.Error(ex.Message); Interfaz.Continuar(); salir = false; error = true; } } while (!salir); } }
// Método para mostrar a todos los trabajadores que hay en la nómina public static void ListarTrabajadores(Trabajador[] arr) { arr = Ficheros.getTrabajadores(); //Cogemos los trabajadores del fichero Interfaz.Header(); for (int i = 0; i < arr.Length; i++) { Interfaz.FormatoLeerXML(arr[i].dni_pre, arr[i].nombre_pre, arr[i].apellidos_pre); } Interfaz.Continuar(); }
//Método utilizado para la creación de nuevos trabajadores public static void NuevoTrabajador(ref Trabajador[] listaTrabajadores, int mode) { Trabajador trabtemp; Trabajador[] copia = null; bool salida = false; //Inicialización de variables string mensaje = null; string mensaje2 = null; bool existe = false; // Entrada de Datos do { // ENTRADA trabtemp = Interfaz.PlantillaCrearTrabajador(); existe = ExisteTrabajador(listaTrabajadores, trabtemp.dni_pre); //Comprueba si existe o no el trabajador if (listaTrabajadores == null) //Si la lista de trabajadores está vacía, le asigna una posición { listaTrabajadores = new Trabajador[1]; } if (listaTrabajadores != null) //Como no es nula, debido a la anterior creación de la posición { if (existe == false) { //Gestión dinámica de la memoria copia = new Trabajador[listaTrabajadores.Length]; //Copiamos el tamaño del array de trabajadores listaTrabajadores.CopyTo(copia, 0); //Volcamos el contenido del array de trabajadores en copia listaTrabajadores = new Trabajador[listaTrabajadores.Length + 1]; //Asignamos una posición más copia.CopyTo(listaTrabajadores, 0); //Copiamos todo de nuevo al array de trabajadores copia = null; //Volvemos copia a null para ahorrar memoria listaTrabajadores[listaTrabajadores.Length - 1] = trabtemp; //Asignamos el nuevo trabajador al array mensaje = "Trabajador registrado correctamente"; if (mode == 1)// Modo 1: Creamos empleados por NuevoTrabajadors { mensaje2 = "Desea registrar otro Trabajador (s/n): "; salida = Interfaz.Continuar(mensaje); Interfaz.Pregunta(ref mensaje2, ref salida); Ficheros.GuardarTrabajadores(listaTrabajadores); } else //Creamos empleados desde la nómina. { salida = true; } } else //Si existe el trabajador, asignamos que salga del bucle { salida = true; } } } while (!salida); }
public static bool ValidarContraseña(string password) { string originalpassword = null; Ficheros.CheckPass(ref originalpassword); if (Encriptacion.Encriptar(password).Equals(originalpassword)) { return true; } else { return false; } }
private static float retenciones = 0.0F; //Calculo de retenciones salariales #region GESTION NOMINAS - ANTONIO BAENA //Inicialización de nóminas public static void InicializaNomina(ref Nomina nomina) { //Cargamos los datos en el objeto nomina desde la referencia horas = nomina.Horas_pre; extra = nomina.HExtra_pre; precio = nomina.PrecioPre; salarioExtra = nomina.SalExtra_pre; bruto = nomina.SalBruto_pre; neto = nomina.SalNeto_pre; //Cargamos los datos por defecto de app.config Ficheros.getConfig(ref jornada, ref horasExtra, ref retenciones); nomina.HextrasPre = horasExtra; nomina.JornadaPre = jornada; nomina.RetencionPre = retenciones; }
//Método para comprobar si el DNI existe ya en la Base de datos de empleados. public static bool ComprobarDni(string dni) { Trabajador[] temp = null; bool correcto = false; int i = 0; //Inicialización de variables temp = Ficheros.getTrabajadores(); //Cogemos los trabajadores del fichero for (i = 0; i < temp.Length; i++) //Recorremos los DNI de los trabajadores buscando el solicitado { if (dni.Equals(temp[i].dni_pre)) { correcto = true; return(correcto); } else { correcto = false; } } return(correcto); //Devolvemos si ha sido encontrado o no }
public static void GestionOperaciones(int numb, ref bool flag, int mode) { Trabajador[] listaTrabajador = null; listaTrabajador = Ficheros.getTrabajadores(); switch (numb) { //Agregar trabajadores case 1: // *AGREGAR TRABAJADORES FUNCIONA CORRECTAMENTE* Gestion_Empleado.NuevoTrabajador(ref listaTrabajador, mode); Ficheros.GuardarTrabajadores(listaTrabajador); break; //Modificar trabajadores case 2: // LLAMAR A MÉTODO MODIFICAR USUARIO (REF ARRAY)---- // LLAMAR A MÉTODO FICHERO MODIFICAR Gestion_Empleado.ModificarTrabajador(ref listaTrabajador); Ficheros.GuardarTrabajadores(listaTrabajador); break; //Eliminar trabajadores case 3: // *BORRADO FUNCIONA CORRECTAMENTE* Gestion_Empleado.BorrarTrabajador(ref listaTrabajador); Ficheros.GuardarTrabajadores(listaTrabajador); break; //Modificar Contraseña case 4: ModificarContraseña(); break; case 5: // * MOSTRAR TRABAJADORES FUNCIONA CORRECTAMENTE Gestion_Empleado.ListarTrabajadores(listaTrabajador); break; case 6: // SALIR flag = true; break; } }
//Métodos que controlan el funcionamiento de la clase GestionNomina y la Interfaz public static void GestionNominas(int numb, ref bool flag, string dni) { string fecha; Nomina[] Nomina = null; Nomina semana = null; try { //Recuperamos la nómina del trabajador y la cargamos en un Array de Nóminas de trabajo. Nomina = Ficheros.GetNomina(dni); //Ordenamos el array y lo redimensionamos, dejando huecos en las semanas no creadas aún Gestion_Nomina.OrdenaNomina(ref Nomina); switch (numb) { case 0: flag = true; break; //Introducir nóminas case 1: /*Comprobamos que el array no ha llenado los seis espacios que es el máximo de semanas * que tiene un mes. En caso de haber huecos, lanzamos los métodos para pedir la semana * e introducirla en el array nómina, tras lo cual se almacena en el fichero.*/ if (!Gestion_Nomina.LimiteSemanas(Nomina)) { semana = Interfaz.AgregarSemana(Nomina); Gestion_Nomina.CreaSemana(ref Nomina, ref semana); Ficheros.GuardarNominaTemporal(ref Nomina); } else { Interfaz.Error("No se pueden agregar más semanas, se ha alcanzado el máximo posible de semanas de un mes"); } break; //Modificar Nóminas case 2: /*Con esta opción vamos a cambiar los parámetros de la nómina, para lo que lanzamos el * método de cambio de la semana. Y, una vez terminado, se guarda la nómina en el fichero.*/ Gestion_Nomina.CambiaSemana(ref Nomina); Ficheros.GuardarNominaTemporal(ref Nomina); break; //Modificar archivo de configuracion case 3: /* Esta opción lanza una interfaz que nos va a permitir modificar los parámetros almacenados en * app.config, previa validación de la contraseña de administrador*/ int option = 0; float valor = 0; string pass = null; pass = Interfaz.PedirContraseña(); if (GestionNegocio.ValidarContraseña(pass)) { Interfaz.PedirDatosArchivoConf(ref option, ref valor); Ficheros.ModConfig(option, valor); Interfaz.Continuar("Valor modificado con éxito"); } else { Interfaz.Error("La contraseña no coincide."); Interfaz.Continuar(); break; } break; //Eliminar nominas case 4: /*La opción de eliminar nóminas a su vez lanza un menú por interfaz que permite eliminar una sóla semana * del array de nóminas o, por el contrario, eliminar todas las posiciones de dicho array. * Tanto en un método como en el otro, se lanza un método en gestión de nómina que es el que se encarga de * hacer la eliminación y redimensión del array. */ int ordinal = 0, opcion = 0; opcion = Interfaz.EliminarSemanaOpcion(); if (opcion == 1) { ordinal = Interfaz.ElegirSemana(); // Pide la semana a eliminar Gestion_Nomina.ProcesoEliminarSemana(ref Nomina, ordinal); } else { Gestion_Nomina.ProcesoEliminarNomina(ref Nomina); } Ficheros.GuardarNominaTemporal(ref Nomina); break; //Mostrar Nómina Temporal case 5: /*En esta opción se muestra la nómina temporal, con el número de semanas * como los parámetros tales como número de horas, horas extra, * precio de la hora extra, porcentaje de retencion, etc.*/ Console.WriteLine(Interfaz.MostrarNominaTemporal(Nomina, dni)); Console.ReadLine(); break; //Cerrar Nómina del Mes case 6: /*Este método sirve para guardar la nómina del mes, exportándola a un archivo de texto * (después de mostrarla en pantalla y pedir confirmación) y eliminar el archivo temporal*/ string cadena = null; /*Se calculan los parámetros tales como horas extra trabajadas, salario base, extra, * retenciones y neto, y se almacenan en él array de nóminas*/ Gestion_Nomina.CalculaParcial(ref Nomina); //La interfaz muestra por pantalla los parciales semanales y se devuelve en la variable cadena. cadena = Interfaz.MostrarNomina(Nomina, dni); //El método cierreMes devuelve (y concatena) en la variable cadena el resultado del cálculo de los totales de cada semana. cadena += Interfaz.CierreMes(Nomina); if (!Confirmar())//se pide confirmación para guardar los cambios. { //Almacena en el fichero fecha = Interfaz.Pidefecha();//En este método vamos a pedir la fecha de mes y año de la nómina para almacenarla. Ficheros.CerrarNomina(cadena, fecha);//En este método almacenamos la cadena de texto en un archivo nombrado con la fecha y el dni del trabajador. //Eliminar fichero Ficheros.BorrarTemporal(dni); //Eliminamos el fichero temporal de la nómina del sistema. Interfaz.Continuar("Nómina Exportada Correctamente \n \t\tPulsa una tecla para continuar..."); } else { Interfaz.Continuar(); } break; } } catch (Exception e) { Interfaz.Error(e.Message); Interfaz.Continuar("Pulsa una tecla para continuar..."); } }
public static void InicializarComponentes() { Ficheros.CheckConfig(); Ficheros.ExistOrEmptyEMP(); Ficheros.CheckArchivoPass(); }
public static void ModificarContraseña() { string pass = null; pass = Interfaz.PedirContraseñaModificar(); Ficheros.ModPass(pass); }