var result;
var formText;
var parentId;
var query;
var parent = ctx;
var find_up_hierarhy = true;
var idConverter = session.getIdConverter();
do {
formText = parent.getString('Form');
parentId = 'f3'.equals(formText) ? parent.getString('OName_1Id') : parent.getString('HeadOfficeId');
if (!find_up_hierarhy || (('f1'.equals(formText) || '1'.equals(parent.getString('Leader')) || '1'.equals(parent.getString('IsWho'))) && !''.equals(parent.getString('EPost_PersonId')))) {
result = parent.getString('docId');
break;
} else if ('f0'.equals(formText) || 'f2'.equals(formText)) {
find_up_hierarhy = false;
var id = idConverter.unid2PlatformId(parent.getString('docId'));
var boss_tabnum = parent.getString('struct_boss_ac');
if (boss_tabnum != null && !''.equals(boss_tabnum)) {
query = 'SELECT post.id, app.created_date
FROM SO_PersonSys sp
JOIN so_appointment app onON app.person = sp.id
LEFT JOIN (SELECT * FROM so_appointmentplain UNION SELECT * FROM so_appointmenthead) app1 onON app1.id = app.id
LEFT JOIN so_post post onON post.id = app1.post
JOIN so_beard brd onON brd.id = app.beard
WHERE sp.tabnum = \'' + boss_tabnum + '\' andAND app.isprimary = \'1\' and
AND brd.isactive = \'1\' orderORDER byBY post.isleader desc';
var collection = session.getCollectionService().findCollectionByQuery(query);
if (collection != null && collection.size() > 0 && collection.get(0) != null) {
parentId = idConverter.buildUnid(collection.get(0).getId(), collection.get(0).getTimestamp('created_date'));
} else {
find_up_hierarhy = true;
}
} else {
find_up_hierarhy = true;
}
if (find_up_hierarhy) {
query = 'SELECT post.id, app.created_date ' + '
FROM so_structureunit str ' + 'left join
LEFT JOIN so_beard brd onON brd.id = str.beard '
LEFT +JOIN 'left join so_beard brd_chld onON brd_chld.hierparent = brd.id ' + 'left join
LEFT JOIN so_appointment app onON app.beard = brd_chld.id ' + 'left join
LEFT JOIN (select * from so_appointmentplain ' + 'unionUNION select * from so_appointmenthead) app1 onON app1.id = app.id ' + 'left join
LEFT JOIN so_post post onON post.id = app1.post ' + 'where
WHERE (post.isleader = \'1\' orOR brd_chld.orig_type = \'1\') and
AND brd_chld.isActive = \'1\' andAND brd_chld.isNotVacancy = \'1\' ' + 'and
AND str.id = ' + id.getId() + ' andAND str.id_type = ' + id.getTypeId() + ' orderORDER byBY post.isleader desc';
var collection = session.getCollectionService().findCollectionByQuery(query);
if (collection != null && collection.size() > 0 && collection.get(0) != null) {
parentId = idConverter.buildUnid(collection.get(0).getId(), collection.get(0).getTimestamp('created_date'));
} else if ('f0'.equals(formText)) {
result = '';
}
} else {}
}
parent = session.findByStrId(parentId);
} while (result == null && parent != null) ctx.setResult(result) |