package com.app.hxqh.udlld;

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

import java.rmi.RemoteException;

/**
 * 退库申请单-选择原领料单
 * edit 2023-05-17
 */
public class FldYwonum extends MAXTableDomain {

    public FldYwonum(MboValue mbv) {
        super(mbv);
        String thisAttr = getMboValue().getAttributeName();
        setRelationship("UDLLD", "");
        String[] FromStr = { "WONUM" };
        String[] ToStr = { thisAttr };
        setLookupKeyMapInOrder(ToStr, FromStr);
    }

    public MboSetRemote getList() throws MXException, RemoteException {
        MboRemote mbo = getMboValue().getMbo();
        String siteid= mbo.getString("SITEID");
        String sql="";
        if("GH01".equalsIgnoreCase(siteid) || "TZ01".equalsIgnoreCase(siteid)){
            sql = " APPNAME='UDCLLLD' AND SITEID='"+mbo.getString("SITEID")+"' AND STATUS='COMP' ";
        }else{
            sql = " APPNAME='UDLLD' AND SITEID='"+mbo.getString("SITEID")+"' AND STATUS='COMP' ";
        }
        setListCriteria(sql);
        return super.getList();
    }

    @Override
    public void action() throws MXException, RemoteException {
        super.action();
        MboRemote mbo=getMboValue().getMbo();
        String ywonum=mbo.getString("YWONUM");//原领料单号
        String app = mbo.getThisMboSet().getApp();
        String appname=mbo.getString("APPNAME");
        if("UDTKD".equalsIgnoreCase(app) || "UDTKD".equalsIgnoreCase(appname) || "UDCLTKD".equalsIgnoreCase(app) || "UDCLTKD".equalsIgnoreCase(appname)){//退库申请单
            MboSetRemote lldSet=mbo.getMboSet("$UDLLD", "UDLLD", "WONUM='"+ywonum+"'");
            if(null!=lldSet && !lldSet.isEmpty()){
                MboRemote lldMbo=lldSet.getMbo(0);
                mbo.setValue("WORKSHOP", lldMbo.getString("WORKSHOP"), 11L);
                mbo.setValue("LOCNUM", lldMbo.getString("LOCNUM"), 11L);
                mbo.setValue("KOSTL", lldMbo.getString("KOSTL"), 11L);
                mbo.setValue("UDZGR", lldMbo.getString("UDZGR"), 11L);
                MboSetRemote udcostmoveSet=mbo.getMboSet("$UDCOSTMOVE", "UDCOSTMOVE", "BWART2 in(SELECT SJYDTYPE FROM UDLLD WHERE WONUM='"+ywonum+"')");
                if(null!=udcostmoveSet && !udcostmoveSet.isEmpty()){
                    MboRemote udcostmoveMbo=udcostmoveSet.getMbo(0);
                    mbo.setValue("SJYDTYPE", udcostmoveMbo.getString("BWART"), 11L);
//                mbo.setValue("AUFNR", lldMbo.getString("AUFNR"), 11L);
                }

            }else{
                mbo.setValueNull("WORKSHOP", 11L);
                mbo.setValueNull("LOCNUM", 11L);
                mbo.setValueNull("KOSTL", 11L);
                mbo.setValueNull("UDZGR", 11L);
                mbo.setValueNull("SJYDTYPE", 11L);
                mbo.setValueNull("AUFNR", 11L);
            }
        }
    }
}
