diff --git a/admin/anfragen.php b/admin/anfragen.php
index 53aef17..541ecc2 100644
--- a/admin/anfragen.php
+++ b/admin/anfragen.php
@@ -115,8 +115,8 @@ if(!check_worker()){
p.ort, p.plz, p.strasse,
aa.artname
FROM anfragen a
- JOIN persons p ON a.requester_person_id = p.person_id
- JOIN anfrageart aa ON a.anforderungart = aa.artid
+ LEFT JOIN persons p ON a.requester_person_id = p.person_id
+ LEFT JOIN anfrageart aa ON a.anforderungart = aa.artid
";
$params = [];
@@ -201,16 +201,18 @@ if(!check_worker()){
$dateiname = e((string)$row["dateiname"]);
- $anfrageart = e((string)$row["artname"]);
+ // artname kann seit dem LEFT JOIN leer sein.
+ $anfrageart = e((string)($row["artname"] ?? ""));
+ if($anfrageart === ""){
+ $anfrageart = "unbekannte Art";
+ }
$ordnungsid = $row["ordnungsid"];
$ordnungsstring = GetOrdnungsid($ordnungsid);
$WeitereInfos= "";
$sicherenachricht = $row["sicherenachricht"];
- if($sicherenachricht == "1"){
- $WeitereInfos .= "Interne Anfrage
";
- }else{
- $WeitereInfos .= "Mailanfrage
";
- }
+ // Telefonanfragen liessen sicherenachricht NULL und wurden
+ // dadurch faelschlich als Mailanfrage etikettiert.
+ $WeitereInfos .= GetAnfrageHerkunft($row["source"] ?? "mail", $sicherenachricht) . "
";
if($medikamenteins){
$WeitereInfos .= "Medikament1: $medikamenteins
";
}
@@ -244,17 +246,34 @@ if(!check_worker()){
$farbe = GetStatusFarbe($checked);
$checkausgabe = GetStatus($checked);
- $userausgabe = $vorname . " " . $nachname . "
" . $ausgabegeburstag;
- $adresse = $plz . " " . $ort . "
" . $strasse ;
- $adresse = $adresse;
- echo "
$userausgabe $mail Tel:$tel | $adresse | $ordnungsstring - $anfrageart $WeitereInfos | $datumausgabe | $update_time $checkausgabe $ausgabeworker |
+ // Ohne Treffer im LEFT JOIN gibt es keine Personendaten -
+ // typisch fuer Telefonanfragen, deren Anrufer nicht zugeordnet
+ // werden konnte. Frueher fielen diese Zeilen durch den INNER
+ // JOIN komplett aus der Liste.
+ $hatPerson = ($row["vorname"] !== null || $row["nachname"] !== null);
+ if($hatPerson){
+ $userausgabe = $vorname . " " . $nachname . " " . $ausgabegeburstag;
+ $adresse = $plz . " " . $ort . " " . $strasse ;
+ $kontakt = "$mail Tel:$tel";
+ }else{
+ $userausgabe = "Kein Patient zugeordnet";
+ $adresse = "-";
+ $kontakt = "Kontaktdaten siehe Nachricht";
+ }
+ echo " |
$userausgabe $kontakt | $adresse | $ordnungsstring - $anfrageart $WeitereInfos | $datumausgabe | $update_time $checkausgabe $ausgabeworker | ";
+ // "Antworten" verschickt eine Mailvorlage. Ohne zugeordnete Person
+ // gibt es keine Adresse, der Knopf wuerde ins Leere laufen.
+ if($hatPerson){
+ echo "
-
+ ";
+ }
+ echo "
";
+ include(__DIR__ . "/templates/footer.inc.php");
+ exit;
+ }
+
// Ticket und Antwort ansehen.
$abholort = $row["abholort"] ?? null;
$sicherenachricht = $row["sicherenachricht"] ?? null;
@@ -858,7 +895,7 @@ if(!check_worker()){
$stmt = $pdo->prepare("
SELECT *
FROM anfragen a
- INNER JOIN persons p ON p.person_id = a.requester_person_id
+ LEFT JOIN persons p ON p.person_id = a.requester_person_id
WHERE a.anfrageid = :anfrageid
LIMIT 1
");
@@ -875,16 +912,22 @@ if(!check_worker()){
$vorname = $rowtime["vorname"];
$nachname = $rowtime["nachname"];
- $userausgabe = $vorname . " " . $nachname;
+ // Telefonanfragen ohne erkannten Anrufer haben keine Person.
+ $hatPerson = ($vorname !== null || $nachname !== null);
+ $userausgabe = $hatPerson ? ($vorname . " " . $nachname) : "Kein Patient zugeordnet";
echo "Name: $userausgabe Anforderung: $impfstofftext ";
echo "Wollen Sie wirklich diesen Eintrag löschen? Dieses ist nicht rückgängig zu machen! Dann bestätigen Sie die Abmeldung: ";
- echo " ";
+ echo " ";
+ }
echo " |