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}'"); }
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; } }
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; }