19declare(strict_types=1);
38 protected readonly UserSettings $user_settings,
41 $lng->loadLanguageModule(self::LANGMODULE);
42 $lng->loadLanguageModule(
"mail");
43 $this->languages[
$lng->getLangKey()] =
$lng;
52 $ass = $prg->getSpecificAssignment($assignment_id);
58 return $this->user_settings->getSettingValueFor($usr_id,
'language');
61 protected function txt(
string $identifier,
string $lang): string
63 if (!array_key_exists($lang, $this->languages)) {
64 $lng = new \ilLanguage($lang);
65 $lng->loadLanguageModule(self::LANGMODULE);
66 $lng->loadLanguageModule(
"mail");
67 $this->languages[$lang] =
$lng;
69 $lng = $this->languages[$lang];
70 return $lng->txtlng(self::LANGMODULE, $identifier, $lang);
79 $user_info = $assignment->getUserInformation();
80 $gender = $user_info->getGender() ?:
'anonymous';
81 $name = implode(
' ', [$user_info->getFirstname(), $user_info->getLastname()]);
82 $login = $user_info->getLogin();
86 $salutation = $this->
txt(
"mail_salutation_" . $gender, $lang);
87 $subject = $this->
txt($subject, $lang);
88 $body_template = $this->
txt($body_template, $lang);
96 .
'<br /><br />' . $prg_link;
100 $mail->enqueue($login,
'',
'', $subject,
$body, MailAttachments::empty());
102 }
catch (Exception
$e) {
103 $this->log->info(
$e->getMessage());
110 list($ass, $prg) = $this->getAssignmentAndProgramme($assignment_id, $root_prg_id);
112 if (! $prg->
getSettings()->getAutoMailSettings()->getReminderNotRestartedByUserDays() > 0) {
113 $this->log->info(
"Send info to re-assign mail is deactivated in study programme settings");
117 $subject =
"info_to_re_assign_mail_subject";
118 $body_template =
"info_to_re_assign_mail_body";
119 $sent = $this->sendMail($prg, $ass, $subject, $body_template);
128 list($ass, $prg) = $this->getAssignmentAndProgramme($assignment_id, $root_prg_id);
129 $now = new \DateTimeImmutable();
130 $vq = $ass->getProgressTree()->getValidityOfQualification();
132 if ($vq && $vq > $now) {
139 list($ass, $prg) = $this->getAssignmentAndProgramme($assignment_id, $root_prg_id);
141 if (! $prg->
getSettings()->getAutoMailSettings()->getProcessingEndsNotSuccessfulDays() > 0) {
142 $this->log->info(
"Send risky to fail mail is deactivated in study programme settings");
146 $lang = $this->getUserLanguage($ass->getUserId());
147 $subject =
"risky_to_fail_mail_subject";
148 $body_template =
"risky_to_fail_mail_body";
149 $sent = $this->sendMail($prg, $ass, $subject, $body_template);
158 list($ass, $prg) = $this->getAssignmentAndProgramme($assignment_id, $root_prg_id);
159 $now = new \DateTimeImmutable();
160 $deadline = $ass->getProgressTree()->getDeadline();
161 if ($deadline && $deadline > $now) {
168 list($ass, $prg) = $this->getAssignmentAndProgramme($assignment_id, $root_prg_id);
170 if (! $prg->
getSettings()->getAutoMailSettings()->getSendReAssignedMail()) {
171 $this->log->info(
"Send re assign mail is deactivated in study programme settings");
175 $lang = $this->getUserLanguage($ass->getUserId());
176 $subject =
"re_assigned_mail_subject";
177 $body_template =
"re_assigned_mail_body";
178 $sent = $this->sendMail($prg, $ass, $subject, $body_template);
Component logger with individual log levels by component id.
static _getStaticLink(?int $a_ref_id, string $a_type='', bool $a_fallback_goto=true, string $append="")
resetRiskyToFailSentFor(ilPRGAssignment $ass)
resetExpiryInfoSentFor(ilPRGAssignment $ass)
static getInstanceByObjId(int $obj_id)
storeRiskyToFailSentFor(ilPRGAssignment $ass)
storeExpiryInfoSentFor(ilPRGAssignment $ass)
static getRefIdFor(int $obj_id)
Assignments are relations of users to a PRG; They hold progress-information for (sub-)nodes of the PR...
Send mails to users (usually triggered by cron)
getUserLanguage(int $usr_id)
resetRiskyToFailSentFor(int $assignment_id, int $root_prg_id)
sendRiskyToFailMail(int $assignment_id, int $root_prg_id)
txt(string $identifier, string $lang)
__construct(protected ilComponentLogger $log, protected readonly UserSettings $user_settings, ilLanguage $lng)
array $languages
var <string, ilLanguage> $languages
getAssignmentAndProgramme(int $assignment_id, int $root_prg_id)
resetExpiryInfoSentFor(int $assignment_id, int $root_prg_id)
sendInformToReAssignMail(int $assignment_id, int $root_prg_id)
sendMail(ilObjStudyProgramme $prg, ilPRGAssignment $assignment, string $subject, string $body_template)
sendReAssignedMail(int $assignment_id, int $root_prg_id)