package es.bancodehierro.banco.menu; import es.bancodehierro.banco.cc.CuentaCorriente; import es.bancodehierro.banco.central.Banco; import es.bancodehierro.banco.conexion.Conexion; import es.bancodehierro.banco.excepciones.ClienteException; import es.bancodehierro.banco.excepciones.CuentaCorrienteException; import es.bancodehierro.banco.persona.Empleado; import es.bancodehierro.banco.prestamo.Prestamo; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; /** * SUB MENU DEL APARTADO PRESTAMO. Se muestran las opciones de este sub-menu y * te pide que introduzcas la opcion. Según la opción elegida ejecuta el método * de banco encargado de pedir los datos. * * @author Miquel Vallespir, Rafel Sastre, Pau Riera, Jaume Mayol, Tomeu Moranta * */ public class MenuPrestamo { /** * Opcion del menu * * @author Miquel Vallespir, Rafel Sastre, Pau Riera, Jaume Mayol. * @param empleado Se pasa el objeto del empleado que hará las opciones. */ public static void menuPres(Empleado empleado) { String[] opcions = {"Insertar Prestamo", "Eliminar Prestamo","Ver movimientos préstamo","Comprobar préstamo", "Atras"}; int opcionSeleccionada; Banco banco = new Banco(); do { opcionSeleccionada = GestionaMenu.gestionarMenu("Prestamo", opcions, "Insertar opcion:", 1); switch (opcionSeleccionada) { case 1: try { banco.insertarPrestamo(empleado); } catch (ClienteException ex) { System.err.println("El client no existeix."); } catch (CuentaCorrienteException ex) { System.err.println("La conta corrent no existeix."); } catch (SQLException ex) { System.err.println("Error de conexion."); } break; case 2: banco.eliminarPrestamo(null); break; case 3: verMovimientosPrestamo(null); break; case 4: int numPres = GestionaMenu.llegirSencer("Introduce el código del préstamo: "); comprobarPrestamo(numPres); default: break; } } while (!(opcionSeleccionada == 3)); } public Prestamo getPrest(CuentaCorriente cc) throws SQLException{ ArrayList<String> resultSet = null; try { ResultSet rs = Conexion.conectar().createStatement().executeQuery("SELECT CODIGO_PRESTAMO," + "IMPORTE_PRESTAMO," + "DURACION_MES_PRESTAMO" + "DNI_TRABAJADOR," + "FECHA_FIRMA_PRESTAMO," + "CODIGO_SUC_TARJETA," + "NUMERO_CC_PRESTAMO" + "FROM PRESTAMO " + "WHERE NUMERO_CC_PRESTAMO='" + cc.muestraCC() + "'"); while (rs.next()) { resultSet.add( "Código préstamo: " + rs.getString(1) + ", Importe: " + rs.getInt(2) + ", Duración: " + rs.getString(3) + ", DNI: " + rs.getString(4) + ", Fecha Firma: " + rs.getDouble(5) + ", Codigo sucursal: " + rs.getString(6) + ", Número CC: " + rs.getString(7)); } } catch (SQLException ex){ System.err.println(ex.getMessage()); } return null; } /** * Metodo que sirve para recoger los datos que luego utilizaremos en el * metodo para ver los movimientos de un préstamo. * * @param prest prestec a veure els moviments. */ public static void verMovimientosPrestamo(Prestamo prest) { int codigoPrestamo; boolean existe; do { codigoPrestamo = GestionaMenu.llegirSencer("Introduce el código del préstamo: "); existe = comprobarPrestamo(codigoPrestamo); } while (existe); try { Statement st = Conexion.conectar().createStatement(); boolean resultat = comprobarPrestamo(codigoPrestamo); if (resultat == true) { prest.verMovimientosPrestamo(); } else if (resultat == false) { } } catch (SQLException ex) { System.out.println("Error: " + ex.getMessage() + ". \n ErrorCode:" + ex.getErrorCode() + ", SQLState:" + ex.getSQLState()); } } /** * Muestra por pantalla la informacion sobre un préstamo y si está. * * @param codigoPrestamo Codigo del préstamo * @return Devuelve un objeto de tipo préstamo. * */ public static boolean comprobarPrestamo(int codigoPrestamo) { boolean flag = true; try { Statement st = Conexion.conectar().createStatement(); String selectPrestamo = "SELECT COUNT(*) FROM PRESTAMO WHERE CODIGO_PRESTAMO = '" + codigoPrestamo + "'"; ResultSet rs = st.executeQuery(selectPrestamo); rs.next(); int existeix = rs.getInt(1); if (existeix == 1) { System.out.println("Préstamo encontrado!"); flag = false; } else { System.out.println("Préstamo no encontrado!"); flag = true; } rs.close(); st.close(); } catch (SQLException ex) { System.out.println("Error: " + ex.getMessage() + ". \n ErrorCode:" + ex.getErrorCode() + ", SQLState:" + ex.getSQLState()); } return flag; } }