public override void Created(Sungero.Domain.CreatedEventArgs e) { base.Created(e); if (!_obj.State.IsCopied) { _obj.IsAutomaticRenewal = false; var availableDocuments = Docflow.PublicFunctions.DocumentGroupBase.GetAvailableDocumentGroup(_obj.DocumentKind).Where(g => ContractCategories.Is(g)); if (availableDocuments.Count() == 1) { _obj.DocumentGroup = availableDocuments.FirstOrDefault(); } } }
public override void DocumentKindChanged(Sungero.Docflow.Shared.OfficialDocumentDocumentKindChangedEventArgs e) { base.DocumentKindChanged(e); var documentKind = e.NewValue; if (documentKind == null) { return; } // Очистить категорию, если она не соответствует виду документа. var availableCategory = Docflow.PublicFunctions.DocumentGroupBase.GetAvailableDocumentGroup(documentKind).Where(g => ContractCategories.Is(g)); if (_obj.DocumentGroup != null && !availableCategory.Contains(_obj.DocumentGroup)) { _obj.DocumentGroup = null; } // Заполнить категорию, если для выбранного вида доступна только одна. if (_obj.DocumentGroup == null && availableCategory.Count() == 1) { _obj.DocumentGroup = availableCategory.First(); } // Проставить корректно жизненный цикл для договора после смены типа. if (_obj.LifeCycleState == Docflow.OfficialDocument.LifeCycleState.Obsolete) { if (_obj.ExchangeState == Docflow.OfficialDocument.ExchangeState.Obsolete) { _obj.LifeCycleState = ContractBase.LifeCycleState.Obsolete; } if (_obj.ExchangeState == Docflow.OfficialDocument.ExchangeState.Terminated) { _obj.LifeCycleState = ContractBase.LifeCycleState.Terminated; } } }
public override IQueryable <T> DocumentGroupFiltering(IQueryable <T> query, Sungero.Domain.PropertyFilteringEventArgs e) { query = base.DocumentGroupFiltering(query, e); query = query.Where(g => ContractCategories.Is(g)); return(query); }