public virtual IQueryable <T> AssigneeFiltering(IQueryable <T> query, Sungero.Domain.PropertyFilteringEventArgs e) { e.DisableUiFiltering = true; var allUsers = new List <IUser>(); var actionItemExecutionAssignment = RecordManagement.ActionItemExecutionAssignments.As(_obj.ParentAssignment); if (actionItemExecutionAssignment != null) { allUsers.AddRange(Functions.DeadlineExtensionTask.GetAssigneesForActionItemExecutionTask(actionItemExecutionAssignment).Assignees); } else if (Sungero.Docflow.ApprovalManagerAssignments.Is(_obj.ParentAssignment)) { allUsers.Add(_obj.ParentAssignment.Author); } else { allUsers.Add(_obj.ParentAssignment.Author); var employee = Company.Employees.As(_obj.ParentAssignment.Author); if (employee != null && employee.Department.Manager != null) { allUsers.Add(employee.Department.Manager); } } return(query.Where(x => allUsers.Contains(x))); }
public virtual IQueryable <T> AssigneeFiltering(IQueryable <T> query, Sungero.Domain.PropertyFilteringEventArgs e) { query = query.Where(q => q.Status == CoreEntities.DatabookEntry.Status.Active); // Для выбора доступны только сотрудники и одиночные роли. return(query.Where(q => Company.Employees.Is(q) || Roles.Is(q) && Roles.As(q).IsSingleUser == true)); }
public virtual IQueryable <T> ReworkPerformerFiltering(IQueryable <T> query, Sungero.Domain.PropertyFilteringEventArgs e) { var reworkPerformersIds = Functions.ApprovalTask.GetReworkPerformers(ApprovalTasks.As(_obj.Task)) .Select(p => p.Id).ToList(); return(query.Where(x => reworkPerformersIds.Contains(x.Id))); }
public virtual IQueryable <T> ExchangeServiceFiltering(IQueryable <T> query, Sungero.Domain.PropertyFilteringEventArgs e) { var services = Functions.ApprovalTask.GetExchangeServices(_obj).Services; query = query.Where(s => services.Contains(s)); return(query); }
public virtual IQueryable <T> AssignedByFiltering(IQueryable <T> query, Sungero.Domain.PropertyFilteringEventArgs e) { e.DisableUiFiltering = true; var resolutionAuthorsIds = Docflow.PublicFunctions.Module.Remote.UsersCanBeResolutionAuthor(_obj.DocumentsGroup.OfficialDocuments.SingleOrDefault()).Select(x => x.Id).ToList(); return(query.Where(x => resolutionAuthorsIds.Contains(x.Id))); }
public override IQueryable <T> DocumentKindFiltering(IQueryable <T> query, Sungero.Domain.PropertyFilteringEventArgs e) { query = base.DocumentKindFiltering(query, e); // Отфильтровать внутренние виды документов. return(query.Where(k => k.DocumentFlow.Value == Docflow.DocumentKind.DocumentFlow.Inner)); }
public virtual IQueryable <T> SignatoryFiltering(IQueryable <T> query, Sungero.Domain.PropertyFilteringEventArgs e) { e.DisableUiFiltering = true; var document = _obj.DocumentGroup.OfficialDocuments.FirstOrDefault(); var signatories = Functions.OfficialDocument.GetSignatories(document).Select(s => s.EmployeeId).Distinct().ToList(); return(query.Where(s => signatories.Contains(s.Id))); }
public virtual IQueryable <T> SignedByFiltering(IQueryable <T> query, Sungero.Domain.PropertyFilteringEventArgs e) { if (_obj.Correspondent != null) { query = query.Where(c => Equals(c.Company, _obj.Correspondent)); } return(query); }
public virtual IQueryable <T> JobTitleFiltering(IQueryable <T> query, Sungero.Domain.PropertyFilteringEventArgs e) { if (_obj.Department != null) { return(query.Where(x => Equals(x.Department, _obj.Department) || x.Department == null)); } return(query); }
public virtual IQueryable <T> DocumentTypeFiltering(IQueryable <T> query, Sungero.Domain.PropertyFilteringEventArgs e) { if (_obj.NumberingType != NumberingType.NotNumerable) { query = query.Where(d => d.IsRegistrationAllowed == true); } return(query.Where(d => Equals(d.DocumentFlow, _obj.DocumentFlow))); }
public virtual IQueryable <T> ContactFiltering(IQueryable <T> query, Sungero.Domain.PropertyFilteringEventArgs e) { if (_obj.Counterparty != null) { query = query.Where(c => c.Company == _obj.Counterparty); } return(query); }
public virtual IQueryable <T> HeadOfficeFiltering(IQueryable <T> query, Sungero.Domain.PropertyFilteringEventArgs e) { // Фильтровать головное подразделение по нашим организациям. if (_obj.BusinessUnit != null) { query = query.Where(d => d.BusinessUnit.Equals(_obj.BusinessUnit)); } return(query.Where(d => !Equals(d, _obj))); }
public virtual IQueryable <T> CityFiltering(IQueryable <T> query, Sungero.Domain.PropertyFilteringEventArgs e) { // Фильтровать населенные пункты по региону. if (_obj.Region != null) { query = query.Where(settlement => Equals(settlement.Region, _obj.Region)); } return(query); }
public virtual IQueryable <T> RegionFiltering(IQueryable <T> query, Sungero.Domain.PropertyFilteringEventArgs e) { // Отфильтровать регионы по странам. if (_obj.Country != null) { query = query.Where(region => Equals(region.Country, _obj.Country)); } return(query); }
public virtual IQueryable <T> ContractFiltering(IQueryable <T> query, Sungero.Domain.PropertyFilteringEventArgs e) { if (_obj.Counterparty != null) { query = query.Where(c => Equals(c.Counterparty, _obj.Counterparty)); } query = query.Where(c => !Equals(c.LifeCycleState, Sungero.Contracts.ContractBase.LifeCycleState.Obsolete)); return(query); }
public virtual IQueryable <T> ApprovalRoleFiltering(IQueryable <T> query, Sungero.Domain.PropertyFilteringEventArgs e) { var possibleRoles = Functions.ApprovalStage.GetPossibleRoles(_obj); if (CallContext.CalledFrom(ApprovalRules.Info)) { possibleRoles.Remove(Docflow.ApprovalRoleBase.Type.ContractResp); possibleRoles.Remove(Docflow.ApprovalRoleBase.Type.ContRespManager); } return(query.Where(r => possibleRoles.Contains(r.Type))); }
public virtual IQueryable <T> CorrectedFiltering(IQueryable <T> query, Sungero.Domain.PropertyFilteringEventArgs e) { query = query.Where(x => x.Id != _obj.Id && x.IsAdjustment != true); if (_obj.Counterparty != null) { query = query.Where(x => Equals(x.Counterparty, _obj.Counterparty)); } return(query); }
public virtual IQueryable <T> ManagerFiltering(IQueryable <T> query, Sungero.Domain.PropertyFilteringEventArgs e) { var role = Docflow.PublicInitializationFunctions.Module.GetProjectManagersRole(); if (role != null) { var allRecipientIds = Groups.GetAllUsersInGroup(role).Select(x => x.Id).ToList(); return(query.Where(m => allRecipientIds.Contains(m.Id))); } return(query); }
public virtual IQueryable <T> LeadingProjectFiltering(IQueryable <T> query, Sungero.Domain.PropertyFilteringEventArgs e) { // Из-за того, что команда подпроекта включается в команду ведущего проекта, изменять ведущий проект могут РП или админстратор. var admin = Users.Current.IncludedIn(Roles.Administrators); if (!admin) { var projectsIds = Functions.Project.GetProjectsManagerOrAdministrator(Users.Current).Select(p => p.Id).ToList(); query = query.Where(x => projectsIds.Contains(x.Id)); } return(query.Where(x => x.Stage != Stage.Completed && !Equals(x, _obj))); }
public virtual IQueryable <T> ApprovalRuleFiltering(IQueryable <T> query, Sungero.Domain.PropertyFilteringEventArgs e) { var document = _obj.DocumentGroup.OfficialDocuments.FirstOrDefault(); if (document == null) { return(query); } var rules = Functions.OfficialDocument.GetApprovalRules(document).ToList(); return(query.Where(r => rules.Contains(r))); }
public virtual IQueryable <T> InResponseToFiltering(IQueryable <T> query, Sungero.Domain.PropertyFilteringEventArgs e) { if (_obj.Correspondent != null) { query = query.Where(l => l.Addressees.Any(a => Equals(a.Correspondent, _obj.Correspondent))); } if (_obj.BusinessUnit != null) { query = query.Where(l => Equals(_obj.BusinessUnit, l.BusinessUnit)); } return(query); }
public virtual IQueryable <T> ExchangeServiceFiltering(IQueryable <T> query, Sungero.Domain.PropertyFilteringEventArgs e) { if (_obj.Status == Sungero.CoreEntities.DatabookEntry.Status.Active && _obj.BusinessUnit != null) { var alreadyUsedServices = Functions.BusinessUnitBox.GetUsedServicesOfBox(_obj, _obj.BusinessUnit); if (alreadyUsedServices.Any()) { query = query .Where(x => !alreadyUsedServices.Contains(x)); } } return(query); }
public virtual IQueryable <T> InResponseToFiltering(IQueryable <T> query, Sungero.Domain.PropertyFilteringEventArgs e) { if (_obj.Addressees.Any(a => a.Correspondent != null)) { var correspondents = _obj.Addressees.Where(a => a.Correspondent != null).Select(a => a.Correspondent).ToList(); query = query.Where(l => correspondents.Contains(l.Correspondent)); } if (_obj.BusinessUnit != null) { query = query.Where(l => Equals(_obj.BusinessUnit, l.BusinessUnit)); } return(query); }
public virtual IQueryable <T> DocumentFiltering(IQueryable <T> query, Sungero.Domain.PropertyFilteringEventArgs e) { query = query.Where(d => InternalDocumentBases.Is(d) && d.LifeCycleState != Docflow.OfficialDocument.LifeCycleState.Obsolete); if (_obj.Reason == Docflow.SignatureSetting.Reason.PowerOfAttorney) { query = query.Where(d => PowerOfAttorneys.Is(d) && PowerOfAttorneys.As(d).ValidTill >= Calendar.UserToday); if (_obj.Recipient != null) { query = query.Where(d => Equals(_obj.Recipient, PowerOfAttorneys.As(d).IssuedTo)); } } return(query); }
public virtual IQueryable <T> AssigneeFiltering(IQueryable <T> query, Sungero.Domain.PropertyFilteringEventArgs e) { e.DisableUiFiltering = true; var parentTask = ActionItemExecutionTasks.As(_obj.ParentTask); var parentAssignment = ActionItemExecutionAssignments.As(_obj.ParentAssignment); if (parentTask != null) { query = parentTask.IsCompoundActionItem ?? false? query.Where(u => Functions.ActionItemExecutionTask.GetActionItemsPerformers(parentTask).Contains(u)) : query.Where(u => u.Equals(parentTask.Assignee)); } if (parentAssignment != null) { query = query.Where(u => Functions.ActionItemExecutionAssignment.GetActionItemsAssignees(parentAssignment).Contains(u)); } return(query); }
public override IQueryable <T> ObserversObserverFiltering(IQueryable <T> query, Sungero.Domain.PropertyFilteringEventArgs e) { return((IQueryable <T>)RecordManagement.PublicFunctions.Module.ObserversFiltering(query)); }
public override IQueryable <T> OurSignatoryFiltering(IQueryable <T> query, Sungero.Domain.PropertyFilteringEventArgs e) { return(query); }
public virtual IQueryable <T> AddApproversApproverFiltering(IQueryable <T> query, Sungero.Domain.PropertyFilteringEventArgs e) { query = query.Where(c => c.Status == CoreEntities.DatabookEntry.Status.Active); // Отфильтровать всех пользователей. query = query.Where(x => x.Sid != Sungero.Domain.Shared.SystemRoleSid.AllUsers); // Отфильтровать служебные роли. return((IQueryable <T>)RecordManagement.PublicFunctions.Module.ObserversFiltering(query)); }
public override IQueryable <T> CounterpartySignatoryFiltering(IQueryable <T> query, Sungero.Domain.PropertyFilteringEventArgs e) { query = base.CounterpartySignatoryFiltering(query, e); if (_obj.Counterparty != null) { query = query.Where(c => c.Company == _obj.Counterparty); } return(query); }
public override IQueryable <T> CorrectedFiltering(IQueryable <T> query, Sungero.Domain.PropertyFilteringEventArgs e) { query = base.CorrectedFiltering(query, e); return(query.Where(x => (OutgoingTaxInvoices.Is(x) || UniversalTransferDocuments.Is(x)) && x.IsAdjustment != true)); }