package com.app.hxqh.udworkorder;

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-15
 */
public class FldItemQty extends MboValueAdapter {

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

    public void action() throws MXException, RemoteException {
        super.action();
        MboRemote mbo=getMboValue().getMbo();
        MboRemote ownerMbo=mbo.getOwner();
        if(null!=ownerMbo){
            String app = ownerMbo.getThisMboSet().getApp();
            String appname=ownerMbo.getString("APPNAME");
            String deptnum=ownerMbo.getString("CREATRBY.DEPARTMENT");//车间编号
            String itemnum=mbo.getString("ITEMNUM");
//            if("UDWORKORDER".equalsIgnoreCase(app) || "UDWORKORDER".equalsIgnoreCase(appname)
//                || "UDPMWOORDER".equalsIgnoreCase(app) || "UDPMWOORDER".equalsIgnoreCase(appname)){
                String isplan=mbo.getString("ISPLAN");
                String isphy=mbo.getString("ISPHY");
                if("Y".equalsIgnoreCase(isplan)){//计划tab-物料子表
                    double kcyl=mbo.getDouble("UDKC.CURBALTOTAL");
                    double orderQty=mbo.getDouble("ITEMQTY");
//                    if(orderQty>kcyl){
//                        throw new MXApplicationException("udlld", "udlld_noor", new String[0] );
//                    }
                }else if("Y".equalsIgnoreCase(isphy)){//实际情况tab-物料子表
                    MboSetRemote invSet=mbo.getMboSet("$UDINVENTORY", "UDINVENTORY", "ITEMNUM='"+itemnum+"' and DEPTNUM='"+deptnum+"' ");
                    if(null!=invSet && !invSet.isEmpty()){
                        double curbal=invSet.getMbo(0).getDouble("CURBALTOTAL");
                        double itemqty=mbo.getDouble("ITEMQTY");
                        if(itemqty>curbal){
                            throw new MXApplicationException("udworkorder", "udworkorder_cub", new String[]{itemnum} );
                        }
                    }
                }

//            }
        }
    }

}
