public static LATIR2.Document.Doc_Base GetDictionary(string OT, LATIR2.Manager Manager) { System.Data.DataTable dt; LATIR2.Document.Doc_Base pRes = null; dt = Manager.Session.GetData("select InstanceID from Instance where ObjType='" + OT + "'"); if (dt != null) { if (dt.Rows.Count > 0) { pRes = Manager.GetInstanceObject(new System.Guid(dt.Rows[0]["InstanceID"].ToString())); } } try { if (pRes == null && dt.Rows.Count <= 0) { // create new one Guid IID = new Guid(); string sName = GetNameFromObjectType(OT, Manager); pRes = Manager.NewInstance(IID, sName, string.Empty, string.Empty); } } catch { } return(pRes); }
public static string GetDocumentMode(ROLES.ROLES.Application MyRole, LATIR2.Document.Doc_Base Obj) { Guid sid = Guid.Empty; string tn = string.Empty; string result = string.Empty; if (MyRole == null) { return(result); } try { tn = Obj.TypeName; sid = Obj.StatusID; for (int i = 1; i <= MyRole.ROLES_DOC.Count; i++) { // нашли тип if ((MyRole.ROLES_DOC.Item(i).The_Document as MTZMetaModel.MTZMetaModel.OBJECTTYPE).Name.ToLower() == tn.ToLower()) { // тип разрешен к работе if (MyRole.ROLES_DOC.Item(i).The_Denied == ROLES.ROLES.enumYesNo.YesNo_Net) { for (int j = 1; j <= MyRole.ROLES_DOC.Item(i).ROLES_DOC_STATE.Count; j++) { // у документа не определено сосотояние if (sid.Equals(Guid.Empty)) { // ищем строку без состояния if (MyRole.ROLES_DOC.Item(i).ROLES_DOC_STATE.Item(j).The_State == null) { //' забираем оттуда режим result = ((MyRole.ROLES_DOC.Item(i).ROLES_DOC_STATE.Item(j).The_Mode) as MTZMetaModel.MTZMetaModel.OBJECTMODE).Name; } return(result); } else { // ' есть состояние - перебираем строки с установленным состоянием if (MyRole.ROLES_DOC.Item(i).ROLES_DOC_STATE.Item(j).The_State != null) { //' нашли if (MyRole.ROLES_DOC.Item(i).ROLES_DOC_STATE.Item(j).The_State.ID.Equals(sid)) { if (MyRole.ROLES_DOC.Item(i).ROLES_DOC_STATE.Item(j).The_Mode == null) { result = string.Empty; } else { // ' получаем режим открытия result = (MyRole.ROLES_DOC.Item(i).ROLES_DOC_STATE.Item(j).The_Mode as MTZMetaModel.MTZMetaModel.OBJECTMODE).Name; } return(result); } } else // ДОбавил denisk для того чтобы документы получали mode по умолчанию (когда не указан The_State) { if (MyRole.ROLES_DOC.Item(i).ROLES_DOC_STATE.Item(j).The_Mode == null) { result = string.Empty; } else { // ' получаем режим открытия result = (MyRole.ROLES_DOC.Item(i).ROLES_DOC_STATE.Item(j).The_Mode as MTZMetaModel.MTZMetaModel.OBJECTMODE).Name; } return(result); } } } } break; } } } catch { } return(result); }