diff --git a/process/Classification_lib/process.js b/process/Classification_lib/process.js index a3b74a2a54fc68a4df123cb29fef178db2f488c3..e704608103bf7a0c97058893db57d1cedddd056f 100644 --- a/process/Classification_lib/process.js +++ b/process/Classification_lib/process.js @@ -1,3 +1,4 @@ +import("system.logging"); import("system.vars"); import("system.db"); import("Sql_lib"); @@ -23,18 +24,15 @@ function ClassificationUtils() {} ClassificationUtils.getScore = function(pClassificationType, pObjectType, pObjectRowid, pClassificationGroup) { var score = db.table(SqlCondition.begin() - .andPrepareIfSet("CLASSIFICATIONTYPE.CLASSIFICATIONGROUP", pClassificationGroup) - .andPrepare("CLASSIFICATIONTYPE.CLASSIFICATIONTYPE", pClassificationType) - .andSqlCondition(SqlCondition.begin().orPrepare("CLASSIFICATION.OBJECT_TYPE", pObjectType) - .or("CLASSIFICATION.OBJECT_TYPE is null")) - .andSqlCondition(SqlCondition.begin().orPrepare("CLASSIFICATION.OBJECT_ROWID", pObjectRowid) - .or("CLASSIFICATION.OBJECT_ROWID is null")) - .buildSql("select CLASSIFICATIONTYPE.CLASSIFICATIONGROUP, case when sum(score) is not null then sum(score) else 0 end from CLASSIFICATIONTYPE \n\ - left join Classification on CLASSIFICATIONTYPE_ID = CLASSIFICATIONTYPEID \n\ - left join CLASSIFICATIONSCORE on CLASSIFICATIONSCORE_ID = CLASSIFICATIONSCOREID", - "1=2", - "group by CLASSIFICATIONTYPE.CLASSIFICATIONGROUP order by CLASSIFICATIONTYPE.CLASSIFICATIONGROUP asc")); - + .andPrepare("CLASSIFICATIONTYPE.CLASSIFICATIONTYPE", pClassificationType) + .andPrepareIfSet("CLASSIFICATIONTYPE.CLASSIFICATIONGROUP", pClassificationGroup) + .buildSql("select CLASSIFICATIONTYPE.CLASSIFICATIONGROUP, case when sum(score) is not null then sum(score) else 0 end from CLASSIFICATIONTYPE " + + db.translateStatement(SqlCondition.begin() + .andPrepare("CLASSIFICATION.OBJECT_TYPE", pObjectType) + .andPrepare("CLASSIFICATION.OBJECT_ROWID", pObjectRowid) + .buildSql("left join CLASSIFICATION on CLASSIFICATIONTYPEID = CLASSIFICATIONTYPE_ID and", "1=2", "", false)) + + "left join CLASSIFICATIONSCORE on CLASSIFICATIONSCORE_ID = CLASSIFICATIONSCOREID", "1=2", + "group by CLASSIFICATIONGROUP order by CLASSIFICATIONGROUP")) var scores = {}; score.forEach(function(pRow) {