⟨/⟩ Nts/50_Domain/Reference/WinterAllowance.cs

58 строк · в начало

using System;
using Rugrid.Sdaid.Notation.Documents;

namespace Rugrid.Sdaid.Epas.Nts.Domain
{
    /// <summary>
    /// Справочник «Предельные значения зимних надбавок»: собственный справочник модуля, наполняется
    /// из файла заказчика. Запись привязана к субъекту РФ (обязательно) и задаёт предельную величину
    /// зимней надбавки и срок её действия. Используется в расчёте — секция методики `fuel.cf_climate_region`.
    /// </summary>
    public class DOC_WinterAllowance : IDomainEntityDocument, IHasStructuralLinks, IFolder<NtsDomainFolder>
    {
        public SdaidLink[] Links => new[]
        {
            Rel.Uses<DOC_Subject>(),
        };

        public static string _refName = "Предельные значения зимних надбавок";

        public string Name => "Предельные значения зимних надбавок";

        public string Description =>
            @"Зимняя надбавка к норме расхода топлива по субъекту Российской Федерации: количество месяцев и срок действия, предельная величина надбавки.";

        public string Version => "0.2";
        public string Status => "draft";
        public string[] Comments => new string[0];
        public Type Entity => typeof(WinterAllowance);
    }

    /// <summary>Доменная сущность «Предельные значения зимних надбавок».</summary>
    [DomainEntity]
    public class WinterAllowance
    {
        /// <summary>Идентификатор записи</summary>
        [DomainField(Alias = "id", RequiredOnCreate = true, Range = "UUID", Immutable = true)]
        public Guid Id { get; set; }

        /// <summary>Субъект Российской Федерации</summary>
        [Relation]
        [DomainField(Alias = "subject_id", RequiredOnCreate = true,
            Description = "Субъект РФ, к которому относится зимняя надбавка")]
        public Subject? Subject { get; set; }

        /// <summary>Количество месяцев действия надбавки</summary>
        [DomainField(Alias = "months", Unit = "мес.", Range = "вещественное, ≥ 0")]
        public decimal? Months { get; set; }

        /// <summary>Срок действия надбавки</summary>
        [DomainField(Alias = "period", Description = "Например, «01.XI..31.III»")]
        public string? Period { get; set; }

        /// <summary>Предельная величина зимних надбавок, не более</summary>
        [DomainField(Alias = "limit_percent", Unit = "%", Range = "вещественное, ≥ 0")]
        public decimal? LimitPercent { get; set; }
    }
}