Перейти к основному содержанию
Югорский государственный университет
  • В начало
  • Минимальные требования
  • Дополнительно
Вход
Югорский государственный университет
В начало Минимальные требования
  1. Тест Глобал
  2. Практика 5.5 Разработка бизнес логики.

Практика 5.5 Разработка бизнес логики.

Требуемые условия завершения
Дать ответ на задание

Ответ на задание необходимо предоставить в виде файлов Scala и XML, которые были изменены в текущем уроке (для написанного программного кода). Скриншоты интерфейса приложения для заданий выполняемых в интерфейсе и для демонстрации работы кода в системе Global ERP следует отправить в формате PDF, PNG или JPG. Для удобства рекомендуется прислать все файлы в одном архиве.

 В ответе на задание должны содержаться элементы, обеспечивающие работоспособность описанного в задании функционала.

Вычисление заголовка с учетом типа объекта

  • В Api классов-документов измените вычисление заголовка calcHeadLine, заголовок должен быть в формате {(Краткое наименование из типа объекта).nvl(HL класса)} № {sNumDoc} от {dDoc в формате дд.мм.гггг}.

  • Для созданных ранее объектов пересчитайте заголовки, для этого в карточках классов, под молотком и ключом запустите операцию Пересчитать заголовки и мнемокоды объектов класса. Для проверки можно посмотреть данные столбца sheadline_dz в таблицах.

Динамическое управление редактируемостью полей

  • В Avi документов для карточек переопределите сеттер состояния setidState, в конце пропишите методы для корректного срабатывания checkWorkability мастера и деталей, для того чтобы последующие задания работали корректно при переводе состояния:

//необязательные действия
//завершение транзакции
session.commit()
//снятие блокировки
Btk_FormSessionApi().closeLockUnit()

//необходимые действия
//обновление карточки
selection.refreshItem()
//вызов checkWorkability в карточке
selection.checkWorkability()
//вызов checkWorkability в деталях
selection.cwaDetails()
  • Для реализации динамического управления редактируемостью в Avi позиций документов, для отображений List_idDoc и List_idInAct переопределите метод checkWorkability, напишите блокировку добавления, удаления, редактирования позиций, если номер состояния документа отличен от 100. Можно воспользоваться данными методами:

//переменная для управления редактируемостью
val bvRO = getVar("super$idStateMC").asNNumber.isDistinct(100.nn)
//для одного атрибута
selection.attrs("Имя атрибута").isReadOnly = bvRO
//для списка атрибутов
selection.attrs().foreach(_.isReadOnly = bvRO)
//для операций
selection.opers("Имя операции").isEnabled = !bvRO
  • В Avi документов для карточек переопределите checkWorkability, напишите блокировку на редактирование всех полей, кроме idState, idStateHL и nSum, если номер состояния документа отличен от 100

Действия на перевод состояния

В Lbr_InActApi:

  • Создайте метод проверки документа (например validateDoc), на вход будет rop документа.

  • В нем пропишите вызов ошибки, если не будут выполнены какие либо условия (указаны ниже). Ошибку можно сделать одну общую с не выполненными условиями или отдельную по каждому условию. Вызов ошибки осуществляется методом throw AppException("Текст ошибки"). Перечень условий:

    1. Заполнены атрибуты документа (дата, организация, библиотекарь)
    2. Наличие хотя бы одной записи в позициях
    3. Заполнены атрибуты в позициях (книга, количество)

  • Переопределите сеттер состояния (setidState), в начале метода пропишите вызов метода проверки, если номер нового состояния будет >=300 и номер старого состояния < 300.
  • В Lbr_InOrderApi и Lbr_OutOrderApi напишите аналогичную логику, только без проверки количества в позиции.

Проверка при удалении

в Api документов переопределите метод delete и напишите в начале проверку, чтобы нельзя было удалить документ, если он находится не в состоянии Оформляется

Югорский государственный университет

Контакты

  • Администратор сайта:
                     ag_fomin@ugrasu.ru

Вы используете гостевой доступ (Вход)
Сводка хранения данных
©Тема Trema