DeadlineExtensionAssignmentHandlers.cs 1.39 KB
using System;
using System.Collections.Generic;
using System.Linq;
using Sungero.Core;
using Sungero.CoreEntities;
using Sungero.RecordManagement.DeadlineExtensionAssignment;

namespace Sungero.RecordManagement
{
  partial class DeadlineExtensionAssignmentServerHandlers
  {
    public override void BeforeComplete(Sungero.Workflow.Server.BeforeCompleteEventArgs e) 
    {
      if (_obj.Result.Value == Result.ForRework)
      {
        // Проверить заполненность причины отказа.
        if (_obj.Texts.Last().IsAutoGenerated ?? false)
          e.AddError(DeadlineExtensionAssignments.Resources.RefusalReasonNotFilled);
        
        // Добавить автотекст.
        e.Result = DeadlineExtensionAssignments.Resources.Denied;
      }
      else
      {
        // Новый срок поручения должен быть больше старого.
        if (_obj.NewDeadline <= _obj.ScheduledDate)
          e.AddError(_obj.Info.Properties.NewDeadline, DeadlineExtensionTasks.Resources.DesiredDeadlineIsNotCorrect, new[] { _obj.Info.Properties.NewDeadline });
        
        // Добавить автотекст.
        var desiredDeadlineLabel = Functions.DeadlineExtensionTask.GetDesiredDeadlineLabel(_obj.NewDeadline.Value);
        e.Result = DeadlineExtensionAssignments.Resources.DeadlineExtendedFormat(desiredDeadlineLabel);
      }
    }
  }
}