Пример #1
0
 /**
  * Task has been assigned to the user
  *
  * @param ProjectTask $task
  * @return boolean
  * @throws NotifierConnectionError
  */
 function taskAssigned(ProjectTask $task)
 {
     if ($task->isCompleted()) {
         return true;
         // task has been already completed...
     }
     // if
     if (!$task->getAssignedTo() instanceof User) {
         return true;
         // not assigned to user
     }
     // if
     /* Checks for assigned to user, to call SMS API */
     if ($task->getAssignedTo() instanceof User) {
         $user = $task->getAssignedTo();
         $phone_num = Users::getPhoneNumberCustomProperty($user->getObjectId());
         $sms_obj = new SmsController();
         $sms_obj->prepareAssignSms($user->getDisplayName(), $task->getTitle(), get_class($task));
         $sms_obj->sendSms($phone_num);
     } else {
         if ($task->getAssignedTo() instanceof Company) {
             // Skipping implementation until business requirement is clear
         }
     }
     // GET WS COLOR
     $workspace_color = $task->getWorkspaceColorsCSV(logged_user()->getWorkspacesQuery());
     tpl_assign('task_assigned', $task);
     tpl_assign('workspace_color', $workspace_color);
     $locale = $task->getAssignedTo()->getLocale();
     Localization::instance()->loadSettings($locale, ROOT . '/language');
     if ($task->getDueDate() instanceof DateTimeValue) {
         $date = Localization::instance()->formatDescriptiveDate($task->getDueDate(), $task->getAssignedTo()->getTimezone());
         tpl_assign('date', $date);
     }
     self::queueEmail(array(self::prepareEmailAddress($task->getAssignedTo()->getEmail(), $task->getAssignedTo()->getDisplayName())), self::prepareEmailAddress($task->getUpdatedBy()->getEmail(), $task->getUpdatedByDisplayName()), lang('task assigned to you', $task->getTitle(), $task->getProject() instanceof Project ? $task->getProject()->getName() : ''), tpl_fetch(get_template_path('task_assigned', 'notifier')));
     // send
     $locale = logged_user() instanceof User ? logged_user()->getLocale() : DEFAULT_LOCALIZATION;
     Localization::instance()->loadSettings($locale, ROOT . '/language');
 }