package com.app.hxqh.udlld;

import psdi.mbo.MboRemote;
import psdi.mbo.MboSetRemote;
import psdi.mbo.MboValue;
import psdi.mbo.MboValueAdapter;
import psdi.util.MXApplicationException;
import psdi.util.MXException;

import java.rmi.RemoteException;

/**
 * 领料申请单-领用明细-申请数量
 * edit 2023-05-16
 */
public class FldOrderQty extends MboValueAdapter {

    public FldOrderQty(MboValue mbv) throws MXException {
        super(mbv);
    }

    public void action() throws MXException, RemoteException {
        super.action();
        MboRemote mbo=getMboValue().getMbo();
        MboRemote owner = mbo.getOwner();
        String app = "";
        if(owner!=null){
            app = owner.getThisMboSet().getApp();
        }
        if("UDTKD".equalsIgnoreCase(app) || "UDCLTKD".equalsIgnoreCase(app)) {//退库申请单
            double kcyl=mbo.getDouble("UDKC.CURBALTOTAL");
            double orderQty=mbo.getDouble("ORDERQTY");
//            if(orderQty>kcyl){
//                throw new MXApplicationException("udlld", "udlld_noor", new String[0] );
//            }else if(orderQty<=0){
//                throw new MXApplicationException("udtkd", "udtkd_noor", new String[0] );
//            }
            //不能大于原领料单的出库数量
            MboSetRemote udlldlineSet=mbo.getMboSet("$UDLLDLINE", "UDLLDLINE", "PARENTID=(SELECT UDLLDID FROM UDLLD WHERE WONUM='"+mbo.getOwner().getString("YWONUM")+"' AND SITEID='"+mbo.getOwner().getString("SITEID")+"' ) AND ITEMNUM='"+mbo.getString("ITEMNUM")+"'");
            if(null!=udlldlineSet && !udlldlineSet.isEmpty()){
                double lldorderQty=udlldlineSet.getMbo(0).getDouble("ORDERQTY");
                if(orderQty>lldorderQty){
                    throw new MXApplicationException("udtkd", "udtkd_qty", new String[0] );
                }
            }
        }else if("UDLLD".equalsIgnoreCase(app) || "UDCLLLD".equalsIgnoreCase(app)){//领料申请单
            double kcyl=mbo.getDouble("UDKC.CURBALTOTAL");
            //计算单位转换
            MboSetRemote conversionSet=mbo.getMboSet("$EAM_CONVERSION","EAM_CONVERSION","MATNR='"+mbo.getString("ITEMNUM")+"' and BSTME='"+mbo.getString("ORDERUNIT")+"'");
            if(null!=conversionSet && !conversionSet.isEmpty()){
                MboRemote converMbo=conversionSet.getMbo(0);
                double UMREN=Double.parseDouble(converMbo.getString("UMREN"));
                double UMREZ=Double.parseDouble(converMbo.getString("UMREZ"));
                //转换后的=(UMREZ/UMREN)*数量
                double itemqty=mbo.getDouble("ORDERQTY");//出库数量
                double covqty=(UMREZ/UMREN)*itemqty;//转换后数量
                if(covqty>kcyl){
                    throw new MXApplicationException("udlld", "udlld_noor", new String[0] );
                }
            }else{
//                throw new MXApplicationException("udlld", "udlld_jsdw", new String[0] );
            }

        }
    }
}
