Exemplo n.º 1
0
        //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);
            }
        }
        //CONFIRMACIÓN PARA GUARDAR CAMBIOS
        public static bool Confirmar()
        {
            String cad = null; //CADENA QUE ALMACENA LA PREGUNTA
            bool confirma = false; //BOOLEANO DE RESPUESTA
            cad = "\t¿Desea usted guardar los cambios?(s/n)";
           Interfaz.Pregunta(ref cad, ref confirma); //LLAMADA AL MÉTODO QUE REALIZA LA PREGUNTA

            return confirma;
        }
Exemplo n.º 3
0
        //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);
        }