importPackage(Packages.java.lang); importPackage(Packages.java.util); importPackage(Packages.ru.intertrust.cmj.af.so); importPackage(Packages.ru.intertrust.cmj.rest.tuning); importClass(Packages.ru.intertrust.cmj.rest.tuning.TuningHelper); importClass(Packages.ru.intertrust.cmj.af.so.SOBeard); importClass(Packages.ru.intertrust.cmj.af.core.AFSession); importClass(Packages.ru.intertrust.cmj.af.core.AFCMDomino); importClass(Packages.org.apache.commons.lang3.StringUtils); importClass(Packages.java.lang.String); importClass(Packages.ru.intertrust.cmj.af.so.impl.DepartmentUnit); importClass(Packages.ru.intertrust.cmj.tunable.object.TunableObjectApplication); importClass(Packages.ru.intertrust.cmj.af.utils.DominoUtils); importClass(Packages.ru.intertrust.cmj.af.so.impl.AppointmentHead); importClass(Packages.ru.intertrust.cmj.af.utils.BeansUtils); importClass(Packages.ru.intertrust.cmj.admin.AdminApplicationImpl); importClass(Packages.ru.intertrust.cmj.admin.so.worktimeprofile.SOWorkTimeProfile); importClass(Packages.java.util.Calendar); importClass(Packages.java.util.Date); importClass(Packages.java.util.ArrayList); importClass(Packages.java.lang.Integer); importClass(Packages.ru.intertrust.cmj.tunable.object.history.TunableHistoryHelper); importClass(Packages.ru.intertrust.cmj.af.history.FieldBase); function querySave(object, document) { if (object.tuning().getValues().get('wpMovingDate') != null && object.tuning().getValues().get('wpMovingDate').getValue() != null) { var movingDate = object.tuning().getValues().get('wpMovingDate').getValue(); if (object.tuning().getValues().get('createdate') != null && object.tuning().getValues().get('createdate').getValue() != null) { var createdate = object.tuning().getValues().get('createdate').getValue(); if (movingDate.compareTo(createdate) < 1) { throw ("Дата переезда должна быть больше даты создания заявки на организацию рабочего места."); } } } if (object.tuning().getValues().get('wpMovingDate') != null && object.tuning().getValues().get('wpMovingDate').getValue() != null) { var movingDate = object.tuning().getValues().get('wpMovingDate').getValue(); var appAdmin = AFSession.get().getApplication(AdminApplicationImpl.class); var workTimeProfile = appAdmin.getWorkTimeProfileDefault(); if (workTimeProfile == null) { throw("Расчет даты переезда невозможен, так как не найден профиль рабочего времени по умолчанию. Обратитесь к администратору, для его создания"); } else { var dayDescription = workTimeProfile.getDayDescriptions(); var holidayIndexes = new ArrayList(); var holidayValue = SOWorkTimeProfile.DayType.HOLIDAY; for(var i = 0; i < dayDescription.size(); i++) { if(dayDescription.get(i).getType() == holidayValue) holidayIndexes.add(Integer.valueOf(i + 1)); } var rCalendar = movingDate.toJavaCalendar(); var intDay = rCalendar.get(Calendar.DAY_OF_WEEK); if(intDay == 1) { intDay = 7; } else { --intDay; } for(var i = 0; i < holidayIndexes.size(); i++) { if(holidayIndexes.get(i) == intDay) throw("Дата переезда должна быть рабочим днем недели."); } } } var empl = object.tuning().getValues().get('wpEmployee').getValue(); var person = empl.originalData().getParty().getPerson(); if (person != null) { var arrUnid = person.getUNID().split(":"); var tnUnid = arrUnid[0] + "-TN:" + arrUnid[1]; if (!StringUtils.isEmpty(tnUnid)) { var tunApp = AFSession.get().getApplication(TunableObjectApplication.class); var personTNObj = tunApp.getEntityByUNID(tnUnid); if (personTNObj != null && personTNObj.tuning().getValues().get("RMCode") != null && !StringUtils.isEmpty(personTNObj.tuning().getValues().get("RMCode").getValue())) { throw("У данного работника уже есть рабочее место, требуется выбрать заявку с типом на перемещение."); } } } } |