From 2f38ba23d177462ab65cb72107a40f26f8f62e78 Mon Sep 17 00:00:00 2001 From: Johannes Hoermann <j.hoermann@adito.de> Date: Mon, 4 Nov 2019 14:10:48 +0100 Subject: [PATCH] use SqlBuilder in data alias --- .../indexsearchgroups/contract/query.js | 9 ++-- .../indexsearchgroups/offer/query.js | 34 +++++++------ .../organisation/affectedIds.js | 20 +++++--- .../indexsearchgroups/organisation/query.js | 48 +++++++++---------- .../indexsearchgroups/person/affectedIds.js | 25 ++++++---- .../indexsearchgroups/person/query.js | 46 +++++++++--------- .../indexsearchgroups/product/query.js | 29 ++++++----- .../indexsearchgroups/salesorder/query.js | 33 +++++++------ .../indexsearchgroups/salesproject/query.js | 32 ++++++------- 9 files changed, 141 insertions(+), 135 deletions(-) diff --git a/aliasDefinition/Data_alias/indexsearchgroups/contract/query.js b/aliasDefinition/Data_alias/indexsearchgroups/contract/query.js index 9b6641b991c..246829a0939 100644 --- a/aliasDefinition/Data_alias/indexsearchgroups/contract/query.js +++ b/aliasDefinition/Data_alias/indexsearchgroups/contract/query.js @@ -7,22 +7,21 @@ import("Sql_lib"); import("KeywordRegistry_basic"); var sqlHelper = new SqlMaskingUtils(); -var affectedIds; var sqlQuery = newSelect("CONTRACTID, " + sqlHelper.concat(["CONTRACTCODE", KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.contractStatus(), "CONTRACTSTATUS")], " | ") + " as TITLECOLUMN, " + sqlHelper.concat(["ORGANISATION.NAME", "'| " + translate.text("Type of contract") + ":'", KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.contractType(), "CONTRACTTYPE")]) - + " as DESCCOLUMN, CONTRACTCODE, ORGANISATION.NAME, CUSTOMERCODE " ) + + " as DESCCOLUMN, CONTRACTCODE, ORGANISATION.NAME, CUSTOMERCODE") .from("CONTRACT") .join("CONTACT", "CONTRACT.CONTACT_ID = CONTACTID") .join("ORGANISATION", "ORGANISATIONID = CONTACT.ORGANISATION_ID") - .orderBy("CONTRACTCODE") + .orderBy("CONTRACTCODE"); if (vars.exists("$local.idvalue")) { - affectedIds = vars.get("$local.idvalue"); - sqlQuery.where("CONTRACT.CONTRACTID", affectedIds, SqlBuilder.IN()) + var affectedIds = vars.get("$local.idvalue"); + sqlQuery.whereIfSet("CONTRACT.CONTRACTID", affectedIds, SqlBuilder.IN()); } result.string(sqlQuery); \ No newline at end of file diff --git a/aliasDefinition/Data_alias/indexsearchgroups/offer/query.js b/aliasDefinition/Data_alias/indexsearchgroups/offer/query.js index b2022eb648b..8e45835b183 100644 --- a/aliasDefinition/Data_alias/indexsearchgroups/offer/query.js +++ b/aliasDefinition/Data_alias/indexsearchgroups/offer/query.js @@ -1,28 +1,26 @@ import("system.SQLTYPES"); -import("system.translate"); import("system.result"); import("system.vars"); -import("system.calendars"); -import("system.db"); +import("system.translate"); import("Keyword_lib"); import("Sql_lib"); import("KeywordRegistry_basic"); -var sqlQuery, sqlHelper, queryCondition, affectedIds; -queryCondition = ""; +var sqlHelper = new SqlMaskingUtils(); + +var sqlQuery = newSelect("OFFERID, " + + sqlHelper.concat([sqlHelper.cast("OFFERCODE", SQLTYPES.CHAR, 10), KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.offerStatus(), "OFFER.STATUS")], " | ") + + " as TITLECOLUMN, " + + sqlHelper.concat(["ORGANISATION.NAME", "'| " + translate.text("Description") + ":'", sqlHelper.castLob("OFFER.INFO", 250)]) + + " as DESCCOLUMN, OFFERCODE, ORGANISATION.NAME, CUSTOMERCODE") + .from("OFFER") + .join("CONTACT", "OFFER.CONTACT_ID = CONTACTID") + .join("ORGANISATION", "ORGANISATIONID = CONTACT.ORGANISATION_ID") + .orderBy("OFFERCODE"); + if (vars.exists("$local.idvalue")) { - affectedIds = vars.get("$local.idvalue"); - queryCondition = "where OFFERID in ('" + affectedIds.map(function (v){return db.quote(v);}).join("', '") + "')"; - //TODO: refactor this for incremental indexer (injections?) + var affectedIds = vars.get("$local.idvalue"); + sqlQuery.whereIfSet("OFFER.OFFERID", affectedIds, SqlBuilder.IN()); } -sqlHelper = new SqlMaskingUtils(); -sqlQuery = "select OFFERID, " - + sqlHelper.concat([sqlHelper.cast("OFFERCODE", SQLTYPES.CHAR, 10), KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.offerStatus(), "OFFER.STATUS")], " | ") - + " as TITLECOLUMN, " - + sqlHelper.concat(["ORGANISATION.NAME", "'| " + translate.text("Description") + ":'", sqlHelper.castLob("OFFER.INFO", 250)]) - + " as DESCCOLUMN, OFFERCODE, ORGANISATION.NAME, CUSTOMERCODE " - + " from OFFER " - + " join CONTACT on OFFER.CONTACT_ID = CONTACTID " - + " join ORGANISATION on ORGANISATIONID = CONTACT.ORGANISATION_ID " - + queryCondition + " order by OFFERCODE "; + result.string(sqlQuery); \ No newline at end of file diff --git a/aliasDefinition/Data_alias/indexsearchgroups/organisation/affectedIds.js b/aliasDefinition/Data_alias/indexsearchgroups/organisation/affectedIds.js index 2741393ffd7..dcf9a80b481 100644 --- a/aliasDefinition/Data_alias/indexsearchgroups/organisation/affectedIds.js +++ b/aliasDefinition/Data_alias/indexsearchgroups/organisation/affectedIds.js @@ -19,20 +19,26 @@ switch (tableName) res = [idValue]; break; case "ORGANISATION": - res = db.array(db.COLUMN, "select CONTACT.CONTACTID from CONTACT where CONTACT.PERSON_ID is null and CONTACT.ORGANISATION_ID = '" + idValue + "'"); + res = newSelect("CONTACT.CONTACTID") + .from("CONTACT") + .where("CONTACT.PERSON_ID is null") + .and("CONTACT.ORGANISATION_ID", idValue) + .arrayColumn(); break; case "ADDRESS": res = IndexsearchUtils.getAffectedIdValues("CONTACT_ID", infoContainer, function (id){ - return db.array(db.COLUMN, ["select ADDRESS.CONTACT_ID from ADDRESS where ADDRESS.ADDRESSID = ?", [ - [id, SqlUtils.getSingleColumnType("ADDRESS", "ADDRESSID")] - ]]); + return newSelect("ADDRESS.CONTACT_ID") + .from("ADDRESS") + .where("ADDRESS.ADDRESSID", id) + .arrayColumn(); }); break; case "COMMUNICATION": res = IndexsearchUtils.getAffectedIdValues("CONTACT_ID", infoContainer, function (id){ - return db.array(db.COLUMN, ["select COMMUNICATION.CONTACT_ID from COMMUNICATION where COMMUNICATIONID = ?", [ - [id, SqlUtils.getSingleColumnType("COMMUNICATION", "COMMUNICATIONID")] - ]]); + return newSelect("COMMUNICATION.CONTACT_ID") + .from("COMMUNICATION") + .where("COMMUNICATION.COMMUNICATIONID", id) + .arrayColumn(); }); break; } diff --git a/aliasDefinition/Data_alias/indexsearchgroups/organisation/query.js b/aliasDefinition/Data_alias/indexsearchgroups/organisation/query.js index bbcf88e1428..4c843905178 100644 --- a/aliasDefinition/Data_alias/indexsearchgroups/organisation/query.js +++ b/aliasDefinition/Data_alias/indexsearchgroups/organisation/query.js @@ -1,33 +1,31 @@ -import("system.translate"); import("system.result"); import("system.vars"); -import("system.calendars"); -import("system.db"); +import("system.translate"); import("Sql_lib"); import("Communication_lib"); -var sqlQuery, sqlHelper, queryCondition, affectedIds; +var sqlHelper = new SqlMaskingUtils(); + +var sqlQuery = newSelect("CONTACT.CONTACTID " + + "," + sqlHelper.concat(["ORGANISATION.NAME", "'|'", "ORGANISATION.CUSTOMERCODE"]) + + " as TITLECOLUMN " + + "," + sqlHelper.concat([ + sqlHelper.concat(["defaultAddress.ADDRESS", "defaultAddress.BUILDINGNO", "'-'" + ,"defaultAddress.COUNTRY", "defaultAddress.ZIP", "defaultAddress.CITY"]) + ,sqlHelper.concat(["'" + translate.text("Phone") + ":'", "(" + CommUtil.getStandardSubSqlPhone() + ")"]) + ,sqlHelper.concat(["'" + translate.text("Email") + ":'", "(" + CommUtil.getStandardSubSqlMail() + ")"]) + ], " | ") + " as DESCCOLUMN " + //additional indexed fields + + ",ORGANISATION.NAME, COMMUNICATION.ADDR") + .from("ORGANISATION") + .join("CONTACT", "CONTACT.ORGANISATION_ID = ORGANISATION.ORGANISATIONID and CONTACT.PERSON_ID is null") + .leftJoin("ADDRESS", "defaultAddress.ADDRESSID = CONTACT.ADDRESS_ID", "defaultAddress") + .leftJoin("COMMUNICATION", "defaultAddress.ADDRESSID = COMMUNICATION.CONTACT_ID = CONTACT.CONTACTID") + .orderBy("CONTACT.CONTACTID"); + if (vars.exists("$local.idvalue")) { - affectedIds = vars.get("$local.idvalue"); - queryCondition = "where CONTACT.CONTACTID in ('" + affectedIds.map(function (v){return db.quote(v);}).join("', '") + "')"; - //TODO: refactor this for incremental indexer (injections?) + var affectedIds = vars.get("$local.idvalue"); + sqlQuery.whereIfSet("CONTACT.CONTACTID", affectedIds, SqlBuilder.IN()); } -sqlHelper = new SqlMaskingUtils(); -sqlQuery = "select CONTACT.CONTACTID " - + "," + sqlHelper.concat(["ORGANISATION.NAME", "'|'", "ORGANISATION.CUSTOMERCODE"]) - + " as TITLECOLUMN " - + "," + sqlHelper.concat([ - sqlHelper.concat(["defaultAddress.ADDRESS", "defaultAddress.BUILDINGNO", "'-'" - ,"defaultAddress.COUNTRY", "defaultAddress.ZIP", "defaultAddress.CITY"]) - ,sqlHelper.concat(["'" + translate.text("Phone") + ":'", "(" + CommUtil.getStandardSubSqlPhone() + ")"]) - ,sqlHelper.concat(["'" + translate.text("Email") + ":'", "(" + CommUtil.getStandardSubSqlMail() + ")"]) - ], " | ") + " as DESCCOLUMN " - //additional indexed fields - + ",ORGANISATION.NAME, COMMUNICATION.ADDR " - + " from ORGANISATION " - + " join CONTACT on CONTACT.ORGANISATION_ID = ORGANISATION.ORGANISATIONID and CONTACT.PERSON_ID is null " - + " left join ADDRESS defaultAddress on defaultAddress.ADDRESSID = CONTACT.ADDRESS_ID " - + " left join COMMUNICATION on COMMUNICATION.CONTACT_ID = CONTACT.CONTACTID " - + (queryCondition || "") - + " order by CONTACT.CONTACTID "; + result.string(sqlQuery); \ No newline at end of file diff --git a/aliasDefinition/Data_alias/indexsearchgroups/person/affectedIds.js b/aliasDefinition/Data_alias/indexsearchgroups/person/affectedIds.js index 488e44a0b18..debeb72a7a5 100644 --- a/aliasDefinition/Data_alias/indexsearchgroups/person/affectedIds.js +++ b/aliasDefinition/Data_alias/indexsearchgroups/person/affectedIds.js @@ -19,23 +19,32 @@ switch (tableName) res = [idValue]; break; case "PERSON": - res = db.array(db.COLUMN, "select CONTACT.CONTACTID from CONTACT where CONTACT.PERSON_ID = '" + idValue + "'"); + res = newSelect("CONTACT.CONTACTID") + .from("CONTACT") + .where("CONTACT.PERSON_ID", idValue) + .arrayColumn(); break; case "ORGANISATION": - res = db.array(db.COLUMN, "select CONTACT.CONTACTID from CONTACT where CONTACT.PERSON_ID is not null and CONTACT.ORGANISATION_ID = '" + idValue + "'"); + res = newSelect("CONTACT.CONTACTID") + .from("CONTACT") + .where("CONTACT.PERSON_ID is not null") + .and("CONTACT.ORGANISATION_ID", idValue) + .arrayColumn(); break; case "ADDRESS": res = IndexsearchUtils.getAffectedIdValues("CONTACT_ID", infoContainer, function (id){ - return db.array(db.COLUMN, ["select ADDRESS.CONTACT_ID from ADDRESS where ADDRESS.ADDRESSID = ?", [ - [id, SqlUtils.getSingleColumnType("ADDRESS", "ADDRESSID")] - ]]); + return newSelect("ADDRESS.CONTACT_ID") + .from("ADDRESS") + .where("ADDRESS.ADDRESSID", id) + .arrayColumn(); }); break; case "COMMUNICATION": res = IndexsearchUtils.getAffectedIdValues("CONTACT_ID", infoContainer, function (id){ - return db.array(db.COLUMN, ["select COMMUNICATION.CONTACT_ID from COMMUNICATION where COMMUNICATIONID = ?", [ - [id, SqlUtils.getSingleColumnType("COMMUNICATION", "COMMUNICATIONID")] - ]]); + return newSelect("COMMUNICATION.CONTACT_ID") + .from("COMMUNICATION") + .where("COMMUNICATION.COMMUNICATIONID", id) + .arrayColumn(); }); break; } diff --git a/aliasDefinition/Data_alias/indexsearchgroups/person/query.js b/aliasDefinition/Data_alias/indexsearchgroups/person/query.js index 719efe080e6..3ed54fc08c6 100644 --- a/aliasDefinition/Data_alias/indexsearchgroups/person/query.js +++ b/aliasDefinition/Data_alias/indexsearchgroups/person/query.js @@ -6,29 +6,29 @@ import("system.db"); import("Sql_lib"); import("Communication_lib"); -var sqlQuery, sqlHelper, queryCondition, affectedIds; +var sqlHelper = new SqlMaskingUtils(); + +var sqlQuery = newSelect("CONTACT.CONTACTID " + + "," + sqlHelper.concat(["PERSON.SALUTATION", "PERSON.FIRSTNAME", "PERSON.LASTNAME", "'|'", "ORGANISATION.NAME"]) + + " as TITLECOLUMN " + + "," + sqlHelper.concat([ + sqlHelper.concat(["defaultAddress.ADDRESS", "defaultAddress.BUILDINGNO", "'-'" + ,"defaultAddress.COUNTRY", "defaultAddress.ZIP", "defaultAddress.CITY"]) + ,sqlHelper.concat(["'" + translate.text("Phone") + ":'", "(" + CommUtil.getStandardSubSqlPhone() + ")"]) + ,sqlHelper.concat(["'" + translate.text("Email") + ":'", "(" + CommUtil.getStandardSubSqlMail() + ")"]) + ], " | ") + " as DESCCOLUMN " + //additional indexed fields + + ",ORGANISATION.NAME, COMMUNICATION.ADDR") + .from("PERSON") + .join("CONTACT", "CONTACT.PERSON_ID = PERSON.PERSONID") + .join("ORGANISATION", "CONTACT.ORGANISATION_ID = ORGANISATION.ORGANISATIONID") + .leftJoin("ADDRESS", "defaultAddress.ADDRESSID = CONTACT.ADDRESS_ID", "defaultAddress") + .leftJoin("COMMUNICATION", "COMMUNICATION.CONTACT_ID = CONTACT.CONTACTID") + .orderBy("CONTACT.CONTACTID"); + if (vars.exists("$local.idvalue")) { - affectedIds = vars.get("$local.idvalue"); - queryCondition = "where CONTACT.CONTACTID in ('" + affectedIds.map(function (v){return db.quote(v);}).join("', '") + "')"; - //TODO: refactor this for incremental indexer (injections?) + var affectedIds = vars.get("$local.idvalue"); + sqlQuery.whereIfSet("CONTACT.CONTACTID", affectedIds, SqlBuilder.IN()); } -sqlHelper = new SqlMaskingUtils(); -sqlQuery = "select CONTACT.CONTACTID " - + "," + sqlHelper.concat(["PERSON.SALUTATION", "PERSON.FIRSTNAME", "PERSON.LASTNAME", "'|'", "ORGANISATION.NAME"]) - + " as TITLECOLUMN " - + "," + sqlHelper.concat([ - sqlHelper.concat(["defaultAddress.ADDRESS", "defaultAddress.BUILDINGNO", "'-'" - ,"defaultAddress.COUNTRY", "defaultAddress.ZIP", "defaultAddress.CITY"]) - ,sqlHelper.concat(["'" + translate.text("Phone") + ":'", "(" + CommUtil.getStandardSubSqlPhone() + ")"]) - ,sqlHelper.concat(["'" + translate.text("Email") + ":'", "(" + CommUtil.getStandardSubSqlMail() + ")"]) - ], " | ") + " as DESCCOLUMN " - //additional indexed fields - + ",ORGANISATION.NAME, COMMUNICATION.ADDR " - + " from PERSON " - + " join CONTACT on CONTACT.PERSON_ID = PERSON.PERSONID " - + " join ORGANISATION on CONTACT.ORGANISATION_ID = ORGANISATION.ORGANISATIONID " - + " left join ADDRESS defaultAddress on defaultAddress.ADDRESSID = CONTACT.ADDRESS_ID " - + " left join COMMUNICATION on COMMUNICATION.CONTACT_ID = CONTACT.CONTACTID " - + (queryCondition || "") - + " order by CONTACT.CONTACTID "; + result.string(sqlQuery); \ No newline at end of file diff --git a/aliasDefinition/Data_alias/indexsearchgroups/product/query.js b/aliasDefinition/Data_alias/indexsearchgroups/product/query.js index 9f8b8240c20..ae4c7967393 100644 --- a/aliasDefinition/Data_alias/indexsearchgroups/product/query.js +++ b/aliasDefinition/Data_alias/indexsearchgroups/product/query.js @@ -1,24 +1,23 @@ import("system.result"); import("system.vars"); -import("system.calendars"); -import("system.db"); +import("system.translate"); import("Keyword_lib"); import("Sql_lib"); import("KeywordRegistry_basic"); -var sqlQuery, sqlHelper, queryCondition, affectedIds; -queryCondition = ""; +var sqlHelper = new SqlMaskingUtils(); + +var sqlQuery = newSelect("PRODUCTID, " + + sqlHelper.concat(["PRODUCTCODE", "PRODUCTNAME"], " | ") + + " as TITLECOLUMN, " + + KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.productGroupcode(), "GROUPCODEID") + + " as DESCCOLUMN, PRODUCTCODE ") + .from("PRODUCT") + .orderBy("PRODUCTCODE"); + if (vars.exists("$local.idvalue")) { - affectedIds = vars.get("$local.idvalue"); - queryCondition = "where PRODUCTID in ('" + affectedIds.map(function (v){return db.quote(v);}).join("', '") + "')"; - //TODO: refactor this for incremental indexer (injections?) + var affectedIds = vars.get("$local.idvalue"); + sqlQuery.whereIfSet("PRODUCT.PRODUCTID", affectedIds, SqlBuilder.IN()); } -sqlHelper = new SqlMaskingUtils(); -sqlQuery = "select PRODUCTID, " - + sqlHelper.concat(["PRODUCTCODE", "PRODUCTNAME"], " | ") - + " as TITLECOLUMN, " - + KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.productGroupcode(), "GROUPCODEID") - + " as DESCCOLUMN, PRODUCTCODE " - + " from PRODUCT " - + queryCondition + " order by PRODUCTCODE "; + result.string(sqlQuery); \ No newline at end of file diff --git a/aliasDefinition/Data_alias/indexsearchgroups/salesorder/query.js b/aliasDefinition/Data_alias/indexsearchgroups/salesorder/query.js index f40738184c6..e3336377e4c 100644 --- a/aliasDefinition/Data_alias/indexsearchgroups/salesorder/query.js +++ b/aliasDefinition/Data_alias/indexsearchgroups/salesorder/query.js @@ -1,27 +1,26 @@ import("system.SQLTYPES"); import("system.result"); import("system.vars"); -import("system.calendars"); -import("system.db"); +import("system.translate"); import("Sql_lib"); import("Keyword_lib"); import("KeywordRegistry_basic"); -var sqlQuery, sqlHelper, queryCondition, affectedIds; -queryCondition = ""; +var sqlHelper = new SqlMaskingUtils(); + +var sqlQuery = newSelect("SALESORDERID, " + + sqlHelper.concat([sqlHelper.cast("SALESORDERCODE", SQLTYPES.CHAR, 10), KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.salesorderState(), "SALESORDER.STATUS")], " | ") + + " as TITLECOLUMN, " + + sqlHelper.concat(["ORGANISATION.NAME"], " | ") + + " as DESCCOLUMN, SALESORDERCODE, ORGANISATION.NAME, CUSTOMERCODE") + .from("SALESORDER") + .join("CONTACT", "SALESORDER.CONTACT_ID = CONTACTID") + .join("ORGANISATION", "ORGANISATIONID = CONTACT.ORGANISATION_ID") + .orderBy("SALESORDERCODE"); + if (vars.exists("$local.idvalue")) { - affectedIds = vars.get("$local.idvalue"); - queryCondition = "where SALESORDERID in ('" + affectedIds.map(function (v){return db.quote(v);}).join("', '") + "')"; - //TODO: refactor this for incremental indexer (injections?) ----> use SqlBuilder Lib + var affectedIds = vars.get("$local.idvalue"); + sqlQuery.whereIfSet("SALESORDER.SALESORDERID", affectedIds, SqlBuilder.IN()); } -sqlHelper = new SqlMaskingUtils(); -sqlQuery = "select SALESORDERID, " - + sqlHelper.concat([sqlHelper.cast("SALESORDERCODE", SQLTYPES.CHAR, 10), KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.salesorderState(), "SALESORDER.STATUS")], " | ") - + " as TITLECOLUMN, " - + sqlHelper.concat(["ORGANISATION.NAME"], " | ") - + " as DESCCOLUMN, SALESORDERCODE, ORGANISATION.NAME, CUSTOMERCODE " - + " from SALESORDER " - + " join CONTACT on SALESORDER.CONTACT_ID = CONTACTID " - + " join ORGANISATION on ORGANISATIONID = CONTACT.ORGANISATION_ID " - + queryCondition + " order by SALESORDERCODE "; + result.string(sqlQuery); \ No newline at end of file diff --git a/aliasDefinition/Data_alias/indexsearchgroups/salesproject/query.js b/aliasDefinition/Data_alias/indexsearchgroups/salesproject/query.js index 079117e9028..2c0c8f45233 100644 --- a/aliasDefinition/Data_alias/indexsearchgroups/salesproject/query.js +++ b/aliasDefinition/Data_alias/indexsearchgroups/salesproject/query.js @@ -1,26 +1,24 @@ -import("system.translate"); import("system.result"); import("system.vars"); -import("system.calendars"); -import("system.db"); +import("system.translate"); import("Keyword_lib"); import("Sql_lib"); import("KeywordRegistry_basic"); -var sqlQuery, sqlHelper, queryCondition, affectedIds; -queryCondition = ""; +var sqlHelper = new SqlMaskingUtils(); + +var sqlQuery = newSelect("SALESPROJECTID, PROJECTTITLE as TITLECOLUMN, " + + sqlHelper.concat([ + "'" + translate.text("Status") + ":'", KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.salesprojectState(), "STATUS"), + "'| " + translate.text("Phase") + ":'", KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.salesprojectPhase(), "PHASE") + ]) + + " as DESCCOLUMN, PROJECTCODE") + .from("SALESPROJECT") + .orderBy("PROJECTCODE"); + if (vars.exists("$local.idvalue")) { - affectedIds = vars.get("$local.idvalue"); - queryCondition = "where SALESPROJECTID in ('" + affectedIds.map(function (v){return db.quote(v);}).join("', '") + "')"; - //TODO: refactor this for incremental indexer (injections?) + var affectedIds = vars.get("$local.idvalue"); + sqlQuery.whereIfSet("SALESPROJECT.SALESPROJECTID", affectedIds, SqlBuilder.IN()); } -sqlHelper = new SqlMaskingUtils(); -sqlQuery = "select SALESPROJECTID, PROJECTTITLE as TITLECOLUMN, " - + sqlHelper.concat([ - "'" + translate.text("Status") + ":'", KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.salesprojectState(), "STATUS"), - "'| " + translate.text("Phase") + ":'", KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.salesprojectPhase(), "PHASE") - ]) - + " as DESCCOLUMN, PROJECTCODE " - + " from SALESPROJECT " - + queryCondition + " order by PROJECTCODE "; + result.string(sqlQuery); \ No newline at end of file -- GitLab