AnnualSectionActions.cs 1.97 KB
using System;
using System.Collections.Generic;
using System.Linq;
using Sungero.Core;
using Sungero.CoreEntities;
using DirRX.Storage.AnnualSection;

namespace DirRX.Storage.Client
{
  partial class AnnualSectionActions
  {
    public virtual void Reform(Sungero.Domain.Client.ExecuteActionArgs e)
    {
      Storage.PublicFunctions.AnnualSection.GenerateLastVersionFromReport(_obj);
      e.AddInformation(AnnualSections.Resources.NewVersion);
    }

    public virtual bool CanReform(Sungero.Domain.Client.CanExecuteActionArgs e)
    {
      return !Signatures.Get(_obj).Where(s => s.SignatureType == SignatureType.Approval).Any();
    }

    public virtual void CreateConsolidatedInventoryList(Sungero.Domain.Client.ExecuteActionArgs e)
    {
      DirRX.Storage.PublicFunctions.Module.ShowConsolidatedInventoryListCreationDialog();
    }

    public virtual bool CanCreateConsolidatedInventoryList(Sungero.Domain.Client.CanExecuteActionArgs e)
    {
      return true;
    }

    public override void SendForApproval(Sungero.Domain.Client.ExecuteActionArgs e)
    {
      // Подписать документ согласующей подписью иниуциатора.
      if (!Signatures.Get(_obj.LastVersion).Where(s => s.Signatory.Equals(Users.Current) && s.SignatureType == SignatureType.Endorsing).Any())
      {
        if (!Signatures.Endorse(_obj.LastVersion, string.Empty))
        {
          e.AddError(AnnualSections.Resources.NeedToSign);
          return;
        }
      }
      base.SendForApproval(e);
    }

    public override bool CanSendForApproval(Sungero.Domain.Client.CanExecuteActionArgs e)
    {
      return base.CanSendForApproval(e);
    }

    public virtual void ShowCaseFiles(Sungero.Domain.Client.ExecuteActionArgs e)
    {
      Functions.ConsolidatedInventory.GetCaseFilesByYear(_obj.ConsolidatedInventory, _obj.Year.Value).Show();
    }

    public virtual bool CanShowCaseFiles(Sungero.Domain.Client.CanExecuteActionArgs e)
    {
      return true;
    }

  }
}