ConsolidatedInventoryHandlers.cs 1.52 KB
using System;
using System.Collections.Generic;
using System.Linq;
using Sungero.Core;
using Sungero.CoreEntities;
using DirRX.Storage.ConsolidatedInventory;

namespace DirRX.Storage
{
  partial class ConsolidatedInventoryServerHandlers
  {

    public override void Created(Sungero.Domain.CreatedEventArgs e)
    {
      _obj.Name = DirRX.Storage.ConsolidatedInventories.Resources.ConsolidatedInventory;
      if (Sungero.Company.Employees.Current != null)
        _obj.BusinessUnit = Sungero.Company.Employees.Current.Department.BusinessUnit;
      if (_obj.State.IsCopied)
      {
        _obj.Number = null;
        _obj.CasesNumber = null;
        _obj.Status = Status.Active;
      }
    }

    public override void Saving(Sungero.Domain.SavingEventArgs e)
    {
      var name = _obj.Info.Properties.Type.GetLocalizedValue(_obj.Type);
      
      using (TenantInfo.Culture.SwitchTo())
      {
        // Номер описи.
        name += _obj.Number.HasValue ? " № " + _obj.Number.ToString() : string.Empty;
      }
      name += DirRX.Storage.ConsolidatedInventories.Resources.NameTemplateFormat(_obj.Fund.FundNumber);
      _obj.Name = name.Length > _obj.Info.Properties.Name.Length ? name.Substring(0, _obj.Info.Properties.Name.Length - 1)  : name;
    }

    public override void BeforeSave(Sungero.Domain.BeforeSaveEventArgs e)
    {
      if (!_obj.Number.HasValue)
        _obj.Number = Functions.ConsolidatedInventory.GetNextInventoryNumber(_obj);
      
      if (!_obj.CasesNumber.HasValue)
        _obj.CasesNumber = 0;
    }
  }

}