package com.app.hxqh.udlld;


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

import java.rmi.RemoteException;

/**
 * 领料申请单子表选择物料编号
 */
public class Flditem extends MAXTableDomain{

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


	public MboSetRemote getList() throws RemoteException, MXException {
		MboRemote mbo = getMboValue().getMbo();
		String app = mbo.getOwner().getThisMboSet().getApp();
		MboRemote ownerMbo=mbo.getOwner();
		if("UDLLD".equalsIgnoreCase(app) || "UDCLLLD".equalsIgnoreCase(app)) {//领料申请单 || 车辆领料
//			String sqlstr="ITEMNUM in( select m.ITEMNUM from udkc m left join eam_mara mm on m.itemnum=mm.matnr left join EAMITEMSAP b on m.itemnum=b.matnr WHERE 1=1 and m.BINNUM is not null and (m.ITEMNUM IN (SELECT MATNR FROM EAM_MARA WHERE MATKL IN (SELECT SMALLCATE FROM UDCATE WHERE SMALLCATELIMIT IS NULL) UNION ALL SELECT ITEMNUM as MATNR FROM UDNTITEM)) ) AND SITEID ='"+ownerMbo.getString("SITEID")+"' AND BINNUM IS NOT NULL AND CURBALTOTAL>0 ";
			String sqlstr="ITEMNUM in( select m.ITEMNUM from udkc m left join eam_mara mm on m.itemnum=mm.matnr left join EAMITEMSAP b on m.itemnum=b.matnr WHERE 1=1 and m.BINNUM is not null and (m.ITEMNUM IN (SELECT MATNR FROM EAM_MARA WHERE MATKL IN (SELECT SMALLCATE FROM UDCATE WHERE SMALLCATELIMIT IS NULL) UNION ALL SELECT ITEMNUM as MATNR FROM UDNTITEM)) ) AND SITEID ='"+ownerMbo.getString("SITEID")+"' AND BINNUM IS NOT NULL ";
			setListCriteria(sqlstr);
			setListOrderBy("CURBALTOTAL desc");
		}else if("UDTKD".equalsIgnoreCase(app) || "UDCLTKD".equalsIgnoreCase(app)) {//退库申请单 || 车辆退料
			setListCriteria("ITEMNUM in(SELECT ITEMNUM FROM UDLLDLINE WHERE PARENTID=(SELECT UDLLDID FROM UDLLD WHERE WONUM='"+ownerMbo.getString("YWONUM")+"' AND SITEID='"+ownerMbo.getString("SITEID")+"' )) AND ORGID='"+ownerMbo.getString("ORGID")+"' AND SITEID='"+ownerMbo.getString("SITEID")+"' AND BINNUM in(SELECT BINNUM FROM UDLLDLINE WHERE PARENTID=(SELECT UDLLDID FROM UDLLD WHERE WONUM='"+ownerMbo.getString("YWONUM")+"') )");
		}
		return super.getList();
	}

	@Override
	public void validate() throws MXException, RemoteException {
		super.validate();
	}

	@Override
	public void action() throws MXException, RemoteException {
		super.action();
		MboRemote mbo = getMboValue().getMbo();
		if(null!=mbo.getOwner()){
			String app = mbo.getOwner().getThisMboSet().getApp();
			String appname=mbo.getOwner().getString("APPNAME");
			if("UDTKD".equalsIgnoreCase(app) || "UDTKD".equalsIgnoreCase(appname)) {//退库申请单
				MboSetRemote itemSet=mbo.getMboSet("$ITEM","ITEM","ITEMNUM='"+mbo.getString("ITEMNUM")+"'");
				if(null!=itemSet && !itemSet.isEmpty()){
					MboRemote itemMbo=itemSet.getMbo(0);
					mbo.setValue("ORDERUNIT", itemMbo.getString("MEINS"),11L);
				}else{
					mbo.setValueNull("ORDERUNIT",11L);
					mbo.setValueNull("ORDERQTY",11L);
				}
			}else if("UDLLD".equalsIgnoreCase(app) || "UDLLD".equalsIgnoreCase(appname)) {//领料申请单
				MboSetRemote itemSet=mbo.getMboSet("$ITEM","ITEM","ITEMNUM='"+mbo.getString("ITEMNUM")+"'");
				if(null!=itemSet && !itemSet.isEmpty()){
					MboRemote itemMbo=itemSet.getMbo(0);
					mbo.setValue("ORDERUNIT", itemMbo.getString("MEINS"),11L);
				}else{
					mbo.setValueNull("ORDERUNIT",11L);
					mbo.setValueNull("ORDERQTY",11L);
					mbo.setValueNull("BINNUM",11L);
				}

			}
		}

	}


}

 



