
package psdi.app.pmexec;

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

import java.rmi.RemoteException;

public class FldProjectnum extends MboValueAdapter {
    public FldProjectnum(MboValue mbovalue) throws MXException {
        super(mbovalue);
    }

    public void validate() throws MXException, RemoteException {
        /* empty */
    }

    public void action() throws MXException, RemoteException {
        String attributeName = getMboValue().getAttributeName();//获得当前字段名
        String orgattr = getMboValue().getCurrentValue().toString();//获得字段当前的值
        orgattr = (orgattr == null) ? "" : orgattr.trim();
        if (orgattr.length() > 0) {
            String pmpointnum = getMboValue("PMPOINTNUM").getCurrentValue().toString();
            pmpointnum = (pmpointnum == null) ? "" : pmpointnum.trim();
            String projectnum = getMboValue().getCurrentValue().toString();
            projectnum = (projectnum == null) ? "" : projectnum.trim();
            if (projectnum.length() == 0) return;
            MboSetRemote nPMProjectSets = getMboValue().getMbo().getMboSet("$PMSTDARDLINES_TEMP", "PMSTDARDLINES");
            //nPMProjectSets.setWhere(new StringBuilder("PMPOINTNUM='").append(pmpointnum).append("'").toString());
            nPMProjectSets.setWhere(new StringBuilder("PMPOINTNUM='").append(pmpointnum).append("' and PROJECTNUM ='" + projectnum + "'").toString());
            nPMProjectSets.reset();
            int loop = nPMProjectSets.count();
            if (loop > 0) {
                MboRemote pmprojectmbo = nPMProjectSets.getMbo(0);
                getMboValue("DESCRIPTION").setValue(pmprojectmbo.getString("DESCRIPTION"), 11L);
                getMboValue("LOCATION").setValue(pmprojectmbo.getString("LOCATION"), 11L);
                getMboValue("ASSETNUM").setValue(pmprojectmbo.getString("ASSETNUM"), 11L);
                getMboValue("POSITION").setValue(pmprojectmbo.getString("POSITION"), 11L);
                getMboValue("WORKTYPE").setValue(pmprojectmbo.getString("WORKTYPE"), 11L);
                getMboValue("STATUS").setValue(pmprojectmbo.getString("STATUS"), 11L);
                getMboValue("POINTSTANDARD").setValue(pmprojectmbo.getString("POINTSTANDARD"), 11L);
                getMboValue("POINTMETHOD").setValue(pmprojectmbo.getString("POINTMETHOD"), 11L);
                getMboValue("POINTDATUM").setValue(pmprojectmbo.getString("POINTDATUM"), 11L);
                getMboValue("UNSUAL").setValue(pmprojectmbo.getString("UNSUAL"), 11L);
                getMboValue("FREQUENCY").setValue(pmprojectmbo.getString("FREQUENCY"), 11L);
                getMboValue("FREQUNIT").setValue(pmprojectmbo.getString("FREQUNIT"), 11L);
                getMboValue("TASKTIME").setValue(pmprojectmbo.getString("TASKTIME"), 11L);
            }
        }
    }

    public void init() throws MXException {
        /* empty */
    }
}