From 307fe6d9551745e4f59e6e324e4891a1fd401149 Mon Sep 17 00:00:00 2001 From: Sebastian Pongratz <s.pongratz@adito.de> Date: Tue, 30 Nov 2021 11:36:41 +0100 Subject: [PATCH] Merge branch 'cm_2001570_AnalysesDashboard' into '2021.2' [Projekt: xRM-ContactManagement][TicketNr.: 2001570][Dashlet ToDo zeigt falsche/keine Aufgaben an] See merge request xrm/basic!1478 (cherry picked from commit 6f78e5e83e7d365d599f0c1ca4e7d041466ad17c) 0255822c [Projekt: xRM-ContactManagement][TicketNr.: 2001570][Dashlet ToDo zeigt falsche/keine Aufgaben an] --- .../entityfields/new_tasks/valueProcess.js | 17 +++++++++------ .../opennewtasks/onActionProcess.js | 11 ++++++++-- .../openoverduetasks/onActionProcess.js | 14 +++++++++---- .../overdue_tasks/valueProcess.js | 21 ++++++++++++------- entity/Task_entity/Task_entity.aod | 2 +- process/migrateTask/process.js | 2 +- 6 files changed, 46 insertions(+), 21 deletions(-) diff --git a/entity/Analyses_entity/entityfields/new_tasks/valueProcess.js b/entity/Analyses_entity/entityfields/new_tasks/valueProcess.js index 3e2e63befe..367c63ee6d 100644 --- a/entity/Analyses_entity/entityfields/new_tasks/valueProcess.js +++ b/entity/Analyses_entity/entityfields/new_tasks/valueProcess.js @@ -1,14 +1,19 @@ import("Employee_lib"); -import("system.db"); import("system.result"); import("Sql_lib"); import("KeywordRegistry_basic"); - + +var contactId = EmployeeUtils.getCurrentContactId(); +var departmentId = EmployeeUtils.getUsersDepartment(contactId, false); + var opentask = newSelect("count(TASKID)") .from("TASK") - .where("TASK.STATUS", $KeywordRegistry.taskStatus$new()) - .and ("TASK.KIND", "TASK") - .and("TASK.EDITOR_CONTACT_ID", EmployeeUtils.getCurrentContactId()) - .cell(); + .join("TASKATTENDEES","TASKATTENDEES.TASK_ID = TASK.TASKID") + .where( + newWhere("TASKATTENDEES.CONTACT_ID", contactId) + .or("TASKATTENDEES.DEPARTMENT_ID",departmentId) + ) + .and("TASK.STATUS", $KeywordRegistry.taskStatus$new()) + .cell(); result.string(opentask || 0); \ No newline at end of file diff --git a/entity/Analyses_entity/entityfields/opennewtasks/onActionProcess.js b/entity/Analyses_entity/entityfields/opennewtasks/onActionProcess.js index 2f701771cd..a63838ac81 100644 --- a/entity/Analyses_entity/entityfields/opennewtasks/onActionProcess.js +++ b/entity/Analyses_entity/entityfields/opennewtasks/onActionProcess.js @@ -4,10 +4,17 @@ import("Sql_lib"); import("Employee_lib"); import("system.neon"); +var contactId = EmployeeUtils.getCurrentContactId(); +var departmentId = EmployeeUtils.getUsersDepartment(contactId, false); + var taskIds = newSelect("TASKID") .from("TASK") - .where("TASK.STATUS", $KeywordRegistry.taskStatus$new()) - .and("TASK.EDITOR_CONTACT_ID", EmployeeUtils.getCurrentContactId()) + .join("TASKATTENDEES","TASKATTENDEES.TASK_ID = TASK.TASKID") + .where( + newWhere("TASKATTENDEES.CONTACT_ID", contactId) + .or("TASKATTENDEES.DEPARTMENT_ID", departmentId) + ) + .and("TASK.STATUS", $KeywordRegistry.taskStatus$new()) .arrayColumn(); var recipe = neonFilter.createEntityRecordsRecipeBuilder().uidsIncludelist(taskIds).toString(); diff --git a/entity/Analyses_entity/entityfields/openoverduetasks/onActionProcess.js b/entity/Analyses_entity/entityfields/openoverduetasks/onActionProcess.js index dfbf3354e4..43974a54a6 100644 --- a/entity/Analyses_entity/entityfields/openoverduetasks/onActionProcess.js +++ b/entity/Analyses_entity/entityfields/openoverduetasks/onActionProcess.js @@ -1,17 +1,23 @@ import("system.neonFilter"); import("system.neon"); -import("system.db"); import("ActivityTask_lib"); import("Employee_lib"); import("system.vars"); import("Sql_lib"); +var contactId = EmployeeUtils.getCurrentContactId(); +var departmentId = EmployeeUtils.getUsersDepartment(contactId, false); + var overdueTask = newSelect("TASKID") .from("TASK") - .where("TASK.MATURITY_DATE", "$sys.date", SqlBuilder.LESS()) - .and("TASK.EDITOR_CONTACT_ID", EmployeeUtils.getCurrentContactId()) + .join("TASKATTENDEES","TASKATTENDEES.TASK_ID = TASK.TASKID") + .where( + newWhere("TASKATTENDEES.CONTACT_ID", contactId) + .or("TASKATTENDEES.DEPARTMENT_ID",departmentId) + ) + .and("TASK.MATURITY_DATE", "$sys.date", SqlBuilder.LESS()) .and("TASK.STATUS", TaskUtils.getEndedStatuses(), SqlBuilder.NOT_IN()) - .array(db.COLUMN) + .arrayColumn(); var recipe = neonFilter.createEntityRecordsRecipeBuilder().uidsIncludelist(overdueTask).toString(); neon.openContextWithRecipe("Task", "TaskFilter_view", recipe, neon.OPERATINGSTATE_SEARCH); diff --git a/entity/Analyses_entity/entityfields/overdue_tasks/valueProcess.js b/entity/Analyses_entity/entityfields/overdue_tasks/valueProcess.js index 98e88dd158..6d23914c84 100644 --- a/entity/Analyses_entity/entityfields/overdue_tasks/valueProcess.js +++ b/entity/Analyses_entity/entityfields/overdue_tasks/valueProcess.js @@ -1,15 +1,22 @@ -import("system.vars"); +import("system.result"); +import("system.neon"); +import("ActivityTask_lib"); import("Employee_lib"); +import("system.vars"); import("Sql_lib"); -import("ActivityTask_lib"); -import("system.result"); + +var contactId = EmployeeUtils.getCurrentContactId(); +var departmentId = EmployeeUtils.getUsersDepartment(contactId, false); var overdueTaskCount = newSelect("count(TASKID)") .from("TASK") - .where("TASK.MATURITY_DATE", "$sys.date", SqlBuilder.LESS()) - .and ("TASK.KIND", "TASK") - .and("TASK.EDITOR_CONTACT_ID", EmployeeUtils.getCurrentContactId()) + .join("TASKATTENDEES","TASKATTENDEES.TASK_ID = TASK.TASKID") + .where( + newWhere("TASKATTENDEES.CONTACT_ID", contactId) + .or("TASKATTENDEES.DEPARTMENT_ID",departmentId) + ) + .and("TASK.MATURITY_DATE", vars.get("$sys.date"), SqlBuilder.LESS()) .and("TASK.STATUS", TaskUtils.getEndedStatuses(), SqlBuilder.NOT_IN()) - .cell() + .cell(); result.string(overdueTaskCount); \ No newline at end of file diff --git a/entity/Task_entity/Task_entity.aod b/entity/Task_entity/Task_entity.aod index 4f4483a8e0..fb2bcfa6a1 100644 --- a/entity/Task_entity/Task_entity.aod +++ b/entity/Task_entity/Task_entity.aod @@ -490,7 +490,7 @@ </entityField> <entityField> <name>connections</name> - <title>Verknuepfungen</title> + <title>Connections</title> </entityField> <entityField> <name>DATE_EDIT</name> diff --git a/process/migrateTask/process.js b/process/migrateTask/process.js index d4b0cc4cac..8ecf69cdba 100644 --- a/process/migrateTask/process.js +++ b/process/migrateTask/process.js @@ -24,7 +24,7 @@ oldTasks.forEach(function (pTask) { logging.log(text.text2html(pTask[0], true)); statements.push(newWhereIfSet("TASK.TASKID", pTask[1]) .buildUpdateStatement({ - "TASK.DESCRIPTION" : text.text2html(pTask[0], true) + "DESCRIPTION" : text.text2html(pTask[0], true) }, "TASK")); statements.push(new SqlBuilder().buildInsertStatement({ -- GitLab