Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
class RequestConstructorLogic extends GroovyEntityConstructorLogic {
@Override
IEntityWrapper construct(GroovySupport io, EntityConstructor constructor, IEntityWrapper params, IEntityWrapper owner) {
def заявка = io.create.Заявка()
def Номенклатура = io.description.Номенклатура
def Set<Path> added = new HashSet<Path>();
for (отдел in params.отделы) {
for (номенклатура in io.find(Номенклатура, [отделы: отдел])) {
if (!added.contains(номенклатура.getPath())) {
заявка.материалы.add(io.create.Запись([
наименование: номенклатура,
заказано: 0,
отгружено: 0,
возвращено: 0
]));
added.add(номенклатура.getPath());
}
}
заявка.отдел = отдел
}
заявка.заявитель = io.get(io.session.getUser());
if (params.заказчик != null) {
заявка.заказчик = params.заказчик
заявка.адрес = params.заказчик.адрес
}
return заявка
}
}
Практическое метаметамоделирование