⟨/⟩ Ntr/65_Ui/Pages/EnergyProfileCard.cs

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

using Rugrid.Sdaid.Notation.Documents;

namespace Rugrid.Sdaid.Epas.Ntr.Ui.Pages
{
    /// <summary>
    /// Перенесено дословно из ntr-01/ui/energy-profile-card.md.
    /// </summary>
    public class DOC_EnergyProfileCard : IPageDocument, IHasStructuralLinks, IFolder<NtrUiFolder>
    {
        public SdaidLink[] Links => new[]
        {
            Rel.Uses<Rugrid.Sdaid.Epas.Ntr.Domain.BuildingModel.DOC_Building>(),
            Rel.Uses<Rugrid.Sdaid.Epas.Ntr.Domain.ConsumptionModel.DOC_ConsumptionModel>(),
            Rel.Uses<Rugrid.Sdaid.Epas.Ntr.Domain.EnergyProfileCollectionTaskModel.DOC_EnergyProfileCollectionTask>(),
            Rel.Uses<Rugrid.Sdaid.Epas.Ntr.Domain.EnergyProfileModel.DOC_EnergyProfile>(),
            Rel.Uses<Rugrid.Sdaid.Epas.Ntr.Domain.Reference.SysReference.DOC_EnergyProfileStatus>(),
            Rel.Uses<Rugrid.Sdaid.Epas.Ntr.Domain.Reference.SysReference.DOC_ModelConsistencyStatus>(),
            Rel.Uses<Rugrid.Sdaid.Epas.Ntr.Ui.Componetns.DOC_ColorBadge>(),
        };

        public static string _refName = "Карточка \"Энергопрофиль здания";

        public string Name => "Карточка \"Энергопрофиль здания";

        public string Description => "Алиасы: Карточка \"Энергопрофиль здания. parents: [main-page].";

        public string Version => "1.0";
        public string Status => "accepted";
        public string[] Comments => new string[0];

        /// <summary>Макет экрана: страница прототипа Сервиса, состав полей — из описания полей ниже.</summary>
        public static string Wireframe = $""""
## Макет

{SdaidHtml.IframeOf<DOC_EnergyProfileCard>("energy-profile-card.html", 620)}

{SdaidHtml.LinkTo<DOC_EnergyProfileCard>("energy-profile-card.html", "Открыть макет в отдельной вкладке")}
"""";

        public static string Body = """"
Карточка "Энергопрофиль здания" предназначена для отображения свойств [[../ntr-01/domain/energy-profile-model/energy-profile|энергопрофиля]] здания и доступа к операциям с энергопрофилем. 
Карточка открывается в режиме редактирования.

**Элементы:**

- Кнопки вызова операций: 
	- Сохранить;
	- Отменить;
	- Проверить.
- Поля свойств энергопрофиля.

**Описание полей свойств энергопрофиля:**

| Название поля (колонка)              | Способ заполнения                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Обязательно для заполнения | Редактируемое                                                | Тип поля               | Маска / формат | Примечания |
| ------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------- | ------------------------------------------------------------ | ---------------------- | -------------- | ---------- |
| Наименование                         | Вычисляется при чтении / на UI; не хранится.<br>Формула: "{FK → [[../ntr-01/domain/building-model/building\|Здание]]. Наименование} ({FK → [[../ntr-01/domain/energy-profile-collection-task-model/energy-profile-collection-task\|Задание на сбор энергопрофилей]]. Год начала отчётного периода}-{[[../ntr-01/domain/energy-profile-collection-task-model/energy-profile-collection-task\|Задание на сбор энергопрофилей]]. Год окончания отчётного периода})"<br><br>Пример:<br><br>Гараж №1 (2026-2026) |                            | Нет                                                          | Поле только для чтения |                |            |
| Модель вида расчёта. Нормативный     | [[../ntr-01/domain/energy-profile-model/energy-profile\|Энергопрофиль]]. Модель нормативного расчёта -> [[../ntr-01/domain/consumption-model/consumption-model\|Модель потребления]]. Наименование<br><br>Выбирается из списка моделей здания: <br>- не включённых в энергопрофиль;<br>- для модели установлен соответствующий вид расчёта.                                                                                                                                     |                            | Да                                                           | Выпадающий список      |                |            |
| Модель вида расчёта. Эталонный       | [[../ntr-01/domain/energy-profile-model/energy-profile\|Энергопрофиль]]. Модель эталонного расчёта -> [[../ntr-01/domain/consumption-model/consumption-model\|Модель потребления]]. Наименование<br><br>Выбирается из списка моделей здания: <br>- не включённых в энергопрофиль;<br>- для модели установлен соответствующий вид расчёта.                                                                                                                                       |                            | Да                                                           | Выпадающий список      |                |            |
| Модель вида расчёта. Технологический | [[../ntr-01/domain/energy-profile-model/energy-profile\|Энергопрофиль]]. Модель технологического расчёта -> [[../ntr-01/domain/consumption-model/consumption-model\|Модель потребления]]. Наименование<br><br>Выбирается из списка моделей здания: <br>- не включённых в энергопрофиль;<br>- для модели установлен соответствующий вид расчёта.                                                                                                                                 |                            | Да                                                           | Выпадающий список      |                |            |
| Модель вида расчёта. Произвольный    | [[../ntr-01/domain/energy-profile-model/energy-profile\|Энергопрофиль]]. Модель произвольного расчёта -> [[../ntr-01/domain/consumption-model/consumption-model\|Модель потребления]]. Наименование<br><br>Выбирается из списка моделей здания: <br>- не включённых в энергопрофиль;<br>- для модели установлен соответствующий вид расчёта.                                                                                                                                    |                            | Да                                                           | Выпадающий список      |                |            |
| Статус энергопрофиля                 | [[../ntr-01/domain/energy-profile-model/energy-profile\|Энергопрофиль]] → [[../ntr-01/domain/reference/sys-reference/energy-profile-status\|Статус энергопрофиля]]. Наименование                                                                                                                                                                                                                                                                                                |                            | Да, если `Статус выполнения условий расчётов` == `Выполнены` | Выпадающий список      |                |            |
| Статус выполнения условий расчётов   | Бейдж с наименованием и цветом:<br><br>[[../ntr-01/domain/energy-profile-model/energy-profile\|Энергопрофиль]] → [[../ntr-01/domain/reference/sys-reference/model_consistency_status\|Статус выполнения условий расчётов]]. Наименование<br>Цвет: [[color-badge\|Цвета бейджей]]                                                                                                                                                                                                |                            | Нет                                                          | Бейдж                  |                |            |

**Поведение на форме:**

- Если статус `Статус выполнения условий расчётов` != `Выполнены`, значение `Статус энергопрофиля` недоступно для изменения.
- **Сохранить:** 
	- данные формы отправляются на проверку, выполняется операция `Проверить энергопрофиль`, по результатам проверки в форме устанавливается `Статус выполнения условий расчётов` = `Выполнены` или `Статус выполнения условий расчётов` = `Не выполнены` и размещается ссылка на журнал ошибок в карточке энергопрофиля, сообщить об установлении статуса. 
	- Если `Статус выполнения условий расчётов` = `Выполнены`, сохранить энергопрофиль, сообщить об успешном сохранении в статусе энергопрофиля, вернуться в реестр энергопрофилей. 
	- Если `Статус выполнения условий расчётов` = `Не выполнены`: отобразить окно операции: сообщить "Условия расчётов не выполняются, в карточке энергопрофиля размещена ссылка на журнал ошибок, энергопрофиль может быть сохранён в статусе `Формируется`", предложить: Отменить, Выполнить. 
		- Отменить - закрыть окно операции, остаться в карточке редактирования энергопрофиля.
		- Выполнить:
			- Если пользователем установлен `Статус энергопрофиля` = `Сформирован`, сбросить в `Формируется`, сохранить энергопрофиль, сообщить об успешном сохранении в статусе энергопрофиля, вернуться в реестр энергопрофилей.
			- Если пользователем установлен `Статус энергопрофиля` = `Формируется`, сохранить энергопрофиль, сообщить об успешном сохранении в статусе энергопрофиля, вернуться в реестр энергопрофилей.
- **Проверить:** данные формы отправляются на проверку, выполняется операция `Проверить энергопрофиль`, по результатам проверки в форме устанавливается `Статус выполнения условий расчётов` = `Выполнены` или `Статус выполнения условий расчётов` = `Не выполнены` и размещается ссылка на журнал ошибок в карточке энергопроифля. 
- **Отменить** - возврат в реестр энергопрофилей.
"""";
    }
}