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();
            }
        }
示例#2
0
        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();
            }
        }
示例#3
0
        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();
        }