impleneted virtual status differentiation
parent
ecc18df263
commit
d11cc8d159
|
|
@ -92,6 +92,9 @@ public class Change {
|
|||
var peopleFullName = processPeopleInfo(request);
|
||||
|
||||
var filter = request.getFilter();
|
||||
for (var v : filter.getFilterElement()) {
|
||||
System.out.println(v.getFilter() + ", " + v.getColumn() +", " + v.getCriteria());
|
||||
}
|
||||
var qualifier = filter.constructQualifier(queryChange, api);
|
||||
SortInfo sort = request.constructSortInfo(queryChange);
|
||||
|
||||
|
|
|
|||
|
|
@ -103,60 +103,43 @@ public class Filter {
|
|||
var column = current_filter.getColumn();
|
||||
var criterias = current_filter.getCriteria();
|
||||
|
||||
|
||||
System.out.println(current_filter + " | ");
|
||||
|
||||
if (column.isEmpty() || criterias.length <= 0) {
|
||||
throw new ValidationError("Fields inside filter empty");
|
||||
}
|
||||
var inner_qualifier = "";
|
||||
|
||||
// if (column.equals("SupportGroup")) {
|
||||
// qualifier = "(" + "'1000000015' = \""+criterias[0]+"\" OR '1000003229' = \""+criterias[0]+"\")";
|
||||
// // }
|
||||
// if(column.equals("SupportGroup")) {
|
||||
// String supportGroupColumn = "1000000015"; // api.getFieldDatabaseName(query.getFormName(), query.getFieldId("SupportGroup"));
|
||||
// String coordGroupColumn = "1000003229"; //api.getFieldDatabaseName(query.getFormName(), query.getFieldId("ManagerGroup"));
|
||||
// for (int j = 0; j < criterias.length; j++) {
|
||||
// var criteria = criterias[j];
|
||||
// if (j > 0) {
|
||||
// qualifier += " AND ";
|
||||
// }
|
||||
// var orCondition = String.format("('%s' = \"%s\" OR '%s' = \"%s\")", supportGroupColumn, criteria, coordGroupColumn, criteria);
|
||||
// qualifier += orCondition;
|
||||
// }
|
||||
// }
|
||||
|
||||
if (column.equals("D2")) {
|
||||
var dateQualifier = constructDateQualifier(current_filter, column, query, api);
|
||||
qualifier = "(" + dateQualifier + ")";
|
||||
}else if(column.equals("SupportGroup")){
|
||||
String supportGroupColumn = api.getFieldDatabaseName(query.getFormName(), query.getFieldId("SupportGroup"));
|
||||
String coordGroupColumn = api.getFieldDatabaseName(query.getFormName(), query.getFieldId("ManagerGroup"));
|
||||
System.out.println(coordGroupColumn);
|
||||
|
||||
} else if (column.equals("SupportGroup")) {
|
||||
String supportGroupColumn = api.getFieldDatabaseName(query.getFormName(),
|
||||
query.getFieldId("SupportGroup"));
|
||||
String coordGroupColumn = api.getFieldDatabaseName(query.getFormName(),
|
||||
query.getFieldId("ManagerGroup"));
|
||||
|
||||
for (int j = 0; j < criterias.length; j++) {
|
||||
var criteria = criterias[j];
|
||||
var criteria = criterias[j];
|
||||
if (j > 0) {
|
||||
qualifier += " OR ";
|
||||
qualifier += " OR ";
|
||||
}
|
||||
var orCondition = String.format("('%s' = \"%s\" OR '%s' = \"%s\")", supportGroupColumn, criteria, coordGroupColumn, criteria);
|
||||
var orCondition = String.format("('%s' = \"%s\" OR '%s' = \"%s\")", supportGroupColumn, criteria,
|
||||
coordGroupColumn, criteria);
|
||||
qualifier += orCondition;
|
||||
}
|
||||
|
||||
} else {
|
||||
if(column.equals("ASF_WI_HighestIntervall") ){
|
||||
if (column.equals("ASF_WI_HighestIntervall")) {
|
||||
Integer crit = Integer.parseInt(current_filter.getCriteria()[0]);
|
||||
System.out.println("\n VORHER: "+qualifier);
|
||||
qualifier +="(" + "'ASF_WI_HighestIntervall'"+ ">"+ crit + ")";
|
||||
System.out.println("\n NACHER: "+qualifier);
|
||||
}
|
||||
else{
|
||||
qualifier += "(" + "'ASF_WI_HighestIntervall'" + ">" + crit + ")";
|
||||
} else {
|
||||
column = api.getFieldDatabaseName(query.getFormName(), query.getFieldId(column));
|
||||
|
||||
var inner_filter = "\'" + column + "\' ";
|
||||
var inner_concat = " OR ";
|
||||
var inner_criteria_prefix = "";
|
||||
|
||||
|
||||
switch (current_filter.getFilter()) {
|
||||
case "equals":
|
||||
inner_filter += "= ";
|
||||
|
|
@ -169,18 +152,30 @@ public class Filter {
|
|||
inner_concat = " AND ";
|
||||
inner_criteria_prefix = "%";
|
||||
break;
|
||||
|
||||
|
||||
default:
|
||||
throw new ValidationError("Invalid inner filter argument");
|
||||
}
|
||||
|
||||
|
||||
for (int j = 0; j < criterias.length; j++) {
|
||||
criterias[j] = inner_criteria_prefix + criterias[j] + inner_criteria_prefix;
|
||||
inner_qualifier += "(" + inner_filter + "\"" + criterias[j] + "\")";
|
||||
String criteria = inner_criteria_prefix + criterias[j] + inner_criteria_prefix;
|
||||
String condition = "\"" + criterias[j] + "\")";
|
||||
|
||||
if (criteria.contains("Completed")) {
|
||||
inner_qualifier += "(" + inner_filter + "\"Completed\" AND '1000000150' = "
|
||||
+ (criteria.contains("Completed (final review finished)") ? "9000)" : "10000)");
|
||||
} else if (criteria.contains("Rejected")) {
|
||||
inner_qualifier += "(" + inner_filter + "\"Rejected\" AND '301541700' = "
|
||||
+ (criteria.contains("Rejected (begin)") ? "1)" : "9)");
|
||||
} else {
|
||||
inner_qualifier += "(" + inner_filter + condition;
|
||||
}
|
||||
|
||||
if (j < criterias.length - 1) {
|
||||
inner_qualifier += inner_concat;
|
||||
}
|
||||
}
|
||||
|
||||
qualifier += "(" + inner_qualifier + ")";
|
||||
}
|
||||
}
|
||||
|
|
@ -190,8 +185,6 @@ public class Filter {
|
|||
}
|
||||
|
||||
}
|
||||
System.out.println("\n"+qualifier+"\n");
|
||||
|
||||
return qualifier;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue