diff --git a/entity/Salesproject_entity/entityfields/openclassificationoverview/onActionProcess.js b/entity/Salesproject_entity/entityfields/openclassificationoverview/onActionProcess.js index ab0320216058661142f965367f42a5f671726ea5..d103f7cdf673de148a7aba47f84f7b033efdcd6c 100644 --- a/entity/Salesproject_entity/entityfields/openclassificationoverview/onActionProcess.js +++ b/entity/Salesproject_entity/entityfields/openclassificationoverview/onActionProcess.js @@ -4,4 +4,4 @@ import("system.vars"); var classificationData = ClassificationUtils.executeUpdating(vars.get("$field.SALESPROJECTID"), "Salesproject"); -neon.openContext("Classification", "ClassificationTree_view", null, neon.OPERATINGSTATE_SEARCH, {"ClassificationContent_param": classificationData}, null); \ No newline at end of file +neon.openContext("Classification", "ClassificationTree_view", null, neon.OPERATINGSTATE_SEARCH, {"ClassificationContent_param": classificationData["outputValue"]}, null); \ No newline at end of file diff --git a/process/ChecklistEntryRegistry_basic/process.js b/process/ChecklistEntryRegistry_basic/process.js index 14505ec30942126b83ff8b217a53971025fcddf9..92714d631873da6ded5af46ef5c7b066081caeb7 100644 --- a/process/ChecklistEntryRegistry_basic/process.js +++ b/process/ChecklistEntryRegistry_basic/process.js @@ -1,3 +1,5 @@ +import("system.vars"); +import("ClassificationUpdate_lib"); import("Context_lib"); import("Communication_lib"); import("Contact_lib"); @@ -208,17 +210,13 @@ $ChecklistEntryRegistry.salesprojectClassificationFields = function(){ context: ["Salesproject"], title: translate.text("Classification fields"), verifierFn: function(pSalesprojectId){ - var res = false; - var classificationRows = $ChecklistEntryRegistry._getRows(null, "Classification_entity", ["VALUE"], [["ObjectType_param", "Salesproject"], ["ObjectRowid_param", pSalesprojectId]], "Classifications"); - if(classificationRows.length > 0) + var res = true; + if(Utils.isNotNullOrEmptyString(pSalesprojectId) && (!vars.exists("IgnoreOrderBy_param") || (vars.exists("IgnoreOrderBy_param") && !vars.get("IgnoreOrderBy_param")))) { - res = true - for (let i = 0; i < classificationRows.length; i++) { - if(classificationRows[i] == "" || classificationRows[i] == null || classificationRows[i] == undefined) - { - res = false; - break; - } + var classificationData = ClassificationUtils.executeUpdating(pSalesprojectId, "Salesproject"); + if(classificationData && classificationData["emtpyFields"] && classificationData["emtpyFields"].length != 0) + { + res = false; } } return res; diff --git a/process/ClassificationUpdate_lib/process.js b/process/ClassificationUpdate_lib/process.js index e9636d4bd9950f968dd9b007e64d2ca012a33eaf..73c181e1f7a1401cead2f88a95e8671503e98766 100644 --- a/process/ClassificationUpdate_lib/process.js +++ b/process/ClassificationUpdate_lib/process.js @@ -204,7 +204,8 @@ ClassificationUpdateHelper._searchIndicatorObj = function(pClassificationTypeId, * objectRowId we want to show the classifications for<br> * * -* @return {String} <p> stringified contentProcessArray<br> +* +* @return {Object} <p> {"emtpyFields": stringifiedContentProcessArray, "emtpyFields" ArrayWithAllFieldsWithoutValue<br> */ ClassificationUpdateHelper._formatOutputForDisplayingValues = function(pReturn, pUid) { @@ -272,8 +273,13 @@ ClassificationUpdateHelper._formatOutputForDisplayingValues = function(pReturn, var groupDisplayObj = {};//helperObj to store the group display value var position = 0; + var emptyFields = []; for (let i = 0; i < contentProcessArray.length; i++) { + if(contentProcessArray[i][5] == "-")//value is empty + { + emptyFields.push(contentProcessArray[i][4])//push fieldname + } if (contentProcessArray[i][2] && contentProcessArray[i][2] != "")//group { groupDisplayObj[contentProcessArray[i][1]] = ClassificationUtils.formatDisplaySummaryForGroup(groupResultObj[contentProcessArray[i][1]]["points"], groupResultObj[contentProcessArray[i][1]]["maxPoints"], contentProcessArray[i][2], classificationString.substring(position, position + 1)) @@ -287,7 +293,8 @@ ClassificationUpdateHelper._formatOutputForDisplayingValues = function(pReturn, } } - return JSON.stringify(contentProcessArray); + return {"outputValue": JSON.stringify(contentProcessArray) + ,"emtpyFields": emptyFields}; }; /** @@ -1033,6 +1040,11 @@ ClassificationUpdateHelper._buildFilteredRecsObject = function(pClassificationTy .fields(pFilterFields) .addParameter("IgnoreOrderBy_param", true); + if(currentObjectType == "Salesproject") + { + config.provider("NoPhaseRequirementLoading"); + } + var rows = []; if(pSingleRefreshRowId) { @@ -1855,6 +1867,12 @@ ClassificationUpdateHelper._updateOutdatedDatasets = function(pClassificationObj .ignorePermissions(true) .entity(ContextUtils.getEntity(objectTypes[currentObjectType])) .addParameter("IgnoreOrderBy_param", true); + + if(objectTypes[currentObjectType] == "Salesproject") + { + objectValuesLoadConfig.provider("NoPhaseRequirementLoading"); + } + if (objectRowIdArray && !pSingleRefreshRowId)//objectRowIdArray is already paged { objectValuesLoadConfig = objectValuesLoadConfig.uids(objectRowIdArray);