572 lines
17 KiB
PHP
572 lines
17 KiB
PHP
<!DOCTYPE HTML>
|
|
<!--
|
|
Alpha by HTML5 UP
|
|
html5up.net | @n33co
|
|
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
|
-->
|
|
<html>
|
|
<head>
|
|
<?php
|
|
|
|
include('header.php');
|
|
|
|
?>
|
|
<title>Praxis Creutzburg - Rezepte anfordern</title>
|
|
<link rel="stylesheet" href="css/formulare.css" />
|
|
</head>
|
|
<body >
|
|
|
|
<!-- Header -->
|
|
<header id="header" class="../skel-layers-fixed">
|
|
|
|
|
|
<?php
|
|
|
|
include('menu.php');
|
|
include_once("inc/config.inc.php");
|
|
include_once("inc/functions.inc.php");
|
|
include_once('inc/functions.impfen.inc.php');
|
|
include_once('inc/functions.formulare.inc.php');
|
|
|
|
?>
|
|
</header>
|
|
|
|
|
|
|
|
|
|
|
|
<!-- Main -->
|
|
<section id="main" class="container">
|
|
<?php
|
|
echo showHeaderpraxis();
|
|
?>
|
|
|
|
|
|
|
|
<section class="box special">
|
|
<h2>Rezept und Formulare anfordern</h2>
|
|
|
|
<?php
|
|
|
|
if(isset($_POST["aktion"])){
|
|
|
|
if($_POST["aktion"] == "1"){
|
|
|
|
|
|
echo '<h4>Kontrollieren Sie Ihre Angaben!</h4><br>';
|
|
echo '<form action="'. $_SERVER['PHP_SELF'] .'" method=POST>';
|
|
echo '<table border="0">';
|
|
// Schleife durch Clemens 15.10.2018 - aktualisiert 01.02.2026
|
|
foreach ($_POST as $key => $value) {
|
|
|
|
if ($value === "" || $key === "submit" || $key === "aktion") {
|
|
continue;
|
|
}
|
|
|
|
if ($key === "category") {
|
|
|
|
$stmt = $pdo->prepare("
|
|
SELECT artname
|
|
FROM anfrageart
|
|
WHERE artid = :artid
|
|
LIMIT 1
|
|
");
|
|
$stmt->execute([
|
|
':artid' => $value
|
|
]);
|
|
|
|
$rowimpf = $stmt->fetch(PDO::FETCH_ASSOC);
|
|
$anfragearttext = $rowimpf['artname'] ?? '';
|
|
|
|
echo "<tr>
|
|
<td width='100' valign='top' class='fett'>{$key}:</td>
|
|
<td>" . htmlspecialchars($anfragearttext, ENT_QUOTES, 'UTF-8') . "</td>
|
|
</tr>\n";
|
|
|
|
echo "<input type='hidden' name='{$key}' value='" . htmlspecialchars($value, ENT_QUOTES, 'UTF-8') . "'>\n";
|
|
|
|
} else {
|
|
|
|
echo "<tr>
|
|
<td width='100' valign='top' class='fett'>{$key}:</td>
|
|
<td>" . htmlspecialchars($value, ENT_QUOTES, 'UTF-8') . "</td>
|
|
</tr>\n";
|
|
|
|
echo "<input type='hidden' name='{$key}' value='" . htmlspecialchars($value, ENT_QUOTES, 'UTF-8') . "'>\n";
|
|
}
|
|
}
|
|
|
|
|
|
echo '</table>';
|
|
echo '<input type="hidden" name="aktion" value="2" />';
|
|
echo '<input type="submit" value="Anfrage abschicken" />';
|
|
echo '</form >';
|
|
|
|
|
|
}else if($_POST["aktion"] == "2"){
|
|
|
|
$vorname = trim($_POST["Vorname"] ?? "");
|
|
$nachname = trim($_POST["Name"] ?? "");
|
|
$geburtstag = trim($_POST["Geburtsjahr"] ?? ""); // muss später YYYY-MM-DD sein
|
|
$email = trim($_POST["Email"] ?? "");
|
|
$tele = trim($_POST["Tel"] ?? "");
|
|
$plz = trim($_POST["plz"] ?? "");
|
|
$ort = trim($_POST["ort"] ?? "");
|
|
$strasse = trim($_POST["strasse"] ?? "");
|
|
|
|
$medikament1 = trim($_POST["Medikament1"] ?? "");
|
|
$medikament2 = trim($_POST["Medikament2"] ?? "");
|
|
$nachricht = trim($_POST["message"] ?? "");
|
|
$anforderungart = trim($_POST["category"] ?? "");
|
|
|
|
$abholung = $_POST["abholung"] ?? "Praxis";
|
|
|
|
|
|
if($abholung == "Praxis"){
|
|
$abholungnr="1";
|
|
}elseif($abholung == "Apotheke"){
|
|
$abholungnr="2";
|
|
}else{
|
|
$abholung == "Praxis";
|
|
$abholungnr="1";
|
|
}
|
|
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
|
|
die("Ungültige E-Mail");
|
|
}
|
|
if (!$geburtstag) {
|
|
die("Geburtsdatum fehlt");
|
|
}
|
|
$karte = $_POST["karte"] ?? "";
|
|
if ($karte === "Privat") {
|
|
$karte = "Privatrezept (Selbstzahler)";
|
|
}
|
|
|
|
$nachricht = "Karte eingelesen: " . $karte . "<br>"."Abholungsort: " . $abholung . "<br>". $nachricht ;
|
|
|
|
// Impfstoff
|
|
//$impfstoff = $rowtime["impfstoff"];
|
|
$impfstofftext = null;
|
|
if (!empty($impfstoff)) {
|
|
$pdo = $pdo->prepare("SELECT impfname FROM impfstoff WHERE impfid = ?");
|
|
$pdo->execute([$impfstoff]);
|
|
$impfstofftext = $pdo->fetchColumn();
|
|
}
|
|
|
|
|
|
$sendmail = false;
|
|
|
|
$pdo->beginTransaction();
|
|
|
|
$stmt = $pdo->prepare("
|
|
INSERT INTO persons (vorname, nachname, email, geburtstag, tele, ort, plz, strasse)
|
|
VALUES (:vorname, :nachname, :email, :geburtstag, :tele, :ort, :plz, :strasse)
|
|
ON DUPLICATE KEY UPDATE
|
|
vorname = VALUES(vorname),
|
|
nachname = VALUES(nachname),
|
|
tele = VALUES(tele),
|
|
ort = VALUES(ort),
|
|
plz = VALUES(plz),
|
|
strasse = VALUES(strasse),
|
|
updated_at = CURRENT_TIMESTAMP
|
|
");
|
|
$stmt->execute([
|
|
':vorname' => $vorname,
|
|
':nachname' => $nachname,
|
|
':email' => $email,
|
|
':geburtstag' => $geburtstag,
|
|
':tele' => $tele,
|
|
':ort' => $ort,
|
|
':plz' => $plz,
|
|
':strasse' => $strasse
|
|
]);
|
|
|
|
// person_id holen (weil ON DUPLICATE nicht zuverlässig lastInsertId liefert)
|
|
$stmt = $pdo->prepare("SELECT person_id FROM persons WHERE email = ? AND geburtstag = ?");
|
|
$stmt->execute([$email, $geburtstag]);
|
|
$person_id = (int)$stmt->fetchColumn();
|
|
|
|
if (!$person_id) {
|
|
$pdo->rollBack();
|
|
die("Keine eindeutige Kennung (person_id)");
|
|
}else{
|
|
|
|
$hashvorher = $vorname . $nachname . $Email;
|
|
$hash = md5($hashvorher) . date("YmdHs");
|
|
|
|
|
|
$sendmail = true;
|
|
|
|
$med = [
|
|
1 => $medikament1,
|
|
2 => $medikament2,
|
|
3 => '',
|
|
4 => '',
|
|
5 => '',
|
|
6 => ''
|
|
];
|
|
|
|
$exists = false;
|
|
try {
|
|
$stmtDup = $pdo->prepare("
|
|
SELECT *
|
|
FROM anfragen
|
|
WHERE requester_person_id = :pid
|
|
AND anforderungart = :art
|
|
AND nachricht = :nachricht
|
|
AND create_time >= DATE_SUB(NOW(), INTERVAL 7 DAY)
|
|
");
|
|
$stmtDup->execute([
|
|
':pid' => $person_id,
|
|
':art' => $anforderungart,
|
|
':nachricht' => $nachricht
|
|
]);
|
|
$rows = $stmtDup->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
$medFieldAliases = [
|
|
1 => ['med1', 'medikament1', 'med_1'],
|
|
2 => ['med2', 'medikament2', 'med_2'],
|
|
3 => ['med3', 'medikament3', 'med_3'],
|
|
4 => ['med4', 'medikament4', 'med_4'],
|
|
5 => ['med5', 'medikament5', 'med_5'],
|
|
6 => ['med6', 'medikament6', 'med_6']
|
|
];
|
|
|
|
foreach ($rows as $row) {
|
|
$allMedsEqual = true;
|
|
for ($i = 1; $i <= 6; $i++) {
|
|
$dbValue = '';
|
|
foreach ($medFieldAliases[$i] as $fieldName) {
|
|
if (array_key_exists($fieldName, $row)) {
|
|
$dbValue = trim((string)($row[$fieldName] ?? ''));
|
|
break;
|
|
}
|
|
}
|
|
if ($dbValue !== $med[$i]) {
|
|
$allMedsEqual = false;
|
|
break;
|
|
}
|
|
}
|
|
if ($allMedsEqual) {
|
|
$exists = true;
|
|
break;
|
|
}
|
|
}
|
|
} catch (Throwable $t) {
|
|
error_log('Duplicate check failed in rezepte.php: ' . $t->getMessage());
|
|
$exists = false;
|
|
}
|
|
|
|
if (!$exists) {
|
|
$stmt = $pdo->prepare("
|
|
INSERT INTO anfragen
|
|
(requester_person_id, anforderungart, medikament1, medikament2,
|
|
nachricht, hash, create_time, ordnungsid, abholort, sicherenachricht,
|
|
source, created_by_account_id)
|
|
VALUES
|
|
(?, ?, ?, ?, ?, ?, NOW(), '1', ?, '0', 'mail', NULL)
|
|
");
|
|
$stmt->execute([
|
|
$person_id,
|
|
$anforderungart,
|
|
$medikament1,
|
|
$medikament2,
|
|
$nachricht,
|
|
$hash,
|
|
$abholungnr
|
|
]);
|
|
|
|
$anfrageid = (int)$pdo->lastInsertId();
|
|
|
|
$pdo->commit();
|
|
|
|
|
|
SendMailMessageVorlage($pdo, "3", $anfrageid , "18" );
|
|
|
|
|
|
|
|
echo "<h3>Nachricht abgeschickt!</h3><br>Sie bekommen eine Bestätigung per E-Mail!<br>Überprüfen Sie auch Ihren Spam-Filter!<br><br>Sie werden gleich weitergeleitet.<br> ";
|
|
header("refresh:15;rezepte.php");
|
|
|
|
|
|
}else{
|
|
if ($pdo->inTransaction()) {
|
|
$pdo->rollBack();
|
|
}
|
|
echo "<h3>Doppelte Anfrage</h3><br>Ihre Anfrage wurde schon in unserem System gespeichert.<br>Sie haben die identische Anfrage schon in den letzten sieben Tagen eingereicht.<br>Bitte warten Sie auf die Verarbeitung Ihrer Anfrage.<br><br>";
|
|
header("refresh:15;rezepte.php");
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
}else{
|
|
|
|
|
|
?>
|
|
|
|
|
|
<p>Wiederholungsrezepte und Formulare anfordern, nur nach ärztlicher Absprache und Kontakt. Kassenleistungen sind an die gesetzlichen Regelungen gebunden. Fragen Sie Ihre Krankenkasse.<br>
|
|
<br>Benutzen Sie eine Email-Adresse auf die Sie direkt zugreifen können. Bitte bestätigen Sie dann den Link in der Email. So können wir Ihnen im Verlauf den Stand der Bearbeitung Ihrer Anfrage sicher mitteilen.
|
|
<br><br><br>
|
|
Stellen Sie wiederholt Anfragen an die Praxis Creutzburg? <br>
|
|
Wollen Sie bis zu sechs Medikamente gleichzeitig beantragen?<br>
|
|
Benötigen Sie ein längeres Textfeld?<br>
|
|
|
|
<br>Dann nutzen Sie auch unseren <a href="https://www.praxis-creutzburg.de/intern/">Internen Bereich</a> für Patienten.</p><br>
|
|
|
|
<h4>Nutzen Sie unsere neue Datei-Upload-Funktion! </h4>
|
|
Sie können damit dem Praxis-Team Unterlagen per PDF zur Verfügung stellen.<br>
|
|
|
|
Den Upload finden Sie hier: <a href="https://praxis-creutzburg.de/dateiupload.php">Datei-Upload</a><br>
|
|
</header>
|
|
|
|
<div class="row">
|
|
<div class="12u">
|
|
|
|
<!-- Form -->
|
|
<section class="box">
|
|
|
|
|
|
<?php
|
|
|
|
// Urlaubsabfrage
|
|
$today = date("Y-m-d");
|
|
|
|
$stmt = $pdo->prepare("
|
|
SELECT urlaubid
|
|
FROM urlaub
|
|
WHERE start <= ?
|
|
AND ende >= ?
|
|
LIMIT 1
|
|
");
|
|
$stmt->execute([$today, $today]);
|
|
|
|
$urlaubid = $stmt->fetchColumn();
|
|
|
|
if (!$urlaubid) {
|
|
?>
|
|
<h3>Formular bitte ausfüllen und abschicken</h3>
|
|
<p>Gehen Sie nach unten zum Formular und füllen Sie es (wie gewohnt) aus.</p>
|
|
|
|
|
|
<?php echo '<form action="'. $_SERVER['PHP_SELF'] .'" method=POST>';
|
|
echo '<input type="hidden" name="aktion" id="aktion" value="1" />';
|
|
?>
|
|
<div class="row uniform 50%">
|
|
<?php
|
|
echo ShowFormularFragenBenutzer();
|
|
?>
|
|
|
|
|
|
</div>
|
|
<div class="row uniform 50%">
|
|
<br><br>
|
|
<div class="12u">
|
|
|
|
<label for="category">Ich benötige ein Rezept für:</label>
|
|
<div class="select-wrapper">
|
|
<select name="category" id="category" required >
|
|
<option value=""> Bitte wählen Sie aus</option>
|
|
|
|
<?php
|
|
$stmt = $pdo->prepare("
|
|
SELECT artid, artname
|
|
FROM anfrageart
|
|
WHERE rezept = 1
|
|
");
|
|
$stmt->execute();
|
|
|
|
while ($rowimpf = $stmt->fetch(PDO::FETCH_ASSOC)) {
|
|
$artname = $rowimpf["artname"];
|
|
$artid = $rowimpf["artid"];
|
|
?>
|
|
<option value="<?php echo htmlspecialchars($artid, ENT_QUOTES, 'UTF-8'); ?>">
|
|
<?php echo htmlspecialchars($artname, ENT_QUOTES, 'UTF-8'); ?>
|
|
</option>
|
|
<?php
|
|
}
|
|
?>
|
|
|
|
</select>
|
|
|
|
<div id="AstraInfobox"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row uniform 50%">
|
|
<br><br>
|
|
<div class="12u">
|
|
<?php
|
|
$curdate = date('d.m.Y', time());
|
|
$curyear = date('Y', time());
|
|
$curMonth = date("m", time());
|
|
$curQuarter = ceil($curMonth/3);
|
|
$current_quarter = ceil(date('n') / 3);
|
|
$first_date = date('d.m.Y', strtotime(date('Y') . '-' . (($current_quarter * 3) - 2) . '-1'));
|
|
$last_date = date('t.m.Y', strtotime(date('Y') . '-' . (($current_quarter * 3)) . '-1'));
|
|
|
|
?>
|
|
<label for="category">Ich habe dieses Quartal schon meine Gesundheitskarte in der Praxis einlesen lassen:</label>
|
|
Aktuell befinden wir uns im <?php echo $curQuarter;?>. Quartal von <?php echo $curyear;?>. <br>
|
|
Dieses geht vom <b><?php echo $first_date;?> bis <?php echo $last_date;?></b> <br>
|
|
Heute ist der <?php echo $curdate ;?>.<br>Diese Angaben werden bei der Bearbeitung von unserem Praxisteam überprüft.<br>
|
|
War die Chipkarte dieses Quartal noch nicht eingelesen, ist die Abholung nur in der Praxis möglich.
|
|
<div class="select-wrapper">
|
|
<select name="karte" id="karte" required onchange="checkkarte()">
|
|
<option value=""> Bitte wählen Sie aus</option>
|
|
<option value="Ja">Ja</option>
|
|
<option value="Nein">Nein</option>
|
|
<option value="Privat">Privatrezept (Selbstzahler)</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row uniform 50%">
|
|
<br><br>
|
|
<div class="12u">
|
|
|
|
<label for="abholung">Ich möchte das Rezept hier abholen:</label>
|
|
<div class="select-wrapper">
|
|
<select name="abholung" id="abholung" required onchange="checkkarte()">
|
|
<option value=""> Bitte wählen Sie aus</option>
|
|
<option value="Praxis">Praxis Creutzburg</option>
|
|
<option value="Apotheke">Apotheke</option>
|
|
</select>
|
|
</div>
|
|
<input type="hidden" name="abholungh" value="" />
|
|
</div>
|
|
</div>
|
|
|
|
<br><br>
|
|
<div class="row uniform 50%">
|
|
<div class="6u 12u(3)">
|
|
<input type="text"name="Medikament1" size=2 maxlength="80" placeholder="Medikament, Wirkstoff, Packungsgröße" maxlength="150" />
|
|
</div>
|
|
<div class="6u 12u(3)">
|
|
<input type="text"name="Medikament2" size=2 maxlength="80" placeholder="Medikament, Wirkstoff, Packungsgröße" maxlength="150" />
|
|
</div>
|
|
|
|
|
|
<div class="12u">
|
|
<textarea name="message" id="message" placeholder="Ihre Nachricht/Bemerkung" rows="6" maxlength="150"></textarea>
|
|
</div>
|
|
</div>
|
|
<div class="row uniform">
|
|
<div class="12u">
|
|
<br>
|
|
Bedenken Sie bitte, dass wir einmal im Quartal Ihre Chipkarte benötigen. Ohne Chipkarte sind seit 1.1.2016 keine Kassendienstleistungen mehr möglich. Kassenleistungen sind an die gesetzlichen Regelungen gebunden. Fragen Sie Ihre Krankenkasse.<br>
|
|
Ihre Daten werden HTTPS-verschlüsselt an unser System übertragen. Sie erhalten die Antwort per E-Mail mit TLS-Verschlüsselung. Mit Absenden Ihrer Anfrage stimmen Sie diesen Bedingungen zu.<br>
|
|
<br>Wünschen Sie eine vollständige HTTPS-verschlüsselte Kommunikation mit dem Praxisteam, dann nutzen Sie unseren <a href="https://www.praxis-creutzburg.de/intern/">Internen Bereich</a> für Patienten.<br>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row uniform">
|
|
<div class="12u">
|
|
<ul class="actions">
|
|
<li><input type="submit" value="Abschicken" onclick="checkkarte()" /></li>
|
|
<li><input type="reset" value="Reset" class="alt" /></li>
|
|
</ul>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
</form>
|
|
|
|
<hr />
|
|
|
|
<script>
|
|
function checkkarte(){
|
|
|
|
if(document.getElementById('karte').value == "Nein" ) {
|
|
document.getElementById('abholung').value = "Praxis"
|
|
}
|
|
|
|
}
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<?php }else{
|
|
echo "<h2>Praxis im Urlaub</h2>";
|
|
echo "Wir befinden uns aktuell im Urlaub.<br>Wenden Sie sich an unsere Vertretung oder warten Sie bis nach unserem Urlaub mit Ihrer Anfrage.<br><br>";
|
|
|
|
$today = date("Y-m-d");
|
|
|
|
$stmt = $pdo->prepare("
|
|
SELECT ende, vertretung, vertretertelefon, vertreteradresse, vertreterurl
|
|
FROM urlaub
|
|
WHERE start <= :today
|
|
AND ende >= :today
|
|
ORDER BY ende DESC
|
|
LIMIT 1
|
|
");
|
|
$stmt->execute([':today' => $today]);
|
|
|
|
$row = $stmt->fetch(); // liefert Array oder false
|
|
|
|
if ($row) {
|
|
$vertreter = $row["vertretung"] ?? null;
|
|
$vertretertelefon = $row["vertretertelefon"] ?? null;
|
|
$vertreteradresse = $row["vertreteradresse"] ?? null;
|
|
$vertreterurl = $row["vertreterurl"] ?? null;
|
|
$ende = $row["ende"] ?? null;
|
|
|
|
if ($ende) {
|
|
$endeausgabe = date("d.m.Y", strtotime("+1 day", strtotime($ende)));
|
|
} else {
|
|
$endeausgabe = null;
|
|
}
|
|
|
|
if (!empty($vertreter)) {
|
|
echo "Unsere Vertretung: " . htmlspecialchars($vertreter, ENT_QUOTES, 'UTF-8') . "<br>";
|
|
}
|
|
if (!empty($vertreterurl)) {
|
|
// optional: URL escapen/validieren
|
|
echo "Webseite Vertretung: " . htmlspecialchars($vertreterurl, ENT_QUOTES, 'UTF-8') . "<br>";
|
|
}
|
|
if (!empty($vertretertelefon)) {
|
|
echo "Telefonischer Kontakt Vertretung: " . htmlspecialchars($vertretertelefon, ENT_QUOTES, 'UTF-8') . "<br>";
|
|
}
|
|
if (!empty($vertreteradresse)) {
|
|
echo "Adresse Vertretung: " . htmlspecialchars($vertreteradresse, ENT_QUOTES, 'UTF-8') . "<br>";
|
|
}
|
|
|
|
if ($endeausgabe) {
|
|
echo "<br>Wir stehen Ihnen ab dem " . htmlspecialchars($endeausgabe, ENT_QUOTES, 'UTF-8') . " wieder zur Verfügung.<br><br><br>";
|
|
}
|
|
}
|
|
?>
|
|
<form action="index.php" method=POST>
|
|
<input type=submit class=button value="Zurück">
|
|
</form>
|
|
<?php
|
|
}
|
|
|
|
}
|
|
?>
|
|
|
|
</div>
|
|
</div>
|
|
</section>
|
|
<?php
|
|
|
|
include_once('footer.php');
|
|
|
|
?>
|
|
|
|
|
|
|
|
</body>
|
|
</html>
|