Для возможности проверки работоспособности приложения в процессе дальнейших доработок, добавим тестовые данные в сгенерированное приложение.

Сотрудники

Добавим нового сотрудника. Для этого необходимо нажать на кнопку “Добавить” над соответствующей таблицей на станице “Сотрудники”:

Список "Сотрудников"

Заполним поля на форме редактирования сотрудника следующим образом:

Новый сотрудник Иванов

Фамилия: Иванов
Имя: Иван
Отчество: Иванович
Телефон: 200-00-01
Электронная почта: ivanovii@shop.ru
Должность: Кладовщик

Нажмем кнопку [Сохранить] и перейдем обратно на страницу “Сотрудники”.

Список сотрудников с первой записью

В результате проделанных действий мы можем увидеть первую запись в списке сотрудников.


Самостоятельно внесите следующие данные:

Сотрудники

Фамилия: Петров
Имя: Пётр
Отчество: Петрович
Телефон: 200-00-02
Электронная почта: petrovpp@shop.ru
Должность: Кладовщик

Фамилия: Александрова
Имя: Александра
Отчество: Александровна
Телефон: 200-00-03
Электронная почта: aleksandrovaaa@shop.ru
Должность: Менеджер

Фамилия: Евгеньева
Имя: Евгения
Отчество: Евгеньевна
Телефон: 200-00-04
Электронная почта: evgenyevaee@shop.ru
Должность: Менеджер


При добавлении нового сотрудника табельный номер на форме редактирования изначально всегда имеет значение 1, но после сохранения (необходимо также обновить текущую страницу или перейти на страницу “Сотрудники”) мы замечаем, что номер автоматически увеличивается.

Особенности автонумерации

Это происходит потому, что автоинкремент в REST-архитектуре (а Ember-приложение, сгенерированное с использованием Flexberry Designer, реализовано в данной архитектуре) работает либо на стороне сервера (как в нашем приложении), либо на стороне клиента. Поскольку автоинкремент в нашем примере работает на стороне сервера, актуальное значение на клиенте мы можем получить только после сохранения новой записи.

Наиболее простым решением вопроса отображения “некорректного” начального значения табельного номера будет скрыть поле “Табельный номер” на форме редактирования и отображать его только на списковой форме. Это мы сделаем далее.

В результате выполнения данного шага мы должны получить следующий вариант списка сотрудников:

Заполненный список "Сотрудники"

Товары


Самостоятельно внесите следующие данные:

Товары

Наименование: Монитор Samsung C24F390FHI
Единица измерения: шт.
Описание: Диагональ экрана 23.5”(59 см)
Цена за ед.: 8990
Вес: 3.3

Наименование: Монитор игровой MSI Optix MAG241CP
Единица измерения: шт.
Описание: Диагональ экрана 24”(60.9 см)
Цена за ед.: 21990
Вес: 5.1

Наименование: Системный блок Acer Aspire XC-330 DT.BD2ER.001
Единица измерения: шт.
Описание: Процессор AMD A4 9120e 1.5 ГГц
Цена за ед.: 19990
Вес: 5.5

Наименование: Системный блок игровой Lenovo Legion T530-28ICB MT (90JL00M4RS)
Единица измерения: шт.
Описание: Процессор Intel Core i3 8100 3.6 ГГц
Цена за ед.: 47990
Вес: 12


В результате выполнения данного шага мы должны получить следующий вариант списка товаров:

Заполненный список "Товары"

Склады

Добавим новый склад:

Добавление нового склада

На форме редактирования склада мы можем видеть два поля, соответствующих двум видам связей на исходной диаграмме классов: мастеровое (ассоциация) и детейловое (композиция).

Заполним поля на форме следующим образом:

Адрес: ул. Ленина, д. 1, коп. а
Кладовщик: Петров (Петр Петрович, таб. ном. 2)
Список товаров:
Монитор Samsung C24F390FHI - 4 (шт.)
Системный блок Acer Aspire XC-330 DT.BD2ER.001 - 2 (шт.)
Монитор игровой MSI Optix MAG241CP - 1 (шт.)

Выбор значения поля для мастера:

Лукап "Кладовщик"

Добавление значения в компонент для детейла:

Групэдит "Список товаров"

Выбор значения поля мастера в компоненте для детейла:

Добавление товара в строке списка товаров

В результате форма редактирования склада должна быть заполнена следующим образом:

Форма редактирования нового склада с заполненными значениями

После сохранения информации о складе, на списковой форме соответствующая запись отображается следующим образом:

Список складов с новой записью


Самостоятельно внесите следующие данные:

Склады

Адрес: ул. Ленина, д. 1, коп. б
Кладовщик: Иванов (Иван Иванович, таб. ном. 1)
Список товаров:
Монитор Samsung C24F390FHI - 1 (шт.)
Монитор игровой MSI Optix MAG241CP - 2 (шт.)


В результате выполнения данного шага мы должны получить следующий вариант списка складов:

Заполненная таблица "Склады"

Заказ

При создании нового заказа мы увидим следующий вид формы редактирования:

Новый заказ

Часть полей была заполнена автоматически при создании:

Номер - аналогично полю “Табельный номер” у сотрудника (при сохранении в это поле будет записан уникальный номер);
Статус- Новый, в соответствии с указанным значением по умолчанию при проектировании на уровне модели: OrderStatus = New;
Дата - текущая дата, в соответствии с указанным значением по умолчанию, унаследованным от класса Document, при проектировании на уровне модели: CreateDate = Now (в соответствующем свойстве модели будет храниться дата и время, но отображается на форме только дата из-за использования соответствующего компонента).

Значение поля Стоимость заказа должно вычисляться автоматически как сумма по всем позициям содержимого заказа.

Компонент Содержимое заказа также содержит часть полей, значение которых должно вычисляться автоматически или валидироваться:

Цена с налогом - рассчитывается от цены Товара с учетом фиксированной ставки налога;
Сумма по позициям - рассчитывается по формуле [ Цена с налогом ] * [ Количество ];
Количество - необходима проверка наличия указанного количества товара на всех складах вместе взятых.

Таким образом, перед добавлением Заказа необходимо предварительно реализовать логику атоматического расчета значений перечисленных полей (а точнее соответствующих свойств модели) в коде приложения. Поэтому новый Заказ мы добавим позже в следующих разделах практического руководства.

Накладная

Для возможности добавления Накладных нам также предварительно потребуется реализовать логику автоматического вычисления значений некоторых полей в исходном коде:

Новая накладная

На основе выбранного Заказа на форму должны автоматически добавляться:

  1. сумма заказа;
  2. список товаров к выдаче с возможностью вручную проставить им вес.

При изменении веса товаров автоматически должен вычисляться общий вес заказа.

Итог

На данном шаге руководства мы заполнили тестовыми данными часть списков, доступных в приложении, за исключением Накладных и Заказов. Далее мы реализуем логику для автоматического вычисления значений ряда полей на формах редактирования, которые мы ранее упоминали в этом разделе практического руководства.

Перейти