Browse Source

Send email to student boss if "children_auto_threshold" is set.

"children_auto_threshold" is a skill extra field see BT#13587
Julio 7 years ago
parent
commit
dd7dacfe7f
1 changed files with 48 additions and 0 deletions
  1. 48 0
      main/badge/assign.php

+ 48 - 0
main/badge/assign.php

@@ -270,6 +270,54 @@ if ($form->validate()) {
     $entityManager->persist($skillUser);
     $entityManager->flush();
 
+    // Send email depending of children_auto_threshold
+    $skillRelSkill = new SkillRelSkill();
+    $skillModel = new \Skill();
+    $parents = $skillModel->getDirectParents($skillToProcess);
+
+    $extraFieldValue = new ExtraFieldValue('skill');
+    foreach ($parents as $parentInfo) {
+        $parentId = $parentInfo['skill_id'];
+        $parentData = $skillModel->get($parentId);
+
+        $data = $extraFieldValue->get_values_by_handler_and_field_variable($parentId, 'children_auto_threshold');
+        if (!empty($data) && !empty($data['value'])) {
+            // Search X children
+            $requiredSkills = $data['value'];
+            $children = $skillRelSkill->getChildren($parentId);
+            $counter = 0;
+            foreach ($children as $child) {
+                if ($skillModel->userHasSkill($userId, $child['id'])) {
+                    $counter++;
+                }
+            }
+
+            if ($counter >= $requiredSkills) {
+                $bossList = UserManager::getStudentBossList($userId);
+                if (!empty($bossList)) {
+                    Display::addFlash(Display::return_message(get_lang('MessageSent')));
+                    $url = api_get_path(WEB_CODE_PATH).'badge/assign.php?user='.$userId.'&id='.$parentId;
+                    $link = Display::url($url, $url);
+                    $subject = get_lang("StudentHadEnoughSkills");
+                    $message = sprintf(
+                        get_lang("StudentXHadEnoughSkillsToGetSkillXToAssignClickHereX"),
+                        $user->getCompleteName(),
+                        $parentData['name'],
+                        $link
+                    );
+                    foreach ($bossList as $boss) {
+                        MessageManager::send_message_simple(
+                            $boss['boss_id'],
+                            $subject,
+                            $message
+                        );
+                    }
+                }
+                break;
+            }
+        }
+    }
+
     Display::addFlash(
         Display::return_message(
             sprintf(