예제 #1
0
        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);
        }
예제 #2
0
        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);
        }