assign('ueberschrift','Anwesenheitslisten');
if(!$erlaubt){
$_inh = T_KEINZUGRIFF;
}
else{
require_once('func/holetrainingsgruppen.inc.php');
$gruppen = holeTrainingsgruppen(true);
if(count($gruppen) < 1){
$_tmpl->assign('fehler', 'Es wurden keine Trainingsgruppen gefunden');
}
else{
$_tmpl->assign('gruppen',$gruppen);
$query = "SELECT id, CONCAT(titel, ' - ', DATE_FORMAT(datum,'%d.%m.%Y')) as wk, IF(datum>NOW(),1,0) as zukunft
FROM ".DB_PREFIX."wettkaempfe as w LEFT JOIN ".DB_PREFIX."eigenschaften as e ON w.id=e.artid AND e.art='w' AND e.eigenschaft = 'wkabwickeln'
WHERE e.wert IS NOT NULL ORDER BY zukunft DESC, datum ASC";
$_db->holeDaten($query);
$wettkaempfe = $_db->baueArray('wk','id');
$_tmpl->assign('wettkaempfe',$wettkaempfe);
$genauigkeiten = array(
'sekunden' => 'gerundet (auf Sekunden genau)',
'zehntel' => 'gerundet (auf Zehntel genau)',
'hundertstel' => 'genaue Zeit (auf Hundertstel genau)'
);
$_tmpl->assign('genauigkeiten',$genauigkeiten);
if(!isset($_POST['generieren'])){
$daten = array();
# Anfang- und Ende vorbelegen
$user_conf = $_einst['anwesenheitsliste'];
switch($user_conf['anfang']){
case 'woche':
$tmp = time();
while(date('w',$tmp) != 1){
$tmp += 86400;
}
$timestamp_anfang = $tmp;
break;
case 'monat':
$timestamp_anfang = mktime(12,0,0,date('n')+1,1,(date('n')==12?date('Y')+1:date('Y')));
break;
case 'ferien':
$query = "SELECT UNIX_TIMESTAMP(ADDDATE(bis,INTERVAL 1 DAY)) as anfang
FROM ".DB_PREFIX."ferien WHERE bis IS NOT NULL AND bis > NOW() ORDER BY bis ASC LIMIT 1";
$_db->holeDaten($query);
$timestamp_anfang = $_db->holeWert();
break;
case 'vorgegeben':
$query = "SELECT von, bis FROM ".DB_PREFIX."ferien
WHERE art IN(10,1,13) AND
((ADDDATE(von,INTERVAL 2 MONTH)>NOW() AND bis IS NULL) OR (ADDDATE(bis,INTERVAL 2 MONTH)>NOW() AND bis IS NOT NULL))
ORDER BY von LIMIT 1";
$_db->holeDaten($query);
if($_db->holeAnzahl() < 1){
$timestamp_anfang = time();
}
else{
$row = $_db->holeZeile();
$datum = is_null($row['bis'])?$row['von']:$row['bis'];
$timestamp_anfang = strtotime($datum);
$query = "SELECT UNIX_TIMESTAMP(DATE_SUB(von, INTERVAL 1 DAY)) as bis FROM ".DB_PREFIX."ferien
WHERE art IN(10,1,13) AND von > '".$datum."' ORDER BY von LIMIT 1";
$_db->holeDaten($query);
if($_db->holeAnzahl() > 0){
$timestamp_ende = $_db->holeWert();
}
}
break;
case 'heute':
default:
$timestamp_anfang = time();
break;
}
$daten['von'] = date('d.m.Y',$timestamp_anfang);
$zeitraum = substr($user_conf['zeitraum'],-1);
if(isset($timestamp_ende)){
$daten['bis'] = date('d.m.Y',$timestamp_ende);
}
else{
$daten['bis'] = date('d.m.Y',strtotime($zeitraum.' month',$timestamp_anfang)); #$timestamp_ende;
}
# Trainingsgruppen vorbelegen
$query = "SELECT trainingsgruppenid
FROM ".DB_PREFIX."trainingsgruppen_uebungsleiter as tu, ".DB_PREFIX."uebungsleiter as u
WHERE u.mitgliedid = ".$_SESSION['user']['id']." AND tu.uebungsleiterid=u.id";
$_db->holeDaten($query);
$daten['gruppen'] = $_db->baueArray('trainingsgruppenid','#');
$daten['listenart'] = 'normale';
$daten['az'] = array('1_100','2_100','3_100','4_100');
$daten['telefonnummern_n'] = 1;
$daten['kaestchen'] = 2;
$_tmpl->assign('daten',$daten);
}
else{
require_once('func/pruefen.inc.php');
$f = $d = '';
if(!isset($_POST['daten']['gruppen'])){
$f .= 'Es wurde keine Gruppe ausgewählt.
';
}
else{
$anz = count($_POST['daten']['gruppen']);
for($i=0;$i<$anz;$i++){
$f .= pruefen($_POST['daten']['gruppen'][$i],'wertemenge','Die Gruppe ist ungültig',array_keys($gruppen));
}
}
if(!in_array($_POST['daten']['listenart'],array('normale','wettkampfmeldung','blanko'))){
$f .= 'Die Wettkampfart ist ungültig
';
}
else{
switch($_POST['daten']['listenart']){
case 'normale':
# Anfangs-/Enddatum prüfen
$d .= pruefen($_POST['daten']['von'],'leer','Ab welchem Datum soll die Anwesenheitsliste generiert werden?');
$d .= pruefen($_POST['daten']['von'],'datum','Das von-Datum ist ungültig.');
$d .= pruefen($_POST['daten']['bis'],'leer','Bis zu welchem Datum soll die Anwesenheitsliste generiert werden?');
$d .= pruefen($_POST['daten']['bis'],'datum','Das bis-Datum ist ungültig.');
if(empty($d)){
$f .= pruefen($_POST['daten']['von'],'datumvordatum','Das bis-Datum muss nach dem von-Datum liegen',$_POST['daten']['bis']);
}
else{
$f .= $d;
}
# aktuelle Zeiten - erlaubte Strecken
if(isset($_POST['daten']['aktuellezeiten'])){
if(!isset($_POST['daten']['az']) or !is_array($_POST['daten']['az'])){
$f .= 'Es wurden keine Strecken für die aktuellen Zeiten ausgewählt
';
}
else{
$erlaubt = array(
'1_50', '1_100', '1_200', '1_400', '1_800', '1_1500',
'2_50', '2_100', '2_200',
'3_50', '3_100', '3_200',
'4_50', '4_100', '4_200',
'5_100', '5_200', '5_400'
);
foreach($_POST['daten']['az'] as $strecke){
$f .= pruefen($strecke, 'wertemenge', 'Die Strecke ist ungültig', array_keys($erlaubt));
}
}
$f .= pruefen($_POST['daten']['genauigkeit'], 'wertemenge', 'Die Genauigkeit ist ungültig', array_keys($genauigkeiten));
}
break;
case 'wettkampfmeldung':
$f .= pruefen($_POST['daten']['wettkampf'],'wertemenge','Der gewählte Wettkampf ist ungültig.',array_keys($wettkaempfe));
break;
case 'blanko':
$f .= pruefen($_POST['daten']['kaestchen'],'zahl','Die Anzahl der Kästchen ist ungültig');
break;
default:
break;
}
}
if(!empty($f)){
$_tmpl->assign('fehler',$f);
$_tmpl->assign('daten',$_POST['daten']);
}
else{
require_once('func/erstelleanwesenheitsliste.inc.php');
$gruppen = $_POST['daten']['gruppen'];
$conf = array();
switch($_POST['daten']['listenart']){
case 'wettkampfmeldung':
$conf['wettkampf'] = $_POST['daten']['wettkampf'];
break;
case 'blanko':
$conf['kaestchen'] = $_POST['daten']['kaestchen'];
$conf['telefon'] = isset($_POST['daten']['telefonnummern_b']);
break;
case 'normale':
$conf['von'] = $_POST['daten']['von'];
$conf['bis'] = $_POST['daten']['bis'];
$conf['telefon'] = isset($_POST['daten']['telefonnummern_n']);
if(isset($_POST['daten']['aktuellezeiten'])){
$conf['aktuellezeiten'] = $_POST['daten']['az'];
$conf['genauigkeit'] = $_POST['daten']['genauigkeit'];
$conf['doppeltebreite'] = isset($_POST['daten']['doppeltebreite'])?1:0;
}
break;
}
erstelleAnwesenheitsliste($gruppen, $_POST['daten']['listenart'], $conf);
}
}
$_tmpl->tk_append_string('js_inline',"function optionenzeigen(){
if(!document.getElementById){
return false;
}
var rb = document.forms[0].elements['daten[listenart]'];
document.getElementById('normale').style.display = rb[0].checked?'':'none';
document.getElementById('wettkampfmeldung').style.display = rb[1].checked?'':'none';
document.getElementById('blanko').style.display = rb[2].checked?'':'none';
}",1);
$_tmpl->tk_append_string('js_inline',"function az(){
if(!document.getElementById){
return false;
}
var aktuellez = document.forms[0].elements['daten[aktuellezeiten]'].checked;
document.getElementById('aktuellezeiten').style.display = aktuellez?'':'none';
}",1);
$_tmpl->tk_append_string('css_inline','#aktuellezeiten label { margin-left:0.5em; }
#aktuellezeiten li span { display:block; width:6em; float:left; }',1);
$_inh .= $_tmpl->fetch('training/34.anwesenheitsliste-formular.inc.html');
} # Ende Anzahl-Trainingsgruppen-else
} # Ende Rechte-else, EOF
?>