fix tracking attendance
This commit is contained in:
@@ -2003,6 +2003,58 @@ class AttendanceTrackingController extends BaseController
|
|||||||
return [$subject, $body];
|
return [$subject, $body];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function buildFallbackTemplate(string $code, string $variant, array $context): array
|
||||||
|
{
|
||||||
|
$studentName = (string) ($context['{{student_name}}'] ?? 'the student');
|
||||||
|
$incident = (string) ($context['{{incident_date}}'] ?? date('Y-m-d'));
|
||||||
|
$parentName = (string) ($context['{{parent_name}}'] ?? 'Parent/Guardian');
|
||||||
|
$phone = (string) ($context['{{school_phone}}'] ?? 'the school office');
|
||||||
|
$voicemail = (string) ($context['{{voicemail_phone}}'] ?? 'your voicemail');
|
||||||
|
|
||||||
|
$subject = match (true) {
|
||||||
|
str_starts_with($code, 'ABS_1') => 'Attendance Notice: Unreported Absence',
|
||||||
|
str_starts_with($code, 'ABS_2') => 'Attendance Follow-Up: Two Consecutive Absences',
|
||||||
|
str_starts_with($code, 'ABS_3') => 'Attendance Follow-Up: Three Absences',
|
||||||
|
str_starts_with($code, 'LATE_2') => 'Attendance Notice: Repeated Lateness',
|
||||||
|
str_starts_with($code, 'LATE_3'),
|
||||||
|
str_starts_with($code, 'LATE_4'),
|
||||||
|
str_starts_with($code, 'MIX') => 'Attendance Follow-Up: Repeated Lateness and Absence',
|
||||||
|
default => 'Attendance Notice',
|
||||||
|
};
|
||||||
|
|
||||||
|
$intro = "<p>Insha Allah this email finds you well";
|
||||||
|
if ($variant === 'answered') {
|
||||||
|
$intro .= ", <strong>{$parentName}</strong>. Jazakum Allahu khayran for taking the time to speak with us today.</p>";
|
||||||
|
} elseif ($variant === 'no_answer') {
|
||||||
|
$intro .= ".</p><p>We tried to reach you but could not connect and left a voice message at <strong>{$voicemail}</strong>.</p>";
|
||||||
|
} else {
|
||||||
|
$intro .= ".</p>";
|
||||||
|
}
|
||||||
|
|
||||||
|
$details = match (true) {
|
||||||
|
str_starts_with($code, 'ABS_1')
|
||||||
|
=> "<p>This is to let you know that <strong>{$studentName}</strong> was absent on <strong>{$incident}</strong> without prior notice.</p>",
|
||||||
|
str_starts_with($code, 'ABS_2')
|
||||||
|
=> "<p>This is a reminder that <strong>{$studentName}</strong> has had repeated absences, most recently on <strong>{$incident}</strong>, without prior notice.</p>",
|
||||||
|
str_starts_with($code, 'ABS_3')
|
||||||
|
=> "<p>This is a reminder that <strong>{$studentName}</strong> has been absent three times, most recently on <strong>{$incident}</strong>, without prior notice.</p>",
|
||||||
|
str_starts_with($code, 'LATE_2')
|
||||||
|
=> "<p>This is a reminder that <strong>{$studentName}</strong> has been late multiple times, most recently on <strong>{$incident}</strong>.</p>",
|
||||||
|
str_starts_with($code, 'LATE_3'),
|
||||||
|
str_starts_with($code, 'LATE_4')
|
||||||
|
=> "<p>This is a follow-up that <strong>{$studentName}</strong> has had repeated lateness concerns, most recently on <strong>{$incident}</strong>.</p>",
|
||||||
|
str_starts_with($code, 'MIX')
|
||||||
|
=> "<p>This is a follow-up that <strong>{$studentName}</strong> has had a mix of repeated lateness and absence concerns, most recently on <strong>{$incident}</strong>.</p>",
|
||||||
|
default
|
||||||
|
=> "<p>We'd like to inform you about <strong>{$studentName}</strong>'s recent attendance concern dated <strong>{$incident}</strong>.</p>",
|
||||||
|
};
|
||||||
|
|
||||||
|
$closing = "<p>If your child will be absent or late due to illness or family commitments, please let us know ahead of time.</p>"
|
||||||
|
. "<p>You can email/call/text us at <strong>{$phone}</strong>.</p>";
|
||||||
|
|
||||||
|
return [$subject, $intro . $details . $closing];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public function compose()
|
public function compose()
|
||||||
{
|
{
|
||||||
@@ -2033,8 +2085,8 @@ class AttendanceTrackingController extends BaseController
|
|||||||
$rendered = $this->renderTemplate($code, $variant, $ctx);
|
$rendered = $this->renderTemplate($code, $variant, $ctx);
|
||||||
|
|
||||||
if (!$rendered) {
|
if (!$rendered) {
|
||||||
return redirect()->to(site_url('attendance/violations'))
|
log_message('warning', 'Attendance email template missing; using fallback compose body. code=' . $code . ' variant=' . $variant);
|
||||||
->with('error', 'Template not found for ' . $code . ' (' . $variant . ').');
|
$rendered = $this->buildFallbackTemplate($code, $variant, $ctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
[$subject, $body] = $rendered;
|
[$subject, $body] = $rendered;
|
||||||
|
|||||||
Reference in New Issue
Block a user