private void aceptar_Click(object sender, EventArgs e) { try { //Si esta en modo edicion if (opcion == 3) { //Se dan de alta los empleados en el Trabajo seleccionado alta(); } else { if (opcion == 1) { if (frm2 != null) //Si encuentra una instancia abierta { string descripcion = frm2.richTextBox1.Text; string nombre = frm2.textNombre.Text; int tipoTrab = frm2.comboBox1.SelectedIndex + 1; int idPro = frm2.ProyectosID[frm2.comboBox2.SelectedIndex]; string fechaA = frm2.dateTimePicker1.Value.Date.ToString("yyyy-MM-dd"); string fechaB = frm2.dateTimePicker2.Value.Date.ToString("yyyy-MM-dd"); //Se crea el Trabajo nuevo. Si idPro es 0 no hay proyecto asociado co.Comando("CALL insert_Trabajos('" + descripcion + "','" + nombre + "','" + fechaA + "','" + fechaB + "'," + tipoTrab + "," + idPro + "," + co.sesion + ");"); //Se selecciona el ID maximo de Trabajos que indica el ultimo trabajo creado y al que se le agregaran los empleados co.Comando("SELECT ID FROM Trabajos WHERE ID = (SELECT MAX(ID) FROM Trabajos);"); if (co.LeerRead) { IDTrab = co.Leer.GetInt32(0); } } opcion = 0; } //Se dan de alta los empleados en el ultimo trabajo creado alta(); } if (IDs.Count > 0) { Iniciar(); } else { tra.DatosTablas(); frm2.Close(); //Una vez concluido se termina la transacción co.Comando("COMMIT;"); this.Close(); } } catch (Exception) { co.Comando("ROLLBACK;"); MessageBox mens = new MessageBox("Error al crear los pagos correspondientes", 3); mens.ShowDialog(); frm2.Close(); this.Close(); } }
private void VisuaTrabajos_FormClosed(object sender, FormClosedEventArgs e) { Trabajos frm1 = Application.OpenForms.OfType <Trabajos>().FirstOrDefault(); if (frm1 != null) //Si encuentra una instancia abierta { frm1.DatosTablas(); //Cierra el frame this.Close(); } }
private void butEliminar_Click(object sender, EventArgs e) { if (co.permiso.Equals(co.administrador)) { List <int> PagoProgra = new List <int>(); //Selecciono los pagosProgramados asociados al Trabjo y los almaceno co.Comando("SELECT PagoProgramadoID FROM Pago_Empleado_Trabajos WHERE TrabajosID = " + IDTrab); while (co.LeerRead) { PagoProgra.Add(co.Leer.GetInt32(0)); } int pagos = 0; int PagosProgra = PagoProgra.Count; int i = 0; while (PagosProgra > 0) { //Compruebo si los pagosProgrmados tienen pagos realizados, si es asi aumento la variable co.Comando("SELECT ID FROM Pagos WHERE PagoProgramadoID = " + PagoProgra[i]); while (co.LeerRead) { pagos++; } i++; PagosProgra--; } //Si no tiene pagos asociados a ningun pagoProgramado if (pagos == 0) { MessageBox mens = new MessageBox("¿Seguro que desea eliminar el trabajo?", 1); mens.ShowDialog(); if (aceptarElim) { List <int> IDPagosProgra = new List <int>(); //Guardo los IDs de los pagos programados asociados al trabajo co.Comando("SELECT PagoProgramadoID FROM Pago_Empleado_Trabajos WHERE TrabajosID = " + IDTrab); while (co.LeerRead) { IDPagosProgra.Add(co.Leer.GetInt32(0)); } //Elimino el trabajo y se elimina el registro de Empleado_Trabajos y Pago_Empleado_Trabajos en cascada co.Comando("DELETE FROM Trabajos WHERE ID = " + IDTrab + ";"); //Elimino los Pagos Programados PagosProgra = IDPagosProgra.Count; i = 0; while (PagosProgra > 0) { co.Comando("DELETE FROM PagoProgramado WHERE ID = " + IDPagosProgra[i] + ";"); i++; PagosProgra--; } MessageBox mens1 = new MessageBox("Eliminado con éxito", 2); mens1.ShowDialog(); this.Close(); } } else { MessageBox men; //En caso contrario muestro los pagos asociados al trabajo if (pagos > 1) { men = new MessageBox("No se puede eliminar tiene " + pagos + " pagos asociados", 2); } else { men = new MessageBox("No se puede eliminar tiene " + pagos + " pago asociado", 2); } men.Show(); } } else { AppProyectoBD.MessageBox mens = new AppProyectoBD.MessageBox("No cuenta con los permisos para realizar esta acción", 3); mens.ShowDialog(); } //Actualizo la info de trabajos tra.DatosTablas(); }