public virtual void Forwarded(Sungero.Workflow.Client.ExecuteResultActionArgs e) { // Не давать переадресовать, если адресат или срок не заполнены. if (_obj.Addressee == null || _obj.NewDeadline == null) { e.AddError(ExchangeDocumentProcessingAssignments.Resources.CantReAddressWithoutAddresseeAndDeadline); return; } // Не давать переадресовывать на срок меньше, чем сейчас. if (_obj.NewDeadline.HasValue) { // Проводить валидацию на конец дня, если указана дата без времени. if (!Docflow.PublicFunctions.Module.CheckDeadline(_obj.Addressee, _obj.NewDeadline, Calendar.Now)) { e.AddError(ExchangeDocumentProcessingAssignments.Resources.ImpossibleSpecifyDeadlineLessThenToday); return; } } // Замена стандартного диалога подтверждения выполнения действия. if (!Docflow.PublicFunctions.Module.ShowConfirmationDialog(e.Action.ConfirmationMessage, null, null, Constants.ReceiptNotificationSendingTask.ReceiptNotificationSendingAssignmentConfirmDialogID.Forwarded)) { e.Cancel(); } // Прокинуть новый срок и исполнителя в задачу. var task = ReceiptNotificationSendingTasks.As(_obj.Task); task.Addressee = _obj.Addressee; task.MaxDeadline = _obj.NewDeadline; task.Save(); }
/// <summary> /// Отправить извещения о получении. /// </summary> /// <param name="e">Аргументы.</param> public void SendReceiptNotification(Sungero.Workflow.Client.ExecuteResultActionArgs e) { var task = ReceiptNotificationSendingTasks.As(_obj.Task); var certificate = Functions.Module.GetCurrentUserExchangeCertificate(_obj.Box, Company.Employees.Current); if (certificate == null) { e.AddError(Resources.CertificateNotFound); e.Cancel(); } var result = Exchange.Functions.Module.SendDeliveryConfirmation(_obj.Box, certificate, true); if (!string.IsNullOrEmpty(result)) { e.AddError(result); e.Cancel(); } }