Skip to content
Snippets Groups Projects
Commit f29cbb32 authored by S.Listl's avatar S.Listl
Browse files

Employee_entity performance

parent b345c2c0
No related branches found
No related tags found
No related merge requests found
import("Communication_lib");
import("system.neon");
import("system.vars");
import("system.db");
import("system.result");
import("Sql_lib");
var contactId = vars.get("$field.CONTACT_ID");
if (contactId)
{
var sql = SqlCondition.begin()
.andPrepare("COMMUNICATION.CONTACT_ID", contactId)
.and("COMMUNICATION.MEDIUM_ID in ('" + CommUtil.getMediumIdsByCategory("EMAIL").join("', '") + "')")
.buildSql("select ADDR, ADDR from COMMUNICATION");
var addresses = db.table(sql);
//include the currently set email address
var currentAddress = vars.get("$field.EMAIL_ADDRESS");
if (currentAddress && !addresses.some(function (row) {return row[0] == currentAddress;}))
{
addresses.push([currentAddress, currentAddress]);
}
result.object(addresses);
import("Communication_lib");
import("system.neon");
import("system.vars");
import("system.db");
import("system.result");
import("Sql_lib");
var contactId = vars.get("$field.CONTACT_ID");
if (contactId && (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW))
{
var sql = SqlCondition.begin()
.andPrepare("COMMUNICATION.CONTACT_ID", contactId)
.and("COMMUNICATION.MEDIUM_ID in ('" + CommUtil.getMediumIdsByCategory("EMAIL").join("', '") + "')")
.buildSql("select ADDR, ADDR from COMMUNICATION");
var addresses = db.table(sql);
//include the currently set email address
var currentAddress = vars.get("$field.EMAIL_ADDRESS");
if (currentAddress && !addresses.some(function (row) {return row[0] == currentAddress;}))
{
addresses.push([currentAddress, currentAddress]);
}
result.object(addresses);
}
\ No newline at end of file
import("Sql_lib");
import("system.db");
import("Attribute_lib");
import("system.vars");
import("system.result");
......@@ -18,8 +20,11 @@ else
users = tools.getUsersByAttribute(tools.ISACTIVE, values, tools.PROFILE_FULL);
}
var contactIds = [];
users = users.map(function (user)
{
contactIds.push(user[tools.PARAMS][tools.CONTACTID]);
return [
user[tools.NAME],
user[tools.TITLE],
......@@ -29,13 +34,28 @@ users = users.map(function (user)
user[tools.PARAMS][tools.EMAIL],
user[tools.PARAMS][tools.EMAIL],
user[tools.DESCRIPTION],
user[tools.PARAMS][tools.CONTACTID],
ContactUtils.getTitleByContactId(user[tools.PARAMS][tools.CONTACTID]), //TODO: get the names more efficiently
user[tools.PARAMS][tools.CONTACTID], //8
null, //9
user[tools.PARAMS].department,
""
];
});
var renderer = new ContactTitleRenderer(Contact.createWithColumnPreset(), ContactTitleRenderer.OPTIONS.NoOption);
var selectExpression = renderer.asSql();
var names = db.table(SqlCondition.begin()
.andIn("CONTACT.CONTACTID", contactIds)
.buildSql("select CONTACTID, " + selectExpression + " from CONTACT \n\
left join PERSON on (PERSON.PERSONID = CONTACT.PERSON_ID)")
);
var nameMap = {};
for (let i = 0, l = names.length; i < l; i++)
nameMap[names[i][0]] = names[i][1];
for (let i = 0, l = users.length; i < l; i++)
users[i][9] = nameMap[users[i][8]] || "";
var filter = vars.get("$local.filter");
//TODO: this is a workaround that filters the records manually, it should be possible to filter the users with a tools.* method
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment