package com.app.hxqh.udmxware;


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

import java.rmi.RemoteException;

/**
 * 模芯出入库-From
 * edit 2023-09-22
 */
public class FldFrom extends MAXTableDomain{

	public FldFrom(MboValue mbv) {
		super(mbv);
		String thisAttr = getMboValue().getAttributeName();
		setRelationship("ALNDOMAIN", "");
		String[] FromStr = { "VALUE" };
		String[] ToStr = { thisAttr };
		setLookupKeyMapInOrder(ToStr, FromStr);
	}

	public MboSetRemote getList() throws MXException, RemoteException {
		MboSetRemote set = super.getList();
		MboRemote mbo=getMboValue().getMbo();
		MboRemote owner=mbo.getOwner();
		if(null!=owner){
			String doctype=owner.getString("DOCTYPE");
			//新模入库
			if("M01".equalsIgnoreCase(doctype)){
				set.setWhere(" DOMAINID='MXSL' AND VALUE='N01' ");
				set.reset();
			}
			//生产领用
			if("M02".equalsIgnoreCase(doctype)){
				set.setWhere(" DOMAINID='MXSL' AND VALUE='N02' ");
				set.reset();
			}
			//生产归还
			if("M03".equalsIgnoreCase(doctype)){
				set.setWhere(" DOMAINID='MXSL' AND VALUE='N03' ");
				set.reset();
			}
			//物料送修
			if("M04".equalsIgnoreCase(doctype)){
				set.setWhere(" DOMAINID='MXSL' AND VALUE='N04' ");
				set.reset();
			}
			//维修入库
			if("M05".equalsIgnoreCase(doctype)){
				set.setWhere(" DOMAINID='MXSL' AND VALUE='N05' ");
				set.reset();
			}
			//物料报废
			if("M06".equalsIgnoreCase(doctype)){
				set.setWhere(" DOMAINID='MXSL' AND VALUE IN('N02','N03','N04','N05') ");
				set.reset();
			}
			if("".equalsIgnoreCase(doctype) || null==doctype){
				set.setWhere(" 1=2 ");
				set.reset();
			}
		}

		return set;
	}


	public void action() throws MXException, RemoteException {
		super.action();
		MboRemote mbo = getMboValue().getMbo();
		MboRemote ownerMbo = mbo.getOwner();
		if(null!=ownerMbo){
			String doctype=ownerMbo.getString("DOCTYPE");
			String fromz=mbo.getString("FROMZ");
			//新模入库
			if("M01".equalsIgnoreCase(doctype) && "N01".equalsIgnoreCase(fromz)){
				mbo.setValue("TOZ", "N02", 2L);
			}
			//生产领用
			if("M02".equalsIgnoreCase(doctype) && "N02".equalsIgnoreCase(fromz)){
				mbo.setValue("TOZ", "N03", 2L);
			}
			//生产归还
			if("M03".equalsIgnoreCase(doctype) && "N03".equalsIgnoreCase(fromz)){
				mbo.setValueNull("TOZ", 2L);
			}
			//物料送修
			if("M04".equalsIgnoreCase(doctype) && "N04".equalsIgnoreCase(fromz)){
				mbo.setValue("TOZ", "N05", 2L);
			}
			//维修入库
			if("M05".equalsIgnoreCase(doctype) && "N02".equalsIgnoreCase(fromz)){
				mbo.setValue("TOZ", "N02", 2L);
			}
			//物料报废
			if("M06".equalsIgnoreCase(doctype) ){
				mbo.setValue("TOZ", "N06", 2L);
			}

		}
	}
}

 



