예제 #1
0
 public function testGetRelatedBean()
 {
     $team_id = 1;
     $case = new aCase();
     $case->name = 'testBug47949';
     $case->team_id = $team_id;
     $case->team_set_id = 1;
     $case->save();
     $beans = $case->get_linked_beans('teams', 'Team');
     // teams is based on Link (not Link2), should still work
     $this->assertEquals(1, count($beans), 'should have one and only one team');
     $this->assertEquals($team_id, $beans[0]->id, 'incorrect team id, should be ' . $team_id);
     // cleanup
     $GLOBALS['db']->query("delete from cases where id= '{$case->id}'");
 }
예제 #2
0
 private function sendClosureEmail(aCase $bean)
 {
     if (!isAOPEnabled()) {
         return;
     }
     $GLOBALS['log']->warn("CaseUpdatesHook: sendClosureEmail called");
     require_once "include/SugarPHPMailer.php";
     $mailer = new SugarPHPMailer();
     $admin = new Administration();
     $admin->retrieveSettings();
     $mailer->prepForOutbound();
     $mailer->setMailerForSystem();
     $email_template = new EmailTemplate();
     $aop_config = $this->getAOPConfig();
     $email_template = $email_template->retrieve($aop_config['case_closure_email_template_id']);
     if (!$email_template) {
         $GLOBALS['log']->warn("CaseUpdatesHook: sendClosureEmail template is empty");
         return false;
     }
     $contact = $bean->get_linked_beans("contacts", "Contact");
     if ($contact) {
         $contact = $contact[0];
     } else {
         return false;
     }
     $emailSettings = getPortalEmailSettings();
     $text = $this->populateTemplate($email_template, $bean, $contact);
     $mailer->Subject = $text['subject'];
     $mailer->Body = $text['body'];
     $mailer->IsHTML(true);
     $mailer->AltBody = $text['body_alt'];
     $mailer->From = $emailSettings['from_address'];
     $mailer->FromName = $emailSettings['from_name'];
     $email = $contact->emailAddress->getPrimaryAddress($contact);
     $mailer->AddAddress($email);
     if (!$mailer->Send()) {
         $GLOBALS['log']->info("CaseUpdatesHook: Could not send email:  " . $mailer->ErrorInfo);
         return false;
     } else {
         $this->logEmail($email, $mailer, $bean->id);
         return true;
     }
 }
예제 #3
0
 function set_notification_body($xtpl, $task)
 {
     global $app_list_strings;
     global $timedate;
     $task->custom_fields->retrieve();
     $notifyUser = $task->current_notify_user;
     $prefDate = $notifyUser->getUserDateTimePreferences();
     $xtpl->assign("TASK_SUBJECT", $task->name);
     //MFH #13507
     $xtpl->assign("TASK_PRIORITY", isset($task->priority) ? $app_list_strings['task_priority_dom'][$task->priority] : "");
     if (!empty($task->date_due)) {
         $duedate = $timedate->fromDb($task->date_due);
         $xtpl->assign("TASK_DUEDATE", $timedate->asUser($duedate, $notifyUser) . " " . TimeDate::userTimezoneSuffix($duedate, $notifyUser));
     } else {
         $xtpl->assign("TASK_DUEDATE", '');
     }
     $xtpl->assign("TASK_STATUS", isset($task->status) ? $app_list_strings['task_status_dom'][$task->status] : "");
     $xtpl->assign("TASK_DESCRIPTION", $task->description);
     //Custom Additions
     $lcase = new aCase();
     $lproject = new Project();
     $lcase->retrieve($task->parent_id);
     $linkedprojects = $lcase->get_linked_beans('project', 'Project');
     foreach ($linkedprojects as $curproj) {
         $lproject = $curproj;
     }
     $lproject->custom_fields->retrieve();
     $xtpl->assign("TASK_PROJECT_NAME", isset($lproject->name) ? $lproject->name : "");
     $xtpl->assign("TASK_PROJECT_FACILITY", isset($lproject->facility_c) ? $lproject->facility_c : "");
     $xtpl->assign("TASK_JOBNUMBER", isset($task->jobnumber_c) ? $task->jobnumber_c : "");
     $xtpl->assign("TASK_CASENUMBER", isset($lcase->case_number) ? $lcase->case_number : "");
     $xtpl->assign("TASK_DEPARTMENT", isset($task->department_c) ? $app_list_strings['department_list'][$task->department_c] : "");
     $xtpl->assign("TASK_TYPE", isset($task->type_c) ? $app_list_strings['Task_Type_list'][$task->type_c] : "");
     $xtpl->assign("TASK_CONTACTNAME", isset($task->contactname_c) ? $task->contactname_c : "");
     $xtpl->assign("TASK_CONTACTNUMBER", isset($task->contactnumber_c) ? $task->contactnumber_c : "");
     $xtpl->assign("TASK_PARTSSPARESNEEDED", isset($task->partssparesneeded_c) ? $task->partssparesneeded_c : "");
     $xtpl->assign("TASK_DOCKHELIPORTLOCATION", isset($task->dockheliportlocation_c) ? $task->dockheliportlocation_c : "");
     $xtpl->assign("TASK_VESSELNAME", isset($task->vesselname_c) ? $task->vesselname_c : "");
     $xtpl->assign("TASK_ACCOUNT", isset($task->account_c) ? $task->account_c : "");
     $xtpl->assign("TASK_WORKLOG", isset($task->worklog_c) ? $task->worklog_c : "");
     return $xtpl;
 }