<!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>
