package com.app.hxqh.udworkorder;


import psdi.mbo.MAXTableDomain;
import psdi.mbo.MboRemote;
import psdi.mbo.MboSetRemote;
import psdi.mbo.MboValue;
import psdi.util.MXException;

import java.rmi.RemoteException;

/**
 * 日常维修工单-计划与实际情况子表 选择物料
 */
public class FldItemnum extends MAXTableDomain{

	public FldItemnum(MboValue mbv) {
		super(mbv);
		String thisAttr = getMboValue().getAttributeName();
		setRelationship("UDKC", "");
		String[] FromStr = { "ITEMNUM","BINNUM","UDKCID"};
		String[] ToStr = { thisAttr,"BINNUM","UDKCID"};
		setLookupKeyMapInOrder(ToStr, FromStr);
	}

	public MboSetRemote getList() throws RemoteException, MXException {
		MboRemote mbo = getMboValue().getMbo();
		MboRemote ownerMbo=mbo.getOwner();
		if(null!=ownerMbo){
			String app = ownerMbo.getThisMboSet().getApp();
			String appname=ownerMbo.getString("APPNAME");
//			if("UDWORKORDER".equalsIgnoreCase(app) || "UDWORKORDER".equalsIgnoreCase(appname)
//				|| "UDPMWOORDER".equalsIgnoreCase(app) || "UDPMWOORDER".equalsIgnoreCase(appname)){
				String isplan=mbo.getString("ISPLAN");
				String isphy=mbo.getString("ISPHY");
				String deptnum=ownerMbo.getString("CREATRBY.DEPARTMENT");//车间编号
				String siteid=ownerMbo.getString("SITEID");//车间编号
				if("Y".equalsIgnoreCase(isplan)){//计划tab-物料子表
//					return mbo.getMboSet("$UDGDITEMVIEW", "UDGDITEMV", " 1=1");
					String sql = " siteid='"+siteid+"' and itemnum NOT IN (SELECT itemnum  FROM item WHERE SMALL_CATEGORY in(SELECT SMALLCATE FROM UDCATE WHERE SMALLCATELIMIT='Y') ) ";
					setListCriteria(sql);
				}else if("Y".equalsIgnoreCase(isphy)){//实际情况tab-物料子表
					String depttype=ownerMbo.getString("ASSET.DEPTSDSYBM.DEPTTYPE");//部门类
					String sql = "ITEMNUM in(SELECT ITEMNUM FROM UDINVENTORY WHERE DEPTNUM='"+depttype+"')";
					setListCriteria(sql);
					return super.getList();
				}
//			}
		}
		return super.getList();
	}

	@Override
	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");
//			if("UDWORKORDER".equalsIgnoreCase(app) || "UDWORKORDER".equalsIgnoreCase(appname)
//				|| "UDPMWOORDER".equalsIgnoreCase(app) || "UDPMWOORDER".equalsIgnoreCase(appname)){
				MboSetRemote itemSet=mbo.getMboSet("$ITEM","ITEM","ITEMNUM='"+mbo.getString("ITEMNUM")+"'");
				if(null!=itemSet && !itemSet.isEmpty()){
					MboRemote itemMbo=itemSet.getMbo(0);
					mbo.setValue("DESCRIPTION", itemMbo.getString("DESCRIPTION"));
					mbo.setValue("ITEMQTYUNTI", itemMbo.getString("MEINS"));
				}else{
					mbo.setValueNull("DESCRIPTION",11L);
					mbo.setValueNull("ITEMQTY",11L);
					mbo.setValueNull("ITEMQTYUNTI",11L);
				}
//			}
		}
	}
}
