package es.bancodehierro.banco.tarjeta; import es.bancodehierro.banco.conexion.Conexion; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; /** * Clase credito, subclase de Tarjeta. * * @author Grupo Tarjetas. */ public class Credito extends es.bancodehierro.banco.tarjeta.Tarjeta { private Double limite; private Double saldo; /** * Metodo para la agregacion en la base de datos de una tarjeta de credito * pasa los parametros necesarios al constructor de la superclasse * * @param codigoTitular Codigo del titular de la tarjeta. * @param codigoCuentaCorriente Codigo de la cuenta corriente asociada. * @param codigoSucursal Codigo de la sucursal. * @param limite Limite de la tarjeta de credito. */ public Credito(String codigoTitular, String codigoCuentaCorriente, int codigoSucursal, double limite) { super(null, codigoTitular, codigoCuentaCorriente, codigoSucursal, null, null); this.limite = limite; try { Conexion.conectar().createStatement().executeUpdate("INSERT INTO v_tarjeta_credito VALUES (" + "null" + ",'" + codigoTitular + "'" + ",'" + codigoCuentaCorriente + "'," + codigoSucursal + ",null," + limite + ")"); } catch (SQLException e) { } } /** * Constructor para recuperar una tarjeta de credito ya existente en la base * de datos, crea un objeto tarjeta.credito * * @param codigoTarjeta Codigo de la tarjeta. */ public Credito(String codigoTarjeta) { super(codigoTarjeta, "CREDITO"); try { ResultSet select = Conexion.conectar().createStatement().executeQuery("SELECT * FROM v_tarjeta_credito WHERE codigo_tarjeta = '" + codigoTarjeta + "'"); while (select.next()) { this.limite = select.getDouble(6); this.saldo = select.getDouble(7); } } catch (SQLException e) { } } /** * Metodo para recuperar el valor del atributo Limite. * * @return Devuelve el limite de la tarjeta de credito. */ public Double getLimite() { return limite; } /** * Metodo para recuperar el valor del atributo Saldo * * @return Devuelve el saldo disponible de la tarjeta de credito (limite - * movimientos). */ public Double getSaldo() { return saldo; } /** * metodo para recuperar un string con informacion del objeto * * @return Devuelve un String que muestra la informacion de la tarjeta de * credito. */ @Override public String toString() { return "Credito{" + "limite=" + limite + ", saldo=" + saldo + '}'; } /** * Metodo para establecer el valor del atributo limite * * @param limite Establece el limite de la tarjeta de credito. */ public void setLimite(Double limite) { this.limite = limite; } /** * Metodo para establecer el valor del atributo saldo * * @param saldo Establece el saldo disponible actualmente de la tarjeta. */ public void setSaldo(Double saldo) { this.saldo = saldo; } /** * Metodo para pagar con la tarjeta de credito, recube el importe y el * concepto, crea un objeto MoimientoTarjeta, estableciendo los argumentos. * * @param importe Cantidad a pagar. * @param concepto Concepto del pago. * @return Si todo ha salido bien, devuelve un true. */ public Boolean pagar(double importe, String concepto) { MovimientoTarjeta m = new MovimientoTarjeta(codigoTarjeta, "PAGAR", importe, concepto, "CREDITO"); return true; } /** * Metodo para ver los movimientos de una determinada tarjeta de credito. */ public void verMovimientosCredito() { try { ResultSet rs = Conexion.conectar().createStatement().executeQuery("SELECT CODIGO_TARJETA," + "CODIGO_MTC," + "OPERACION_MTC," + "to_char(FECHA_MTC)," + "IMPORTE_MTC," + "CONCEPTO_MTC " + "FROM MOVIMIENTO_TARJETA_CREDITO " + "WHERE CODIGO_TARJETA='" + codigoTarjeta + "'"); while (rs.next()) { System.out.println( "Codigo tarjeta: " + rs.getString(1) + ", Codigo Movimiento: " + rs.getInt(2) + ", Operacion: " + rs.getString(3) + ", Fecha: " + rs.getString(4) + ", Importe: " + rs.getDouble(5) + ", Concepto: " + rs.getString(6)); } } catch (SQLException ex) { System.out.println("Error: " + ex.getMessage() + ". \n ErrorCode:" + ex.getErrorCode() + ", SQLState:" + ex.getSQLState()); } } }