package es.bancodehierro.banco.tarjeta;
import es.bancodehierro.banco.conexion.Conexion;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
*
*@author Grupo Tarjetas.
* Clase Debito, subclase de Tarjeta
*/
public class Debito extends Tarjeta {
private Double saldo;
/**
* Metodo para la agregacion en la base de datos de una tarjeta de debito,
* 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.
*/
public Debito(String codigoTitular, String codigoCuentaCorriente, int codigoSucursal) {
super(null, codigoTitular, codigoCuentaCorriente, codigoSucursal, null, null);
try {
String sentencia = "INSERT INTO v_tarjeta_debito VALUES ("
+ "null"
+ ",'" + codigoTitular + "'"
+ ",'" + codigoCuentaCorriente
+ "'," + codigoSucursal
+ ",null,null)";
Conexion.conectar().createStatement().executeUpdate(sentencia);
System.out.println(sentencia);
} catch (SQLException e) {
System.out.println("error");
}
}
/**
* Constructor para recuperar una tarjeta de credito ya existente en la base de datos, crea un objeto tarjeta.
* @param codigoTarjeta Codigo de la tarjeta.
*/
public Debito(String codigoTarjeta) {
super(codigoTarjeta, "DEBITO");
try {
ResultSet select = Conexion.conectar().createStatement().executeQuery("SELECT * FROM v_tarjeta_debito WHERE codigo_tarjeta = '" + codigoTarjeta + "'");
while (select.next()) {
this.saldo = select.getDouble(7);
}
} catch (SQLException e) {
}
}
/**
* metodo para recuperar un string con informacion del objeto
* @return Devuelve un String con la informacion de la tarjeta de debito.
*/
@Override
public String toString() {
return "Debito{" + "saldo=" + saldo + '}';
}
/**
* metodo para recuperar la informacion del atributo saldo
* @return Devuelve el saldo de la tarjeta de debito.
*/
public Double getSaldo() {
return saldo;
}
/**
* metodo para especificar el valor de atributo saldo
* @param saldo Establece el saldo de la tarjeta de debito.
*/
public void setSaldo(Double saldo) {
this.saldo = saldo;
}
/**
* metodo para pagar con una tarjeta de credito, crea un objeto movimientotarjeta, pasandole los parametros necesarios
* @param importe Cantidad a pagar.
* @param concepto Concepto del pago.
* @return Devuelve un true si todo ha salido bien.
*/
public Boolean pagar(double importe, String concepto) {
MovimientoTarjeta m = new MovimientoTarjeta(codigoTarjeta, "PAGAR", importe, concepto, "DEBITO");
return true;
}
/**
* metodo realizar un ingreso por tarjeta de cfedito, crea un objeto movimiento tarjeta pasandole los parametros necesarios
* @param importe Cantidad a ingresar.
* @param concepto Concepto del ingreos.
* @return Devuelve un true si todo ha salido bien.
*/
public Boolean ingresar(double importe, String concepto) {
MovimientoTarjeta m = new MovimientoTarjeta(codigoTarjeta, "INGRESAR", importe, concepto, "CREDITO");
return true;
}
/**
* metodo para ver los movimientos de una tarjeta de debito
*/
public void verMovimientosDebito() {
try {
ResultSet rs = Conexion.conectar().createStatement().executeQuery("SELECT CODIGO_TARJETA,CODIGO_MTD,OPERACION_MTD,to_char(FECHA_MTD),IMPORTE_MTD,CONCEPTO_MTD FROM MOVIMIENTO_TARJETA_DEBITO 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());
}
}
}