コード例 #1
0
        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();
        }
コード例 #2
0
        /// <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();
            }
        }