Перейти к основному содержанию
Югорский государственный университет
  • В начало
  • Минимальные требования
  • Сбор персональных данных
  • Дополнительно
Вход
Югорский государственный университет
В начало Минимальные требования Сбор персональных данных
  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