/// <summary> /// Установить обязательность свойств. /// </summary> /// <param name="refreshParameters">Информация по этапам для обновления формы задачи на согласование по регламенту.</param> public virtual void SetRequiredProperties(Structures.ApprovalTask.RefreshParameters refreshParameters) { var taskProperties = _obj.State.Properties; taskProperties.Addressee.IsRequired = refreshParameters.AddresseeIsRequired; taskProperties.Signatory.IsRequired = refreshParameters.SignatoryIsRequired; taskProperties.ExchangeService.IsRequired = refreshParameters.ExchangeServiceIsRequired; }
/// <summary> /// Установить видимость свойств. /// </summary> /// <param name="refreshParameters">Информация по этапам для обновления формы задачи на согласование по регламенту.</param> public virtual void SetVisibleProperties(Structures.ApprovalTask.RefreshParameters refreshParameters) { var taskProperties = _obj.State.Properties; taskProperties.AddApprovers.IsVisible = refreshParameters.AddApproversIsVisible; taskProperties.Addressee.IsVisible = refreshParameters.AddresseeIsVisible; taskProperties.Signatory.IsVisible = refreshParameters.SignatoryIsVisible; taskProperties.DeliveryMethod.IsVisible = refreshParameters.DeliveryMethodIsVisible; taskProperties.ExchangeService.IsVisible = refreshParameters.ExchangeServiceIsVisible; }
/// <summary> /// Установить доступность свойств. /// </summary> /// <param name="refreshParameters">Информация по этапам для обновления формы задачи на согласование по регламенту.</param> public virtual void SetEnabledProperties(Structures.ApprovalTask.RefreshParameters refreshParameters) { var taskProperties = _obj.State.Properties; taskProperties.Addressee.IsEnabled = false; taskProperties.ReqApprovers.IsEnabled = false; if (_obj.ApprovalRule != null) { taskProperties.Addressee.IsEnabled = refreshParameters.AddresseeIsEnabled; } var isExchange = _obj.DeliveryMethod != null && _obj.DeliveryMethod.Sid == Constants.MailDeliveryMethod.Exchange; taskProperties.ExchangeService.IsEnabled = refreshParameters.ExchangeServiceIsEnabled; var document = _obj.DocumentGroup.OfficialDocuments.FirstOrDefault(); if (isExchange && OfficialDocuments.Is(document)) { if (document.Versions.Any()) { var isIncomingDocument = Docflow.PublicFunctions.OfficialDocument.Remote.CanSendAnswer(document); var isFormalizedDocument = Docflow.AccountingDocumentBases.Is(document) && Docflow.AccountingDocumentBases.As(document).IsFormalized == true; taskProperties.DeliveryMethod.IsEnabled = refreshParameters.DeliveryMethodIsEnabled; taskProperties.ExchangeService.IsEnabled = refreshParameters.ExchangeServiceIsEnabled; } } // Не давать менять адресата в согласовании служебных записок. if (Memos.Is(document)) { taskProperties.Addressee.IsEnabled = false; } // Не давать изменять способ доставки для исходящих писем на несколько адресатов. if (OutgoingDocumentBases.Is(document) && OutgoingDocumentBases.As(document).IsManyAddressees == true) { taskProperties.DeliveryMethod.IsEnabled = false; } }
/// <summary> /// Обновить видимость, доступность и обязательность полей в карточке задачи. /// </summary> /// <param name="refreshParameters">Структура с данными по этапам согласования.</param> public void RefreshProperties(Structures.ApprovalTask.RefreshParameters refreshParameters) { Functions.ApprovalTask.SetEnabledProperties(_obj, refreshParameters); Functions.ApprovalTask.SetVisibleProperties(_obj, refreshParameters); Functions.ApprovalTask.SetRequiredProperties(_obj, refreshParameters); }