package javacgc;

import java.util.ArrayList;




// <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
// #[regen=yes,id=DCE.F553B1A8-C683-BA8A-438C-93304C3FA595]
// </editor-fold> 
public class Caja {

    private String codcaja;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker ">
    // #[regen=yes,id=DCE.7FDF925C-6AA6-73D5-E253-489C3C490E94]
    // </editor-fold>
    private ArrayList<Arqueo> mArqueo;
    private Empleado empleado;
    private Arqueo arqTemp;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker ">
    // #[regen=yes,id=DCE.B7496EDB-5626-F9CB-8F12-254EEE24FF95]
    // </editor-fold>
    public Caja () {
        empleado=null;
        mArqueo=new ArrayList<Arqueo>();
        arqTemp=new Arqueo();
    }
    public Caja(String id) {
        this.codcaja=id;
        empleado=null;
        mArqueo=new ArrayList<Arqueo>();
        arqTemp=new Arqueo();
    }


    // <editor-fold defaultstate="collapsed" desc=" UML Marker ">
    // #[regen=yes,regenBody=yes,id=DCE.946968C0-91C3-4BAD-7181-192F374CD07D]
    // </editor-fold>
    public ArrayList<Arqueo> getArqueo () {
        return mArqueo;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker ">
    // #[regen=yes,regenBody=yes,id=DCE.4DF1C6CA-8DA7-8BB1-1696-01B277160F42]
    // </editor-fold>
    public void setArqueo (ArrayList<Arqueo> val) {
        this.mArqueo = val;
    }

    public Empleado getEmpleado() {
        return empleado;
    }

    public void setEmpleado(Empleado empleado) {
        this.empleado = empleado;
    }
    public Arqueo arqueoInicial(Empleado empleado) {
        Arqueo arq=null;
        if(empleado==null) return arq;
        this.setEmpleado(empleado);
        if(mArqueo.isEmpty()) {
            arq=new Arqueo(this.empleado);
            mArqueo.add(arq);
        }
        else {
            Arqueo aux=mArqueo.get(mArqueo.size()-1);
            arq=new Arqueo(this.empleado, aux.getSaldo());
            //mArqueo.add(arq);
        }
        arqTemp.copiar(mArqueo.get(mArqueo.size()-1));
        return arq;

    }
    public Arqueo arqueoFinal() {
        Arqueo arq=new Arqueo(this.empleado, arqTemp);
        mArqueo.add(arq);
        this.setEmpleado(null);
        return arq;
    }
    
    public void addOpBasica(OpBasica op) {
        this.getArqTemp().getOpBasica().add(op);
    }

     public double getSaldo() {
        double aux=0;
        if(!mArqueo.isEmpty()) {
            Arqueo arq=mArqueo.get(mArqueo.size()-1);
            if(arq.getOpBasica().isEmpty()) aux= arqTemp.getSaldo();
            else aux=arq.getSaldo();
        }
        return aux;
    }
    public String getCodcaja() {
        return codcaja;
    }

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

    /**
     * @return the arqTemp
     */
    public Arqueo getArqTemp() {
        return arqTemp;
    }

    /**
     * @param arqTemp the arqTemp to set
     */
    public void setArqTemp(Arqueo arqTemp) {
        this.arqTemp = arqTemp;
    }


}

