<!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 - Termin absagen</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>Termin absagen</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
		foreach ($_POST as $key => $value) {
			if(!($value == "" || $key == "submit" || $key == "aktion")){
				if($key == "category"){
					$stmt = $pdo->prepare("SELECT artname FROM anfrageart WHERE artid = ? LIMIT 1");
					$stmt->execute([$value]);
					$row = $stmt->fetch(PDO::FETCH_ASSOC);

					$anfragearttext = $row ? $row["artname"] : null;
					
					
					echo "<tr><td width=100 valign=top class=fett>$key:</td><td>$anfragearttext</td></tr>\n";
					echo"<input type=hidden name='".$key."' value='".$value. "'>\n";
				}else{
					echo "<tr><td width=100 valign=top class=fett>$key:</td><td>$value</td></tr>\n";
					echo"<input type=hidden name='".$key."' value='".$value. "'>\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"){

		// ================== 1) Input ==================
		$vorname    = trim($_POST["Vorname"] ?? "");
		$nachname   = trim($_POST["Name"] ?? "");
		$geburtstag = trim($_POST["Geburtsjahr"] ?? "");
		$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      = trim($_POST["abholung"] ?? "");

		// Geburtstag nur Jahr → auf Datum mappen
		if (preg_match('/^\d{4}$/', $geburtstag)) {
			$geburtstag .= "-01-01";
		}

		// Minimal-Checks
		if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
			die("<h3>Ungültige E-Mail</h3>");
		}
		if (!$geburtstag) {
			die("<h3>Geburtsdatum fehlt</h3>");
		}
		if (!$anforderungart) {
			die("<h3>Kategorie fehlt</h3>");
		}

		// ================== 2) Impfstoff (optional) ==================
		$impfstofftext = null;
		if (!empty($impfstoff)) {
			$stmt = $pdo->prepare("SELECT impfname FROM impfstoff WHERE impfid = ? LIMIT 1");
			$stmt->execute([$impfstoff]);
			$impfstofftext = $stmt->fetchColumn() ?: null;
		}

		// ================== 3) DB-Logik ==================
		try {
			$pdo->beginTransaction();

			// --- Person upsert ---
			// UNIQUE(email, geburtstag) MUSS existieren!
			$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
			$stmt = $pdo->prepare("SELECT person_id FROM persons WHERE email = ? AND geburtstag = ? LIMIT 1");
			$stmt->execute([$email, $geburtstag]);
			$person_id = (int)$stmt->fetchColumn();

			if (!$person_id) {
				throw new Exception("Keine eindeutige Kennung (person_id)");
			}

			// --- Duplikatcheck (7 Tage) ---
			$stmt = $pdo->prepare("
				SELECT 1
				FROM anfragen
				WHERE requester_person_id = ?
				  AND anforderungart = ?
				  AND nachricht = ?
				  AND create_time >= (NOW() - INTERVAL 7 DAY)
				LIMIT 1
			");
			$stmt->execute([$person_id, $anforderungart, $nachricht]);
			$exists = (bool)$stmt->fetchColumn();

			if ($exists) {
				$pdo->rollBack();
				echo "<h3>Doppelte Anfrage</h3><br>
					  Ihre Anfrage wurde schon gespeichert.<br>
					  Bitte warten Sie auf die Verarbeitung.<br><br>";
				header("refresh:15;terminabsagen.php");
				exit;
			}

			// --- Anfrage anlegen ---
			$hashvorher = $vorname . $nachname . $email;
			$hash = md5($hashvorher) . date("YmdHs");

			$stmt = $pdo->prepare("
				INSERT INTO anfragen
					(requester_person_id, anforderungart, medikament1, medikament2,
					 nachricht, hash, create_time, ordnungsid,
					 sicherenachricht, source, created_by_account_id)
				VALUES
					(:pid, :art, :med1, :med2,
					 :nachricht, :hash, NOW(), 3,
					 0, 'mail', NULL)
			");
			$stmt->execute([
				':pid'       => $person_id,
				':art'       => $anforderungart,
				':med1'      => $medikament1,
				':med2'      => $medikament2,
				':nachricht' => $nachricht,
				':hash'      => $hash
			]);

			$anfrageid = (int)$pdo->lastInsertId();

			$pdo->commit();

		} catch (Exception $e) {
			if ($pdo->inTransaction()) $pdo->rollBack();
			die("<h3>Speicherung nicht erfolgreich</h3><br>" . htmlspecialchars($e->getMessage()));
		}

		// ================== 4) Mail + Ausgabe ==================
		try {
			SendMailMessageVorlage($pdo, "3", $anfrageid, "25");
		} catch (Exception $e) {
			// Mailfehler ignorieren oder loggen
		}

		echo "<h3>Nachricht abgeschickt!</h3><br>
			  Sie bekommen eine Bestätigung per E-Mail!<br>
			  Überprüfen Sie auch Ihren Spam-Filter!<br><br>";



	}
}else{

	
?>									
					
					
					<br>
					Stellen Sie wiederholt Anfragen an die Praxis Creutzburg? <br>
					Wollen Sie bis zu sechs Medikamente 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>
					
					<h3>Sie benötigen einen neuen Termin?</h3>
					Sagen Sie Ihren Termin bitte ab. Anschließend können Sie sich selbstständig einen neuen Termin für die Sprechstunde buchen. 		
					Schauen Sie in unserem Online-Kalender nach einem Termin. Dort sind meist auch kurzfristige Termine vorhanden.<br>
					
					<a href="termine.php".php" class="button alt" style="font-size: 18px;background-color: #4CAF50;color:white;">Online-Kalender</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%">

										<div class="12u">
											
											<label for="category">Ich sagen meinen Termin aus dem folgenden Grund ab:</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 terminabsagen = 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%">
																	
										
										<div class="12u">
											<label for="message">Teilen Sie uns mit welchen Termin Sie absagen wollen:</label>
											<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>

	</div>
	</div>

									<div class="row uniform">
											<div class="12u">
												<ul class="actions">
													<li><input type="submit" value="Abschicken" /></li>
													<li><input type="reset" value="Reset" class="alt" /></li>
												</ul>


									</div>
											
										
							
											
											
											
										</div>
									</form>
								
									<hr />
<?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>