319 lines
7.7 KiB
JavaScript
Executable File
319 lines
7.7 KiB
JavaScript
Executable File
/*
|
|
*
|
|
*******************
|
|
2025-06-16:
|
|
Da leider kein CRON auf dem Webserver läuft, kann 'checkfuehrung' bis auf
|
|
Weiteres nicht weiter gepflegt bzw. ausgeführt werden. 'checkfuehrung' ist
|
|
für dieses Programm )beoanswer) hier notwendig.
|
|
*******************
|
|
|
|
*/
|
|
$(document).ready(function() {
|
|
|
|
let sendobject = {
|
|
stattgefunden: false,
|
|
anzahl: 0,
|
|
spende:0,
|
|
betrag:0,
|
|
rem:'',
|
|
newtermin: '1900-01-01',
|
|
};
|
|
let ajaxURL = '../../intern/sofue/php/sofueDB.php'
|
|
$('#versn').html("Version: " + VERSION + ' vom ' + VDATE);
|
|
|
|
console.log("von php:", url_id);
|
|
|
|
// Daten der Führung holen
|
|
if(url_id != null) {
|
|
doAjaxCall_arr(ajaxURL,{cmd: 'GET_ONE', id: url_id}, enterajaxerg);
|
|
} else {
|
|
alert("Keine ID übergeben");
|
|
return false
|
|
// throw new Error("Keine ID übergeben");
|
|
}
|
|
|
|
function enterajaxerg(erg) {
|
|
console.log(erg)
|
|
let t = $('#sofueHead').html();
|
|
$('#sofueHead').html(t+(erg.wtermin).substr(0,10));
|
|
$('#sofueName').html('für ' + erg.name);
|
|
|
|
}
|
|
|
|
// Change bei 'stattgefunden'
|
|
$('#inputstatt').change(function() {
|
|
let s = $('input[name="statt"]:checked').val();
|
|
console.log(s);
|
|
if(s == "nein") {
|
|
showAbsage();
|
|
sendobject.stattgefunden=false;
|
|
} else if (s=='ja') {
|
|
showBesucher();
|
|
sendobject.stattgefunden=true;
|
|
}
|
|
});
|
|
|
|
// der JA-Zweig
|
|
function showBesucher() {
|
|
$('#besucher').removeClass("hide");
|
|
}
|
|
|
|
$('#beszahl').keydown(e=>{
|
|
let keycode = e.keyCode || e.which;
|
|
if(keycode == 13) {
|
|
besucher = $('#beszahl').val();
|
|
if($.isNumeric(besucher)) {
|
|
console.log(besucher);
|
|
sendobject.anzahl = besucher;
|
|
showSpende();
|
|
} else {
|
|
alert("Nur Ziffern eingeben");
|
|
}
|
|
}
|
|
});
|
|
|
|
$('#btnOK0').click(()=>{
|
|
besucher = $('#beszahl').val();
|
|
if($.isNumeric(besucher)) {
|
|
console.log(besucher);
|
|
sendobject.anzahl = besucher;
|
|
showSpende();
|
|
} else {
|
|
alert("Nur Ziffern eingeben");
|
|
}
|
|
});
|
|
|
|
|
|
function showSpende() {
|
|
$('#diespende').removeClass("hide");
|
|
}
|
|
|
|
$('#inputspend').change(function() {
|
|
let spende=0;
|
|
let s = $('input[name="spend"]:checked').val();
|
|
console.log(s);
|
|
if(s == "bar") {
|
|
spende=1;
|
|
showBarspende();
|
|
} else {
|
|
showRemark();
|
|
if (s=='ueberweis') {
|
|
spende=2;
|
|
} else if (s=='kasse') {
|
|
spende=3;
|
|
}
|
|
}
|
|
sendobject.spende = spende;
|
|
});
|
|
|
|
function showBarspende() {
|
|
$('#barspend').removeClass("hide");
|
|
}
|
|
|
|
$('#barsp').keydown(e=>{
|
|
let keycode = e.keyCode || e.which;
|
|
if(keycode == 13) {
|
|
let barsp = $('#barsp').val();
|
|
if($.isNumeric(barsp)) {
|
|
console.log(barsp);
|
|
sendobject.betrag = barsp;
|
|
showRemark();
|
|
} else {
|
|
alert("Nur Ziffern eingeben");
|
|
}
|
|
}
|
|
});
|
|
|
|
$('#btnOK1').click(()=>{
|
|
let barsp = $('#barsp').val();
|
|
if($.isNumeric(barsp)) {
|
|
console.log(barsp);
|
|
sendobject.betrag = barsp;
|
|
showRemark();
|
|
} else {
|
|
alert("Nur Ziffern eingeben");
|
|
}
|
|
});
|
|
|
|
$('#btnOK2').click(()=>{
|
|
sendobject.rem = $('#remark').val();
|
|
showFertig();
|
|
});
|
|
|
|
function showRemark() {
|
|
let p = $('#btnOK2').offset();
|
|
$('#btnOK2').offset({top: p.top-10, left: p.left});
|
|
$('#remarks').removeClass('hide');
|
|
}
|
|
|
|
function showFertig() {
|
|
$('#fertig').removeClass("hide");
|
|
$('#btnsend').removeClass("hide");
|
|
}
|
|
|
|
// der NEIN-Zweig
|
|
function showAbsage() {
|
|
$('input[name="nostatt"]').prop('checked',"");
|
|
$('#inputabs').removeClass("hide");
|
|
}
|
|
|
|
// Change bei 'nicht stattt'
|
|
$('#inputabs').change(function() {
|
|
let s = $('input[name="nostatt"]:checked').val();
|
|
console.log(s);
|
|
if(s == "abgesagt") {
|
|
showFertig();
|
|
} else if (s == "verschoben") {
|
|
showVerschoben();
|
|
}
|
|
});
|
|
|
|
function showVerschoben() {
|
|
$('#verschbn').removeClass("hide");
|
|
|
|
|
|
// Picker für den neuen Termin
|
|
$('#newtermin').datetimepicker( // Initialisierung des datetimepickers
|
|
{
|
|
addSliderAccess: true,
|
|
sliderAccessArgs: { touchonly: false },
|
|
showOn: 'focus' , // onFocus wird der Picker angezeigt
|
|
timeFormat: 'HH:mm',
|
|
showMinute: true,
|
|
stepMinute: 15,
|
|
// showSecond: false,
|
|
// showMillisec: false,
|
|
// showMicrosec: false,
|
|
// showTimezone: false,
|
|
hourMin: 13,
|
|
dateFormat: "yy-mm-dd", // angezeigt wird in diesem Format
|
|
minDate: "+1d", // min Datum: morgen
|
|
closeText: "OK", // erst wenn OK geklickt wird, dann gehts weiter
|
|
timeText: "Uhrzeit", // Texte dazu
|
|
hourText: "Stunde",
|
|
onClose: function (dateText, inst) { // was passiert, wenn OK gedrückt wird:
|
|
if(dateText != "") {
|
|
var dt = moment(dateText).format('YYYY-MM-DD HH:mm');
|
|
$("#newtermin").html(dt);
|
|
sendobject.newtermin=dt;
|
|
showFertig();
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
// Datepicker auf Deutsch einstellen
|
|
$.datepicker.regional['de'] = {
|
|
closeText: '',
|
|
prevText: '<',
|
|
nextText: '>',
|
|
currentText: '',
|
|
monthNames: ['Januar','Februar','März','April','Mai','Juni',
|
|
'Juli','August','September','Oktober','November','Dezember'],
|
|
monthNamesShort: ['Jan','Feb','Mar','Apr','Mai','Jun',
|
|
'Jul','Aug','Sep','Okt','Nov','Dez'],
|
|
dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'],
|
|
dayNamesShort: ['SON','MON','DIE','MIT','DON','FRE','SAM'],
|
|
dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'],
|
|
weekHeader: 'KW',
|
|
dateFormat: 'yyyy-mm-dd',
|
|
firstDay: 1,
|
|
isRTL: false,
|
|
showMonthAfterYear: false,
|
|
yearSuffix: ''
|
|
};
|
|
$.datepicker.setDefaults($.datepicker.regional['de']); // diese Einstellung nun übernehmen
|
|
|
|
// Buttons
|
|
$('#btncancel').click(()=>location.reload());
|
|
|
|
$('#btnsend').click(()=>{
|
|
console.log("Sende an Datenbank:");
|
|
console.log(sendobject);
|
|
clearAll(0);
|
|
let cmd = {
|
|
stattgefunden: sendobject.stattgefunden ? 1 : 0,
|
|
id: url_id,
|
|
cmd: 'UPDATEAFTER'
|
|
};
|
|
if(sendobject.stattgefunden) { // der Termin hat stattgefunden
|
|
cmd.besucher = sendobject.anzahl;
|
|
cmd.remark = sendobject.rem;
|
|
cmd.bezahlt = (function() {
|
|
console.log("sendobjc:", sendobject);
|
|
if( sendobject.spende == 1 ) {
|
|
return `bar Kasse (€${sendobject.betrag})`;
|
|
} else if (sendobject.spende == 2) {
|
|
return 'Überweisung';
|
|
} else if (sendobject.spende == 3) {
|
|
return 'Spendenkasse';
|
|
} else return 'Keine';
|
|
})()
|
|
} else { // der Termin hat NICHT stattgefunden
|
|
cmd.besucher = sendobject.anzahl;
|
|
cmd.remark = '';
|
|
cmd.bezahlt = 'Keine';
|
|
if(sendobject.newtermin != '1900-01-01') {
|
|
cmd.wtermin = sendobject.newtermin; // er wurde verlegt, also gibts einen neuen Wunschtermin
|
|
} else {
|
|
cmd.status = 3; // nicht stattgefunden -> abgesagt
|
|
}
|
|
}
|
|
console.log(cmd);
|
|
if(url_id != null) {
|
|
doAjaxCall_arr(ajaxURL,cmd,showajaxerg);
|
|
}
|
|
});
|
|
|
|
function clearAll(was) {
|
|
$('#tosend').addClass('hide');
|
|
$('#inputstatt').addClass('hide');
|
|
$('#fertig').addClass('hide');
|
|
$('#verschbn').addClass('hide');
|
|
$('#inputabs').addClass('hide');
|
|
$('#besucher').addClass('hide');
|
|
$('#diespende').addClass('hide');
|
|
$('#barspend').addClass('hide');
|
|
$('#remarks').addClass('hide');
|
|
}
|
|
|
|
|
|
function showajaxerg(erg) {
|
|
console.log("AjaxErg: ", erg);
|
|
$('#beendet').removeClass('hide');
|
|
}
|
|
|
|
// Klick auf den Anleitungs-Button
|
|
$('#btnMan').click(function() {
|
|
$("#anleitung").dialog('open');
|
|
});
|
|
|
|
|
|
// 3. Dialog für die Anleitung
|
|
// Dieser hat KEINEN Button (wird über das Schließkreuz beendet) und
|
|
// eine etwas kleinere Schrift
|
|
$("#anleitung").dialog({
|
|
autoOpen: false,
|
|
width: 400,
|
|
modal: true,
|
|
position: {my: 'top', at: 'top', of: window },
|
|
title: 'Anleitung',
|
|
open:
|
|
function() {
|
|
$(this).load('beoanswer.html');
|
|
},
|
|
buttons: [
|
|
{
|
|
text: "Abbrechen",
|
|
click : function() {
|
|
$(this).dialog("close");
|
|
},
|
|
width: 150,
|
|
}
|
|
],
|
|
});
|
|
|
|
|
|
|
|
});
|