protected override void OnDeactivated() { printSelectionBaseController = Frame.GetController <PrintSelectionBaseController>(); if (printSelectionBaseController != null) { printSelectionBaseController.ShowInReportAction.Execute -= ShowInReportAction_Execute; } base.OnDeactivated(); }
protected override void OnActivated() { base.OnActivated(); novc = Frame.GetController <NewObjectViewController>(); if (novc != null) { bool exists = false; for (int i = 0; i < novc.NewObjectAction.Items.Count; i++) { if (novc.NewObjectAction.Items[i].Id == idCustom) { exists = true; break; } } if (!exists && novc.NewObjectAction.Items.Count > 0) { // Смена заголовка на кнопке создания пустой служебной записки novc.NewObjectAction.Items[0].Caption = captionStandart; // Создать по образцу ChoiceActionItem NewByTemplate = new ChoiceActionItem(idCustom, captionCustom, novc.NewObjectAction.Items[0].Data); NewByTemplate.ImageName = novc.NewObjectAction.Items[0].ImageName; novc.NewObjectAction.Items.Add(NewByTemplate); /* * // Сохранить как шаблон * ChoiceActionItem SaveTemplate = new ChoiceActionItem(idSaveAsTemplate, captionCustomAsTemplate, novc.NewObjectAction.Items[0].Data); * SaveTemplate.ImageName = novc.NewObjectAction.Items[0].ImageName; * novc.NewObjectAction.Items.Add(SaveTemplate); */ } novc.NewObjectAction.Execute += new SingleChoiceActionExecuteEventHandler(CustomNewActionController_Execute); // Настройка способа реакции на кнопке novc.NewObjectAction.ShowItemsOnClick = !(novc.NewObjectAction.Items.Count < 2); } View.CurrentObjectChanged += new EventHandler(View_CurrentObjectChanged); View.ObjectSpace.ObjectChanged += new EventHandler <ObjectChangedEventArgs>(ObjectSpace_ObjectChanged); View.ObjectSpace.ObjectSaved += new EventHandler <ObjectManipulatingEventArgs>(ObjectSpace_ObjectSaved); EnableButton(); psbc = Frame.GetController <PrintSelectionBaseController>(); if (psbc != null) { psbc.ShowInReportAction.SelectionDependencyType = SelectionDependencyType.RequireSingleObject; } // Настройка фильтров csCSecurityUser user = SecuritySystem.CurrentUser as csCSecurityUser; //csCSecurityUser user = ObjectSpace.FindObject<csCSecurityUser>(new BinaryOperator("UserName", "PERSONAL\\12222")); user = ObjectSpace.GetObjectByKey <csCSecurityUser>(user.Oid); if ((View is ListView) & (View.ObjectTypeInfo.Type == typeof(fmPaymentRequestMemorandum))) { csCSecurityRole administratorRole = ObjectSpace.FindObject <csCSecurityRole>(new BinaryOperator("Name", SecurityStrategy.AdministratorRoleName), true); CriteriaOperator criteriaOr = null; if (user != null && administratorRole != null) { bool isAdmin = false; foreach (var role in user.Roles) { if (role.Name == SecurityStrategy.AdministratorRoleName) { isAdmin = true; break; } } if (!isAdmin) { // if (true) { /* * // Список пользователей, ассоциированных с группами текущего пользователя * List<csCSecurityUser> userList = new List<csCSecurityUser>(); * foreach (csCSecurityRole role in GetMainBuhRole(ObjectSpace).ChildRoles) { * if (user.Roles.IndexOf(role) != -1) { * foreach (SecurityUserWithRolesBase userOfGroupBase in role.Users) { * csCSecurityUser userOfGroup = userOfGroupBase as csCSecurityUser; * if (userOfGroup != null && !userList.Contains(userOfGroup)) { * userList.Add(userOfGroup); * } * } * } * } * * // Список всех доступных служебных записок reqMemoListTotal * List<fmPaymentRequestMemorandum> reqMemoListTotal = new List<fmPaymentRequestMemorandum>(); * foreach (csCSecurityUser person in userList) { * XPQuery<fmPaymentRequestMemorandum> RMs = new XPQuery<fmPaymentRequestMemorandum>(((ObjectSpace)ObjectSpace).Session); * List<fmPaymentRequestMemorandum> queryRM = (from rm in RMs * where rm.Creator == person * //&& user.Roles.IndexOf(rm.OwnerRole) != 0 * select rm).ToList(); * foreach (fmPaymentRequestMemorandum rm in queryRM) { * if (user.Roles.IndexOf(rm.OwnerRole) != -1) { * reqMemoListTotal.Add(rm); * } * } * //reqMemoListTotal.AddRange(queryRM); * } * * Guid[] reqMemoIdListTotal = (from r in reqMemoListTotal * select r.Oid).ToArray(); */ //CriteriaOperator UserHasAdminRole = CriteriaOperator.Parse("Creator.Roles[Name = 'Administrator'].Count() > 0"); //CriteriaOperator isTemplate = CriteriaOperator.Parse("State == 'TEMPLATE'"); criteriaOr = CriteriaOperator.Or ( new BinaryOperator(new OperandProperty("FBKReceiver"), new ConstantValue(user.Staff), BinaryOperatorType.Equal) , new BinaryOperator(new OperandProperty("Creator"), new ConstantValue(user), BinaryOperatorType.Equal) , new BinaryOperator(new OperandProperty("Requester"), new ConstantValue(user.Staff), BinaryOperatorType.Equal) , new BinaryOperator(new OperandProperty("FirstSignaturePerson"), new ConstantValue(user.Staff), BinaryOperatorType.Equal) , new BinaryOperator(new OperandProperty("SecondSignaturePerson"), new ConstantValue(user.Staff), BinaryOperatorType.Equal) //,isTemplate , new InOperator("OwnerRole", fmCPRPaymentRequestBusinesLogic.GetActualRoles(ObjectSpace, user).ToArray()) ); } } ((ListView)View).CollectionSource.Criteria["MemorandumFilter"] = criteriaOr; } }
protected override void OnActivated() { base.OnActivated(); // Perform various tasks depending on the target View. PrintSelectionBaseController PrintSelectionController = Frame.GetController <PrintSelectionBaseController>(); if (PrintSelectionController != null && PrintSelectionController.Actions.Count > 0) { if (PrintSelectionController.Actions["ShowInReportV2"] != null) { if (checkObjectType()) { PrintSelectionController.Actions["ShowInReportV2"].Active.SetItemValue("EnableAction", false); } //PrintSelectionController.Actions["ShowInReportV2"].Executing += FilterCopyFromController_Executing; } } ShowInPlaceReportAction.Items.Clear(); if (checkObjectType()) { bool found = false; SystemUsers user = (SystemUsers)SecuritySystem.CurrentUser; ChoiceActionItem setStatusItem; foreach (FilteringCriterion criterion in ObjectSpace.GetObjects <FilteringCriterion>()) { if (criterion.ObjectType == typeof(ReportDataV2)) { if (criterion.Roles.Count > 0) { foreach (ReportDataV2 rpt in ObjectSpace.GetObjects <ReportDataV2>(CriteriaOperator.Parse(criterion.Criterion))) { if (rpt.DataTypeName == View.ObjectTypeInfo.Type.ToString()) { //if (criterion.Criterion.Contains("DataTypeCaption")) //{ found = true; foreach (IPermissionPolicyRole role in user.Roles) { if (criterion.Roles.Where(p => p.FilterRole.Name == role.Name).Count() > 0) { if (rpt.IsInplaceReport) { if (ShowInPlaceReportAction.Items.FindItemByID(rpt.DisplayName) == null) { setStatusItem = new ChoiceActionItem(rpt.DisplayName, rpt.DisplayName); ShowInPlaceReportAction.Items.Add(setStatusItem); } } } } //} } } } else { foreach (ReportDataV2 rpt in ObjectSpace.GetObjects <ReportDataV2>(CriteriaOperator.Parse(criterion.Criterion))) { if (rpt.DataTypeName == View.ObjectTypeInfo.Type.ToString()) { //if (criterion.Criterion.Contains("DataTypeCaption")) //{ found = true; if (rpt.IsInplaceReport) { if (ShowInPlaceReportAction.Items.FindItemByID(rpt.DisplayName) == null) { if (ShowInPlaceReportAction.Items.FindItemByID(rpt.DisplayName) == null) { setStatusItem = new ChoiceActionItem(rpt.DisplayName, rpt.DisplayName); ShowInPlaceReportAction.Items.Add(setStatusItem); } } } //} } } } } } if (!found) { foreach (ReportDataV2 rpt in ObjectSpace.GetObjects <ReportDataV2>()) { if (rpt.DataTypeName == View.ObjectTypeInfo.Type.ToString() && rpt.IsInplaceReport) { if (ShowInPlaceReportAction.Items.FindItemByID(rpt.DisplayName) == null) { ShowInPlaceReportAction.Items.Add(new ChoiceActionItem(rpt.DisplayName, rpt.DisplayName)); } } } } if (View.GetType() == typeof(DetailView)) { this.ShowInPlaceReportAction.Active.SetItemValue("Enabled", ((DetailView)View).ViewEditMode == ViewEditMode.View); ((DetailView)View).ViewEditModeChanged += MyCustomInplaceReportController_ViewEditModeChanged; } } }