private void bRealizarPrestamo_Click(object sender, EventArgs e) { // Comprobar si está seleccionado el lector y el libro: if (this.lectoresBindingSource.Position == -1 || this.librosBindingSource.Position == -1) { MessageBox.Show("Para realizar un préstamo es necesario seleccionar y lector y un libro"); return; } // Comprobar si el libro está prestado: if (dS_Libros.libros[librosBindingSource.Position].prestado_sn_lib == "S") { MessageBox.Show("El libro seleccionado ya está prestado"); return; } // Comprobar el límite de libros a prestar: if (dS_LibrosPrestados.LibrosPrestados.Rows.Count == 5) { MessageBox.Show("No se pueden prestar más de 5 libros a un lector"); return; } // Comprobar si el lector no esta penalizado: // ¡Atención no se compara directamente con NULL sino que se utiliza el método específico Is___Null! if (!dS_Lectores.lectores[0].Isfecha_penalizacion_lecNull()) { MessageBox.Show("No se puede prestar libros a un lector penalizado"); return; } // Realizar el préstamo: try { var prestamos = new DS_Prestamos.prestamosDataTable(); var prestamosTa = new DS_PrestamosTableAdapters.prestamosTableAdapter(); // Crear una nueva fila en la tabla prestamos: var fila = prestamos.NewprestamosRow(); fila.id_lec_pre = dS_Lectores.lectores[0].id_lec; fila.id_lib_pre = dS_Libros.libros[librosBindingSource.Position].id_lib; fila.fecha_presta_pre = DateTime.Now; fila.fecha_devol_pre = DateTime.Now.AddDays(configuracion[0].dias_prestamo_cnf); prestamos.AddprestamosRow(fila); prestamosTa.Update(prestamos); // Actualizar el libro como prestado: dS_Libros.libros[librosBindingSource.Position].prestado_sn_lib = "S"; librosTableAdapter.Update(dS_Libros.libros); // Actualizar la visualización de libros prestados: var filaPrestados = dS_LibrosPrestados.LibrosPrestados.NewLibrosPrestadosRow(); filaPrestados.id_lec_pre = fila.id_lec_pre; filaPrestados.id_lib = fila.id_lib_pre; filaPrestados.titulo_lib = dS_Libros.libros[librosBindingSource.Position].titulo_lib; filaPrestados.fecha_presta_pre = fila.fecha_presta_pre; filaPrestados.fecha_devol_pre = fila.fecha_devol_pre; dS_LibrosPrestados.LibrosPrestados.AddLibrosPrestadosRow(filaPrestados); } catch (Exception ex) { MessageBox.Show("Se ha producido un error en la creación del préstamo:" + ex.Message); } }
private void bPrestamo_Click(object sender, EventArgs e) { int posicionLibros = librosBindingSource.Position; //int idLector = int.Parse(id_lecLabel1.Text); DateTime fechaActual = DateTime.Today; //DateTime? fechaPenalizacion = dS_Lectores.lectores[0].fecha_penalizacion_lec; string fecha = fechaActual.ToShortDateString(); //int dias = dS_Configuracion.configuracion[0].dias_prestamo_cnf; Prestado = dS_Libros.libros[posicionLibros].prestado_sn_lib; if (id_lecLabel1.Text != "") { if (Prestado.Contains("N") && librosPrestadosDataGridView.RowCount <= 5) { if (dS_Lectores.lectores[0].Isfecha_penalizacion_lecNull() || dS_Lectores.lectores[0].fecha_penalizacion_lec < DateTime.Today) { DS_Configuracion.configuracionDataTable configuracion = new DS_Configuracion.configuracionDataTable(); DS_ConfiguracionTableAdapters.configuracionTableAdapter configuracionTa = new DS_ConfiguracionTableAdapters.configuracionTableAdapter(); configuracionTa.Fill(configuracion); int diasPrestamo = configuracion[0].dias_prestamo_cnf; DS_Prestamos.prestamosDataTable prestamos = new DS_Prestamos.prestamosDataTable(); DS_PrestamosTableAdapters.prestamosTableAdapter prestamosTa = new DS_PrestamosTableAdapters.prestamosTableAdapter(); DS_Prestamos.prestamosRow fila = prestamos.NewprestamosRow(); fila.id_lec_pre = dS_Lectores.lectores[0].id_lec; fila.id_lib_pre = dS_Libros.libros[posicionLibros].id_lib; fila.fecha_presta_pre = DateTime.Now; fila.fecha_devol_pre = DateTime.Now.AddDays(configuracion[0].dias_prestamo_cnf); prestamos.AddprestamosRow(fila); prestamosTa.Update(prestamos); dS_Libros.libros[posicionLibros].prestado_sn_lib.Remove(0, dS_Libros.libros[posicionLibros].prestado_sn_lib.Length); dS_Libros.libros[posicionLibros].prestado_sn_lib = "S"; librosBindingSource.EndEdit(); librosTableAdapter.Update(dS_Libros.libros); librosDataGridView.Update(); //dS_Lectores.lectores[0].Setfecha_penalizacion_lecNull(); //lectoresBindingSource.EndEdit(); //lectoresTableAdapter.Update(dS_Lectores.lectores); //lectoresTableAdapter.FillById(dS_Lectores.lectores,int.Parse(tbIDLector.Text)); librosPrestadosTableAdapter.FillByIdLector(dS_LibrosPrestados.LibrosPrestados, int.Parse(tbIDLector.Text)); MessageBox.Show("El préstamo se ha realizado correctamente."); } else { MessageBox.Show("El usuario está penalizado y no puede realizar préstamos."); } } else { MessageBox.Show("No se puede prestar el libro porque ya está prestado o la persona tiene 5 libros prestados."); } } else { MessageBox.Show("Debes buscar primero un lector."); } }