impleneted virtual status differentiation

main
Said Gedik 2024-05-13 13:06:36 +02:00
parent ecc18df263
commit d11cc8d159
2 changed files with 34 additions and 38 deletions

View File

@ -92,6 +92,9 @@ public class Change {
var peopleFullName = processPeopleInfo(request); var peopleFullName = processPeopleInfo(request);
var filter = request.getFilter(); var filter = request.getFilter();
for (var v : filter.getFilterElement()) {
System.out.println(v.getFilter() + ", " + v.getColumn() +", " + v.getCriteria());
}
var qualifier = filter.constructQualifier(queryChange, api); var qualifier = filter.constructQualifier(queryChange, api);
SortInfo sort = request.constructSortInfo(queryChange); SortInfo sort = request.constructSortInfo(queryChange);

View File

@ -103,54 +103,37 @@ public class Filter {
var column = current_filter.getColumn(); var column = current_filter.getColumn();
var criterias = current_filter.getCriteria(); var criterias = current_filter.getCriteria();
System.out.println(current_filter + " | ");
if (column.isEmpty() || criterias.length <= 0) { if (column.isEmpty() || criterias.length <= 0) {
throw new ValidationError("Fields inside filter empty"); throw new ValidationError("Fields inside filter empty");
} }
var inner_qualifier = ""; 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")) { if (column.equals("D2")) {
var dateQualifier = constructDateQualifier(current_filter, column, query, api); var dateQualifier = constructDateQualifier(current_filter, column, query, api);
qualifier = "(" + dateQualifier + ")"; qualifier = "(" + dateQualifier + ")";
}else if(column.equals("SupportGroup")){ } else if (column.equals("SupportGroup")) {
String supportGroupColumn = api.getFieldDatabaseName(query.getFormName(), query.getFieldId("SupportGroup")); String supportGroupColumn = api.getFieldDatabaseName(query.getFormName(),
String coordGroupColumn = api.getFieldDatabaseName(query.getFormName(), query.getFieldId("ManagerGroup")); query.getFieldId("SupportGroup"));
System.out.println(coordGroupColumn); String coordGroupColumn = api.getFieldDatabaseName(query.getFormName(),
query.getFieldId("ManagerGroup"));
for (int j = 0; j < criterias.length; j++) { for (int j = 0; j < criterias.length; j++) {
var criteria = criterias[j]; var criteria = criterias[j];
if (j > 0) { 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; qualifier += orCondition;
} }
} else { } else {
if(column.equals("ASF_WI_HighestIntervall") ){ if (column.equals("ASF_WI_HighestIntervall")) {
Integer crit = Integer.parseInt(current_filter.getCriteria()[0]); Integer crit = Integer.parseInt(current_filter.getCriteria()[0]);
System.out.println("\n VORHER: "+qualifier); qualifier += "(" + "'ASF_WI_HighestIntervall'" + ">" + crit + ")";
qualifier +="(" + "'ASF_WI_HighestIntervall'"+ ">"+ crit + ")"; } else {
System.out.println("\n NACHER: "+qualifier);
}
else{
column = api.getFieldDatabaseName(query.getFormName(), query.getFieldId(column)); column = api.getFieldDatabaseName(query.getFormName(), query.getFieldId(column));
var inner_filter = "\'" + column + "\' "; var inner_filter = "\'" + column + "\' ";
@ -175,12 +158,24 @@ public class Filter {
} }
for (int j = 0; j < criterias.length; j++) { for (int j = 0; j < criterias.length; j++) {
criterias[j] = inner_criteria_prefix + criterias[j] + inner_criteria_prefix; String criteria = inner_criteria_prefix + criterias[j] + inner_criteria_prefix;
inner_qualifier += "(" + inner_filter + "\"" + criterias[j] + "\")"; 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) { if (j < criterias.length - 1) {
inner_qualifier += inner_concat; inner_qualifier += inner_concat;
} }
} }
qualifier += "(" + inner_qualifier + ")"; qualifier += "(" + inner_qualifier + ")";
} }
} }
@ -190,8 +185,6 @@ public class Filter {
} }
} }
System.out.println("\n"+qualifier+"\n");
return qualifier; return qualifier;
} }