Skip to content
Snippets Groups Projects
Commit b385ba44 authored by Alexander Vögl's avatar Alexander Vögl Committed by Johannes Goderbauer
Browse files

Salesproject filter

parent 30f4b45f
No related branches found
No related tags found
No related merge requests found
Showing
with 210 additions and 0 deletions
......@@ -876,6 +876,20 @@
<filterConditionProcess>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/filterextensions/attribute_filter/filterConditionProcess.js</filterConditionProcess>
<filtertype>BASIC</filtertype>
</filterExtensionSet>
<filterExtensionSet>
<name>ClassificationSummary_filter</name>
<filterFieldsProcess>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/filterextensions/classificationsummary_filter/filterFieldsProcess.js</filterFieldsProcess>
<filterValuesProcess>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/filterextensions/classificationsummary_filter/filterValuesProcess.js</filterValuesProcess>
<filterConditionProcess>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/filterextensions/classificationsummary_filter/filterConditionProcess.js</filterConditionProcess>
<filtertype>BASIC</filtertype>
</filterExtensionSet>
<filterExtensionSet>
<name>ClassificationScore_filter</name>
<filterFieldsProcess>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/filterextensions/classificationscore_filter/filterFieldsProcess.js</filterFieldsProcess>
<filterValuesProcess>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/filterextensions/classificationscore_filter/filterValuesProcess.js</filterValuesProcess>
<filterConditionProcess>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/filterextensions/classificationscore_filter/filterConditionProcess.js</filterConditionProcess>
<filtertype>BASIC</filtertype>
</filterExtensionSet>
</filterExtensions>
</dbRecordContainer>
<indexRecordContainer>
......
import("Sql_lib");
import("system.logging");
import("AttributeFilter_lib");
import("Entity_lib");
import("Context_lib");
import("system.vars");
import("system.result");
var operator = vars.get("$local.operator");
var rawvalue = vars.get("$local.rawvalue");
var columnPlaceholder = vars.get("$local.columnPlaceholder");
var filterCond = vars.get("$local.condition");
var classificationtypeid = AttributeSearchNameCoder.decode(vars.getString("$local.name")).id;
var sqlCond;
var subsqlclosed = newSelect("OBJECT_ROWID").from("CLASSIFICATION").where("CLASSIFICATION.OBJECT_TYPE", "Salesproject");
var subsqlExtra2 = subsqlclosed.andIfSet("CLASSIFICATION.CLASSIFICATIONTYPE_ID", classificationtypeid);
var subsqlExtra = subsqlclosed.andIfSet("CLASSIFICATION.CLASSIFICATIONSCORE_ID", rawvalue);
if (operator == "1")//equal
sqlCond = newWhere("SALESPROJECT.SALESPROJECTID", subsqlExtra, SqlBuilder.IN()).toString();
else if (operator == "2")//not equal
sqlCond = newWhere("SALESPROJECT.SALESPROJECTID", subsqlExtra, SqlBuilder.NOT_IN()).toString();
else if (operator == "11")//is not empty
sqlCond = newWhere("SALESPROJECT.SALESPROJECTID", subsqlExtra2, SqlBuilder.IN()).toString();
else if (operator == "12")//is empty
sqlCond = newWhere("SALESPROJECT.SALESPROJECTID", subsqlExtra2, SqlBuilder.NOT_IN()).toString();
else sqlCond = "1=1";
result.string(sqlCond);
\ No newline at end of file
import("Sql_lib");
import("system.translate");
import("system.logging");
import("system.util");
import("KeywordRegistry_basic");
import("system.entities");
import("Attribute_lib");
import("AttributeFilter_lib");
import("system.result");
var res = [];
var data = newSelect("CLASSIFICATIONTYPEID, CLASSIFICATIONGROUP, SCORETYPE")
.from("classificationtype")
.orderBy("CLASSIFICATIONGROUP").table();
data.forEach(function(row){
var name = AttributeSearchNameCoder.encode(row[0], row[2]);
res.push({
name: name,
title: translate.text(row[1]) + " / " + translate.text(row[2]),
contentType: "TEXT",
hasDropDownValues: true
});
})
res = JSON.stringify(res);
result.string(res);
\ No newline at end of file
import("IndexSearch_lib");
import("system.logging");
import("system.vars");
import("Sql_lib");
import("AttributeFilter_lib");
import("Attribute_lib");
import("system.result");
import("system.translate");
var filter = JSON.parse(vars.get("$local.filter"));
var nameObject = AttributeSearchNameCoder.decode(filter.name);
var classID = nameObject.id;
var res = newSelect("CLASSIFICATIONSCOREID , TITLE")
.from("CLASSIFICATIONSCORE")
.where("CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID", classID)
.table();
for(var i = 0; i < res.length; i++)
{
res[i][1] = translate.text(res[i][1])
}
if (res == null)
res = [];
result.object(res);
\ No newline at end of file
import("Sql_lib");
import("Classification_lib");
import("system.logging");
import("AttributeFilter_lib");
import("Entity_lib");
import("Context_lib");
import("system.vars");
import("system.result");
var operator = vars.get("$local.operator");
var rawvalue = vars.get("$local.rawvalue");
var columnPlaceholder = vars.get("$local.columnPlaceholder");
var filterCond = vars.get("$local.condition");
var classificationTypeID = AttributeSearchNameCoder.decode(vars.getString("$local.name")).id;
var sqlCond;
//[["A","A"],["B","B"],["C","C"],["D","D"]]
var scoreValue = ClassificationUtils.mapClassLetter(rawvalue);
var havingCase;
if(scoreValue[0] == 0)
havingCase = "sum(SCORE) >= " + scoreValue[0];
else
havingCase = "sum(SCORE) > " + scoreValue[0];
var having = havingCase + " and sum(SCORE) <= " + scoreValue[1];
var subSqlCond = newSelect("OBJECT_ROWID").from("classification").join("classificationscore", "classiFICATIONSCOREID = CLASSIFICATIONSCORE_ID")
.where("classificationscore.CLASSIFICATIONTYPE_ID", newSelect("classificationtypeId").from("classificationtype")
.where("classificationtype.CLASSIFICATIONGROUP", classificationTypeID), SqlBuilder.IN()).groupBy("classification.OBJECT_ROWID");
if (operator == "1")//equal
sqlCond = newWhere("SALESPROJECT.SALESPROJECTID", subSqlCond.having(having), SqlBuilder.IN()).toString();
else if (operator == "2")//not equal
sqlCond = newWhere("SALESPROJECT.SALESPROJECTID", subSqlCond.having(having), SqlBuilder.NOT_IN()).toString();
else if (operator == "11")//is not empty
sqlCond = newWhere("SALESPROJECT.SALESPROJECTID", subSqlCond, SqlBuilder.IN()).toString();
else if (operator == "12")//is empty
sqlCond = newWhere("SALESPROJECT.SALESPROJECTID", subSqlCond, SqlBuilder.NOT_IN()).or("SALESPROJECT.SALESPROJECTID", newSelect("OBJECT_ROWID").from("classification"), SqlBuilder.NOT_IN()).toString();
else sqlCond = "1=1";
result.string(sqlCond);
import("Sql_lib");
import("system.translate");
import("system.logging");
import("system.util");
import("KeywordRegistry_basic");
import("system.entities");
import("Attribute_lib");
import("AttributeFilter_lib");
import("system.result");
var res = [];
var data = newSelect("distinct CLASSIFICATIONGROUP, CLASSIFICATIONGROUP")
.from("classificationtype")
.orderBy("CLASSIFICATIONGROUP").table();
data.forEach(function(row){
var name = AttributeSearchNameCoder.encode(row[0], row[1]);
res.push({
name: name,
title: translate.text(row[1]),
contentType: "TEXT",
hasDropDownValues: true
});
})
res = JSON.stringify(res);
result.string(res);
\ No newline at end of file
import("system.result");
result.object([["A","A"],["B","B"],["C","C"],["D","D"]]);
\ No newline at end of file
......@@ -85,6 +85,40 @@ ClassificationUtils.mapToClass = function(pScore)
return "_";
}
/**
* get the lowest Score for a Letter.
* The classes are hardcoded like this:
* >=0 to 25: D
* > 25 to 50: C
* > 50 to 75: B
* > 75 to 100: A
*
* @return {Array} [min, max] Points the Letter is between
*/
ClassificationUtils.mapClassLetter = function(pLetter)
{
var res;
switch (pLetter) {
case 'A':
res = [75,100]
break;
case 'B':
res = [50, 75];
break;
case 'C':
res = [25, 50];
break;
case 'D':
res = [0, 25];
break;
}
if(!res)
res = false;
return res;
}
/**
* Get all possible groupnames for a classificationtype
* Either as [["group", "group"]] (for the possible items process)
......
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