package bbuvajava;



import java.util.ArrayList;
import java.util.Date;


// <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
// #[regen=yes,id=DCE.195A1283-3F75-C9B4-5DB9-E2B5B7CD9E5F]
// </editor-fold> 
public class Cuenta {
    private String NumeroCuenta;
    private ArrayList<Titular> mTitular;   //dni o cif de los titulares
    private double saldo;
    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.A010480C-9B7E-819D-94D2-2A15BF2490C6]
    // </editor-fold> 
    private ArrayList<Movimiento> mMovimientos;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.92B7E496-151F-78F7-66EC-53C7B2015FE2]
    // </editor-fold> 
    public Cuenta () {
        mMovimientos=new ArrayList();
        mTitular=new ArrayList();
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.8C5F1FF8-5A69-2EEE-094C-A46BC28AF4A8]
    // </editor-fold> 
    public ArrayList<Movimiento> getMovimientos () {
        return mMovimientos;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.01AC4A67-BC9B-DC3B-5BE3-1A13CEA511D0]
    // </editor-fold> 
    public void setMovimientos (ArrayList<Movimiento> val) {
        mMovimientos=val;
    }

    /**
     * @return the NumeroCuenta
     */
    public String getNumeroCuenta() {
        return NumeroCuenta;
    }

    /**
     * @param NumeroCuenta the NumeroCuenta to set
     */
    public void setNumeroCuenta(String NumeroCuenta) {
        this.NumeroCuenta = NumeroCuenta;
    }

    /**
     * @return the Titular
     */
    public ArrayList getTitular() {
        return mTitular;
    }


    /**
     * @param Titular the Titular to set
     */
    public void setTitular(ArrayList Ti) {
        this.mTitular = Ti;
    }


    public void insertaTitular (Titular t){
        mTitular.add(t);
    }

    public void setTitular(String nombre){
        Titular t=new Titular();
        t.setNombre(nombre);
        insertaTitular(t);

    }
    public void insertaMovimientoenCuenta(Movimiento mov){
        this.mMovimientos.add(mov);
    }

    /**
     * @return the saldo
     */
    public double getSaldo() {
        return saldo;
    }

    /**
     * @param saldo the saldo to set
     */
    public void setSaldo(double saldo) {
        this.saldo = saldo;
    }

    public void ingresar(double cantidad){
        Date fecha=new Date();
        OpBasica mov=new OpBasica();

        this.saldo=this.saldo+cantidad;
        mov.setConcepto("Ingreso");
        mov.setFechaOperacion(fecha);
        mov.setImporte(cantidad);
        this.insertaMovimientoenCuenta(mov);


    }

    public void reintegrar (double cantidad){
        Date fecha=new Date();
        OpBasica mov=new OpBasica();

        this.saldo=this.saldo-cantidad;
        mov.setConcepto("Ingreso");
        mov.setFechaOperacion(fecha);
        mov.setImporte(cantidad);
        this.insertaMovimientoenCuenta(mov);
    }

}

