//Método búsqueda de un dependiente private void búsquedaToolStripMenuItem_Click(object sender, EventArgs e) { FormIntroducir fi = new FormIntroducir("NºSS"); fi.ShowDialog(); DialogResult dr = fi.DialogResult; if (dr == DialogResult.OK) { Dependiente daux = new Dependiente(fi.textBox1.Text, null, null); Dependiente d = sd.ObtenerInfoDependiente(daux); //Si existe el dependiente, lo mostrará en un formulario de lectura //Si no, permitirá introducir otro nss if (d == null) { DialogResult dr2 = MessageBox.Show(this, "¿Quieres introducir otro dato?", "No existe un dependiente con ese NºSS", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (dr2 == DialogResult.Yes) { fi.Dispose(); this.búsquedaToolStripMenuItem.PerformClick(); } else { fi.Dispose(); } } else { //Muestra el dependiente en formato de solo lectura FormDependientes fd = new FormDependientes("Búsqueda"); fd.button2.Dispose(); fd.button1.Location = new System.Drawing.Point(108, 232); //movemos el boton aceptar fd.textBox1.Text = d.NSS; fd.textBox2.Text = d.Nombre; fd.textBox2.ReadOnly = fd.textBox3.ReadOnly = fd.textBox4.ReadOnly = true; fd.textBox3.Text = d.Apellidos; fd.textBox4.Text = "" + d.Comision; fd.ShowDialog(); //mostrar uno con los datos } } fi.Dispose(); }
//Métodos correspondientes a los botones de Dependiente //Método alta de un Dependiente //Comentaremos este primer método con más detalle, y los siguientes seguirán un patrón similar, con lo que contendrán menos anotaciones private void altaToolStripMenuItem_Click(object sender, EventArgs e) { //Creamos un formulario para que introduzca el nss y esperamos si acepta o le da a cancelar FormIntroducir fi = new FormIntroducir("NºSS"); fi.ShowDialog(); DialogResult dr = fi.DialogResult; //En el caso de que acepte continuamos if (dr == DialogResult.OK) { //Comprobamos que no ha introducido un nss vacío y que siga haciendo click en aceptar while (fi.textBox1.Text == "" & dr == DialogResult.OK) { DialogResult drDelay = MessageBox.Show(this, "Debe introducir un nss para el nuevo Dependiente", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); fi.Dispose(); fi = new FormIntroducir("NºSS"); dr = fi.ShowDialog(); } //Si ha salido del bucle porque ha introducido un nss, vendrá aquí if (dr == DialogResult.OK) { //Construimos un Dependiente auxiliar que hará de envoltorio del nss (ya que nuestra búsqueda de dependiente necesita de un dependiente) Dependiente daux = new Dependiente(fi.textBox1.Text, null, null); //Si ese dependiente ya existía, nos lo devolverá en "d", en caso contrario, en "d" tendremos un null Dependiente d = sd.ObtenerInfoDependiente(daux); //Si ese dependiente existía: if (d != null) { //Le daremos la posibilidad de introducir otro DialogResult dr2 = MessageBox.Show(this, "¿Quieres introducir otro?", "Ya existe un dependiente con ese NºSS", MessageBoxButtons.YesNo, MessageBoxIcon.Question); //Si clicka en sí, reiniciaremos el proceso de dar de alta un dependiente, previamente destruyendo el formulario de introducir datos if (dr2 == DialogResult.Yes) { fi.Dispose(); this.altaToolStripMenuItem.PerformClick(); } //Si clicka en no, lo destruirá else { fi.Dispose(); } } //Si no existía, le dejaremos crear uno al no haber ninguno aun else { //Destruimos el formulario de introducción fi.Dispose(); //Creamos uno nuevo para la creación de un dependiente FormDependientes fd = new FormDependientes("Alta"); //Retiramos botones sobrantes fd.label4.Dispose(); fd.textBox4.Dispose(); //Escribimos en el casillero del nss, que es de tipo solo lectura, el nss que nos ha introducido antes fd.textBox1.Text = daux.NSS; //nss que hemos buscado que no existía //Y esperamos DialogResult dr3 = fd.ShowDialog(); //Si clicka en aceptar: if (dr3 == DialogResult.OK) { //Checkeamos que ha introducido datos en los campos y que sigue pulsando en aceptar while ((fd.textBox2.Text == "" | fd.textBox3.Text == "") & dr3 == DialogResult.OK) { //Muestra un error, y vuelve a esperar a que se pulse un botón DialogResult drDelay = MessageBox.Show(this, "Debe introducir un nombre y unos apellidos para el dependiente", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); dr3 = fd.ShowDialog(); } //Si ha escrito en los campos y sigue pulsando en aceptar, recoge el texto de los campos y da de alta el dependiente if (dr3 == DialogResult.OK) { String nombre = fd.textBox2.Text; String apellidos = fd.textBox3.Text; sd.DarAltaDependiente(new Dependiente(daux.NSS, nombre, apellidos)); } } //Si clicka en aceptar, destruirá el formulario y volverá al menú principal else { fd.Dispose(); } } //En caso de que haya clickado en cancelar, vendrá aquí } } //En cualquier caso, destruimos el formulario de introducción de datos fi.Dispose(); }
//Método baja de un dependiente private void bajaToolStripMenuItem_Click(object sender, EventArgs e) { FormIntroducir fi = new FormIntroducir("NºSS"); fi.ShowDialog(); DialogResult dr = fi.DialogResult; if (dr == DialogResult.OK) { Dependiente daux = new Dependiente(fi.textBox1.Text, null, null); Dependiente d = sd.ObtenerInfoDependiente(daux); //Si el dependiente que queremos dar de baja no está, permitiremos introducir otro if (d == null) { DialogResult dr2 = MessageBox.Show(this, "¿Quieres introducir otro?", "No existe un dependiente con ese NºSS", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (dr2 == DialogResult.Yes) { fi.Dispose(); this.bajaToolStripMenuItem.PerformClick(); } else { fi.Dispose(); } } else //Si está, le enseñamos los datos y le damos la opcion de dar de baja { fi.Dispose(); FormDependientes fd = new FormDependientes("Baja"); fd.textBox1.Text = d.NSS; fd.textBox1.ReadOnly = true; fd.textBox2.Text = d.Nombre; fd.textBox2.ReadOnly = true; fd.textBox3.Text = d.Apellidos; fd.textBox3.ReadOnly = true; fd.textBox4.Text = d.Comision + ""; fd.textBox4.ReadOnly = true; fd.button1.Text = "Dar baja"; DialogResult dr3 = fd.ShowDialog(); //si acepta darlo de baja if (dr3 == DialogResult.OK) { //Le mostramos un aviso DialogResult dr4 = MessageBox.Show(this, "¿Está seguro que desea dar de baja al dependiente?", "Aviso", MessageBoxButtons.YesNo, MessageBoxIcon.Question); //En caso afirmativo se borra if (dr4 == DialogResult.Yes) { sd.DarBajaDependiente(d); MessageBox.Show(this, "Dependiente eliminado", "", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } //En caso negativo se vuelve al principal else { fd.Dispose(); } } else { fd.Dispose(); } } } fi.Dispose(); }