storno an gemneinsame DB angepasst - **** WOP ****
This commit is contained in:
@@ -1,5 +1,4 @@
|
|||||||
<?php
|
<?php
|
||||||
# Hier werden die Anfragen vom Javascript verarbeitet und die
|
|
||||||
# Datenbank bedient
|
# Datenbank bedient
|
||||||
|
|
||||||
include 'config_stern.php';
|
include 'config_stern.php';
|
||||||
@@ -139,6 +138,10 @@ function getAllTeilnehmer($fdatum)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// die Daten der Führungen in dem Bereich start - end
|
// die Daten der Führungen in dem Bereich start - end
|
||||||
// in ein Array als ISO8601 holen
|
// in ein Array als ISO8601 holen
|
||||||
// Parameter
|
// Parameter
|
||||||
@@ -146,10 +149,14 @@ function getAllTeilnehmer($fdatum)
|
|||||||
// $end -> bis zu diesem Datum
|
// $end -> bis zu diesem Datum
|
||||||
// Retunrn:
|
// Retunrn:
|
||||||
// Array mit den Daten in ISO8601
|
// Array mit den Daten in ISO8601
|
||||||
function getFuehrungen($start, $end) {
|
function getFuehrungen($start, $end, $typ) {
|
||||||
global $db;
|
global $db;
|
||||||
$erg = array();
|
$erg = [];
|
||||||
$sql_sel = "SELECT * FROM fdatum1 where datum >= '$start' AND datum <= '$end' ORDER BY datum ASC";
|
$table = 'fdatum1';
|
||||||
|
if ($typ == 'sonnen') {
|
||||||
|
$table = 'sonnedatum';
|
||||||
|
}
|
||||||
|
$sql_sel = "SELECT * FROM $table where datum >= '$start' AND datum <= '$end' ORDER BY datum ASC";
|
||||||
$result = mysqli_query($db, $sql_sel) or die(mysqli_error($db));
|
$result = mysqli_query($db, $sql_sel) or die(mysqli_error($db));
|
||||||
while ($row = mysqli_fetch_assoc($result)) {
|
while ($row = mysqli_fetch_assoc($result)) {
|
||||||
foreach ($row as $key => $value) {
|
foreach ($row as $key => $value) {
|
||||||
@@ -262,6 +269,17 @@ function getOneDate($id) {
|
|||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// aus fdatum die div. Datumsteile hole
|
||||||
|
function getTimeByDate($dt, $typ) {
|
||||||
|
global $db;
|
||||||
|
if ($typ == 'sonnen')
|
||||||
|
return '11 Uhr';
|
||||||
|
$sql_stmt = "SELECT uhrzeit FROM fdatum1 WHERE datum='$dt'";
|
||||||
|
$result = mysqli_query($db, $sql_stmt) or die(mysqli_error($db));
|
||||||
|
$data = mysqli_fetch_assoc($result);
|
||||||
|
return $data['uhrzeit'];
|
||||||
|
}
|
||||||
|
|
||||||
function insertteilnehmer($data) {
|
function insertteilnehmer($data) {
|
||||||
global $db;
|
global $db;
|
||||||
$name = $data['name'];
|
$name = $data['name'];
|
||||||
@@ -473,6 +491,9 @@ if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
|||||||
case 'GET_ONE_DATE':
|
case 'GET_ONE_DATE':
|
||||||
$erg = getOneDate($_POST['fid']);
|
$erg = getOneDate($_POST['fid']);
|
||||||
break;
|
break;
|
||||||
|
case 'GET_TIME_BY_DATE':
|
||||||
|
$erg = getTimeByDate($_POST['dt'], $_POST['typ']);
|
||||||
|
break;
|
||||||
case 'GET_ALLTEILN':
|
case 'GET_ALLTEILN':
|
||||||
$erg = getAllTeilnehmer($_POST['fdatum']);
|
$erg = getAllTeilnehmer($_POST['fdatum']);
|
||||||
break;
|
break;
|
||||||
@@ -503,7 +524,7 @@ if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
|||||||
$erg = getTeilnehmer(-1, true, false);
|
$erg = getTeilnehmer(-1, true, false);
|
||||||
break;
|
break;
|
||||||
case 'GET_FUEHRUNGEN':
|
case 'GET_FUEHRUNGEN':
|
||||||
$erg = getFuehrungen($_POST['start'], $_POST['end']);
|
$erg = getFuehrungen($_POST['start'], $_POST['end'], $_POST['typ']);
|
||||||
break;
|
break;
|
||||||
case 'PUT_FDATES':
|
case 'PUT_FDATES':
|
||||||
$erg = putFdates($_POST['data']);
|
$erg = putFdates($_POST['data']);
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
.storno {
|
.storno {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
min-height: 500px;
|
min-height: 550px;
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -131,3 +131,8 @@ h5 {
|
|||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
font-size: 80%;
|
font-size: 80%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#abbrechen {
|
||||||
|
background-color: gray;
|
||||||
|
margin-top: 40px;
|
||||||
|
}
|
||||||
|
|||||||
@@ -51,7 +51,7 @@
|
|||||||
Für diese E-Mail Adresse ist keine Führung angemeldet !<br />
|
Für diese E-Mail Adresse ist keine Führung angemeldet !<br />
|
||||||
</div>
|
</div>
|
||||||
<div id="anmeldid" class="col-12 col-xm-8 text-center">
|
<div id="anmeldid" class="col-12 col-xm-8 text-center">
|
||||||
Sie sind angemeldet für: <br /><br />
|
Sie sind angemeldet für eine <span id="fart">Sternführung</span> am: <br /><br />
|
||||||
<div id="anmeldung">
|
<div id="anmeldung">
|
||||||
2022-07-12 22:00 Uhr 4 Personen
|
2022-07-12 22:00 Uhr 4 Personen
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -45,14 +45,33 @@ $(document).ready(() => {
|
|||||||
return await response.json();
|
return await response.json();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Wochentag aus integer Datum extrahieren
|
||||||
|
function getWochentag(datumInt) {
|
||||||
|
const d = new Date(
|
||||||
|
Math.floor(datumInt / 10000), // Jahr
|
||||||
|
Math.floor((datumInt % 10000) / 100) - 1, // Monat (0-basiert)
|
||||||
|
datumInt % 100 // Tag
|
||||||
|
);
|
||||||
|
return ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"][d.getDay()];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Aus dem integer Führungsdatum (aus anmeldungen) den Wochentag und
|
||||||
|
// die Uhrzeit aus der Tabelle fdatum 1 holen
|
||||||
|
const getFuhrzeit = async (dt, typ) => {
|
||||||
|
return await fetchFromDbase({ cmd: 'GET_TIME_BY_DATE', dt: dt, typ: typ })
|
||||||
|
|
||||||
|
}
|
||||||
// Das Führungsdatum extrahieren
|
// Das Führungsdatum extrahieren
|
||||||
const buildDatum = async (tn, short) => {
|
const buildDatum = async (tn, short) => {
|
||||||
const person = tn.anzahl === '1' ? 'Person' : 'Personen'
|
const person = tn.anzahl === '1' ? 'Person' : 'Personen'
|
||||||
const datum = await fetchFromDbase({cmd: 'GET_ONE_DATE', fid: tn.fid})
|
const uhrzeit = await getFuhrzeit(tn.fdatum, tn.typ)
|
||||||
if (short) {
|
if (short) {
|
||||||
return `${moment(datum.datum).format('DD.MM.YYYY')}`
|
return `${moment(tn.fdatum).format('DD.MM.YYYY')}`
|
||||||
}
|
}
|
||||||
return `${datum.wtag}, den ${moment(datum.datum).format('DD.MM.YYYY')} um ${datum.uhrzeit} mit ${tn.anzahl} ${person}`
|
if(tn.typ === 'sonnen') {
|
||||||
|
document.getElementById('fart').innerHTML = "Sonnenführung"
|
||||||
|
}
|
||||||
|
return `${getWochentag(tn.fdatum)}, den ${moment(tn.fdatum).format('DD.MM.YYYY')} um ${uhrzeit} mit ${tn.anzahl} ${person}`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Das Führungsdatum anzeigen
|
// Das Führungsdatum anzeigen
|
||||||
@@ -90,9 +109,13 @@ $(document).ready(() => {
|
|||||||
let start = moment()
|
let start = moment()
|
||||||
start = start.add(vorlauf, 'h')
|
start = start.add(vorlauf, 'h')
|
||||||
let end = moment()
|
let end = moment()
|
||||||
end = end.add(months2add, 'M')
|
let add = months2add
|
||||||
|
if (teilnehmer.typ === 'sonnen') {
|
||||||
|
add = 12
|
||||||
|
}
|
||||||
|
end = end.add(add, 'M')
|
||||||
const anzahl = parseInt(teilnehmer.anzahl)
|
const anzahl = parseInt(teilnehmer.anzahl)
|
||||||
let fuehrungen = await fetchFromDbase({cmd: 'GET_FUEHRUNGEN', start: start.format('YYYYMMDD'), end: end.format('YYYYMMDD')})
|
let fuehrungen = await fetchFromDbase({ cmd: 'GET_FUEHRUNGEN', start: start.format('YYYYMMDD'), end: end.format('YYYYMMDD'), typ: teilnehmer.typ})
|
||||||
let r = `<label for "ftermin" class="labeltext"><strong>Umbuchung auf</strong></label><br /><select name="ftermin" id="ftermin"><option>-- Bitte wählen Sie ein Datum aus--</option>`
|
let r = `<label for "ftermin" class="labeltext"><strong>Umbuchung auf</strong></label><br /><select name="ftermin" id="ftermin"><option>-- Bitte wählen Sie ein Datum aus--</option>`
|
||||||
for (let f of fuehrungen) {
|
for (let f of fuehrungen) {
|
||||||
if (f.datum == teilnehmer.fdatum) {
|
if (f.datum == teilnehmer.fdatum) {
|
||||||
@@ -104,7 +127,7 @@ $(document).ready(() => {
|
|||||||
continue // wenn der Platz nicht reicht, nicht anzeigen
|
continue // wenn der Platz nicht reicht, nicht anzeigen
|
||||||
}
|
}
|
||||||
r += `<option id=${f.id} value=${f.datum}>`
|
r += `<option id=${f.id} value=${f.datum}>`
|
||||||
r += `${f.wtag.substring(0,2)} , ${moment(f.datum).format('DD.MM.YYYY')} ${f.uhrzeit} `
|
r += `${getWochentag(f.datum).substring(0, 2)} , ${moment(f.datum).format('DD.MM.YYYY')} ${await getFuhrzeit(f.datum, teilnehmer.typ)} `
|
||||||
r += `Frei ${(maxVisitors - count) > 0 ? maxVisitors - count : 0}</option>`
|
r += `Frei ${(maxVisitors - count) > 0 ? maxVisitors - count : 0}</option>`
|
||||||
}
|
}
|
||||||
r += '</select>'
|
r += '</select>'
|
||||||
@@ -226,8 +249,6 @@ Sehr geehrte Dame, sehr geehrter Herr,
|
|||||||
|
|
||||||
${fdatum}
|
${fdatum}
|
||||||
|
|
||||||
Bitte bringen Sie diese Bestätigung als Ausdruck oder digital zur Führung mit.
|
|
||||||
|
|
||||||
Die Führung findet NUR bei sternklarem Himmel statt. Falls der Himmel bedeckt ist
|
Die Führung findet NUR bei sternklarem Himmel statt. Falls der Himmel bedeckt ist
|
||||||
und die Führung ausfällt, erhalten Sie bis spätestens eine Stunde vor Führungsbeginn
|
und die Führung ausfällt, erhalten Sie bis spätestens eine Stunde vor Führungsbeginn
|
||||||
eine Email. Sie können sich dann gerne zu einer anderen Führung neu anmelden.
|
eine Email. Sie können sich dann gerne zu einer anderen Führung neu anmelden.
|
||||||
|
|||||||
Reference in New Issue
Block a user