survey/2022-01-12_index.php
2023-03-14 14:47:50 +01:00

647 lines
21 KiB
PHP

<?php
if(!isset($_SESSION)) { session_start(); }
include_once 'classes/TestProjektSmarty.class.php';
require_once("config.inc.php");
require_once("func_get_sitzplatz.php");
require_once("func_get_lfd_haushalt.php");
require_once("func_get_parameter.php");
require_once("func_kritische_haushalte.php");
require_once("func_doppelanmelder.php");
require_once("config/func_cryption.php");
require_once("func_generate_qr_by_name.php");
$smarty = new Smarty();
$templatename = substr(basename($_SERVER['PHP_SELF']), 0, -3) . "html";
require_once "language/german.inc.php";
$action = $_GET['action'];
if ($action == '') {
}
if ($action == 'terminwahl') {
# Gespeicherte Termine
$anmeldestopp = get_parameter(3);
$gesperrt = get_parameter(4);
$query1 = "SELECT tid, date_format(datum, '%d.%m.%Y') datum, date_format(datum, '%H:%i') zeit, hinweis, loginstop, date_format(DATE_SUB(datum, INTERVAL $anmeldestopp HOUR), '%Y%m%d%H%i%s') Anmeldestopp
FROM gd_termine
WHERE datum > now()
ORDER BY date_format(datum, '%Y%m%d') ASC";
$result1 = $db->query($query1) or die("Cannot execute query1");
while ($row1 = $result1->fetch_array()) {
$query_anzgesp = $db->query("SELECT count(distinct lfd_haushalt) Anz
FROM gd_buchung
WHERE tid = $row1[tid]
");
$row_anzgesp = $query_anzgesp->fetch_array();
#04.07.2021 | 1 | 0
#11.07.2021 | 1 | 2
#18.07.2021 | 1 | 3
#25.07.2021 | 1 | 4
// Überprüfung, ob die Anmeldefrist überschritten ist
$heute = mktime(date("H"), date("i"), date("s"), date("m"), date("d"), date("Y")); // heutiges Datum
$heute_format = date("YmdHis", $heute); // ISO-8601 Format wie in der Datenbank: Formatierung f&uuml;r Vergleiche erforderlich
$a = strtotime ($heute_format); //Umrechnung des Fristgrenztages in eine Zahl
$b = strtotime ($row1['Anmeldestopp']); // Umrechnung des Enddatums in eine Zahl
#echo "$row1[datum] | $a | $b<br>";
if(($row_anzgesp['Anz'] >= $gesperrt) or ($row1['loginstop'] != '0000-00-00 00:00:00') or ($b<=$a)){
$hinweis_gepserrt =1;
}else{
$hinweis_gepserrt =0;
}
if(!isset($zaehler) or $zaehler == 1){
$zaehler = 0;
}else{
$zaehler = 1;
}
$row1['hinweis_gepserrt'] = $hinweis_gepserrt;
$row1['zaehler'] = $zaehler;
$table_data1[] = $row1;
}
$smarty->assign('table_data1', $table_data1);
#
for($i=0;$i<count($_SESSION["termin"]);$i++){
$smarty->assign('checked_'.$_SESSION["termin"][$i], "1");
}
#Session wird zurückgesetzt, da Sie nach dem Auslesen wieder durch POST gesetzt wird
unset($_SESSION["termin"]);
#echo "<pre>";
#print_r($table_data1);
#echo "</pre>";
## Fehlerhandling
$error1 = $_GET['error1'];
if($error1 == 1){
$smarty->assign('termin_error', 1);
if($error1 == 1){
$smarty->assign('termin_error_text', 'Sie müssen einen Termin auswählen für den nächsten Schritt');
}
}
}
if ($action == 'hausstand') {
if(isset($_POST["termin"])){
$termin = $_POST["termin"];
$_SESSION["termin"] = $termin;
}else{
if(isset($_SESSION["termin"])){
$termin = $_SESSION["termin"];
}else{
$error1=1;
$error=true;
}
}
if(isset($error)){
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?action=terminwahl&error1=$error1\">";
exit;
}
$smarty->assign('hausstand_value_nachname1', $_SESSION["nachname1"]);
$smarty->assign('hausstand_value_vorname1', $_SESSION["vorname1"]);
$smarty->assign('hausstand_value_nachname2', $_SESSION["nachname2"]);
$smarty->assign('hausstand_value_vorname2', $_SESSION["vorname2"]);
$smarty->assign('hausstand_value_nachname3', $_SESSION["nachname3"]);
$smarty->assign('hausstand_value_vorname3', $_SESSION["vorname3"]);
$smarty->assign('hausstand_value_nachname4', $_SESSION["nachname4"]);
$smarty->assign('hausstand_value_vorname4', $_SESSION["vorname4"]);
$smarty->assign('hausstand_value_nachname5', $_SESSION["nachname5"]);
$smarty->assign('hausstand_value_mail', $_SESSION["mail"]);
$smarty->assign('hausstand_value_vorname5', $_SESSION["vorname5"]);
## Fehlerhandling
$error1 = $_GET['error1'];
if($error1 == 1){
$smarty->assign('hausstand_error', 1);
if($error1 == 1){
$smarty->assign('hausstand_error_text', 'Sie müssen zumindest eine Person erfassen.');
}
}
}
if ($action == 'overview') {
if(isset($_POST['nachname1'])){
$nachname1 = trim($_POST['nachname1']);
}else{
$nachname1 = $_SESSION["nachname1"];
}
if(isset($_POST['vorname1'])){
$vorname1 = trim($_POST['vorname1']);
}else{
$vorname1 = $_SESSION["vorname1"];
}
if(isset($_POST['nachname2'])){
$nachname2 = trim($_POST['nachname2']);
}else{
$nachname2 = $_SESSION["nachname2"];
}
if(isset($_POST['vorname2'])){
$vorname2 = trim($_POST['vorname2']);
}else{
$vorname2 = $_SESSION["vorname2"];
}
if(isset($_POST['nachname3'])){
$nachname3 = trim($_POST['nachname3']);
}else{
$nachname3 = $_SESSION["nachname3"];
}
if(isset($_POST['vorname3'])){
$vorname3 = trim($_POST['vorname3']);
}else{
$vorname3 = $_SESSION["vorname3"];
}
if(isset($_POST['nachname4'])){
$nachname4 = trim($_POST['nachname4']);
}else{
$nachname4 = $_SESSION["nachname4"];
}
if(isset($_POST['vorname4'])){
$vorname4 = trim($_POST['vorname4']);
}else{
$vorname4 = $_SESSION["vorname4"];
}
if(isset($_POST['nachname5'])){
$nachname5 = trim($_POST['nachname5']);
}else{
$nachname5 = $_SESSION["nachname5"];
}
if(isset($_POST['mail'])){
$mail = trim($_POST['mail']);
}else{
$mail = $_SESSION["mail"];
}
if(isset($_POST['vorname5'])){
$vorname5 = trim($_POST['vorname5']);
}else{
$vorname5 = $_SESSION["vorname5"];
}
$_SESSION["nachname1"] = $nachname1;
$_SESSION["vorname1"] = $vorname1;
$_SESSION["nachname2"] = $nachname2;
$_SESSION["vorname2"] = $vorname2;
$_SESSION["nachname3"] = $nachname3;
$_SESSION["vorname3"] = $vorname3;
$_SESSION["nachname4"] = $nachname4;
$_SESSION["vorname4"] = $vorname4;
$_SESSION["nachname5"] = $nachname5;
$_SESSION["vorname5"] = $vorname5;
$_SESSION["mail"] = $mail;
if ($nachname1 == '' AND $nachname2 == '' AND $nachname3 == '' AND $nachname4 == '' AND $nachname5 == '') {
$error1=1;
$error=true;
}
if(isset($error)){
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?action=hausstand&error1=$error1\">";
exit;
}
for($i=0;$i<count($_SESSION["termin"]);$i++){
$termin = $_SESSION["termin"][$i];
$query_termin = $db->query("SELECT date_format(datum, '%d.%m.%Y - %H:%i') beginn, hinweis
FROM gd_termine
WHERE tid = $termin
LIMIT 1
");
$row_termin = $query_termin->fetch_array();
$row1['beginn'] = $row_termin['beginn'];
$row1['hinweis'] = $row_termin['hinweis'];
$table_data1[] = $row1;
}
$smarty->assign('table_data1', $table_data1);
$smarty->assign('overview_value_beginn', $row_termin["beginn"]);
$smarty->assign('overview_value_hinweis', $row_termin["hinweis"]);
$smarty->assign('overview_value_nachname1', $_SESSION["nachname1"]);
$smarty->assign('overview_value_vorname1', $_SESSION["vorname1"]);
$smarty->assign('overview_value_nachname2', $_SESSION["nachname2"]);
$smarty->assign('overview_value_vorname2', $_SESSION["vorname2"]);
$smarty->assign('overview_value_nachname3', $_SESSION["nachname3"]);
$smarty->assign('overview_value_vorname3', $_SESSION["vorname3"]);
$smarty->assign('overview_value_nachname4', $_SESSION["nachname4"]);
$smarty->assign('overview_value_vorname4', $_SESSION["vorname4"]);
$smarty->assign('overview_value_nachname5', $_SESSION["nachname5"]);
$smarty->assign('overview_value_vorname5', $_SESSION["vorname5"]);
$smarty->assign('overview_value_mail', $_SESSION["mail"]);
}
if ($action == 'save') {
$nachname1 = $_SESSION["nachname1"];
$vorname1 = $_SESSION["vorname1"];
$nachname2 = $_SESSION["nachname2"];
$vorname2 = $_SESSION["vorname2"];
$nachname3 = $_SESSION["nachname3"];
$vorname3 = $_SESSION["vorname3"];
$nachname4 = $_SESSION["nachname4"];
$vorname4 = $_SESSION["vorname4"];
$nachname5 = $_SESSION["nachname5"];
$vorname5 = $_SESSION["vorname5"];
$mail = $_SESSION["mail"];
for($i=0;$i<count($_SESSION["termin"]);$i++){
$termin = $_SESSION["termin"][$i];
$lfd_haushalt = get_lfd_haushalt($termin);
# echo "
# get_lfd_haushalt($termin)
# <br>
# $lfd_haushalt
# <br>
# ";
$datum=date("Y-m-d H:i:s");
if($nachname1 != ''){
if($return = doppelanmelder($termin, $vorname1, $nachname1)){
$crypt1 = "$return";
}else{
$sitzplatz1 = get_sitzplatz($nachname1, $vorname1);
$split1 = explode("|", $sitzplatz1);
$reihe1 = $split1[0];
$platz1 = $split1[1];
$sql1 = $db->query("insert into gd_buchung (tid, nachname, vorname, reihe, platz, mail, lfd_haushalt, save_date) VALUES('$termin', '$nachname1', '$vorname1', '$reihe1', '$platz1', '$mail', '$lfd_haushalt', '$datum')");
$bid1 = $db->insert_id;
$crypt1 = rawurlencode(cryption("$bid1|$nachname1|$termin", 'e'));
}
}
if($nachname2 != ''){
if($return = doppelanmelder($termin, $vorname2, $nachname2)){
$crypt2 = "$return";
}else{
$sitzplatz2 = get_sitzplatz($nachname2, $vorname2);
$split2 = explode("|", $sitzplatz2);
$reihe2 = $split2[0];
$platz2 = $split2[1];
$sql1 = $db->query("insert into gd_buchung (tid, nachname, vorname, reihe, platz, mail, lfd_haushalt, save_date) VALUES('$termin', '$nachname2', '$vorname2', '$reihe2', '$platz2', '$mail', '$lfd_haushalt', '$datum')");
$bid2 = $db->insert_id;
$crypt2 = rawurlencode(cryption("$bid2|$nachname2|$termin", 'e'));
}
}
if($nachname3 != ''){
if($return = doppelanmelder($termin, $vorname3, $nachname3)){
$crypt3 = "$return";
}else{
$sitzplatz3 = get_sitzplatz($nachname3, $vorname3);
$split3 = explode("|", $sitzplatz3);
$reihe3 = $split3[0];
$platz3 = $split3[1];
$sql1 = $db->query("insert into gd_buchung (tid, nachname, vorname, reihe, platz, mail, lfd_haushalt, save_date) VALUES('$termin', '$nachname3', '$vorname3', '$reihe3', '$platz3', '$mail', '$lfd_haushalt', '$datum')");
$bid3 = $db->insert_id;
$crypt3 = rawurlencode(cryption("$bid3|$nachname3|$termin", 'e'));
}
}
if($nachname4 != ''){
if($return = doppelanmelder($termin, $vorname4, $nachname4)){
$crypt4 = "$return";
}else{
$sitzplatz4 = get_sitzplatz($nachname4, $vorname4);
$split4 = explode("|", $sitzplatz4);
$reihe4 = $split4[0];
$platz4 = $split4[1];
$sql1 = $db->query("insert into gd_buchung (tid, nachname, vorname, reihe, platz, mail, lfd_haushalt, save_date) VALUES('$termin', '$nachname4', '$vorname4', '$reihe4', '$platz4', '$mail', '$lfd_haushalt', '$datum')");
$bid4 = $db->insert_id;
$crypt4 = rawurlencode(cryption("$bid4|$nachname4|$termin", 'e'));
}
}
if($nachname5 != ''){
if($return = doppelanmelder($termin, $vorname5, $nachname5)){
$crypt5 = "$return";
}else{
$sitzplatz5 = get_sitzplatz($nachname5, $vorname5);
$split5 = explode("|", $sitzplatz5);
$reihe5 = $split5[0];
$platz5 = $split5[1];
$sql1 = $db->query("insert into gd_buchung (tid, nachname, vorname, reihe, platz, mail, lfd_haushalt, save_date) VALUES('$termin', '$nachname5', '$vorname5', '$reihe5', '$platz5', '$mail', '$lfd_haushalt', '$datum')");
$bid5 = $db->insert_id;
$crypt5 = rawurlencode(cryption("$bid5|$nachname5|$termin", 'e'));
}
}
#Anzahl der gemeldeten Haushalte überschritten?
kritische_haushalte($termin);
if(isset($_SESSION["mail"]) AND $mail !=''){
$query_termin = $db->query("SELECT date_format(datum, '%d.%m.%Y - %H:%i') beginn, hinweis, fellbach_gd
FROM gd_termine
WHERE tid = $termin
LIMIT 1
");
$row_termin = $query_termin->fetch_array();
$empfaenger = "$mail";
$betreff = "Registrierung zum Gottesdienst am $row_termin[beginn] Uhr";
$text = "
<html>
<head>
<title>Registrierung zum Gottesdienst</title>
</head>
<body>
<font face='Arial' size='2'>
Guten Tag!<br><br>
Sie haben sich zum Gottesdienst in der neuapostolischen Kirche Weinstadt-Beutelsbach registriert.<br>
Nachfolgend finden Sie die hinterlegten Daten:
<br>
<br>
<table>
<tr>
<td valign='top' width='100'>
<font face='Arial' size='2'>
<b>Datum:</b>
</font>
</td>
<td valign='top' colspan='2'>
<font face='Arial' size='2'>
$row_termin[beginn]";if($row_termin['hinweis'] != ''){ $text .=" ($row_termin[hinweis])";}
$text.="
</font>
</td>
</tr>
<tr>
<td valign='top' width='100'>
&nbsp;
</td>
<td valign='top'>
&nbsp;
</td>
<td valign='top'>
&nbsp;
</td>
</tr>
";
if($nachname1 != ''){
$text .="
<tr>
<td valign='top' width='100'>
<font face='Arial' size='2'>
<b>Person 1:</b>
</font>
</td>
<td valign='top'>
<font face='Arial' size='2'>
$nachname1, $vorname1
</font>
</td>
<td valign='top'>
<a href='http://gd.nak-btb.de/abmeldung.php?key=$crypt1'>Abmeldung</a>
</td>
</tr>";
$nname[] = "$nachname1";
$vname[] = "$vorname1";
}
if($nachname2 != ''){
$text .="
<tr>
<td valign='top' width='100'>
<font face='Arial' size='2'>
<b>Person 2:</b>
</font>
</td>
<td valign='top'>
<font face='Arial' size='2'>
$nachname2, $vorname2
</font>
</td>
<td valign='top'>
<a href='http://gd.nak-btb.de/abmeldung.php?key=$crypt2'>Abmeldung</a>
</td>
</tr>";
$nname[] = "$nachname2";
$vname[] = "$vorname2";
}
if($nachname3 != ''){
$text .="
<tr>
<td valign='top' width='100'>
<font face='Arial' size='2'>
<b>Person 3:</b>
</font>
</td>
<td valign='top'>
<font face='Arial' size='2'>
$nachname3, $vorname3
</font>
</td>
<td valign='top'>
<a href='http://gd.nak-btb.de/abmeldung.php?key=$crypt3'>Abmeldung</a>
</td>
</tr>";
$nname[] = "$nachname3";
$vname[] = "$vorname3";
}
if($nachname4 != ''){
$text .="
<tr>
<td valign='top' width='100'>
<font face='Arial' size='2'>
<b>Person 4:</b>
</font>
</td>
<td valign='top'>
<font face='Arial' size='2'>
$nachname4, $vorname4
</font>
</td>
<td valign='top'>
<a href='http://gd.nak-btb.de/abmeldung.php?key=$crypt4'>Abmeldung</a>
</td>
</tr>";
$nname[] = "$nachname4";
$vname[] = "$vorname4";
}
if($nachname5 != ''){
$text .="
<tr>
<td valign='top' width='100'>
<font face='Arial' size='2'>
<b>Person 5:</b>
</font>
</td>
<td valign='top'>
<font face='Arial' size='2'>
$nachname5, $vorname5
</font>
</td>
<td valign='top'>
<a href='http://gd.nak-btb.de/abmeldung.php?key=$crypt5'>Abmeldung</a>
</td>
</tr>";
$nname[] = "$nachname5";
$vname[] = "$vorname5";
}
$text .="
</table>
<br>
Link zur Registrierung: <a href=\"http://gd.nak-btb.de\">Registrierung zum Gottesdienst</a>
<p>
Diese Mail wurde automatisch generiert!<br>
Antworten Sie daher nicht auf diese Mail<br>
<br>
Vielen Dank
</body>
</html>";
$text = stripslashes($text);
if($row_termin['fellbach_gd'] == 'N'){
$headers = "MIME-Version: 1.0\n";
#$headers .= "Content-type: text/html; charset=iso-8859-1\n";
$headers .= "Content-type: text/html; charset=utf-8\n";
$headers .= "From: Gottesdienstregistrierung <service@nak-btb.de>\n";
#$headers .= "Bcc: \n";
$return = @mail($empfaenger, $betreff, $text, $headers);
}else{
require_once("./mpdf/vendor/autoload.php");
$mpdf = new \Mpdf\Mpdf([
'mode' => 'utf-8',
'format' => 'A4',
'orientation' => 'P',
'margin_top' => 10,
'margin_bottom' => 20,
'margin_left' => 10,
'margin_right' => 16,
'default_font' => 'arial',
]);
$buffer = '<page backtop="7mm" backbottom="10mm" style="font-size: 11pt">';
$buffer.="<table cellspacing='2' cellpadding='2' border='1'
style='border-collapse: collapse;
font-size: 12px;
font-weight: 700;
margin-top: 5px;
border-top: 1px solid #777;
width: 100%;'>
<tr>";
$cnt=0;
for($i=0;$i<count($nname);$i++){
if($cnt == 3){
$buffer.="</tr><tr>";
}
$qr_id = generate_qr_by_name($nname[$i], $vname[$i]);
if($qr_id != 'NA'){
$buffer.="
<td align='center' width='100'>
QR-Code zur Erfassung der Gottesdienstteilnehmer in der Neuapostolischen Kirche Fellbach<br>
<br>
<img width='60' src='./admin/phpqrcode/temp/".$qr_id.".png' /><br>
$qr_id
<h3 style='text-align: center;'>$vname[$i] $nname[$i]</h3><br>
Dieser QR-Code dient lediglich zur Einlasskontrolle in die KircheFellbach und enthält keine persönlichen Daten.<br><br>
Neuapostolische Kirche Fellbach<br>
Kastanienweg 5<br>
70734 Fellbach
</td>";
}else{
$buffer.="
<td align='center' width='100'>
Kein QR Code vorhanden!
<br>
<h3 style='text-align: center;'>$vname[$i] $nname[$i]</h3>
</td>";
}
if($cnt == 3){
#$buffer.="<tr>";
$cnt = 0;
}
$cnt++;
}
$buffer.="
</tr>
</table>
</page>";
$mpdf->WriteHTML($buffer);
$mpdf->Output("./admin/pdfs/QR_Codes_Fellbach_$nachname1.pdf", F);
$pdfLocation = "./admin/pdfs/QR_Codes_Fellbach_$nachname1.pdf"; // file location
$pdfName = "QR_Codes_Fellbach_$nachname1.pdf"; // pdf file name recipient will get
$filetype = "application/pdf"; // type
// create headers and mime boundry
$eol = PHP_EOL;
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
$headers = "From: Gottesdienstregistrierung <service@nak-btb.de>$eol" .
"MIME-Version: 1.0$eol" .
"Content-Type: multipart/mixed;$eol" .
" boundary=\"$mime_boundary\"";
// add html message body
$message = "--$mime_boundary$eol" .
"Content-Type: text/html; charset=\"utf-8\"$eol" .
"Content-Transfer-Encoding: 7bit$eol$eol" .
$text . $eol;
// fetch pdf
$file = fopen($pdfLocation, 'rb');
$data = fread($file, filesize($pdfLocation));
fclose($file);
$pdf = chunk_split(base64_encode($data));
// attach pdf to email
$message .= "--$mime_boundary$eol" .
"Content-Type: $filetype;$eol" .
" name=\"$pdfName\"$eol" .
"Content-Disposition: attachment;$eol" .
" filename=\"$pdfName\"$eol" .
"Content-Transfer-Encoding: base64$eol$eol" .
$pdf . $eol .
"--$mime_boundary--";
// Send the email
$return = @mail($empfaenger, $betreff, $message, $headers);
unlink($pdfLocation);
}
}
}
session_destroy();
}
$smarty->assign('action', "$action");
$smarty->display("$template/$templatename");
?>