39 lines
1.7 KiB
PHP
39 lines
1.7 KiB
PHP
<?php
|
|
|
|
require_once __DIR__ . '/app/database.php';
|
|
require_once __DIR__ . '/app/legal-requests.php';
|
|
|
|
$token = (string)($_GET['token'] ?? '');
|
|
$request = app_fetch_legal_request_by_token(app_db_pdo(), $token);
|
|
if ($request === null) {
|
|
http_response_code(404);
|
|
exit('Bestätigung nicht gefunden.');
|
|
}
|
|
|
|
$requestMetadata = json_decode((string)($request['metadata_json'] ?? ''), true);
|
|
$input = [
|
|
'request_type' => $request['request_type'],
|
|
'requester_name' => $request['requester_name'],
|
|
'requester_email' => $request['requester_email'],
|
|
'contract_reference' => $request['contract_reference'],
|
|
'request_reason' => $request['request_reason'],
|
|
'cancellation_kind' => is_array($requestMetadata) && ($requestMetadata['cancellation_kind'] ?? null) === 'extraordinary' ? 'extraordinary' : 'ordinary',
|
|
];
|
|
$processing = [
|
|
'effective_end' => is_array($requestMetadata) && !empty($requestMetadata['effective_end'])
|
|
? (string)$requestMetadata['effective_end']
|
|
: ($request['requested_end'] === 'earliest' ? 'zum frühestmöglichen Zeitpunkt' : (string)($request['requested_end'] ?? '')),
|
|
'processing_note' => 'Die Erklärung wurde unter dem angegebenen Zeitpunkt gespeichert.',
|
|
];
|
|
$stored = ['reference_code' => $request['reference_code'], 'received_at' => $request['received_at']];
|
|
$text = app_legal_request_confirmation_text($input, $stored, $processing);
|
|
|
|
if (!headers_sent()) {
|
|
header('Referrer-Policy: no-referrer');
|
|
header('Content-Type: text/plain; charset=UTF-8');
|
|
if (isset($_GET['download'])) {
|
|
header('Content-Disposition: attachment; filename="kaffeeliste-bestaetigung-' . $request['reference_code'] . '.txt"');
|
|
}
|
|
}
|
|
echo $text;
|