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("У данного работника уже есть рабочее место, требуется выбрать заявку с типом на перемещение.");
}
}
}
} |