/// <summary> /// Set User from /// - (1) Responsible /// - (2) Document Sales Rep /// - (3) Document UpdatedBy /// - (4) Process invoker /// </summary> /// <param name="User_ID">process invoker</param> private void SetUser_ID(int User_ID) { // Responsible MWFResponsible resp = MWFResponsible.Get(GetCtx(), GetAD_WF_Responsible_ID()); // (1) User - Directly responsible int AD_User_ID = resp.GetAD_User_ID(); // Invoker - get Sales Rep or last updater of Document if (AD_User_ID == 0 && resp.IsInvoker()) { GetPO(); // (2) Doc Owner //if (_po != null && _po instanceof DocAction) if (_po != null && (_po.GetType() == typeof(DocAction) || _po.GetType().GetInterface("DocAction") == typeof(DocAction))) { DocAction da = (DocAction)_po; AD_User_ID = da.GetDoc_User_ID(); } // (2) Sales Rep if (AD_User_ID == 0 && _po != null && _po.Get_ColumnIndex("SalesRep_ID") != -1) { Object sr = _po.Get_Value("SalesRep_ID"); if (sr != null && sr.GetType() == typeof(int)) { AD_User_ID = int.Parse(sr.ToString()); } } // (3) UpdatedBy if (AD_User_ID == 0 && _po != null) { AD_User_ID = _po.GetUpdatedBy(); } } // (4) Process Owner if (AD_User_ID == 0) { AD_User_ID = User_ID; } // Fallback if (AD_User_ID == 0) { AD_User_ID = GetCtx().GetAD_User_ID(); } // SetAD_User_ID(AD_User_ID); }