package com.app.hxqh.udbudget;

import psdi.mbo.Mbo;
import psdi.mbo.MboRemote;
import psdi.mbo.MboSet;
import psdi.mbo.MboSetRemote;
import psdi.server.MXServer;
import psdi.util.MXApplicationException;
import psdi.util.MXException;

import java.rmi.RemoteException;

/**
 * 预算管理-Mbo
 * createby liuxq  2023-7-4
 */
public class UdBudgetMbo extends Mbo implements MboRemote {

    public UdBudgetMbo(MboSet ms) throws MXException, RemoteException {
        super(ms);
    }

    @Override
    public void add() throws MXException, RemoteException {
        super.add();
//        System.out.println("-------");
        Integer UDBUDGETID = getInt("UDBUDGETID");
        String UDBUDGET = String.valueOf(UDBUDGETID);
        setValue("UDBUDGET",UDBUDGET);
    }

    @Override
    public void init() throws MXException {
        super.init();

    }

    @Override
    public void save() throws MXException, RemoteException {
        super.save();
        String app = getThisMboSet().getApp();
        if("UDBUDGET".equals(app) && isNew()){
            MboRemote mbo = getThisMboSet().getMbo();
            mbo.setValue("ISFLAG","Y",2L); //新增的时候，给个默认值Y
        }
        String PROJECTNUM = getString("PROJECTNUM");
        String status = getString("STATUS");
        Integer UDBUDGETID = getInt("UDBUDGETID");//获取主表ID
        MboSetRemote udbudgetTaskSet = getMboSet("UDBUDGETTASK");//通过关系名获取子表信息
        if(PROJECTNUM==null || "".equalsIgnoreCase(PROJECTNUM)){
            //验证
            if(udbudgetTaskSet!=null && !udbudgetTaskSet.isEmpty()){
                for(int i=0;i<udbudgetTaskSet.count();i++){
                    MboRemote taskMbo = udbudgetTaskSet.getMbo(i);
                    taskMbo.setValue("ISPRO","1",2L);//是否已经立项 默认为 否1
                }
            }
        }else{
            if(udbudgetTaskSet!=null && !udbudgetTaskSet.isEmpty()){
                for(int i=0;i<udbudgetTaskSet.count();i++){
                    MboRemote taskMbo = udbudgetTaskSet.getMbo(i);
                    String AUFNR=taskMbo.getString("AUFNR");
                    if("".equalsIgnoreCase(AUFNR) || null==AUFNR){
                        throw new MXApplicationException("AUFNRTS","AUFNR",new String[0]);//弹出框提示
                    }
                    taskMbo.setValue("ISPRO","0",2L);//是否已经立项,给出默认值: 是0
                }
            }
        }
    }

}
