Практика 4.6 Разработка бизнес логики.
Ответ на задание необходимо предоставить в виде файлов Scala и XML, которые были изменены в текущем уроке (для написанного программного кода). Скриншоты интерфейса приложения для заданий выполняемых в интерфейсе и для демонстрации работы кода в системе Global ERP следует отправить в формате PDF, PNG или JPG. Для удобства рекомендуется прислать все файлы в одном архиве.
В ответе на задание должны содержаться элементы, обеспечивающие работоспособность описанного в задании функционала.
Вычисление заголовка
-
В
Apiклассов-документов переопределите метод вычисление заголовкаcalcHeadLine, заголовок должен быть в формате{HL класса} № {sNumDoc} от {dDoc в формате дд.мм.гггг}. -
Для созданных ранее объектов пересчитайте заголовки, для этого в карточках классов, под молотком и ключом запустите операцию
Пересчитать заголовки и мнемокоды объектов класса. Для проверки можно посмотреть данные столбца sheadline_dz в таблицах.
Установка порядкового номера для позиций
-
В
Apiпозиций документов переопределите методinsertByParentи напишите установку значения в полеnRow, как максимальный текущий номер в позициях + 1. Если позиций еще нет, то первая позиция должна начинаться с 1. Можно воспользоватьсяscalaфункциейreduceOption(_ max _).getOrElse(0.nn) -
В
Aviпозиций документов для отображенийList_idDocилиList_idInActпереопределите методonRefreshи допишите сортировку по полюnRow, используяsortBy.
Пересчитываемые поля
Добавьте пересчеты для приходной накладной Lbr_InActDetApi:
-
Переопределите методы установки цены и количества (сеттеры
setnPriceиsetnQty), добавьте логику вычисления суммы в позиции с округление до 2х знаков -
Переопределите сеттер суммы, добавьте вычисление цены в позиции с округление до 2х знаков
-
Добавьте пересчет общей суммы документа при изменении суммы в позициях или удалении самой позиции
-
На сеттеры цены, количества и суммы добавьте проверку на отрицательный ввод, вызов ошибки осуществляется методом
throw AppException("Текст ошибки")
Lbr_InActDetAvi:
-
Переопределите сеттеры цены, количества и суммы, добавьте в конце обновление текущей записи (
selection.refreshItem()) и обновление карточки мастера (selection.master.refreshItem()) -
Переопределите метод удаления (
delete) и пропишите в конце обновление карточки мастера
Lbr_InAct.avm.xml:
-
Сумму документа сделайте не редактируемой в карточке