diff --git a/admin/anfragen.php b/admin/anfragen.php index 2bc0b6c..f36d670 100644 --- a/admin/anfragen.php +++ b/admin/anfragen.php @@ -252,14 +252,20 @@ if(!check_worker()){ // werden konnte. Frueher fielen diese Zeilen durch den INNER // JOIN komplett aus der Liste. $hatPerson = ($row["vorname"] !== null || $row["nachname"] !== null); + // Die Anlage haelt die Rufnummer des Anrufers getrennt von den + // Stammdaten - sie kann von der hinterlegten abweichen. + $anruferzeile = GetAnruferZeile($row["source"] ?? "mail", $row["anrufernummer"] ?? null); if($hatPerson){ $userausgabe = $vorname . " " . $nachname . "
" . $ausgabegeburstag; $adresse = $plz . " " . $ort . "
" . $strasse ; $kontakt = "$mail
Tel:$tel"; + if($anruferzeile !== ""){ + $kontakt .= "
" . $anruferzeile; + } }else{ $userausgabe = "Kein Patient zugeordnet"; $adresse = "-"; - $kontakt = "Kontaktdaten siehe Nachricht"; + $kontakt = ($anruferzeile !== "") ? $anruferzeile : "Kontaktdaten siehe Nachricht"; } echo "$userausgabe
$kontakt$adresse$ordnungsstring - $anfrageart
$WeitereInfos$datumausgabe$update_time
$checkausgabe
$ausgabeworker"; // "Antworten" verschickt eine Mailvorlage. Ohne zugeordnete Person @@ -354,6 +360,7 @@ if(!check_worker()){ echo "Bitte telefonisch beantworten und die Anfrage anschliessend "; echo "ueber Telefonisch beantwortet abschliessen."; echo ""; + echo GetAnruferZeile($row["source"] ?? "mail", $row["anrufernummer"] ?? null); echo GetSprachnachrichtHinweis($row["source"] ?? "mail"); echo "Nachricht:
" . nl2br(e((string)$row["nachricht"])) . "

"; ZuruckzumAnfrageOverView(); @@ -402,6 +409,7 @@ if(!check_worker()){ $antworttext = $row["antworttext"] ?? null; $WeitereInfos = ""; + $WeitereInfos .= GetAnruferZeile($row["source"] ?? "mail", $row["anrufernummer"] ?? null); $WeitereInfos .= GetSprachnachrichtHinweis($row["source"] ?? "mail"); if ($medikamenteins) $WeitereInfos .= "Medikament1: $medikamenteins
"; if ($medikamentzwei) $WeitereInfos .= "Medikament2: $medikamentzwei
"; @@ -1085,6 +1093,7 @@ if(!check_worker()){ a.sicherenachricht, a.abholort, a.source, + a.anrufernummer, p.person_id, p.vorname, @@ -1141,6 +1150,7 @@ if(!check_worker()){ /* --- Anzeige-Strings --- */ $WeitereInfos = ""; + $WeitereInfos .= GetAnruferZeile($row["source"] ?? "mail", $row["anrufernummer"] ?? null); $WeitereInfos .= GetSprachnachrichtHinweis($row["source"] ?? "mail"); if (!empty($medikamenteins)) { $WeitereInfos .= "Medikament1: " . htmlspecialchars($medikamenteins, ENT_QUOTES, 'UTF-8') . "
"; @@ -1333,6 +1343,7 @@ if(!check_worker()){ a.medikament5, a.medikament6, a.source, + a.anrufernummer, aa.artname AS anfrageart_name, @@ -1393,6 +1404,7 @@ if(!check_worker()){ $ordnungsstring = GetOrdnungsid($ordnungsid); $WeitereInfos = ""; + $WeitereInfos .= GetAnruferZeile($row["source"] ?? "mail", $row["anrufernummer"] ?? null); $WeitereInfos .= GetSprachnachrichtHinweis($row["source"] ?? "mail"); if (!empty($med1)) $WeitereInfos .= "Medikament1: " . htmlspecialchars($med1, ENT_QUOTES, 'UTF-8') . "
"; if (!empty($med2)) $WeitereInfos .= "Medikament2: " . htmlspecialchars($med2, ENT_QUOTES, 'UTF-8') . "
"; diff --git a/inc/functions.inc.php b/inc/functions.inc.php index 98e024c..a0a6269 100644 --- a/inc/functions.inc.php +++ b/inc/functions.inc.php @@ -646,10 +646,52 @@ function GetSprachnachrichtHinweis($source){ return ""; } return "Transkript der Sprachnachricht - Aufnahme anhören: " - . "ki-praxis.praxis.local" + . "ki-praxis.praxis.local/anfragen" . " (nur im Praxisnetz)
"; } +/** + * Telefonnummer als anklickbaren tel:-Link ausgeben. + * + * Der Link vertraegt nur Ziffern und ein fuehrendes Plus; Klammern, + * Leerzeichen und Bindestriche fliegen fuer das Ziel raus, angezeigt wird + * die Nummer unveraendert. Nummern ohne jede Ziffer - etwa "unterdrueckt" + * bei unterdrueckter Rufnummer - werden nur als Text ausgegeben. + * Erwartet den Rohwert aus der Datenbank und maskiert selbst. + */ +function GetTelefonLink($nummer){ + $nummer = trim((string)$nummer); + if($nummer === ""){ + return ""; + } + $ziel = preg_replace('/[^0-9]/', '', $nummer); + if($ziel === ""){ + return htmlspecialchars($nummer, ENT_QUOTES, 'UTF-8'); + } + if(substr($nummer, 0, 1) === "+"){ + $ziel = "+" . $ziel; + } + return "" + . htmlspecialchars($nummer, ENT_QUOTES, 'UTF-8') . ""; +} + +/** + * Rufnummer des Anrufers als beschriftete Zeile. + * + * anfragen.anrufernummer fuellt die Telefonanlage; steht dort nichts, gibt + * es keine Zeile. Fuer alle Herkuenfte ausser "telefon" leer. + */ +function GetAnruferZeile($source, $anrufernummer){ + if($source != "telefon"){ + return ""; + } + $link = GetTelefonLink($anrufernummer); + if($link === ""){ + return ""; + } + return "Anruf von: " . $link . "
"; +} + function GetPatientenartName($Patientenart){ if($Patientenart == "0"){ $impfenangebot = "Neupatient";