From b37285df4400919b3bb6939fc8b5669e888b00ff Mon Sep 17 00:00:00 2001 From: Johannes Hoermann <j.hoermann@adito.de> Date: Fri, 11 Oct 2019 10:56:39 +0200 Subject: [PATCH] Use sqlbuilder in basic --- .../defaultaddressid_param/valueProcess.js | 8 +-- .../children/personid_param/valueProcess.js | 7 +- .../recordcontainers/jdito/contentProcess.js | 2 +- .../pricelist/displayValueProcess.js | 2 +- process/ActivityTask_lib/process.js | 67 +++++++++++-------- process/Attribute_lib/process.js | 37 +++++----- 6 files changed, 64 insertions(+), 59 deletions(-) diff --git a/entity/Address_entity/entityfields/defaultaddressid_param/valueProcess.js b/entity/Address_entity/entityfields/defaultaddressid_param/valueProcess.js index 4e767b5397..f48ba8fc6f 100644 --- a/entity/Address_entity/entityfields/defaultaddressid_param/valueProcess.js +++ b/entity/Address_entity/entityfields/defaultaddressid_param/valueProcess.js @@ -12,10 +12,10 @@ import("system.vars"); var contactId = vars.get("$param.ContactId_param"); if (contactId) { - var organisation = newSelect("CONTACT.ADDRESS_ID") - .from("CONTACT") - .where("CONTACT.CONTACTID", contactId) + var organisationId = newSelect("CONTACT.ADDRESS_ID") + .from("CONTACT") + .where("CONTACT.CONTACTID", contactId) + .cell(); - var organisationId = sql.cell(); result.string(organisationId); } \ No newline at end of file diff --git a/entity/Contact_entity/entityfields/personscontactsexceptown/children/personid_param/valueProcess.js b/entity/Contact_entity/entityfields/personscontactsexceptown/children/personid_param/valueProcess.js index 6778e04249..1b454992c6 100644 --- a/entity/Contact_entity/entityfields/personscontactsexceptown/children/personid_param/valueProcess.js +++ b/entity/Contact_entity/entityfields/personscontactsexceptown/children/personid_param/valueProcess.js @@ -1,15 +1,14 @@ import("system.result"); import("system.vars"); -import("system.db"); import("Sql_lib"); var contactId = vars.get("$param.OwnContactId_param"); if (contactId) { var personId = newSelect("CONTACT.PERSON_ID") - .from("CONTACT") - .and("CONTACT.CONTACTID", contactId) - .cell(); + .from("CONTACT") + .where("CONTACT.CONTACTID", contactId) + .cell(); result.string(personId); } \ No newline at end of file diff --git a/entity/ModuleTree_entity/recordcontainers/jdito/contentProcess.js b/entity/ModuleTree_entity/recordcontainers/jdito/contentProcess.js index 893eaaf2fd..0747bea559 100644 --- a/entity/ModuleTree_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/ModuleTree_entity/recordcontainers/jdito/contentProcess.js @@ -101,7 +101,7 @@ function queryChildrenElements (pContextName, pID) { function queryRootElement (pContextName, pID, pGetFirst) { var resultArray; if (pContextName === "Task") { - resultArray = mewSelect("TASKID, PARENT_ID, PARENT_CONTEXT, SUBJECT, DESCRIPTION") + resultArray = newSelect("TASKID, PARENT_ID, PARENT_CONTEXT, SUBJECT, DESCRIPTION") .from("TASK") .where("TASK.TASKID", pID) .arrayRow(); diff --git a/entity/Productprice_entity/entityfields/pricelist/displayValueProcess.js b/entity/Productprice_entity/entityfields/pricelist/displayValueProcess.js index 34d03f9306..e54cffa449 100644 --- a/entity/Productprice_entity/entityfields/pricelist/displayValueProcess.js +++ b/entity/Productprice_entity/entityfields/pricelist/displayValueProcess.js @@ -14,7 +14,7 @@ if (!pricelistname) .from("CONTACT") .join("ORGANISATION", "CONTACT.ORGANISATION_ID = ORGANISATION.ORGANISATIONID", undefined, "inner") .orderBy("NAME") - .where("CONTACT.CONTACTID", "$field.CONTACT_ID") + .whereIfSet("CONTACT.CONTACTID", "$field.CONTACT_ID") .cell(true); result.string(orgname); diff --git a/process/ActivityTask_lib/process.js b/process/ActivityTask_lib/process.js index ba99fe2549..0347969322 100644 --- a/process/ActivityTask_lib/process.js +++ b/process/ActivityTask_lib/process.js @@ -163,14 +163,14 @@ ActivityUtils.getLastActivityDate = function(pRowId) { var context = ContextUtils.getCurrentContextId(); var sqlUtil = new SqlMaskingUtils(); - var activitySql = "select " + sqlUtil.max("ENTRYDATE") + " from ACTIVITY " - + " join ACTIVITYLINK on ACTIVITY.ACTIVITYID = ACTIVITYLINK.ACTIVITY_ID"; - activitySql = SqlCondition.begin() - .andPrepare("ACTIVITYLINK.OBJECT_TYPE", context) - .andPrepare("ACTIVITYLINK.OBJECT_ROWID", pRowId) - .buildSql(activitySql); - - var entryDate = db.cell(activitySql); + + var entryDate = newSelect(sqlUtil.max("ENTRYDATE")) + .from("ACTIVITY") + .join("ACTIVITYLINK", "ACTIVITY.ACTIVITYID = ACTIVITYLINK.ACTIVITY_ID") + .where("ACTIVITYLINK.OBJECT_TYPE", context) + .and("ACTIVITYLINK.OBJECT_ROWID", pRowId) + .cell(); + if (entryDate != "") return parseInt(entryDate); return null; @@ -192,9 +192,11 @@ ActivityUtils.hasActivities = function (pRowId, pObjectType) { if (pRowId && pObjectType) { - var cond = SqlCondition.begin().andPrepare("ACTIVITYLINK.OBJECT_TYPE", pObjectType) - .andPrepare("ACTIVITYLINK.OBJECT_ROWID", pRowId); - var taskCount = db.cell(cond.buildSql("select count(*) from ACTIVITYLINK")); + var taskCount = newSelect("count(*)") + .from("ACTIVITYLINK") + .where("ACTIVITYLINK.OBJECT_TYPE", pObjectType) + .and("ACTIVITYLINK.OBJECT_ROWID", pRowId) + .cell(); if (taskCount != "0") return true; return false; @@ -250,9 +252,12 @@ TaskUtils.hasTasks = function(pRowId, pObjectType) { if (pRowId != "" && pObjectType != "") { - var cond = SqlCondition.begin().andPrepare("TASKLINK.OBJECT_TYPE", pObjectType) - .andPrepare("TASKLINK.OBJECT_ROWID", pRowId); - var taskCount = db.cell(cond.buildSql("select count(*) from TASKLINK")); + var taskCount = newSelect("count(*)") + .from("TASKLINK") + .where("TASKLINK.OBJECT_TYPE", pObjectType) + .and("TASKLINK.OBJECT_ROWID", pRowId) + .cell(); + if (taskCount != "0") return true; else @@ -281,11 +286,13 @@ TaskUtils.addLinkRecords= function(pObjectIdField, pRowIdField, pAdditionalLinks TaskUtils.getOpenTaskCount = function(pRowId, pObjectType) { - var cond = SqlCondition.begin() - .andPrepare("TASKLINK.OBJECT_TYPE", pObjectType) - .andPrepare("TASKLINK.OBJECT_ROWID", pRowId) - .andPrepare("TASK.STATUS", $KeywordRegistry.taskStatus$ended(), "# != ?") - var taskCount = db.cell(cond.buildSql("select count(*) from TASKLINK join TASK on TASKLINK.TASK_ID = TASK.TASKID")); + var taskCount = newSelect("count(*)") + .from("TASKLINK") + .join("TASK", "TASKLINK.TASK_ID = TASK.TASKID") + .where("TASKLINK.OBJECT_TYPE", pObjectType) + .and("TASKLINK.OBJECT_ROWID", pRowId) + .and("TASK.STATUS", $KeywordRegistry.taskStatus$ended(), "# <> ?") + .cell(); return parseInt(taskCount); } @@ -367,19 +374,23 @@ _ActivityTaskUtils._addLinkRecords = function(pObjectIdField, pRowIdField, pAddi switch (vars.get(pParentContextField)) { case "Activity": - presetLinks = presetLinks.concat(db.table(SqlCondition.begin() - .andPrepare("ACTIVITYLINK.ACTIVITY_ID", vars.get(pParentIdField)) - .buildSql("select OBJECT_TYPE, OBJECT_ROWID from ACTIVITYLINK", "1=2"))); + presetLinks = presetLinks.concat(newSelect("OBJECT_TYPE, OBJECT_ROWID") + .from("ACTIVITYLINK") + .where("ACTIVITYLINK.ACTIVITY_ID", vars.get(pParentIdField)) + .table()); break; case "Task": - presetLinks = presetLinks.concat(db.table(SqlCondition.begin() - .andPrepare("TASKLINK.TASK_ID", vars.get(pParentIdField)) - .buildSql("select OBJECT_TYPE, OBJECT_ROWID from TASKLINK", "1=2"))); + presetLinks = presetLinks.concat(newSelect("OBJECT_TYPE, OBJECT_ROWID") + .from("TASKLINK") + .where("TASKLINK.TASK_ID", vars.get(pParentIdField)) + .table()); break; case "SupportTicket": - presetLinks = presetLinks.concat(db.table(SqlCondition.begin() - .andPrepare("TICKET.TICKETID", vars.get(pParentIdField)) - .buildSql("select OBJECT_TYPE, OBJECT_ROWID from TICKET join TASKLINK on TASKLINK.TASK_ID = TICKET.TASK_ID", "1=2"))); + presetLinks = presetLinks.concat(newSelect("OBJECT_TYPE, OBJECT_ROWID") + .from("TICKET") + .join("TASKLINK", "TASKLINK.TASK_ID = TICKET.TASK_ID") + .where("TICKET.TICKETID", vars.get(pParentIdField)) + .table()); break; } diff --git a/process/Attribute_lib/process.js b/process/Attribute_lib/process.js index 73a5f9a4ac..8172a5948b 100644 --- a/process/Attribute_lib/process.js +++ b/process/Attribute_lib/process.js @@ -58,42 +58,37 @@ AttributeUtil.getPossibleAttributes = function (pObjectType, pIncludeGroups, pFi if (pObjectType == null || (pFilteredAttributeIds && pFilteredAttributeIds.length == 0)) return []; - var attrSql = "select AB_ATTRIBUTEID, ATTRIBUTE_PARENT_ID, ATTRIBUTE_TYPE from AB_ATTRIBUTE" - + " join AB_ATTRIBUTEUSAGE on AB_ATTRIBUTEID = AB_ATTRIBUTE_ID"; - var attrCond = SqlCondition.begin() - .andPrepare("AB_ATTRIBUTEUSAGE.OBJECT_TYPE", pObjectType) - .andPrepare("AB_ATTRIBUTE.ATTRIBUTE_TYPE", $AttributeTypes.COMBOVALUE, "# != ?") - .and("ATTRIBUTE_ACTIVE = 1"); - + var attrSelect = newSelect("AB_ATTRIBUTEID, ATTRIBUTE_PARENT_ID, ATTRIBUTE_TYPE") + .from("AB_ATTRIBUTE") + .join("AB_ATTRIBUTEUSAGE", "AB_ATTRIBUTEID = AB_ATTRIBUTE_ID") + .where("AB_ATTRIBUTEUSAGE.OBJECT_TYPE", pObjectType) + .and("AB_ATTRIBUTE.ATTRIBUTE_TYPE", $AttributeTypes.COMBOVALUE, "# != ?") + .and("ATTRIBUTE_ACTIVE = 1"); + if (pAttributeCount) { for (let attributeId in pAttributeCount) { - attrCond.andSqlCondition( - SqlCondition.begin() - .orPrepare("AB_ATTRIBUTEUSAGE.AB_ATTRIBUTE_ID", attributeId, "# != ?") - .orPrepare("AB_ATTRIBUTEUSAGE.MAX_COUNT", pAttributeCount[attributeId], "# > ?") - .or("AB_ATTRIBUTEUSAGE.MAX_COUNT is null") + attrSelect.and(newWhere() + .or("AB_ATTRIBUTEUSAGE.AB_ATTRIBUTE_ID", attributeId, "# != ?") + .or("AB_ATTRIBUTEUSAGE.MAX_COUNT", pAttributeCount[attributeId], "# > ?") + .or("AB_ATTRIBUTEUSAGE.MAX_COUNT is null") ); } } if (pFilteredAttributeIds) { - var filteredIdsCondition = new SqlCondition(); var filteredIdChildren = AttributeUtil.getAllChildren(pFilteredAttributeIds); - pFilteredAttributeIds.concat(filteredIdChildren).forEach(function(id) - { - this.orPrepare("AB_ATTRIBUTE.AB_ATTRIBUTEID", id); - }, filteredIdsCondition); - - attrCond.andSqlCondition(filteredIdsCondition); + var allFilteredIds = pFilteredAttributeIds.concat(filteredIdChildren); + + attrSelect.andIfSet("AB_ATTRIBUTE.AB_ATTRIBUTEID", allFilteredIds, SqlBuilder.IN()) } if (!pIncludeGroups) - attrCond.andPrepare("AB_ATTRIBUTE.ATTRIBUTE_TYPE", $AttributeTypes.GROUP, "# != ?"); + attrSelect.and("AB_ATTRIBUTE.ATTRIBUTE_TYPE", $AttributeTypes.GROUP, "# != ?"); - var attributes = db.table(attrCond.buildSql(attrSql)); + var attributes = attrSelect.table(); //filter out groups without usable children if (pIncludeGroups && pAttributeCount) -- GitLab