ReceiptNotificationSendingAssignmentHandlers.cs 1.44 KB
using System;
using System.Collections.Generic;
using System.Linq;
using Sungero.Core;
using Sungero.CoreEntities;
using Sungero.Exchange.ReceiptNotificationSendingAssignment;

namespace Sungero.Exchange
{
  partial class ReceiptNotificationSendingAssignmentClientHandlers
  {

    public virtual void NewDeadlineValueInput(Sungero.Presentation.DateTimeValueInputEventArgs e)
    {
      // Не давать указывать срок меньше, чем сейчас.
      if (e.NewValue.HasValue)
      {
        // Проводить валидацию на конец дня, если указана дата без времени.
        if (!Docflow.PublicFunctions.Module.CheckDeadline(_obj.Addressee ?? Users.Current, e.NewValue.Value, Calendar.Now))
          e.AddError(ExchangeDocumentProcessingAssignments.Resources.ImpossibleSpecifyDeadlineLessThenToday,
                     _obj.Info.Properties.NewDeadline);
      }
    }

    public virtual void AddresseeValueInput(Sungero.Exchange.Client.ReceiptNotificationSendingAssignmentAddresseeValueInputEventArgs e)
    {
      // При указании адресата заполнить срок: + 2 рабочих дня.
      if (e.NewValue != null && !Equals(e.NewValue, e.OldValue) && _obj.NewDeadline == null)
        _obj.NewDeadline = _obj.Deadline.Value < Calendar.Now ?
          Calendar.Now.AddWorkingDays(e.NewValue, 2) : _obj.Deadline.Value.AddWorkingDays(e.NewValue, 2);
    }

  }
}