sub(new DateInterval('P9M')); $lastdate = $lastdate->format('Y-m-d'); if($st == 4) { $where ="where stattgefunden = 1 and deleted = 0 "; } else { $where = "where status = '$st' and deleted = 0"; if ($termin == 'neu') { $where = $where . " and wtermin >= now()"; } } // Anzahl der Records holen $query = "select count(*) as count from $table $where "; $row = getFromDbase($db,$query,true); $count = $row['count']; // Anzahl der Seiten ausrechnen $totalpages = ceil($count/$anz); // Falls die angeforderte Seit > als die ANzahl der Seiten ist, die letzte Seite übergeben if($pagnbr > $totalpages) $pagnbr = $totalpages; // Start-Record berechnen $start = $anz * ($pagnbr-1); if($start <0) { $start = 0; } $where = $where . " and DATE(wtermin) >= '$lastdate'"; $query = "select * from $table $where order by wtermin desc limit $start,$anz"; $rows = getFromDbase($db, $query, false); $response->page = $pagnbr; $response->total = $totalpages; // Es wird immer 1 Page übergeben $cnt = 0; foreach($rows as $row) { $response->rows[$cnt]['id'] = $row['id']; $response->rows[$cnt]['cell'] = $row; $cnt++; } $response->records = $count; return ($response); } # string substr ( string $string , int $start [, int $length ] ) # Beo-Daten holen function getBeos($db, $what, $cond) { $retur = array(); if($cond == "") { $query = "select $what from beos order by $what"; } else { $a = strpos($cond,'empty'); if ( $a !== false) { $b = substr($cond,0,$a); $query = "select $what from beos where $b '' order by $what"; } else { $query = "select $what from beos where $cond order by $what"; } } # echo $query; $rows = getFromDbase($db, $query, false); foreach($rows as $row) { $retur[] = $row[$what]; } return ($retur); } # Statistikdaten für das laufende (oder ein altes) Jahr holen und übergeben # Ausgaben: JSON: # { year: 2018, # data:[ # { month: 1, angefragt: 10, zugesagt: 7, abgesagt: 3, stattgefunden: 6 }, # { month: 2, angefragt: 8, zugesagt: 6, abgesagt: 2, stattgefunden: 5 }, # { month: 3, angefragt: 23, zugesagt: 20, abgesagt: 3, stattgefunden: 15 }, # ... # { month: 12, angefragt: 34, zugesagt: 22, abgesagt: 12, stattgefunden: 10 }, function getStatistik($db, $year) { } # Daten eines BEO holen, mit Name als Suchkriterium function getOneBEO($db, $name) { $query = "select * from beos where name = '$name'"; return getFromDbase($db, $query, true); } function updateEntry($db, $post) { global $table; $oldinhalt = getOneRecord($db, $post['id']); $data = "mitarbeiter='" . $post['mitarbeiter'] . "', status='" . $post['status'] . "', bemerkung='" . $post['bemerkung'] . "', wtermin='" . $post['wtermin'] . "', atermin='" . $post['atermin'] . "', allwett=''" . ", erledigt_datum='" . $post['erledigt_datum'] . "'"; $id = $post['id']; $query = "update $table set $data where id='$id'"; $ret = cudDbase($db, $query); $newinhalt = getOneRecord($db, $post['id']); $ma = $post['mitarbeiter']; $oldTermin = $oldinhalt['wtermin']; return $ret; } function updateAfter($db,$post) { global $table; $oldinhalt = getOneRecord($db, $post['id']); $data = "stattgefunden='" . $post['stattgefunden'] . "', anzahl_echt='" . $post['besucher'] . "', remarks='" . $post['remark'] . "', bezahlt='" . $post['bezahlt'] . "'"; // if (!empty($post['wtermin'])) { // $data .= ", wtermin='" . $post['wtermin'] . "'"; // $ma = $oldInhalt['mitarbeiter']; // sendMailTo($ma, $oldinhalt, $post['wtermin'], "Wunsch"); // } if (!empty($post['status'])) { $data .= ", status='" . $post['status'] . "'"; } $id = $post['id']; $query = "update $table set $data where id='$id'"; $ret = cudDbase($db, $query); return($ret); } function deleteEntry($db, $id) { global $table; $query = "update $table set deleted=true where id='$id'"; return cudDbase($db, $query); } function getDBdata() { global $host, $dbase, $user, $pass; $erg = "HOST: >" . $host . "<   Dbase: >" . $dbase . "<   user/pass: >" . $user . "/" . $pass . "<"; return $erg; } function findBeoVorname($who) { global $db; $names = explode(",",$who); $erg = getbeos($db,'vorname',"name='".$names[0]."'"); return ($erg[0]); } function findBeoEmail($who) { global $db; $names = explode(",",$who); $erg = getbeos($db,'email_1',"name='".$names[0]."'"); return ($erg[0]); } function wterminstr($t) { $tage = array( "So", "Mo", "Di", "Mi", "Do", "Fr", "Sa" ); $dati = strtotime($t); $dt = $tage[date("w",$dati)] . ", " . date('d.m.Y H:i',$dati); return $dt; } function sendMail2Beo($ma, $termin) { $dt = wterminstr($termin); $body = "Hallo " . findBeoVorname($ma) .", vielen Dank für die Bereitschaft, die Sonderführung am {$dt} zu übernehmen. Bitte den Termin nicht vergessen und bitte ggf. auch das Teammitglied, das die Führung mitmacht, informieren. Der Termin wurde in den Sternwartenkalender eingetragen. Die Kontaktdaten sind auf der Sonderführungsseite ( https://sternwarte-welzheim.de/intern/sofue/sofue.php ) zu finden. Viele Grüße Reinhard Diese Meldung wurde automatisch erzeugt. Es kann nicht geantwortet werden."; $betreff = "Vereinbarte Sonderführung am " .$dt; $absender = "noreply@sternwarte-welzheim.de"; sendmail($betreff, $absender, $body, [], ['rexfue@gmail.com'], [findBeoEmail($ma)]); } function sendMailZusage($to, $mitarbeiter, $termin) { $dt = wterminstr($termin); $betreff = "ZUSAGE - Sternwartenführung am {$dt} Uhr"; $absender = "anmeldung@sternwarte-welzheim.de"; $ge1 = ($mitarbeiter['gender'] == 'm') ? "unser ehrenamtlicher Mitarbeiter, Herr" : "unsere ehrenamtliche Mitarbeiterin, Frau"; $ge2 = ($mitarbeiter['gender'] == 'm') ? "ihn" : "sie"; $ge3 = ($mitarbeiter['gender'] == 'm') ? "Herrn" : "Frau"; $body = " Guten Tag, für Ihren Wunschtermin, {$dt} Uhr, hat sich {$ge1} {$mitarbeiter['vorname']} {$mitarbeiter['name']} bereit erklärt, die Sonderführung zu übernehmen. Sie erreichen {$ge2} über die e-mail-Adresse: {$mitarbeiter['email_1']} Um nähere Besuchsmodalitäten zu klären, bitten wir Sie, mit {$ge3} {$mitarbeiter['name']} Kontakt aufzunehmen. Wir bitten Sie, die Spende in Höhe von €50.00 auf unten aufgeführtes Konto zu überweisen oder in bar zur Führung mitzubringen. Gesellschaft zur Förderung des Planetariums Stuttgart und der Sternwarte Welzheim e.V. BANKVERBINDUNG: Deutsche Bank AG Stuttgart IBAN DE18 6007 0070 0122 0383 00 BIC: DEUTDESSXXX Mit sternfreundlichen Grüßen Reinhard X. Fürst Sternwarte Welzheim "; sendmail($betreff, $absender, $body, [$mitarbeiter['email_1']], ['rexfue@gmail.com'], [$to]); } function sendMail2Liste($to, $erg) { $betreff = "Anfrage Sonderführung am {$erg['wtermin']}"; $absender = "sonderfuehrung@sternwarte-welzheim.de"; $body = " Liebe BEOs, wer kann folgende Sonderführung übernehmen? Viele Grüße Reinhard ---------------------------------------------------------------------------------------------------"; $body = $body . " Name, Vorname: " . $erg['name'] . " " . $erg['vorname'] . " Verein / Organisation : " . $erg['verein'] . " Wunsch - Termin: " . $erg['wtermin'] . " Teilnehmerzahl ca.: " . $erg['anzahl'] . " Weitere Fragen oder Mitteilungen: " . $erg['mitteilung'] . " Spendenbescheinigung: " . $erg['spende'] . " ---------------------------------------------------------------------------------------------------"; sendmail($betreff, $absender, $body, [], [], [$to]); } // Sonderführung in den Kalender eintragen function put2kalender($db, $data, $termin, $ma) { $start = substr($termin,0,16); $title = "WK, SF " . $data['name'] . ", " . $ma; $sql = "INSERT into kalender (start, end, title, description) VALUES ('" . $start . "', DATE_ADD('" . $start . "',INTERVAL 2 HOUR), '" . $title . "', '')"; $erg = cudDbase($db, $sql); $mist = 23; } // Hier gehts dann los: // Alle Paramater aus dem Ajax-Call auslesen // Mögliche Aufrufe: /* * cmd=GET param=ID id=5 bringt das eine Record mit ID=5 * cmd=GET param=STATUS staus=offen bringt ALLE records mit stautus='offen' in zeitlich absteigender Reihenfoleg */ $erg = ""; $cmd = $_POST["cmd"]; /* $x = "# "; foreach ($_POST as $key => $value) { $x = $x . $key . " " . $value . "\n"; } $x = $x . '# '; echo $x; */ switch ($cmd) { case 'GET_ONE': $erg = getOneRecord($db, $_POST["id"]); break; case 'GET_ONETERMIN': $erg = getOneRecordTermin($db, $_POST["termin"]); break; case 'GET_MANY': $st = $_POST['status']; $anzahl = $_POST['rows']; $page = $_POST['page']; $termin = $_POST['termin']; $erg = getRecords($db,$st, $termin ,$anzahl,$page); break; case 'GET_BEOS': $erg = getBeos($db,$_POST['what'],$_POST['cond']); // echo '#' . $erg ; break; case 'GET_ONEBEO': $erg = getOneBEO($db,$_POST['name']); // echo '#' . $erg ; break; # case GET_FUEH: # $erg = getFuehrung_findet_statt($db); # break; case 'GET_STAT': # $erg = getStatistik($db,$_POST['year']); break; case 'UPDATE': $erg = updateEntry($db, $_POST); break; case 'UPDATEAFTER': $erg = updateAfter($db, $_POST); break; case 'DELETE': $erg = deleteEntry($db, $_POST['id']); break; case 'SENDMAILZUSAGE': // function sendMailZusage($to, $mitarbeiter, $termin) { $erg = getOneRecord($db, $_POST["id"]); $names = explode(",",$_POST['mitarbeiter']); $ma = getOneBEO($db, $names[0]); sendMailZusage($erg['email'], $ma, $_POST['termin']); break; case 'SENDMAIL2BEO': // function sendMail2Beo($ma, $termin) { sendMail2beo($_POST['ma'], $_POST['termin']); break; case 'SENDMAIL2LISTE': $erg = getOneRecord($db, $_POST["id"]); sendMail2Liste($_POST['to'],$erg); break; case 'PUT2KALENDER': $erg = getOneRecord($db, $_POST["id"]); put2kalender($db, $erg, $_POST['termin'], $_POST['mitarbeiter']); break; case 'SHOWDB': $erg = getDBdata(); break; } header("Content-type: text/json;charset=utf-8"); echo json_encode($erg); ?>