Skip to content
Snippets Groups Projects
contentProcess.js 5.01 KiB
import("system.translate");
import("system.result");
import("system.vars");
import("system.entities");
import("KeywordRegistry_basic");
import("Sql_lib");

var idValues = vars.get("$local.idvalues");
var filter = vars.get("$local.filter");
var memberLoadingConfig = entities.createConfigForLoadingRows()
                                    .entity("Member_entity")
                                    .provider("Links")
                                    .addParameter("ObjectRowId_param", vars.get("$param.ObjectRowId_param"))
                                    .addParameter("ObjectType_param", vars.get("$param.ObjectType_param"))
                                    .fields(["#UID", "CONTACT_ID", "CONTACT_ID.displayValue", "CONTACTROLE", "DEPARTMENT", "ICON", "IMAGE", 
                                                "MEMBERROLE", "MEMBERROLE.displayValue", "OBJECT_ROWID", "OBJECT_TYPE",
                                                "OBJECTMEMBERID", "ORG_ORGID", "ORGANISATION_NAME", "PERSON_FIRSTNAME", "PERSON_FULL_NAME", 
                                                "PERSON_LASTNAME", "PERSON_PERSID", "PERSON_SALUTATION", "PERSON_TITLE", "POSITION", "TARGETCONTEXT",
                                                "recordType"]);

if (idValues)
{
    memberLoadingConfig.uids(idValues);
}

if (filter && filter.filter != null)
{
    memberLoadingConfig.filter(JSON.stringify(filter.filter));
}

var memberRows = entities.getRows(memberLoadingConfig);

if (vars.get("$param.ObjectType_param") == "Salesproject" && vars.get("$param.ObjectRowId_param") != null)
{
    var orgContactId = newSelect("SALESPROJECT.CONTACT_ID")
                        .from("SALESPROJECT")
                        .where("SALESPROJECT.SALESPROJECTID", "$param.ObjectRowId_param")
                        .cell();
    
    var districtLoadingConfig = entities.createConfigForLoadingRows()
                                            .entity("DistrictResponsible_entity")
                                            .provider("OrganisationResponsibles")
                                            .addParameter("OrgUid_param", orgContactId)
                                            .fields(["#UID","DISTRICTRESPONSIBLEID", "DISTRICT_ID", "EMPLOYEE_CONTACT_ID", 
                                                        "EMPLOYEE_CONTACT_ID.displayValue", "USER_EDIT", "USER_NEW", 
                                                        "departmentAttributeName", "DATE_EDIT", "DATE_NEW"]);
    
    var districtRows = entities.getRows(districtLoadingConfig);
    
    
    districtRows = districtRows.map(function(row)
    {
        return [row["#UID"], row["DISTRICTRESPONSIBLEID"], row["DISTRICT_ID"], row["EMPLOYEE_CONTACT_ID"], row["EMPLOYEE_CONTACT_ID.displayValue"], 
            row["USER_EDIT"], row["USER_NEW"], row["departmentAttributeName"], row["DATE_EDIT"], row["DATE_NEW"]];
    });
}


memberRows = memberRows.map(function(row)
{
    return [row["#UID"], row["OBJECTMEMBERID"], row["CONTACT_ID"], row["CONTACT_ID.displayValue"], row["CONTACTROLE"], row["DEPARTMENT"], row["ICON"],
                row["IMAGE"], row["MEMBERROLE"], row["MEMBERROLE.displayValue"], row["OBJECT_ROWID"], 
                row["OBJECT_TYPE"], row["ORG_ORGID"], row["ORGANISATION_NAME"], row["PERSON_FIRSTNAME"], 
                row["PERSON_FULL_NAME"], row["PERSON_LASTNAME"], row["PERSON_PERSID"], row["PERSON_SALUTATION"], row["PERSON_TITLE"], 
                row["POSITION"], row["TARGETCONTEXT"], row["recordType"]];
});

var responsibleUids = [];

districtRows.forEach(function(row){
    responsibleUids.push(row[3]);
});

var loadingConfPers = entities.createConfigForLoadingRows()
                                    .entity("Person_entity")
                                    .uids(responsibleUids)
                                    .fields(["ORGANISATION_ID", "ORGANISATION_NAME", "CONTACTROLE", "POSITION", 
                                                "FIRSTNAME", "LASTNAME", "SALUTATION", "TITLE"]);

var persRows = entities.getRows(loadingConfPers);

persRows = persRows.map(function(row){
    return [row["SALUTATION"], row["TITLE"], row["FIRSTNAME"], row["LASTNAME"],
                row["ORGANISATION_NAME"], row["ORGANISATION_ID"], row["CONTACTROLE"],
                row["POSITION"], row["PERSONID"]];
});


districtRows.forEach(function(row, counter){
    
    memberRows.push(
        [row[0],
        null,
        row[3],
        row[4],
        persRows[counter][6],
        row[7],
        "VAADIN:GLOBE",
        "TEXT:" + row[4].substring(row[4].indexOf(" ", 0)+1, row[4].length),
        "MEMBERROLEDISTRICTRESPONSIBLE",
        translate.text("District Responsible"),
        vars.get("$param.ObjectRowId_param"),
        vars.get("$param.ObjectType_param"),
        persRows[counter][5],
        persRows[counter][4],
        persRows[counter][2],
        row[4],
        persRows[counter][3], 
        persRows[counter][8], 
        persRows[counter][0], 
        persRows[counter][1], 
        persRows[counter][7],
        null, 
        "DistrictResponsible"
    ]);
});

result.object(memberRows);