package com.zzsmart.qomo.kn.cost.manage.vo;

public class AufnrCalculate {
    public double bomuse=0;//基于成品单位标准用量
    public double stdnum=0;//标准工时
    public double standarduse=0;//单位标准人工工时=基于成品单位标准用量*标准工时
    public double standardcost=0;//标准人工费率
    public double aufnruse=0;//基于成品单位实际用量
    public double aufnrnum=0;//实际工时
    public double realuse=0;//实际单位人工工时=基于成品单位实际用量*实际工时
    public double realcost=0;//实际人工费率
    public double pricediff=0;
    public double numdiff=0;
    public double totaldiff=0;

    public void ReCal(){
        standarduse=bomuse*stdnum;
        realuse=aufnruse*aufnrnum;
        pricediff=realuse*(realcost-standardcost);
        numdiff=standardcost*(realuse-standarduse);
        totaldiff=pricediff+numdiff;
    }

    public double getTotalRealCost(){
        return realuse*realcost;
    }

    public double getTotalStdCost(){
        return standarduse*standardcost;
    }

    public void mergeReal(AufnrCalculate aufnrCalculate,boolean adduse){
        double totaluse=aufnruse;//aufnruse+aufnrCalculate.aufnruse;
        if(adduse){
            totaluse=aufnruse+aufnrCalculate.aufnruse;;
        }
        if(totaluse>0){
            double total=aufnruse*aufnrnum+aufnrCalculate.aufnruse*aufnrCalculate.aufnrnum;
            //double totalnum = aufnrnum+aufnrCalculate.aufnrnum;
            aufnruse=totaluse;
            aufnrnum=total/totaluse;
        }
    }

    public void mergeStd(AufnrCalculate aufnrCalculate,boolean adduse){
        //double totaluse=bomuse+aufnrCalculate.bomuse;
        double totaluse=bomuse;
        if(adduse){
            totaluse=bomuse+aufnrCalculate.bomuse;
        }
        if(totaluse>0){
            double total=bomuse*stdnum+aufnrCalculate.bomuse*aufnrCalculate.stdnum;
            bomuse=totaluse;
            stdnum=total/totaluse;
        }
    }
}
