*/ private static array $leaveTypeLabels = [ 'vacation' => 'Dovolená', 'sick' => 'Nemocenská', 'unpaid' => 'Neplacené volno', ]; /** * Send notification about a new leave request * * @param array $request */ public static function notifyNewRequest(array $request, string $employeeName): void { $notifyEmail = env('LEAVE_NOTIFY_EMAIL', ''); if (!$notifyEmail) { return; } $leaveType = self::$leaveTypeLabels[$request['leave_type']] ?? $request['leave_type']; $dateFrom = date('d.m.Y', strtotime($request['date_from'])); $dateTo = date('d.m.Y', strtotime($request['date_to'])); $notes = $request['notes'] ?? ''; $subject = "Nová žádost o nepřítomnost - $employeeName ($leaveType)"; $html = "

Nová žádost o nepřítomnost

" . ($notes ? " ' : '') . "
Zaměstnanec: " . htmlspecialchars($employeeName) . "
Typ: " . htmlspecialchars($leaveType) . "
Období: $dateFrom – $dateTo
Pracovní dny: " . "{$request['total_days']} dní ({$request['total_hours']} hodin)
Poznámka: " . htmlspecialchars($notes) . '
" . (env('APP_URL', '') ? "

Přejít ke schvalování

" : "") . "

Tato zpráva byla automaticky vygenerována systémem.
Datum: " . date('d.m.Y H:i:s') . '

'; $sent = Mailer::send($notifyEmail, $subject, $html); if (!$sent) { error_log("LeaveNotification: Failed to send new request notification to $notifyEmail"); } } }