first commit

This commit is contained in:
aschwarz
2022-11-28 10:24:23 +01:00
commit 5121fd03d4
3332 changed files with 768541 additions and 0 deletions

BIN
admin/Import_CSV_Hogrefe.xlsx Executable file

Binary file not shown.

9
admin/administration_frame.php Executable file
View File

@ -0,0 +1,9 @@
<?php
include_once '../classes/TestProjektSmarty.class_subdir.php';
require_once("../config.inc.php");
$templatename = substr(basename($_SERVER['PHP_SELF']),0,-3)."html";
$smarty = new SmartyAdmin();
require_once "../language/german.inc.php";
$smarty->display("$template/admin/$templatename");
?>

1328
admin/bewerber_daten.php Executable file

File diff suppressed because it is too large Load Diff

365
admin/datencheck.php Executable file
View File

@ -0,0 +1,365 @@
<?php
if(!isset($_SESSION)) { session_start(); }
include_once '../classes/TestProjektSmarty.class_subdir.php';
require_once("../config.inc.php");
$templatename = substr(basename($_SERVER['PHP_SELF']),0,-3)."html";
$smarty = new SmartyAdmin();
require_once "../language/german.inc.php";
if (isset($_GET['action'])) {
$action = $_GET['action'];
} else {
$action = '';
}
if ($action == '') {
$query0 = "SELECT distinct substr(id,-5) Jahrgang FROM `bpm_kandidat` ORDER BY `Jahrgang` DESC limit 2";
$result0 = $db->query($query0) or die("Cannot execute query1");
while ($row0 = $result0->fetch_array()) {
$id = $row0['Jahrgang'];
#Anzahl der getesteten Kandidaten
$result_anzget = $db->query("SELECT count(distinct ka_id) Anz
FROM bpm_term_kand a, bpm_tanpool b
WHERE a.tp_id = b.tp_id
AND a.ka_id in (SELECT ka_id from bpm_kandidat where id like '%".$id."')
AND b.login_dat != '0000-00-00 00:00:00'");
$row_anzget = $result_anzget->fetch_array();
#$smarty->assign('datenchk_anzget', $row_anzget['Anz']);
#Anzahl der Kandidaten mit ausstehendem Test
$result_aussttest = $db->query("SELECT count(*) Anz
FROM bpm_term_kand a, bpm_tanpool b
WHERE a.tp_id=b.tp_id
AND verw_dat != '0000-00-00 00:00:00'
AND a.ka_id in (SELECT ka_id from bpm_kandidat where id like '%".$id."')
AND b.login_dat = '0000-00-00 00:00:00'");
$row_aussttest = $result_aussttest->fetch_array();
#$smarty->assign('datenchk_aussttest', $row_aussttest['Anz']);
#Anzahl aller Anmeldung
$result_alleranm = $db->query("SELECT count(distinct ka_id) Anz
FROM bpm_term_kand a, bpm_tanpool b
WHERE a.tp_id = b.tp_id
AND a.ka_id in (SELECT ka_id from bpm_kandidat where id like '%".$id."')
AND b.verw_dat != '0000-00-00 00:00:00'");
$row_alleranm = $result_alleranm->fetch_array();
#$smarty->assign('datenchk_alleranm', $row_alleranm['Anz']);
#Anzahl Durchfaller - komplizierter. Wenn er nach dem ersten Mal durchgefallen doch bestanden hat, gilt er nicht als Durchfaller
$query = "SELECT ka_id, max(tp_id) tp_id
FROM bpm_term_kand
GROUP BY ka_id
";
$result = $db->query($query) or die("Cannot execute query1");
$zaehler = 0;
while ($row = $result->fetch_array()) {
$result_tan = $db->query("SELECT tan
FROM bpm_tanpool
WHERE tp_id = $row[tp_id]");
$row_tan = $result_tan->fetch_array();
$result_bestanden = $db->query("SELECT bestanden
FROM bpm_ergebnisse
WHERE ka_id = $row[ka_id]
AND ka_id in (SELECT ka_id from bpm_kandidat where id like '%".$id."')
AND tan = '$row_tan[tan]'");
$row_bestanden = $result_bestanden->fetch_array();
if($row_bestanden['bestanden'] == 0 and $row_bestanden['bestanden'] != ''){
$zaehler++;
}
}
# $smarty->assign('datenchk_anzdurchfaller', $zaehler);
#Anzahl aller Bewerberungen
$result_anzbewerb = $db->query("SELECT count(distinct ka_id) Anz
FROM bpm_upload
WHERE upload_dat != '0000-00-00 00:00:00'
AND ka_id in (SELECT ka_id from bpm_kandidat where id like '%".$id."')");
$row_anzbewerb = $result_anzbewerb->fetch_array();
# $smarty->assign('datenchk_anzbewerbungen', $row_anzbewerb['Anz']);
$row0['datenchk_anzget'] = $row_anzget['Anz'];
$row0['datenchk_aussttest'] = $row_aussttest['Anz'];
$row0['datenchk_alleranm'] = $row_alleranm['Anz'];
$row0['datenchk_anzdurchfaller'] = $zaehler;
$row0['datenchk_anzbewerbungen'] = $row_anzbewerb['Anz'];
$table_data[] = $row0;
}
$smarty->assign('table_data', $table_data);
/*
# Gespeicherte Werte
$query1 = "SELECT a.ka_id, perso, vorname, nachname, mail, date_format(tm_datum, '%d.%m.%Y um %H:%i Uhr') tm_datum, CASE tm_standort
WHEN 'L' THEN 'Ludwigsburg'
WHEN 'K' THEN 'Kehl'
ELSE '' END as tm_standort
, behinderung, verkuerzung
, a.hochschule
, kurznotiz
FROM bpm_kandidat a, bpm_term_kand b, bpm_termine c, bpm_ergebnisse d, bpm_tanpool e
WHERE a.ka_id = b.ka_id
AND b.tm_id = c.tm_id
AND a.ka_id = d.ka_id
AND b.tp_id = e.tp_id
AND a.ka_id IN (SELECT distinct ka_id FROM bpm_ergebnisse)
AND a.ka_id IN (SELECT distinct ka_id FROM bpm_upload WHERE upload_dat != '0000-00-00 00:00:00')
AND d.bestanden = '1'
AND e.tan=d.tan
ORDER BY kurznotiz ASC, nachname ASC, vorname ASC
";
$result1 = $db->query($query1) or die("Cannot execute query1");
$row_cnt = $result1->num_rows;
$smarty->assign('dokverw_anzdb', $row_cnt);
while ($row1 = $result1->fetch_array()) {
$result_test = $db->query("SELECT summe
FROM bpm_ergebnisse
WHERE ka_id = '$row1[ka_id]'
AND bestanden = '1'");
$row_test = $result_test->fetch_array();
$result_perso = $db->query("SELECT count(*) Anz
FROM bpm_kandidat
WHERE perso = '$row1[perso]'
");
$row_perso = $result_perso->fetch_array();
if($row_perso['Anz'] > 1){
$perso_alert = "red";
}else{
$perso_alert = "black";
}
$result_rang3 = $db->query("SELECT rang3
FROM bpm_tmp_jahrgang_kandidat
WHERE ka_id = '$row1[ka_id]'
");
$row_rang3 = $result_rang3->fetch_array();
$result_anzhzb = $db->query("SELECT count(*) Anz
FROM bpm_upload
WHERE beschreibung = 'HZB'
AND ka_id = '$row1[ka_id]'");
$row_anzhzb = $result_anzhzb->fetch_array();
if($row_anzhzb['Anz'] > 0){
$image_hzb = "ok.gif";
}else{
$image_hzb = "cross.jpg";
}
$result_anzzusage = $db->query("SELECT b.bez
FROM bpm_dst_wunsch a, bpm_dienststellen b
WHERE a.dst_id = b.dst_id
AND a.zusage = 'J'
AND a.ka_id = '$row1[ka_id]'");
$row_anzzusage = $result_anzzusage->fetch_array();
if($row_anzzusage['bez'] != ''){
$image_zusage = "ok.gif";
$dstzusagebez = $row_anzzusage['bez'];
}else{
$image_zusage = "cross.jpg";
$dstzusagebez = "";
}
# Wunschhochschule
$result_wunschhs = $db->query("SELECT wunsch_hs, zugewiesene_hs
FROM bpm_erw_daten
WHERE ka_id = '$row1[ka_id]'");
$row_wunschhs = $result_wunschhs->fetch_array();
if($row_wunschhs['wunsch_hs'] == 'E'){
$wunsch_hs = "Egal";
}elseif($row_wunschhs['wunsch_hs'] == 'K'){
$wunsch_hs = "Kehl";
}elseif($row_wunschhs['wunsch_hs'] == 'L'){
$wunsch_hs = "Ludwigsburg";
}elseif($row_wunschhs['wunsch_hs'] == ''){
$wunsch_hs = "";
}
if($row_wunschhs['zugewiesene_hs'] == 'O'){
$zugewiesene_hs = "Offen";
}elseif($row_wunschhs['zugewiesene_hs'] == 'K'){
$zugewiesene_hs = "Kehl";
}elseif($row_wunschhs['zugewiesene_hs'] == 'L'){
$zugewiesene_hs = "Ludwigsburg";
}elseif($row_wunschhs['zugewiesene_hs'] == ''){
$zugewiesene_hs = "";
}
$result_anzzeug = $db->query("SELECT count(*) Anz
FROM bpm_upload
WHERE beschreibung like 'Zeugnis%'
AND ka_id = '$row1[ka_id]'");
$row_anzzeug = $result_anzzeug->fetch_array();
if($row_anzzeug['Anz'] >= 2){
$image_zeug = "ok.gif";
}else{
$image_zeug = "cross.jpg";
}
$result_anzleben = $db->query("SELECT count(*) Anz
FROM bpm_upload
WHERE beschreibung = 'Lebenslauf'
AND ka_id = '$row1[ka_id]'");
$row_anzleben = $result_anzleben->fetch_array();
if($row_anzleben['Anz'] >= 1){
$image_leben = "ok.gif";
}else{
$image_leben = "cross.jpg";
}
$result_notehzb = $db->query("SELECT hzb, zeugnisschnitt
FROM bpm_note
WHERE ka_id = '$row1[ka_id]'");
$row_notehzb = $result_notehzb->fetch_array();
if($row_notehzb['hzb'] == "0.00" or $row_notehzb['hzb'] == ""){
$image_notehzb = "cross.jpg";
$note_hzb = '';
}else{
$image_notehzb = "ok.gif";
$note_hzb = number_format($row_notehzb['hzb'], 1, ',', '.');
}
if($row_notehzb['zeugnisschnitt'] == "0.00" or $row_notehzb['zeugnisschnitt'] == ""){
$image_noteschnitt = "cross.jpg";
$note_wert = '';
}else{
$image_noteschnitt = "ok.gif";
$note_wert = number_format($row_notehzb['zeugnisschnitt'], 1, ',', '.');
}
$row1['image_zusage'] = $image_zusage;
$row1['perso_alert'] = $perso_alert;
$row1['rang3'] = $row_rang3['rang3'];
$row1['dstzusagebez'] = $dstzusagebez;
$row1['image_noteschnitt']= $image_noteschnitt;
$row1['note_wert'] = $note_wert;
$row1['image_notehzb'] = $image_notehzb;
$row1['note_hzb'] = $note_hzb;
$row1['image_leben'] = $image_leben;
$row1['image_zeug'] = $image_zeug;
$row1['anz_zeug'] = $row_anzzeug['Anz'];
$row1['image_hzb'] = $image_hzb;
$row1['testergebnis'] = $row_test['summe'];
$row1['wunsch_hs'] = $wunsch_hs;
$row1['zugewiesene_hs'] = $zugewiesene_hs;
$table_data1[] = $row1;
}
echo "<pre>";
#print_r($table_data1);
echo "</pre>";
$kurznotiz = array_column($table_data1, 'kurznotiz');
$ka_id = array_column($table_data1, 'ka_id');
$nachname = array_column($table_data1, 'nachname');
$rang3 = array_column($table_data1, 'rang3');
$hochschule = array_column($table_data1, 'hochschule');
$wunsch_hs = array_column($table_data1, 'wunsch_hs');
$zugewiesene_hs = array_column($table_data1, 'zugewiesene_hs');
$testergebnis = array_column($table_data1, 'testergebnis');
$verkuerzung = array_column($table_data1, 'verkuerzung');
$behinderung = array_column($table_data1, 'behinderung');
$zusage = array_column($table_data1, 'dstzusagebez');
$note_hzb = array_column($table_data1, 'note_hzb');
$note_wert = array_column($table_data1, 'note_wert');
$mail = array_column($table_data1, 'mail');
$image_hzb = array_column($table_data1, 'image_hzb');
$anz_zeug = array_column($table_data1, 'anz_zeug');
$image_leben = array_column($table_data1, 'image_leben');
$image_notehzb = array_column($table_data1, 'image_notehzb');
$image_noteschnitt = array_column($table_data1, 'image_noteschnitt');
#setlocale ( LC_COLLATE ,'de_DE.utf8');
setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
if($_GET['order'] == 4){
$order = 3;
}else{
$order = 4;
}
if(isset($_GET['sort'])){
$sort = $_GET['sort'];
}else{
$sort = "kurznotiz";
}
if($order == 3){
$smarty->assign('check_order_klartext', 'Absteigend');
}else{
$smarty->assign('check_order_klartext', 'Aufsteigend');
}
if($sort == "kurznotiz"){
$smarty->assign('check_sort_klartext', 'Kurznotiz');
}elseif($sort == "ka_id"){
$smarty->assign('check_sort_klartext', 'Bew. Nr.');
}elseif($sort == "nachname"){
$smarty->assign('check_sort_klartext', 'Name');
}elseif($sort == "perso"){
$smarty->assign('check_sort_klartext', 'Ausweis');
}elseif($sort == "rang3"){
$smarty->assign('check_sort_klartext', 'Ranglistenplatz&nbsp;3');
}elseif($sort == "hochschule"){
$smarty->assign('check_sort_klartext', 'zust&auml;ndige&nbsp;Hochschule');
}elseif($sort == "wunsch_hs"){
$smarty->assign('check_sort_klartext', 'Wunsch&nbsp;Hochschule');
}elseif($sort == "zugewiesene_hs"){
$smarty->assign('check_sort_klartext', 'Zugewiesene&nbsp;Hochschule');
}elseif($sort == "testergebnis"){
$smarty->assign('check_sort_klartext', 'Testergebnis');
}elseif($sort == "verkuerzung"){
$smarty->assign('check_sort_klartext', 'Verk&uuml;rzung');
}elseif($sort == "behinderung"){
$smarty->assign('check_sort_klartext', 'Schwerbehinderung');
}elseif($sort == "zusage"){
$smarty->assign('check_sort_klartext', 'Stellenzusage');
}elseif($sort == "note_hzb"){
$smarty->assign('check_sort_klartext', 'Notenwert&nbsp;HZB');
}elseif($sort == "note_wert"){
$smarty->assign('check_sort_klartext', 'Notenwert&nbsp;Durchschnitt');
}elseif($sort == "mail"){
$smarty->assign('check_sort_klartext', 'Mailadresse');
}elseif($sort == "image_hzb"){
$smarty->assign('check_sort_klartext', 'PDF&nbsp;Upload&nbsp;HZB');
}elseif($sort == "anz_zeug"){
$smarty->assign('check_sort_klartext', 'PDF&nbsp;Upload&nbsp;Zeugnisse');
}elseif($sort == "image_leben"){
$smarty->assign('check_sort_klartext', 'Lebenslauf');
}elseif($sort == "image_notehzb"){
$smarty->assign('check_sort_klartext', 'Note&nbsp;HZB');
}elseif($sort == "image_noteschnitt"){
$smarty->assign('check_sort_klartext', 'Note&nbsp;Durchschnitt');
}
#Sortiertyp
if($sort == 'kurznotiz' OR $sort == 'perso' OR $sort == 'nachname' OR $sort == 'hochschule' OR $sort == 'wunsch_hs' OR $sort == 'zugewiesene_hs' OR $sort == 'note_hzb' OR $sort == 'note_wert'){
$sorttyp = SORT_LOCALE_STRING;
}elseif($sort == 'ka_id' OR $sort == 'rang3'){
$sorttyp = SORT_NUMERIC;
}else{
$sorttyp = SORT_REGULAR ;
}
$smarty->assign('check_sort', $sort);
$smarty->assign('check_order', $order);
# echo "array_multisort($$sort, $order, $sorttyp, table_data1)<br>";
array_multisort($$sort, $order, $nachname, $order, $sorttyp, $table_data1);
$smarty->assign('table_data1', $table_data1);
*/
}
$smarty->assign('action', "$action");
$smarty->display("$template/admin/$templatename");
?>

289
admin/datencheck_excel.php Executable file
View File

@ -0,0 +1,289 @@
<?php
# Orner phpspreadsheet_1.8.1.0_php-7.0 für Hoschschule verwenden
#require_once "../phpspreadsheet-1.13_php-7.4/vendor/autoload.php";
require_once "../phpspreadsheet_1.8.1.0_php-7.0/vendor/autoload.php";
require_once("../config.inc.php");
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
$spreadsheet = new Spreadsheet();
#$spreadsheet->getActiveSheet()->getPageSetup()->setFitToWidth(1);
#$spreadsheet->getActiveSheet()->getPageSetup()->setFitToHeight(0);
$activeSheet = $spreadsheet->getActiveSheet();
$activeSheet->getStyle('A1:AD1')->applyFromArray(array(
'font' => array(
'bold' => true
)
));
$activeSheet->setCellValue('A1', 'Kurznotiz');
$activeSheet->setCellValue('B1', 'Bewerbernr.');
$activeSheet->setCellValue('C1', 'Anrede');
$activeSheet->setCellValue('D1', 'Vorname');
$activeSheet->setCellValue('E1', 'Nachname');
$activeSheet->setCellValue('F1', 'Ausweis');
$activeSheet->setCellValue('G1', 'Mail');
$activeSheet->setCellValue('H1', 'Straße');
$activeSheet->setCellValue('I1', 'PLZ');
$activeSheet->setCellValue('J1', 'Ort');
$activeSheet->setCellValue('K1', 'Geburtsdatum');
$activeSheet->setCellValue('L1', 'Testdatum');
$activeSheet->setCellValue('M1', 'Zuständige Hochschule');
$activeSheet->setCellValue('M1', 'Wunsch Hochschule');
$activeSheet->setCellValue('O1', 'Zugewiesene Hochschule');
$activeSheet->setCellValue('P1', 'Testergebnis');
$activeSheet->setCellValue('Q1', 'Verkürzung');
$activeSheet->setCellValue('R1', 'Schwerbehinderung');
$activeSheet->setCellValue('S1', 'PDF Upload HZB');
$activeSheet->setCellValue('T1', 'PDF Upload Zeugnisse');
$activeSheet->setCellValue('U1', 'Lebenslauf');
$activeSheet->setCellValue('V1', 'Note HZB');
$activeSheet->setCellValue('W1', 'Notenwert HZB');
$activeSheet->setCellValue('X1', 'Note Durchschnitt');
$activeSheet->setCellValue('Y1', 'Notewert Durchschnitt');
$activeSheet->setCellValue('Z1', 'Bezeichnung Ausbildungsstelle');
$activeSheet->setCellValue('AA1', 'Straße Ausbildungsstelle');
$activeSheet->setCellValue('AB1', 'PLZ Ausbildungsstelle');
$activeSheet->setCellValue('AC1', 'Ort Ausbildungsstelle');
$activeSheet->setCellValue('AD1', 'Ranglistenplatz 3');
$activeSheet->freezePane('A2');
$query = $db->query("SELECT a.ka_id
,CASE anrede
WHEN 'W' THEN 'Frau'
WHEN 'M' THEN 'Herr'
ELSE '' END as Anrede
,perso
,vorname
,nachname
,mail
,str
,plz
,ort
,mail
,date_format(gebdat, '%d.%m.%Y') Gebdat
,date_format(tm_datum, '%d.%m.%Y um %H:%i Uhr') tm_datum
,CASE tm_standort
WHEN 'L' THEN 'Ludwigsburg'
WHEN 'K' THEN 'Kehl'
ELSE '' END as tm_standort
,behinderung
,verkuerzung
,a.hochschule
,kurznotiz
FROM bpm_kandidat a, bpm_term_kand b, bpm_termine c, bpm_ergebnisse d, bpm_tanpool e
WHERE a.ka_id = b.ka_id
AND b.tm_id = c.tm_id
AND a.ka_id = d.ka_id
AND b.tp_id = e.tp_id
AND a.ka_id IN (SELECT distinct ka_id FROM bpm_ergebnisse)
AND a.ka_id IN (SELECT distinct ka_id FROM bpm_upload WHERE upload_dat != '0000-00-00 00:00:00')
AND d.bestanden = '1'
AND e.tan=d.tan
ORDER BY nachname ASC, vorname ASC
");
if ($query->num_rows > 0) {
$i = 2;
while ($row = $query->fetch_assoc()) {
$result_test = $db->query("SELECT summe
FROM bpm_ergebnisse
WHERE ka_id = '$row[ka_id]'
AND bestanden = '1'");
$row_test = $result_test->fetch_array();
$result_rang3 = $db->query("SELECT rang3
FROM bpm_tmp_jahrgang_kandidat
WHERE ka_id = '$row[ka_id]'
");
$row_rang3 = $result_rang3->fetch_array();
if ($row['verkuerzung'] == 'J') {
$verkuerzung = 'Ja';
} else {
$verkuerzung = '';
}
if ($row['behinderung'] == 'J') {
$behinderung = 'Ja';
} else {
$behinderung = '';
}
$result_anzhzb = $db->query("SELECT count(*) Anz
FROM bpm_upload
WHERE beschreibung = 'HZB'
AND ka_id = '$row[ka_id]'");
$row_anzhzb = $result_anzhzb->fetch_array();
if ($row_anzhzb['Anz'] > 0) {
$pdf_hzb = "Ja";
} else {
$pdf_hzb = "Nein";
}
$result_anzzeug = $db->query("SELECT count(*) Anz
FROM bpm_upload
WHERE beschreibung like 'Zeugnis%'
AND ka_id = '$row[ka_id]'");
$row_anzzeug = $result_anzzeug->fetch_array();
$result_anzleben = $db->query("SELECT count(*) Anz
FROM bpm_upload
WHERE beschreibung = 'Lebenslauf'
AND ka_id = '$row[ka_id]'");
$row_anzleben = $result_anzleben->fetch_array();
if ($row_anzleben['Anz'] >= 1) {
$leben = "Ja";
} else {
$leben = "Nein";
}
$result_notehzb = $db->query("SELECT hzb, zeugnisschnitt
FROM bpm_note
WHERE ka_id = '$row[ka_id]'");
$row_notehzb = $result_notehzb->fetch_array();
if ($row_notehzb['hzb'] == "0.00" or $row_notehzb['hzb'] == "") {
$notehzb = "Nein";
$note_hzb = '';
} else {
$notehzb = "Ja";
$note_hzb = number_format($row_notehzb['hzb'], 1, ',', '.');
}
if ($row_notehzb['zeugnisschnitt'] == "0.00" or $row_notehzb['zeugnisschnitt'] == "") {
$noteschnitt = "Nein";
$note_wert = '';
} else {
$noteschnitt = "Ja";
$note_wert = number_format($row_notehzb['zeugnisschnitt'], 1, ',', '.');
}
$result_dst = $db->query("SELECT bez, str, plz, ort
FROM bpm_dienststellen a
WHERE dst_id IN (SELECT dst_id
FROM bpm_dst_wunsch b
WHERE a.dst_id = b.dst_id
AND b.ka_id = '$row[ka_id]'
AND zusage ='J')");
$row_dst = $result_dst->fetch_array();
if ($row_dst['bez'] != "") {
$dst_bez = $row_dst['bez'];
$dst_str = $row_dst['str'];
$dst_plz = $row_dst['plz'];
$dst_ort = $row_dst['ort'];
} else {
$dst_bez = '';
$dst_str = '';
$dst_plz = '';
$dst_ort = '';
}
$result_erwhs = $db->query("SELECT wunsch_hs, zugewiesene_hs
FROM bpm_erw_daten
WHERE ka_id = '$row[ka_id]'
");
$row_erwhs = $result_erwhs->fetch_array();
if($row_erwhs['wunsch_hs'] == 'E'){
$wunsch_hs = "Egal";
}elseif($row_erwhs['wunsch_hs'] == 'K'){
$wunsch_hs = "Kehl";
}elseif($row_erwhs['wunsch_hs'] == 'L'){
$wunsch_hs = "Ludwigsburg";
}elseif($row_erwhs['wunsch_hs'] == ''){
$wunsch_hs = "";
}
if($row_erwhs['zugewiesene_hs'] == 'O'){
$zugewiesene_hs = "Offen";
}elseif($row_erwhs['zugewiesene_hs'] == 'K'){
$zugewiesene_hs = "Kehl";
}elseif($row_erwhs['zugewiesene_hs'] == 'L'){
$zugewiesene_hs = "Ludwigsburg";
}elseif($row_erwhs['zugewiesene_hs'] == ''){
$zugewiesene_hs = "";
}
$activeSheet->setCellValue('A' . $i, $row['kurznotiz']);
$activeSheet->setCellValue('B' . $i, $row['ka_id']);
$activeSheet->setCellValue('C' . $i, "$row[Anrede]");
$activeSheet->setCellValue('D' . $i, "$row[vorname]");
$activeSheet->setCellValue('E' . $i, "$row[nachname]");
$activeSheet->setCellValue('F' . $i, "$row[perso]");
$activeSheet->setCellValue('G' . $i, "$row[mail]");
$activeSheet->setCellValue('H' . $i, "$row[str]");
$activeSheet->setCellValue('I' . $i, "$row[plz]");
$activeSheet->setCellValue('J' . $i, "$row[ort]");
$activeSheet->setCellValue('K' . $i, "$row[Gebdat]");
$activeSheet->setCellValue('L' . $i, "$row[tm_datum] ($row[tm_standort])");
$activeSheet->setCellValue('M' . $i, $row['hochschule']);
$activeSheet->setCellValue('N' . $i, $wunsch_hs);
$activeSheet->setCellValue('O' . $i, $zugewiesene_hs);
$activeSheet->setCellValue('P' . $i, "$row_test[summe] / 130");
$activeSheet->setCellValue('Q' . $i, $verkuerzung);
$activeSheet->setCellValue('R' . $i, $behinderung);
$activeSheet->setCellValue('S' . $i, $pdf_hzb);
$activeSheet->setCellValue('T' . $i, "$row_anzzeug[Anz] / 2");
$activeSheet->setCellValue('U' . $i, $leben);
$activeSheet->setCellValue('V' . $i, $notehzb);
$activeSheet->setCellValue('W' . $i, $note_hzb);
$activeSheet->setCellValue('X' . $i, $noteschnitt);
$activeSheet->setCellValue('Y' . $i, $note_wert);
$activeSheet->setCellValue('Z' . $i, $dst_bez);
$activeSheet->setCellValue('AA' . $i, $dst_str);
$activeSheet->setCellValue('AB' . $i, $dst_plz);
$activeSheet->setCellValue('AC' . $i, $dst_ort);
$activeSheet->setCellValue('AD' . $i, $row_rang3['rang3']);
$i++;
}
}
$spreadsheet->getActiveSheet()->setTitle("Datencheck");
$spreadsheet->getActiveSheet()->getColumnDimension('A')->setAutoSize(true);
$spreadsheet->getActiveSheet()->getColumnDimension('B')->setAutoSize(true);
$spreadsheet->getActiveSheet()->getColumnDimension('C')->setAutoSize(true);
$spreadsheet->getActiveSheet()->getColumnDimension('D')->setAutoSize(true);
$spreadsheet->getActiveSheet()->getColumnDimension('E')->setAutoSize(true);
$spreadsheet->getActiveSheet()->getColumnDimension('F')->setAutoSize(true);
$spreadsheet->getActiveSheet()->getColumnDimension('G')->setAutoSize(true);
$spreadsheet->getActiveSheet()->getColumnDimension('H')->setAutoSize(true);
$spreadsheet->getActiveSheet()->getColumnDimension('I')->setAutoSize(true);
$spreadsheet->getActiveSheet()->getColumnDimension('J')->setAutoSize(true);
$spreadsheet->getActiveSheet()->getColumnDimension('K')->setAutoSize(true);
$spreadsheet->getActiveSheet()->getColumnDimension('L')->setAutoSize(true);
$spreadsheet->getActiveSheet()->getColumnDimension('M')->setAutoSize(true);
$spreadsheet->getActiveSheet()->getColumnDimension('N')->setAutoSize(true);
$spreadsheet->getActiveSheet()->getColumnDimension('O')->setAutoSize(true);
$spreadsheet->getActiveSheet()->getColumnDimension('P')->setAutoSize(true);
$spreadsheet->getActiveSheet()->getColumnDimension('Q')->setAutoSize(true);
$spreadsheet->getActiveSheet()->getColumnDimension('R')->setAutoSize(true);
$spreadsheet->getActiveSheet()->getColumnDimension('S')->setAutoSize(true);
$spreadsheet->getActiveSheet()->getColumnDimension('T')->setAutoSize(true);
$spreadsheet->getActiveSheet()->getColumnDimension('U')->setAutoSize(true);
$spreadsheet->getActiveSheet()->getColumnDimension('V')->setAutoSize(true);
$spreadsheet->getActiveSheet()->getColumnDimension('W')->setAutoSize(true);
$spreadsheet->getActiveSheet()->getColumnDimension('X')->setAutoSize(true);
$spreadsheet->getActiveSheet()->getColumnDimension('Y')->setAutoSize(true);
$spreadsheet->getActiveSheet()->getColumnDimension('Z')->setAutoSize(true);
$spreadsheet->getActiveSheet()->getColumnDimension('AA')->setAutoSize(true);
$spreadsheet->getActiveSheet()->getColumnDimension('AB')->setAutoSize(true);
$spreadsheet->getActiveSheet()->getColumnDimension('AC')->setAutoSize(true);
$spreadsheet->getActiveSheet()->getColumnDimension('AD')->setAutoSize(true);
$spreadsheet->getActiveSheet()->setSelectedCell('A1');
$writer = new Xlsx($spreadsheet);
$filename = 'Datencheck.xlsx';
header('Content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename=' . $filename);
header('Cache-Control: max-age=0');
$writer->save('php://output');
?>

110
admin/dokverw.php Executable file
View File

@ -0,0 +1,110 @@
<?php
if(!isset($_SESSION)) { session_start(); }
include_once '../classes/TestProjektSmarty.class_subdir.php';
require_once("../config.inc.php");
$templatename = substr(basename($_SERVER['PHP_SELF']),0,-3)."html";
$smarty = new SmartyAdmin();
require_once "../language/german.inc.php";
require_once("../func_get_restplatz.php");
require_once("../func_get_parameter.php");
$verz = "../uploads/"; // relatives Uploadverzeichnis (relativ zum 'Standort' dieser Datei, wohin die Dateien kopiert werden sollen
if (isset($_GET['action'])) {
$action = $_GET['action'];
} else {
$action = '';
}
if ($action == '') {
# Gespeicherte Werte
$query1 = "SELECT up_id, file, ka_id
FROM bpm_upload
WHERE upload_dat != '0000-00-00 00:00:00'";
$result1 = $db->query($query1) or die("Cannot execute query1");
$row_cnt = $result1->num_rows;
$smarty->assign('dokverw_anzdb', $row_cnt);
while ($row1 = $result1->fetch_array()) {
$result_kand = $db->query("SELECT vorname, nachname
FROM bpm_kandidat
WHERE ka_id = '$row1[ka_id]'");
$row_kand = $result_kand->fetch_array();
if (file_exists($row1['file'])) {
$exists = 1;
} else {
$exists = 0;
}
$row1['vorname'] = $row_kand['vorname'];
$row1['nachname'] = $row_kand['nachname'];
$row1['exists'] = $exists;
$table_data1[] = $row1;
}
$smarty->assign('table_data1', $table_data1);
$dir = $_SERVER["DOCUMENT_ROOT"].dirname($_SERVER['PHP_SELF'])."/$verz";
$folder = dir($dir);
while ($dateiname = $folder->read()) {
if (filetype($dir.$dateiname) != "dir") {
$ext = strrchr($dateiname, '.');
if($ext == '.pdf'){
$result_checkdoc = $db->query("SELECT count(*) Anz
FROM bpm_upload
WHERE file ='$verz$dateiname'
LIMIT 1");
$row_checkdoc = $result_checkdoc->fetch_array();
if($row_checkdoc['Anz'] == 0){
$exists2 = 0;
$vorname = "";
$nachname = "";
}else{
$result_checkdoc2 = $db->query("SELECT ka_id
FROM bpm_upload
WHERE file ='$verz$dateiname'
LIMIT 1");
$row_checkdoc2 = $result_checkdoc2->fetch_array();
$result_kand = $db->query("SELECT vorname, nachname
FROM bpm_kandidat
WHERE ka_id = '$row_checkdoc2[ka_id]'");
$row_kand = $result_kand->fetch_array();
$vorname = $row_kand['vorname'];
$nachname = $row_kand['nachname'];
$exists2 = 1;
}
$row2['vorname'] = $vorname;
$row2['nachname'] = $nachname;
$row2['file'] = $dateiname;
$row2['exists'] = $exists2;
$row2['dateiname'] = $dateiname;
$table_data2[] = $row2;
}
}
}
$smarty->assign('table_data2', $table_data2);
$cntserver = count($table_data2);
$smarty->assign('dokverw_anzserver', $cntserver);
}
if ($action == 'delserver') {
$file = $verz.$_GET['file'];
@unlink($file);
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "\">";
}
if ($action == 'deldb') {
$up_id = $_GET['up_id'];
$sql1 = $db->query("DELETE FROM bpm_upload
WHERE up_id = $up_id
");
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "\">";
}
$smarty->assign('action', "$action");
$smarty->display("$template/admin/$templatename");
?>

35
admin/downpdf.php Executable file
View File

@ -0,0 +1,35 @@
<?php
require_once("../config.inc.php");
if($_SESSION["global_username"] == ''){
echo"<script type='text/javascript'>window.top.location.href = \"index.php\";</script>";
exit;
}
$file = urldecode($_GET["file"]);
#$file = str_replace('%28', '(', $file);
#$file = str_replace('%29', ')', $file);
#$file = str_replace('%2C', ',', $file);
#$file = str_replace('%3B', ';', $file);
#$file = str_replace('%3B', ';', $file);
#$file = str_replace('%E2%80%93', '&#8211;', $file);
if (file_exists($file)) {
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=" . urlencode(basename($file)));
header("Content-Type: application/download");
header("Content-Description: File Transfer");
header("Content-Length: " . filesize($file));
flush(); // This doesn't really matter.
$fp = fopen($file, "r");
while (!feof($fp)) {
echo fread($fp, 65536);
flush(); // This is essential for large downloads
}
fclose($fp);
}else{
echo "Datei nicht gefunden";
}
?>

123
admin/ergebnisse.php Executable file
View File

@ -0,0 +1,123 @@
<?php
if(!isset($_SESSION)) { session_start(); }
include_once '../classes/TestProjektSmarty.class_subdir.php';
require_once("../config.inc.php");
$templatename = substr(basename($_SERVER['PHP_SELF']), 0, -3) . "html";
$smarty = new SmartyAdmin();
require_once("../language/german.inc.php");
require_once("../func_get_parameter.php");
require_once("../config/func_cryption.php");
if (isset($_GET['action'])) {
$action = $_GET['action'];
} else {
$action = '';
}
if ($action == '') {
$german = $db->query("SET lc_time_names = 'de_DE';");
$query1 = "SELECT a.tm_id, date_format(tm_datum, '%a, %d.%m.%Y - %H:%i Uhr')tm_datum_form, tm_standort
FROM bpm_termine a, bpm_term_kand b, bpm_ergebnisse c
WHERE a.tm_id=b.tm_id
AND b.ka_id = c.ka_id
AND a.tm_datum > ADDDATE(now(), -365)
AND a.tm_datum < now()
GROUP BY a.tm_id, tm_datum_form, tm_standort
ORDER BY tm_datum desc";
$result1 = $db->query($query1) or die("Cannot execute query1");
while ($row1 = $result1->fetch_array()) {
if ($row1['tm_standort'] == 'L') {
$standort = 'Ludwigsburg';
}
if ($row1['tm_standort'] == 'K') {
$standort = 'Kehl';
}
$row1['tm_standort'] = $standort;
$table_data1[] = $row1;
}
$smarty->assign('table_data1', $table_data1);
}
if ($action == 'ausgabe') {
if (isset($_POST["testtermin"])) {
$testtermin = $_POST["testtermin"];
} else {
$testtermin = $_SESSION["testtermin"];
}
$_SESSION["testtermin"] = $testtermin;
$result = $db->query("SELECT date_format(tm_datum, '%d.%m.%Y') tm_datum, tm_standort
FROM bpm_termine
WHERE tm_id = $testtermin");
$row = $result->fetch_array();
if ($row['tm_standort'] == 'L') {
$standort = 'Ludwigsburg';
}
if ($row['tm_standort'] == 'K') {
$standort = 'Kehl';
}
$smarty->assign('erg_datum', $row['tm_datum']);
$smarty->assign('erg_standort', $standort);
$query1 = "SELECT vorname, nachname, a.ka_id, a.tan, satzerg, gemeinsamkeiten, rechenaufgaben, zahlenreihen, rechenzeichen, matrizen, merkf, summe, bestanden, a.eg_id
FROM bpm_ergebnisse a, bpm_kandidat b, bpm_term_kand c, bpm_termine d, bpm_tanpool e
WHERE a.ka_id = b.ka_id
AND b.ka_id = c.ka_id
AND c.tm_id = d.tm_id
AND c.tp_id = e.tp_id
AND e.tan = a.tan
AND d.tm_id = $testtermin
ORDER BY nachname ASC";
$result1 = $db->query($query1) or die("Cannot execute query1");
while ($row1 = $result1->fetch_array()) {
$row1['tm_standort'] = $standort;
$table_data1[] = $row1;
}
$smarty->assign('table_data1', $table_data1);
}
if ($action == 'del') {
$ka_id = $_GET['ka_id'];
$eg_id = $_GET['eg_id'];
$result = $db->query("SELECT vorname, nachname
FROM bpm_kandidat
WHERE ka_id = $ka_id");
$row = $result->fetch_array();
$smarty->assign('del_name', "$row[vorname] $row[nachname]");
$smarty->assign('del_eg_id', $eg_id);
}
if ($action == 'del2') {
$eg_id = $_GET['eg_id'];
$sql1 = $db->query("UPDATE bpm_ergebnisse
SET summe = 0
,bestanden='0'
WHERE eg_id= $eg_id");
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?action=ausgabe\">";
}
$smarty->assign('action', "$action");
$smarty->display("$template/admin/$templatename");
?>

85
admin/fetch.php Executable file
View File

@ -0,0 +1,85 @@
<?php
require_once("../config/datenbankanbindung.php");
$db = dbconnect();
$output = '';
$script = '';
$script = $_POST['script'];
if(isset($_POST["query"]))
{
$search = mysqli_real_escape_string($db, $_POST["query"]);
if($script == "kand_del" OR $script == "termine_kandidat"){
$query = "
SELECT a.ka_id, vorname, nachname
FROM bpm_kandidat a, bpm_term_kand b, bpm_tanpool c
WHERE a.ka_id =b.ka_id
AND b.tp_id =c.tp_id
AND c.login_dat = '0000-00-00 00:00:00'
AND (vorname LIKE '%".$search."%'
OR nachname LIKE '%".$search."%')
ORDER BY nachname ASC, vorname ASC";
}else{
$query = "
SELECT ka_id, vorname, nachname
FROM bpm_kandidat
WHERE vorname LIKE '%".$search."%'
OR nachname LIKE '%".$search."%'
";
}
}
else
{
if($script == "kand_del" OR $script == "termine_kandidat"){
$query = "
SELECT a.ka_id, vorname, nachname
FROM bpm_kandidat a, bpm_term_kand b, bpm_tanpool c
WHERE a.ka_id =b.ka_id
AND b.tp_id =c.tp_id
AND c.login_dat = '0000-00-00 00:00:00'
ORDER BY nachname ASC, vorname ASC";
}else{
$query = "
SELECT ka_id, vorname, nachname
FROM bpm_kandidat
ORDER BY nachname, vorname";
}
}
$result = mysqli_query($db, $query);
if(mysqli_num_rows($result) > 0)
{
while($row = mysqli_fetch_array($result))
{
$result2 = $db->query("SELECT date_format(tm_datum, '%d.%m.%Y - %H:%i Uhr') tm_datum_form, tm_datum
FROM bpm_term_kand a, bpm_termine b
WHERE a.tm_id = b.tm_id
AND a.ka_id = '$row[ka_id]'
ORDER BY tk_id DESC
LIMIT 1");
$row2 = $result2->fetch_array();
if($row2['tm_datum'] == '0000-00-00 00:00:00'){
$tm_datum_form = "-";
}else{
$tm_datum_form = $row2['tm_datum_form'];
}
if(mysqli_num_rows($result) == 1){
$output .= "
<option value='$row[ka_id]' selected>$row[nachname], $row[vorname] ($tm_datum_form)</option>
";
}else{
$output .= "
<option value='$row[ka_id]'>$row[nachname], $row[vorname] ($tm_datum_form)</option>
";
}
}
echo $output;
}
else
{
echo 'Data Not Found';
}
?>

9
admin/hauptframe.php Executable file
View File

@ -0,0 +1,9 @@
<?php
include_once '../classes/TestProjektSmarty.class_subdir.php';
require_once("../config.inc.php");
$templatename = substr(basename($_SERVER['PHP_SELF']),0,-3)."html";
$smarty = new SmartyAdmin();
require_once "../language/german.inc.php";
$smarty->display("$template/admin/$templatename");
?>

86
admin/index.php Executable file
View File

@ -0,0 +1,86 @@
<?php
## INDEX gegen DB
if(!isset($_SESSION)) { session_start(); }
include_once '../classes/TestProjektSmarty.class_subdir.php';
require_once("../config.inc.php");
require_once("../config/datenbankanbindung.php");
$smarty = new SmartyAdmin();
$templatename = substr(basename($_SERVER['PHP_SELF']),0,-3)."html";
require_once "../language/german.inc.php";
$action = $_GET['action'];
if($action == ''){
if(isset($_GET['error'])){
$errorno = $_GET['error'];
$smarty->assign('index_error', 1);
if($errorno == 1){
$smarty->assign('index_error_text', "Es m&uuml;ssen alle Felder ausgef&uuml;llt werden");
}
if($errorno == 2){
$smarty->assign('index_error_text', "Der Benutzername ist im System nicht vorhanden");
}
if($errorno == 3){
$smarty->assign('index_error_text', "Der Benutzername oder das Passwort ist nicht korrekt.");
}
# Daten aufbereiten bei Fehler
if(isset($_SESSION["global_username"])){
$smarty->assign('index_user', $_SESSION["global_username"]);
}
}
}
if($action == 'anmeld'){
$username=strtoupper($_POST["user"]); //remove case sensitivity on the username
$password=$_POST["password"];
if($_POST["user"] != ""){
$_SESSION["global_username"]=$username;
}
if($username == "" OR $password == ""){
echo "<meta http-equiv=\"refresh\" content=\"0; URL=".$_SERVER['PHP_SELF']."?error=1\">";
}else{
$db = dbconnect();
$result = $db->query("SELECT bpmuid, uid, passwort FROM bpm_admin WHERE UPPER(uid)='$username'");
$row = $result->fetch_array();
if ($username != strtoupper($row['uid'])) {
echo "<meta http-equiv=\"refresh\" content=\"0; URL=".$_SERVER['PHP_SELF']."?error=2\">";
}
// Passwort falsch
elseif (md5($password) != $row['passwort']){ //verschlüsseltes Passwort überprüfen
# Cookies werden bereits gesetzt, falls sich jemand ein passwort zusenden lässt.
$_SESSION["global_uid"] = $row['bpmuid'];
$_SESSION["global_username"] = $row['uid'];
echo "<meta http-equiv=\"refresh\" content=\"0; URL=".$_SERVER['PHP_SELF']."?error=3\">";
}else{
$db = dbconnect();
$datum=date("Y-m-d H:i:s");
$ip=getenv("REMOTE_ADDR");
$agent=getenv("HTTP_USER_AGENT");
$user_admin = $row['bpmuid'];
$_SESSION["global_uid"] = $user_admin;
$_SESSION["global_username"] = $row['uid'];
$result_1 = $db->query("INSERT INTO bpm_adminlog (Datum, IP, user_agent, bpmuid) VALUES ('$datum', '$ip', '$agent', '$user_admin')");
$smarty->assign('index_login', "1");
}
}
}
$smarty->assign('action', "$action");
$smarty->display("$template/admin/$templatename");
?>

8
admin/indexframe.php Executable file
View File

@ -0,0 +1,8 @@
<?php
include_once '../classes/TestProjektSmarty.class_subdir.php';
require_once("../config.inc.php");
$templatename = substr(basename($_SERVER['PHP_SELF']),0,-3)."html";
$smarty = new SmartyAdmin();
require_once "../language/german.inc.php";
$smarty->display("$template/admin/$templatename");
?>

111
admin/kand_del.php Executable file
View File

@ -0,0 +1,111 @@
<?php
if(!isset($_SESSION)) { session_start(); }
include_once '../classes/TestProjektSmarty.class_subdir.php';
require_once("../config.inc.php");
$templatename = substr(basename($_SERVER['PHP_SELF']),0,-3)."html";
$smarty = new SmartyAdmin();
require_once "../language/german.inc.php";
if (isset($_GET['action'])) {
$action = $_GET['action'];
} else {
$action = '';
}
if ($action == '') {
$german = $db->query("SET lc_time_names = 'de_DE';");
# Dropdown befüllen übernimmt ajax:fetch.php
# $query1 = "SELECT a.ka_id, vorname, nachname, date_format(gebdat, '%d.%m.%Y') geb_format
# FROM bpm_kandidat a, bpm_term_kand b, bpm_tanpool c
# WHERE a.ka_id =b.ka_id
# AND b.tp_id =c.tp_id
# AND c.login_dat = '0000-00-00 00:00:00'
# ORDER BY nachname ASC, vorname ASC";
#
# $result1 = $db->query($query1) or die("Cannot execute query1");
#
#
# while ($row1 = $result1->fetch_array()) {
# $table_data1[] = $row1;
# }
# $smarty->assign('table_data1', $table_data1);
}
if ($action == 'nachfrage') {
$ka_id = $_POST['user'];
$result_id = $db->query("SELECT vorname, nachname
FROM bpm_kandidat
WHERE ka_id = '$ka_id'");
$row_id = $result_id->fetch_array();
$smarty->assign('kand_name', "$row_id[vorname] $row_id[nachname]");
$smarty->assign('kand_ka_id', $ka_id);
}
if ($action == 'delkand') {
$ka_id = $_GET['ka_id'];
$result_del = $db->query("SELECT count(*) Anz
FROM bpm_kandidat a, bpm_term_kand b, bpm_tanpool c
WHERE a.ka_id =b.ka_id
AND b.tp_id =c.tp_id
AND c.login_dat = '0000-00-00 00:00:00'
AND a.ka_id = $ka_id
");
$row_del = $result_del->fetch_array();
# Kandidat war inzwischen nicht beim Test angemeldet
if ($row_del['Anz'] == 1) {
#Aktuelle Tan ermitteln
$result_tan = $db->query("SELECT a.tp_id, tan
FROM bpm_tanpool a, bpm_term_kand b
WHERE a.tp_id = b.tp_id
AND b.ka_id = '$ka_id'
ORDER BY b.tk_id DESC
LIMIT 1");
$row_tan = $result_tan->fetch_array();
$tan = $row_tan['tan'];
$tp_id = $row_tan['tp_id'];
$sql1 = $db->query("DELETE FROM bpm_term_kand
WHERE tp_id = $tp_id
AND ka_id= $ka_id");
$sql1 = $db->query("DELETE FROM bpm_sonstige_mail
WHERE ka_id= $ka_id");
# TAN wieder freigeben
$sql2 = $db->query("UPDATE bpm_tanpool
SET verw_dat = '0000-00-00 00:00:00'
,login_dat = '0000-00-00 00:00:00'
WHERE tp_id= $tp_id
AND tan = '$tan'");
# Prüfen, ob es noch eine alte Bewerbung zum Test gibt, den er nicht bestanden hatte. Dann sollen die Stammdaten erhalten bleiben
$result_del2 = $db->query("SELECT count(*) Anz
FROM bpm_term_kand
WHERE ka_id ='$ka_id'
");
$row_del2 = $result_del2->fetch_array();
if($row_del2['Anz'] == 0){
$sql3 = $db->query("DELETE FROM bpm_kandidat
WHERE ka_id= $ka_id");
}
}
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?\">";
}
$smarty->assign('action', "$action");
$smarty->display("$template/admin/$templatename");
?>

262
admin/liste_tn.php Executable file
View File

@ -0,0 +1,262 @@
<?php
if(!isset($_SESSION)) { session_start(); }
include_once '../classes/TestProjektSmarty.class_subdir.php';
require_once("../config.inc.php");
$templatename = substr(basename($_SERVER['PHP_SELF']),0,-3)."html";
$smarty = new SmartyAdmin();
require_once "../language/german.inc.php";
if (isset($_GET['action'])) {
$action = $_GET['action'];
} else {
$action = '';
}
if ($action == '') {
$german = $db->query("SET lc_time_names = 'de_DE';");
$query1 = "SELECT a.tm_id, date_format(tm_datum, '%a, %d.%m.%Y - %H:%i Uhr')tm_datum_form, tm_standort
FROM bpm_termine a, bpm_term_kand b
WHERE a.tm_id=b.tm_id
AND a.tm_datum > ADDDATE(now(), -7)
GROUP BY a.tm_id, tm_datum_form, tm_standort
ORDER BY tm_datum ASC";
$result1 = $db->query($query1) or die("Cannot execute query1");
while ($row1 = $result1->fetch_array()) {
if($row1['tm_standort'] == 'L'){
$standort = 'Ludwigsburg';
}
if($row1['tm_standort'] == 'K'){
$standort = 'Kehl';
}
$row1['tm_standort'] = $standort;
$table_data1[] = $row1;
}
$smarty->assign('table_data1', $table_data1);
}
if ($action == 'ausgabe') {
$testtermin = $_POST["testtermin"];
$german = $db->query("SET lc_time_names = 'de_DE';");
$query_termin = $db->query("SELECT date_format(tm_datum, '%a, %d.%m.%Y - %H:%i Uhr')tm_datum_form, tm_standort
FROM bpm_termine
WHERE tm_id = $testtermin");
$row_get_termin = $query_termin->fetch_array();
if($row_get_termin['tm_standort'] == 'L'){
$standort = 'Ludwigsburg';
}
if($row_get_termin['tm_standort'] == 'K'){
$standort = 'Kehl';
}
$buffer = '<page backtop="7mm" backbottom="10mm" style="font-size: 11pt">';
$buffer .= "<style type='text/css'>
.td1 { border:0.3px solid black; }
.td_foot { border: none; }
body { font-size: 14px; }
h1 { font-size: 22px; }
table { font-size: 12px; }
td{padding: 3px;}
table.page_footer {width: 100%; border: none; padding: 20mm}
.fcol{color: #0C25BF;}
.td2 { border:0.3px solid black;
height:1.0cm;
}
</style>";
$buffer.="<h1><p align='center'>$row_get_termin[tm_datum_form], $standort</p></h1>
<table cellspacing='0' cellpadding='0' border='0.3'>
<thead>
<tr>
<td class='td1' width='180'>
<b>Name</b>
</td>
<td class='td1' width='80'>
<b>Geburtstag</b>
</td>
<td class='td1' width='80'>
<b>Minderjährig</b>
</td>
<td class='td1' width='100'>
<b>ID</b>
</td>
<td class='td1' width='140'>
<b>Mail</b>
</td>
<td class='td1' width='60'>
<b>TAN</b>
</td>
<td class='td1' width='100'>
<b>Link</b>
</td>
</tr>
</thead>";
$query1 = "SELECT anrede, perso, vorname, nachname, str, plz, ort, alter18, id, date_format(gebdat,'%d.%m.%Y') gebdat_form, tan, tinyurl, mail
FROM bpm_term_kand a, bpm_tanpool b, bpm_kandidat c
WHERE a.tp_id= b.tp_id
AND a.ka_id = c.ka_id
AND a.tm_id = $testtermin
ORDER BY nachname, vorname
";
$result1 = $db->query($query1) or die("Cannot execute query1");
$smarty->assign('termine_aktdat', date("d.m.Y H:i", time() ) ) ;
while ($row1 = $result1->fetch_array()) {
if($row1['alter18'] == 0){
$minderj = 'ja';
}
if($row1['alter18'] == 1){
$minderj = 'nein';
}
if($row1['perso'] != ''){
$ausweis = "<br>Ausweis: $row1[perso]";
}else{
$ausweis = "";
}
$buffer.="
<tr>
<td class='td1' width='180'>
$row1[nachname], $row1[vorname] ($row1[anrede])<br>
$row1[str]<br>
$row1[plz] $row1[ort]
$ausweis
</td>
<td class='td1' width='80'>
$row1[gebdat_form]
</td>
<td class='td1' width='80'>
$minderj
</td>
<td class='td1' width='100'>
$row1[id]
</td>
<td class='td1' width='140'>
$row1[mail]
</td>
<td class='td1' width='60'>
$row1[tan]
</td>
<td class='td1' width='100'>
$row1[tinyurl]
</td>
</tr>";
}
$buffer.="
</table>
</page>";
require_once("../mpdf/vendor/autoload.php");
$mpdf = new \Mpdf\Mpdf([
'mode' => 'utf-8',
'format' => 'A4',
'orientation' => 'P',
'margin_top' => 10,
'margin_bottom' => 10,
'margin_left' => 10,
'margin_right' => 16,
'default_font' => 'arial'
]);
$query2 = "SELECT anrede, vorname, nachname, str, plz, ort, alter18, id, date_format(gebdat,'%d.%m.%Y') gebdat_form, tan, tinyurl, mail, hochschule
FROM bpm_term_kand a, bpm_tanpool b, bpm_kandidat c
WHERE a.tp_id= b.tp_id
AND a.ka_id = c.ka_id
AND a.tm_id = $testtermin
ORDER BY nachname, vorname
";
$result2 = $db->query($query2) or die("Cannot execute query2");
$smarty->assign('termine_aktdat', date("d.m.Y H:i", time() ) ) ;
while ($row2 = $result2->fetch_array()) {
if($row2['alter18'] == 0){
$minderj = 'ja';
}
if($row2['alter18'] == 1){
$minderj = 'nein';
}
if($row2['hochschule'] == 'Ludwigsburg'){
$link = "https://www.hs-ludwigsburg.de/studium/public-management-ba/bewerben.html";
}
if($row2['hochschule'] == 'Kehl'){
$link = "http://www.hs-kehl.de/studium-lehre/bachelor-studiengaenge/public-management-ba/bewerbung/";
}
if($row2['hochschule'] == 'NA'){
$link = "http://www.hs-kehl.de/studium-lehre/bachelor-studiengaenge/public-management-ba/bewerbung/ bzw.<br>https://www.hs-ludwigsburg.de/studium/public-management-ba/bewerben.html";
}
$buffer.="
<pagebreak>
<page backtop='7mm' backbottom='10mm' style='font-size: 11pt'>
<h1>Anmeldedaten für $row2[vorname] $row2[nachname] ($row2[gebdat_form])</h1>
<br><br>
Bitte bewahren Sie die nachfolgenden Anmeldedaten für das gesamte Bewerbungsverfahren auf.
<br>
<br>
<table cellspacing='0' cellpadding='0' border='0.3'>
<thead>
<tr>
<td class='td2' width='350'>
<b>Persönliche ID</b>
</td>
<td class='td2' width='350'>
<b>Passwort/TAN</b>
</td>
</tr>
</thead>
<tr>
<td class='td2'>
$row2[id]
</td>
<td class='td2'>
$row2[tan]
</td>
</tr>
</table>
<br>
<br>
Weiterf&uuml;hrende Links:
<table cellspacing='0' cellpadding='0' border='0.3'>
<tr>
<td class='td2' width='150'>
<b>Weitere Informationen: </b>
</td>
<td class='td2' width='550'>
$link
</td>
</tr>
</table>
</page>";
}
#$mpdf->setFooter("Teilnehmerliste|$row_get_termin[tm_datum_form], $standort|{PAGENO} / {nb}");
$mpdf->setFooter("Testteilnehmer||$row_get_termin[tm_datum_form], $standort");
$mpdf->WriteHTML($buffer);
// Output a PDF file directly to the browser
$mpdf->Output();
}
$smarty->assign('action', "$action");
$smarty->display("$template/admin/$templatename");
?>

12
admin/logout.php Executable file
View File

@ -0,0 +1,12 @@
<?php
if(!isset($_SESSION)) { session_start(); }
include_once '../classes/TestProjektSmarty.class_subdir.php';
require_once("../config.inc.php");
$templatename = substr(basename($_SERVER['PHP_SELF']),0,-3)."html";
$smarty = new SmartyAdmin();
require_once "../language/german.inc.php";
session_destroy();
$smarty->display("$template/admin/$templatename");
?>

151
admin/mail_test.php Executable file
View File

@ -0,0 +1,151 @@
<?php
if(!isset($_SESSION)) { session_start(); }
include_once '../classes/TestProjektSmarty.class_subdir.php';
require_once("../config.inc.php");
$templatename = substr(basename($_SERVER['PHP_SELF']),0,-3)."html";
$smarty = new SmartyAdmin();
require_once "../language/german.inc.php";
require_once("../func_get_parameter.php");
if (isset($_GET['action'])) {
$action = $_GET['action'];
} else {
$action = '';
}
if ($action == '') {
$german = $db->query("SET lc_time_names = 'de_DE';");
$query1 = "SELECT a.tm_id, date_format(tm_datum, '%a, %d.%m.%Y - %H:%i Uhr')tm_datum_form, tm_standort
FROM bpm_termine a, bpm_term_kand b
WHERE a.tm_id=b.tm_id
AND a.tm_datum > ADDDATE(now(), -7)
GROUP BY a.tm_id, tm_datum_form, tm_standort
ORDER BY tm_datum ASC";
$result1 = $db->query($query1) or die("Cannot execute query1");
while ($row1 = $result1->fetch_array()) {
if($row1['tm_standort'] == 'L'){
$standort = 'Ludwigsburg';
}
if($row1['tm_standort'] == 'K'){
$standort = 'Kehl';
}
$row1['tm_standort'] = $standort;
$table_data1[] = $row1;
}
$smarty->assign('table_data1', $table_data1);
}
if ($action == 'mailsenden_test') {
$testtermin = $_POST["testtermin"];
$_SESSION["testtermin"] = $testtermin;
$german = $db->query("SET lc_time_names = 'de_DE';");
$query_termin = $db->query("SELECT date_format(tm_datum, '%a, %d.%m.%Y - %H:%i Uhr')tm_datum_form, tm_standort
FROM bpm_termine
WHERE tm_id = $testtermin");
$row_get_termin = $query_termin->fetch_array();
if($row_get_termin['tm_standort'] == 'L'){
$sender = 'Hochschule Ludwigsburg';
$sendermail = trim(get_parameter(8));
}
if($row_get_termin['tm_standort'] == 'K'){
$sender = 'Hochschule Kehl';
$sendermail = trim(get_parameter(7));
}
$smarty->assign('mail_sender', $sender);
$smarty->assign('mail_sendermail', $sendermail);
$query1 = "SELECT vorname, nachname, mail
FROM bpm_kandidat
WHERE ka_id IN (SELECT ka_id FROM bpm_term_kand WHERE tm_id = $testtermin)";
$result1 = $db->query($query1) or die("Cannot execute query1");
$mail = "";
while ($row1 = $result1->fetch_array()) {
$mail .= $row1['mail'].", ";
}
$mail = substr($mail,0,-2);
$smarty->assign('empfaenger', $mail);
}
if ($action == 'mailsenden2_test') {
$testtermin = $_SESSION["testtermin"];
$german = $db->query("SET lc_time_names = 'de_DE';");
$query_termin = $db->query("SELECT date_format(tm_datum, '%a, %d.%m.%Y - %H:%i Uhr')tm_datum_form, tm_standort
FROM bpm_termine
WHERE tm_id = $testtermin");
$row_get_termin = $query_termin->fetch_array();
if($row_get_termin['tm_standort'] == 'L'){
$sender = 'Hochschule Ludwigsburg';
$sendermail = trim(get_parameter(8));
}
if($row_get_termin['tm_standort'] == 'K'){
$sender = 'Hochschule Kehl';
$sendermail = trim(get_parameter(7));
}
$empfaenger_alle = $_POST['mail_mail'];
$betreff = $_POST['betreff'];
$text = $_POST['text'];
$empf_array = explode(",", $empfaenger_alle);
# echo "
# <pre>
# From: $sender - $sendermail<br>
# $empfaenger<br>
# $betreff<br>
# $text<br>";
# #print_r($empf_array);
# echo "</pre>";
# exit;
$style ="<head><style>p {margin: 0;}</style></head>";
$text = $style.$text;
for($i=0;$i<count($empf_array);$i++){
$empfaenger = trim($empf_array[$i]);
$query_kaid = $db->query("SELECT ka_id
FROM bpm_kandidat
WHERE mail = '$empfaenger'");
$row_kaid = $query_kaid->fetch_array();
## Mailversand:
$headers = "From: $sender <$sendermail>\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=utf-8\r\n";
$return = @mail($empfaenger, $betreff, $text, $headers);
$heute = mktime(date("H"), date("i"), date("s"), date("m"), date("d"), date("Y")); // heutiges Datum & Zeit: http://de2.php.net/manual/de/function.date.php
$datum_db = date("Y-m-d H:i:s", $heute); // Formatierung, wie es vor dem Dateinamen erscheinen soll
$text_db = addslashes($text);
$betreff_db = addslashes($betreff);
if ($return) {
$sql1 = $db->query("INSERT INTO bpm_sonstige_mail (sender, sendermail, ka_id, empfaenger, mail_betreff, mail_text, status, sendedat)
VALUES ('$sender', '$sendermail', '$row_kaid[ka_id]', '$empfaenger', '$betreff', '$text_db', 'V', '$datum_db')
");
$smarty->assign('mail_senderg', "Die Mail wurde verschickt!");
} else {
$sql1 = $db->query("INSERT INTO bpm_sonstige_mail (sender, sendermail, ka_id, empfaenger, mail_betreff, mail_text, status, sendedat)
VALUES ('$sender', '$sendermail', '$row_kaid[ka_id]', '$empfaenger', '$betreff', '$text_db', 'F', '$datum_db')
");
$smarty->assign('mail_senderg', "Die Mail konnte nicht verschickt werden!<br>Prüfen Sie die Mailadresse das Kandidaten.");
}
}
}
$smarty->assign('action', "$action");
$smarty->display("$template/admin/$templatename");
?>

16
admin/menu_administration.php Executable file
View File

@ -0,0 +1,16 @@
<?php
include_once '../classes/TestProjektSmarty.class_subdir.php';
require_once("../config.inc.php");
$templatename = substr(basename($_SERVER['PHP_SELF']),0,-3)."html";
$smarty = new SmartyAdmin();
require_once "../language/german.inc.php";
$action = $_GET['action'];
if($action == ''){
}
$smarty->assign('action', "$action");
$smarty->display("$template/admin/$templatename");
?>

16
admin/menu_verwaltung.php Executable file
View File

@ -0,0 +1,16 @@
<?php
include_once '../classes/TestProjektSmarty.class_subdir.php';
require_once("../config.inc.php");
$templatename = substr(basename($_SERVER['PHP_SELF']),0,-3)."html";
$smarty = new SmartyAdmin();
require_once "../language/german.inc.php";
$action = $_GET['action'];
if($action == ''){
}
$smarty->assign('action', "$action");
$smarty->display("$template/admin/$templatename");
?>

84
admin/parameter.php Executable file
View File

@ -0,0 +1,84 @@
<?php
if(!isset($_SESSION)) { session_start(); }
include_once '../classes/TestProjektSmarty.class_subdir.php';
require_once("../config.inc.php");
$templatename = substr(basename($_SERVER['PHP_SELF']),0,-3)."html";
$smarty = new SmartyAdmin();
require_once("../language/german.inc.php");
require_once("../config/func_cryption.php");
if (isset($_GET['action'])) {
$action = $_GET['action'];
} else {
$action = '';
}
if ($action == '') {
$query1 = "SELECT pid, beschreibung, wert
FROM bpm_parameter
ORDER BY sort ASC";
$result1 = $db->query($query1) or die("Cannot execute query1");
$result_ct = $db->query("SELECT count(*) Anz FROM bpm_tanpool where verw_dat = '0000-00-00 00:00:00'");
$row_ct = $result_ct->fetch_array();
$smarty->assign('parameter_anzahltan', "$row_ct[Anz]");
while ($row1 = $result1->fetch_array()) {
# Passwort f<>r die Praxisstellen wird verschl<68>sselt gespeichert
if(!isset($zaehler) or $zaehler == 1){
$zaehler = 0;
}else{
$zaehler = 1;
}
$row1['zaehler'] = $zaehler;
$table_data1[] = $row1;
}
$smarty->assign('table_data1', $table_data1);
}
if($action == 'save'){
$query2 = "SELECT pid
FROM bpm_parameter
ORDER BY pid ASC";
$result2 = $db->query( $query2)
or die ("Cannot execute query2");
while ($row2 = $result2->fetch_array()){
$pid = $row2['pid'];
$pid_value = $_POST[$pid];
$sql1 = $db->query( "UPDATE bpm_parameter
SET wert = '$pid_value'
WHERE pid = $pid
" );
}
if(!$sql1){
$error = TRUE;
$error_reason .= "Fehler beim Update [bpm_parameter]<br>";
}else{
$error = FALSE;
$smarty->assign('parameter_inserterr', "2");
echo "<meta http-equiv=\"refresh\" content=\"2; URL=".$_SERVER['PHP_SELF'] ."?\">";
}
if($error){
$smarty->assign('parameter_inserterr', "1");
$smarty->assign('parameter_reason', "$error_reason"); // Kein Mailversand
} // Ende IF : Insert hat geklappt
}
$smarty->assign('action', "$action");
$smarty->display("$template/admin/$templatename");
?>

346
admin/praxisstellen_edit.php Executable file
View File

@ -0,0 +1,346 @@
<?php
if(!isset($_SESSION)) { session_start(); }
include_once '../classes/TestProjektSmarty.class_subdir.php';
require_once("../config.inc.php");
$templatename = substr(basename($_SERVER['PHP_SELF']),0,-3)."html";
$smarty = new SmartyAdmin();
require_once "../language/german.inc.php";
require_once("../func_get_restplatz.php");
require_once("../func_get_parameter.php");
require_once("../func_tangen.php");
if (isset($_GET['action'])) {
$action = $_GET['action'];
} else {
$action = '';
}
if ($action == '') {
if (isset($_GET['edit'])) {
$_SESSION["prxedit_status"] = 'edit';
$id = $_GET['edit'];
$_SESSION["prxedit_id"] = $id;
} else {
$_SESSION["prxedit_status"] = 'neu';
unset($_SESSION['prxedit_user']);
unset($_SESSION['prxedit_username']);
}
# Falls von bewerber_daten kommend
if($_GET['ka_id'] != ''){
$user = $_GET['ka_id'];
$result_name = $db->query("SELECT vorname, nachname
FROM bpm_kandidat
WHERE ka_id = $user");
$row_name = $result_name->fetch_array();
$_SESSION["prxedit_user"] = $user;
$_SESSION["prxedit_username"] = "$row_name[vorname] $row_name[nachname]";
# Falls aus bewerber_daten.php kommend, bietet man einen zurückbutton an
$smarty->assign('prxedit_value_user', $_SESSION["prxedit_user"]);
$smarty->assign('prxedit_value_username', $_SESSION["prxedit_username"]);
}
$result_all = $db->query("SELECT count(*) Anz
FROM bpm_dienststellen
");
$row_all = $result_all->fetch_array();
$smarty->assign('prxedit_value_anzall', $row_all['Anz']);
$result_unreg = $db->query("SELECT count(*) Anz
FROM bpm_dienststellen
WHERE register_dat = '0000-00-00 00:00:00'");
$row_unreg = $result_unreg->fetch_array();
$smarty->assign('prxedit_value_anzunreg', $row_unreg['Anz']);
$result_reg = $db->query("SELECT count(*) Anz
FROM bpm_dienststellen
WHERE register_dat != '0000-00-00 00:00:00'");
$row_reg = $result_reg->fetch_array();
$smarty->assign('prxedit_value_anzreg', $row_reg['Anz']);
# -- Fehlermeldungen -- #
if (isset($_GET['error'])) {
$errorno = $_GET['error'];
$smarty->assign('prxedit_error', 1);
$smarty->assign('prxedit_value_art', $_SESSION["prxedit_value_art"]);
$smarty->assign('prxedit_value_name', $_SESSION["prxedit_value_name"]);
$smarty->assign('prxedit_value_str', $_SESSION["prxedit_value_str"]);
$smarty->assign('prxedit_value_plz', $_SESSION["prxedit_value_plz"]);
$smarty->assign('prxedit_value_ort', $_SESSION["prxedit_value_ort"]);
$smarty->assign('prxedit_value_mail', $_SESSION["prxedit_value_mail"]);
$smarty->assign('prxedit_value_gueltigvon', $_SESSION["prxedit_value_gueltigvon"]);
$smarty->assign('prxedit_value_gueltigbis', $_SESSION["prxedit_value_gueltigbis"]);
if ($errorno == 3) {
# ungültiges Datum
$smarty->assign('prxedit_error_text', "Das eingegebene Gültig von Datum ist nicht korrekt. Bitte korrigieren Sie das Datum!");
}
if ($errorno == 4) {
# ungültiges Datum
$smarty->assign('prxedit_error_text', "Das eingegebene Gültig bis Datum ist nicht korrekt. Bitte korrigieren Sie das Datum!");
}
}
# --- Wenn Werte editiert werden ------------
if ($_SESSION["prxedit_status"] == 'edit') {
$result_edit = $db->query("SELECT dst_id, bezeichnung, name, str, plz, ort, mail, date_format(gueltig_von, '%d.%m.%Y') gueltig_von_form, date_format(gueltig_bis, '%d.%m.%Y') gueltig_bis_form
FROM bpm_dienststellen
WHERE dst_id = $id");
$row_edit = $result_edit->fetch_array();
if($row_edit['gueltig_von_form'] == '00.00.0000'){
$gueltig_von_form = "";
}else{
$gueltig_von_form = $row_edit['gueltig_von_form'];
}
if($row_edit['gueltig_bis_form'] == '00.00.0000'){
$gueltig_bis_form = "";
}else{
$gueltig_bis_form = $row_edit['gueltig_bis_form'];
}
$smarty->assign('prxedit_value_art', "$row_edit[bezeichnung]");
$smarty->assign('prxedit_value_name', "$row_edit[name]");
$smarty->assign('prxedit_value_str', "$row_edit[str]");
$smarty->assign('prxedit_value_plz', "$row_edit[plz]");
$smarty->assign('prxedit_value_ort', "$row_edit[ort]");
$smarty->assign('prxedit_value_mail', "$row_edit[mail]");
$smarty->assign('prxedit_value_gueltigvon', "$gueltig_von_form");
$smarty->assign('prxedit_value_gueltigbis', "$gueltig_bis_form");
}
# --- Wenn Werte editiert werden Ende -------
if ($_GET['editende'] == 1) {
# Editieren ist beendet, als ein update auf einen Datensatz. Dann ist der status wieder Neu, damit wird wieder ein Insert durchgeführt
$_SESSION["prxedit_status"] = 'neu';
}
}
if ($action == 'save') {
$art = $_POST['art'];
$name = $_POST['name'];
$str = $_POST['str'];
$plz = $_POST['plz'];
$ort = $_POST['ort'];
$mail = $_POST['mail'];
$gueltigvon = $_POST['gueltigvon'];
$gueltigbis = $_POST['gueltigbis'];
$regmail = $_POST['regmail'];
$_SESSION["prxedit_value_art"] = $art;
$_SESSION["prxedit_value_name"] = $name;
$_SESSION["prxedit_value_str"] = $str;
$_SESSION["prxedit_value_plz"] = $plz;
$_SESSION["prxedit_value_ort"] = $ort;
$_SESSION["prxedit_value_mail"] = $mail;
$gueltigvon_form = preg_replace('/^(\\d{2})\\.(\\d{2})\\.(\\d{4})$/', '$3-$2-$1', $gueltigvon);
$gueltigbis_form = preg_replace('/^(\\d{2})\\.(\\d{2})\\.(\\d{4})$/', '$3-$2-$1', $gueltigbis);
function validateDate($date, $format = 'Y-m-d')
{
$d = DateTime::createFromFormat($format, $date);
return $d && $d->format($format) == $date;
}
if(!validateDate($gueltigvon_form) AND $gueltigvon_form != ''){
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=3\">";
exit;
}
if(!validateDate($gueltigbis_form) AND $gueltigbis_form != ''){
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=4\">";
exit;
}
if($gueltigvon_form == ''){
$gueltigvon_form ='0000-00-00';
}
if($gueltigbis_form == ''){
$gueltigbis_form ='0000-00-00';
}
$bez = $art." ".$name;
#$datum = date("Y-m-d H:i:s");
if ($_SESSION["prxedit_status"] == 'neu') {
$tan = tangen();
$sql1 = $db->query("INSERT INTO bpm_dienststellen ( bezeichnung
, name
, bez
, str
, plz
, ort
, mail
, init_tan
, gueltig_von
, gueltig_bis
)
VALUES
( '$art'
, '$name'
, '$bez'
, '$str'
, '$plz'
, '$ort'
, '$mail'
, '$tan'
, '$gueltigvon_form'
, '$gueltigbis_form'
)
");
}
if ($_SESSION["prxedit_status"] == 'edit') {
$id = $_SESSION["prxedit_id"];
$ka_id = $_SESSION["prxedit_user"];
if($regmail == 'j'){
$tan = tangen();
$result = $db->query("UPDATE bpm_dienststellen
SET bezeichnung = '$art'
, name = '$name'
, bez = '$bez'
, str = '$str'
, plz = '$plz'
, ort = '$ort'
, mail = '$mail'
, init_tan = '$tan'
, gueltig_von = '$gueltigvon_form'
, gueltig_bis = '$gueltigbis_form'
, regmail_betreff = ''
, regmail_text = ''
, regmail_status = 'O'
, regmail_sendedat = '0000-00-00 00:00:00'
, pwd = ''
, register_dat = '0000-00-00 00:00:00'
WHERE dst_id = $id
");
}else{
$result = $db->query("UPDATE bpm_dienststellen
SET bezeichnung = '$art'
, name = '$name'
, bez = '$bez'
, str = '$str'
, plz = '$plz'
, ort = '$ort'
, mail = '$mail'
, gueltig_von = '$gueltigvon_form'
, gueltig_bis = '$gueltigbis_form'
WHERE dst_id = $id
");
}
unset($_SESSION['prxedit_id']);
}
# Dann bekommts beim refresh den status neu, also es wird beim Abschicken ein Insert gemacht
$editende = 1;
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?editende=$editende&ka_id=$ka_id\">";
}
if ($action == 'del') {
$id = $_GET['id'];
$del1 = $db->query("DELETE FROM bpm_termine WHERE id = $id");
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "\">";
}
if ($action == 'mailsenden') {
$dst_id = $_GET['dst_id'];
$result_erg = $db->query("SELECT regmail_betreff, regmail_text, mail
FROM bpm_dienststellen
WHERE dst_id =$dst_id");
$row_erg = $result_erg->fetch_array();
$sender = "Hochschule Ludwigsburg";
$sendermail = get_parameter(8);
$smarty->assign('mail_sender', $sender);
$smarty->assign('mail_sendermail', $sendermail);
$smarty->assign('mail_text', $row_erg['regmail_text']);
$smarty->assign('mail_betreff', $row_erg['regmail_betreff']);
$smarty->assign('mail_mail', $row_erg['mail']);
$smarty->assign('mail_dstid', $dst_id);
}
if ($action == 'mailsenden2') {
$dst_id = $_POST['dst_id'];
$sender = $_POST['mail_sender'];
$sendermail = $_POST['mail_sendermail'];
$empfaenger = $_POST['mail_mail'];
$betreff = $_POST['betreff'];
$text = $_POST['text'];
#Beim CKEDITOR die <p> Tags mit Zeilenabstand 0 in der Mail
$style ="<head>
<style>
p {margin: 0;}
</style>
</head>
";
$text = $style.$text;
#echo "
#From: $sender - $sendermail<br>
#$empfaenger<br>
#$betreff<br>
#$text<br>";
#exit;
## Mailversand:
$headers = "From: $sender <$sendermail>\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=utf-8\r\n";
$return = @mail($empfaenger, $betreff, $text, $headers);
$heute = mktime(date("H"), date("i"), date("s"), date("m"), date("d"), date("Y")); // heutiges Datum & Zeit: http://de2.php.net/manual/de/function.date.php
$datum_db = date("Y-m-d H:i:s", $heute); // Formatierung, wie es vor dem Dateinamen erscheinen soll
$text_db = addslashes($text);
$betreff_db = addslashes($betreff);
if ($return) {
$sql1 = $db->query("UPDATE bpm_dienststellen
SET regmail_text = '$text_db'
, regmail_betreff = '$betreff'
, regmail_status = 'V'
, regmail_sendedat = '$datum_db'
WHERE dst_id = $dst_id
");
$smarty->assign('mail_senderg', "Die Mail wurde verschickt!");
} else {
$sql1 = $db->query("UPDATE bpm_dienststellen
SET regmail_text = '$text_db'
, regmail_betreff = '$betreff_db'
, status = 'F'
WHERE dst_id = $dst_id
");
$smarty->assign('mail_senderg', "Die Mail konnte nicht verschickt werden!<br>Prüfen Sie die Mailadresse der Praxissstelle.");
}
}
$smarty->assign('action', "$action");
$smarty->display("$template/admin/$templatename");
?>

151
admin/praxisstellen_news.php Executable file
View File

@ -0,0 +1,151 @@
<?php
if(!isset($_SESSION)) { session_start(); }
include_once '../classes/TestProjektSmarty.class_subdir.php';
require_once("../config.inc.php");
$templatename = substr(basename($_SERVER['PHP_SELF']),0,-3)."html";
$smarty = new SmartyAdmin();
require_once "../language/german.inc.php";
require_once("../func_get_restplatz.php");
require_once("../func_get_parameter.php");
if (isset($_GET['action'])) {
$action = $_GET['action'];
} else {
$action = '';
}
if ($action == '') {
if (isset($_GET['edit'])) {
$_SESSION["news_status"] = 'edit';
$pn_id = $_GET['edit'];
$_SESSION["news_pn_id"] = $pn_id;
} else {
$_SESSION["news_status"] = 'neu';
}
# -- Fehlermeldungen -- #
if (isset($_GET['error'])) {
$errorno = $_GET['error'];
$smarty->assign('news_error', 1);
$smarty->assign('news_value_headline', $_SESSION["news_value_headline"]);
$smarty->assign('news_value_text', $_SESSION["news_value_text"]);
if ($errorno == 1) {
# ungültiges Datum
$smarty->assign('news_error_text', "Bitte füllen Sie alle Felder aus!");
}
}
# --- Wenn Werte editiert werden ------------
if ($_SESSION["news_status"] == 'edit') {
$result_edit = $db->query("SELECT pn_id, pn_headline, pn_text
FROM bpm_prxnews
WHERE pn_id = $pn_id");
$row_edit = $result_edit->fetch_array();
$smarty->assign('news_value_headline', "$row_edit[pn_headline]");
$smarty->assign('news_value_text', "$row_edit[pn_text]");
}
# --- Wenn Werte editiert werden Ende -------
if ($_GET['editende'] == 1) {
# Editieren ist beendet, als ein update auf einen Datensatz. Dann ist der status wieder Neu, damit wird wieder ein Insert durchgeführt
$_SESSION["news_status"] = 'neu';
}
# Gespeicherte Werte
$query1 = "SELECT pn_id, pn_headline, pn_text, date_format(pn_date, '%d.%m.%Y - %H:%i Uhr') pn_date_form
FROM bpm_prxnews
ORDER BY pn_date DESC";
$result1 = $db->query($query1) or die("Cannot execute query1");
while ($row1 = $result1->fetch_array()) {
$table_data1[] = $row1;
}
$smarty->assign('table_data1', $table_data1);
}
if ($action == 'save') {
$headline = $_POST['headline'];
$text = $_POST['text'];
$_SESSION["news_value_headline"] = $headline;
$_SESSION["news_value_text"] = $text;
if($text == "" or $headline == ""){
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=1\">";
exit;
}
$datum = date("Y-m-d H:i:s");
$headline_db = addslashes($headline);
$text_db = addslashes($text);
if ($_SESSION["news_status"] == 'neu') {
$sql1 = $db->query("INSERT INTO bpm_prxnews ( pn_headline
, pn_text
, pn_date
)
VALUES
( '$headline_db'
, '$text_db'
, '$datum'
)
");
}
if ($_SESSION["news_status"] == 'edit') {
$pn_id = $_SESSION["news_pn_id"];
$result = $db->query("UPDATE bpm_prxnews
SET pn_headline = '$headline_db'
, pn_text = '$text_db'
WHERE pn_id = $pn_id
");
unset($_SESSION['news_pn_id']);
}
# Dann bekommts beim refresh den status neu, also es wird beim Abschicken ein Insert gemacht
$editende = 1;
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?editende=$editende\">";
}
if ($action == 'show') {
$pn_id = $_GET['pn_id'];
$result_show = $db->query("SELECT pn_headline, pn_text
FROM bpm_prxnews
WHERE pn_id = $pn_id
");
$row_show = $result_show->fetch_array();
$smarty->assign('prx_show_headline', $row_show['pn_headline']);
$smarty->assign('prx_show_text', $row_show['pn_text']);
}
if ($action == 'del') {
$pn_id = $_GET['pn_id'];
$del1 = $db->query("DELETE FROM bpm_prxnews WHERE pn_id = $pn_id");
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "\">";
}
$smarty->assign('action', "$action");
$smarty->display("$template/admin/$templatename");
?>

163
admin/prx_search.php Executable file
View File

@ -0,0 +1,163 @@
<?php
require_once("../config.inc.php");
require_once("../config/func_cryption.php");
$db = dbconnect();
if($_GET['search'] == 'reg'){
$result1 = $db->query("SELECT dst_id, bezeichnung, name, str, plz, ort, mail, date_format(gueltig_von, '%d.%m.%Y') gueltig_von_form, date_format(gueltig_bis, '%d.%m.%Y') gueltig_bis_form
, gueltig_von, gueltig_bis, register_dat, init_tan, regmail_status, date_format(regmail_sendedat, '%d.%m.%Y - %H:%i') regmail_sendedat_form
FROM bpm_dienststellen
WHERE register_dat != '0000-00-00 00:00:00'
ORDER BY name ASC");
}elseif($_GET['search'] == 'unreg'){
$result1 = $db->query("SELECT dst_id, bezeichnung, name, str, plz, ort, mail, date_format(gueltig_von, '%d.%m.%Y') gueltig_von_form, date_format(gueltig_bis, '%d.%m.%Y') gueltig_bis_form
, gueltig_von, gueltig_bis, register_dat, init_tan, regmail_status, date_format(regmail_sendedat, '%d.%m.%Y - %H:%i') regmail_sendedat_form
FROM bpm_dienststellen
WHERE register_dat = '0000-00-00 00:00:00'
ORDER BY name ASC");
}else{
$result1 = $db->query("SELECT dst_id, bezeichnung, name, str, plz, ort, mail, date_format(gueltig_von, '%d.%m.%Y') gueltig_von_form, date_format(gueltig_bis, '%d.%m.%Y') gueltig_bis_form
, gueltig_von, gueltig_bis, register_dat, init_tan, regmail_status, date_format(regmail_sendedat, '%d.%m.%Y - %H:%i') regmail_sendedat_form
FROM bpm_dienststellen
WHERE upper(name) LIKE '%" . strtoupper($_GET['search']) . "%'
OR plz LIKE '%" . $_GET['search'] . "%'
OR bezeichnung LIKE '%" . $_GET['search'] . "%'
ORDER BY name ASC");
}
echo "
<table width='100%' border='1' cellspacing='0' cellpadding='0'>
<tr>
<td style='padding-left:5px'>
<b>#</b>
</td>
<td style='padding-left:5px'>
<b>Behördenart</b>
</td>
<td style='padding-left:5px'>
<b>Name</b>
</td>
<td style='padding-left:5px'>
<b>Straße</b>
</td>
<td style='padding-left:5px'>
<b>PLZ</b>
</td>
<td style='padding-left:5px'>
<b>Ort</b>
</td>
<td style='padding-left:5px'>
<b>Mailadresse</b>
</td>
<td style='padding-left:5px'>
<b>Registrierungstan</b>
</td>
<td style='padding-left:5px'>
<b>Registrierungslink</b>
</td>
<td style='padding-left:5px'>
<b>Registrierungsmail</b>
</td>
<td style='padding-left:5px'>
<b>Gültig von</b>
</td>
<td style='padding-left:5px'>
<b>Gültig bis</b>
</td>
<td align='center'>
<b>Edit</b>
</td>
</tr>
";
while($row = $result1->fetch_array())
{
if($row['gueltig_von'] != '0000-00-00'){
$gueltig_von = $row['gueltig_von_form'];
}else{
$gueltig_von = '';
}
if($row['gueltig_bis'] != '0000-00-00'){
$gueltig_bis = $row['gueltig_bis_form'];
}else{
$gueltig_bis = '';
}
if($row['register_dat'] == '0000-00-00 00:00:00'){
$tan = $row['init_tan'];
$id_url = cryption($row['dst_id'], 'e');
$link_register = "<a href='../praxisstelle/register.php?dst=$id_url' target='_new'>Registrierungslink</a>";
$status = "";
}else{
$tan = "";
$link_register = "";
}
if ($row['regmail_status'] == 'V') {
$status = "<a class='aformlink box' title='Mail erneut senden' href='praxisstellen_edit.php?action=mailsenden&dst_id=$row[dst_id]'>Versendet</a><br>$row[regmail_sendedat_form]";
}
if ($row['regmail_status'] == 'F') {
$status = "<a class='aformlink box' title='Mail erneut senden' href='praxisstellen_edit.php?action=mailsenden&dst_id=$row[dst_id]'>Fehler</a>";
}
$lnnr++;
echo '<tr>';
echo '<td style="padding-left:5px">';
echo $lnnr;
echo '</td>';
echo '<td style="padding-left:5px">';
echo preg_replace('/(' . $_GET['search'] . ')/Usi', '<span class="result">\\1</span>', $row['bezeichnung']);
echo '</td>';
echo '<td style="padding-left:5px">';
echo preg_replace('/(' . $_GET['search'] . ')/Usi', '<span class="result">\\1</span>', $row['name']);
echo '</td>';
echo '<td style="padding-left:5px">';
echo preg_replace('/(' . $_GET['search'] . ')/Usi', '<span class="result">\\1</span>', $row['str']);
echo '</td>';
echo '<td style="padding-left:5px">';
echo preg_replace('/(' . $_GET['search'] . ')/Usi', '<span class="result">\\1</span>', $row['plz']);
echo '</td>';
echo '<td style="padding-left:5px">';
echo preg_replace('/(' . $_GET['search'] . ')/Usi', '<span class="result">\\1</span>', $row['ort']);
echo '</td>';
echo '<td style="padding-left:5px">';
echo preg_replace('/(' . $_GET['search'] . ')/Usi', '<span class="result">\\1</span>', $row['mail']);
echo '</td>';
echo '<td style="padding-left:5px">';
echo preg_replace('/(' . $_GET['search'] . ')/Usi', '<span class="result">\\1</span>', $tan);
echo '</td>';
echo '<td style="padding-left:5px">';
echo preg_replace('/(' . $_GET['search'] . ')/Usi', '<span class="result">\\1</span>', $link_register);
echo '</td>';
echo '<td style="padding-left:5px">';
echo preg_replace('/(' . $_GET['search'] . ')/Usi', '<span class="result">\\1</span>', $status);
echo '</td>';
echo '<td style="padding-left:5px">';
echo preg_replace('/(' . $_GET['search'] . ')/Usi', '<span class="result">\\1</span>', $gueltig_von);
echo '</td>';
echo '<td style="padding-left:5px">';
echo preg_replace('/(' . $_GET['search'] . ')/Usi', '<span class="result">\\1</span>', $gueltig_bis);
echo '</td>';
echo '<td align="center">';
echo '<a href=?edit='.$row['dst_id'].'><img title = "Stelle bearbeiten" border="0" height=10 src="../templates/modern/images/edit.png"></a>';
echo '</td>';
echo '</tr>';
}
echo "</table>";
?>

82
admin/rangliste1.php Executable file
View File

@ -0,0 +1,82 @@
<?php
if (!isset($_SESSION))
{
session_start();
}
include_once '../classes/TestProjektSmarty.class_subdir.php';
require_once ("../config.inc.php");
$templatename = substr(basename($_SERVER['PHP_SELF']) , 0, -3) . "html";
$smarty = new SmartyAdmin();
require_once "../language/german.inc.php";
if (isset($_GET['action']))
{
$action = $_GET['action'];
}
else
{
$action = '';
}
if ($action == '')
{
# Fehlerhafte Speicherung der HZB als Punkte (1-15), stattt als Note (1-6)
$query_punkte = "SELECT vorname, nachname, id, mail, a.hzb, a.hzb_punkte
FROM `bpm_note` a, bpm_tmp_jahrgang_kandidat b
WHERE a.ka_id = b.ka_id
AND a.hzb != '0.00' AND a.hzb_punkte!='0.00'
ORDER BY a.hzb_punkte DESC;
";
$result_punkte = $db->query($query_punkte) or die("Cannot execute punkte");
$row_cnt_punkte = $result_punkte->num_rows;
$smarty->assign('anz_punkte', $row_cnt_punkte);
while ($row_punkte = $result_punkte->fetch_array())
{
$row_punkte['hzb_form'] = number_format($row_punkte['hzb'], 2, ',', '.');
$row_punkte['hzb_punkte_form'] = number_format($row_punkte['hzb_punkte'], 2, ',', '.');
$table_punkte[] = $row_punkte;
}
$smarty->assign('table_punkte', $table_punkte);
# Wann wurden die Ranglisten berechnet
$query_tab_created = $db->query("SELECT date_format(create_time, '%d.%m.%Y - %H:%i:%s') create_time
FROM INFORMATION_SCHEMA.TABLES
WHERE table_schema = 'bpm'
AND table_name = 'bpm_tmp_jahrgang_kandidat'
");
$row_tab_created = $query_tab_created->fetch_array();
$smarty->assign('create_time', $row_tab_created['create_time']);
# Gespeicherte Werte
$query1 = "SELECT ka_id
, vorname
, nachname
, hzb
, id
, mail
, rang1
FROM bpm_tmp_jahrgang_kandidat
ORDER BY rang1 ASC
";
$result1 = $db->query($query1) or die("Cannot execute query1");
$row_cnt = $result1->num_rows;
$smarty->assign('dokverw_anzdb', $row_cnt);
while ($row1 = $result1->fetch_array())
{
$row1['hzb_form'] = number_format($row1['hzb'], 2, ',', '.');
$row1['rangliste'] = $row1['rang1'];
$table_data1[] = $row1;
}
$smarty->assign('table_data1', $table_data1);
}
$smarty->assign('action', "$action");
$smarty->display("$template/admin/$templatename");
?>

99
admin/rangliste1_excel.php Executable file
View File

@ -0,0 +1,99 @@
<?php
# Orner phpspreadsheet_1.8.1.0_php-7.0 f<>r Hoschschule verwenden
#require_once "../phpspreadsheet-1.13_php-7.4/vendor/autoload.php";
require_once "../phpspreadsheet_1.8.1.0_php-7.0/vendor/autoload.php";
require_once ("../config.inc.php");
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
$spreadsheet = new Spreadsheet();
#$spreadsheet->getActiveSheet()->getPageSetup()->setFitToWidth(1);
#$spreadsheet->getActiveSheet()->getPageSetup()->setFitToHeight(0);
$activeSheet = $spreadsheet->getActiveSheet();
$activeSheet->getStyle('A1:F2')
->applyFromArray(array(
'font' => array(
'bold' => true
)
));
# Wann wurden die Ranglisten berechnet
$query_tab_created = $db->query("SELECT date_format(create_time, '%d.%m.%Y - %H:%i:%s') create_time
FROM INFORMATION_SCHEMA.TABLES
WHERE table_schema = 'bpm'
AND table_name = 'bpm_tmp_jahrgang_kandidat'
");
$row_tab_created = $query_tab_created->fetch_array();
$activeSheet->setCellValue('A1', 'Stand:');
$activeSheet->setCellValue('B1', "$row_tab_created[create_time]");
$activeSheet->setCellValue('A2', 'Ranglistenplatz');
$activeSheet->setCellValue('B2', 'Vorname');
$activeSheet->setCellValue('C2', 'Nachname');
$activeSheet->setCellValue('D2', 'Mail');
$activeSheet->setCellValue('E2', 'ID');
$activeSheet->setCellValue('F2', 'HZB-Note');
$activeSheet->freezePane('A3');
$query = $db->query("SELECT ka_id
, vorname
, nachname
, hzb
, id
, mail
, rang1
FROM bpm_tmp_jahrgang_kandidat
ORDER BY rang1 ASC
");
if ($query->num_rows > 0)
{
$i = 3;
while ($row = $query->fetch_assoc())
{
$activeSheet->setCellValue('A' . $i, $row['rang1']);
$activeSheet->setCellValue('B' . $i, $row['nachname']);
$activeSheet->setCellValue('C' . $i, $row['vorname']);
$activeSheet->setCellValue('D' . $i, $row['mail']);
$activeSheet->setCellValue('E' . $i, $row['id']);
$activeSheet->setCellValue('F' . $i, $row['hzb']);
$i++;
}
}
$spreadsheet->getActiveSheet()
->setTitle("Rangliste 1");
$spreadsheet->getActiveSheet()
->setSelectedCell('A1');
$spreadsheet->getActiveSheet()
->getColumnDimension('A')
->setAutoSize(true);
$spreadsheet->getActiveSheet()
->getColumnDimension('B')
->setAutoSize(true);
$spreadsheet->getActiveSheet()
->getColumnDimension('C')
->setAutoSize(true);
$spreadsheet->getActiveSheet()
->getColumnDimension('D')
->setAutoSize(true);
$spreadsheet->getActiveSheet()
->getColumnDimension('E')
->setAutoSize(true);
$spreadsheet->getActiveSheet()
->getColumnDimension('F')
->setAutoSize(true);
$writer = new Xlsx($spreadsheet);
$filename = 'Rangliste1.xlsx';
header('Content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename=' . $filename);
header('Cache-Control: max-age=0');
$writer->save('php://output');
?>

66
admin/rangliste2.php Executable file
View File

@ -0,0 +1,66 @@
<?php
if (!isset($_SESSION))
{
session_start();
}
include_once '../classes/TestProjektSmarty.class_subdir.php';
require_once ("../config.inc.php");
$templatename = substr(basename($_SERVER['PHP_SELF']) , 0, -3) . "html";
$smarty = new SmartyAdmin();
require_once "../language/german.inc.php";
if (isset($_GET['action']))
{
$action = $_GET['action'];
}
else
{
$action = '';
}
if ($action == '')
{
# Wann wurden die Ranglisten berechnet
$query_tab_created = $db->query("SELECT date_format(create_time, '%d.%m.%Y - %H:%i:%s') create_time
FROM INFORMATION_SCHEMA.TABLES
WHERE table_schema = 'bpm'
AND table_name = 'bpm_tmp_jahrgang_kandidat'
");
$row_tab_created = $query_tab_created->fetch_array();
$smarty->assign('create_time', $row_tab_created['create_time']);
# Gespeicherte Werte
$query1 = "SELECT ka_id
, vorname
, nachname
, date_format(tm_datum, '%d.%m.%Y um %H:%i Uhr') tm_datum
, CASE tm_standort
WHEN 'L' THEN 'Ludwigsburg'
WHEN 'K' THEN 'Kehl'
ELSE ''
END as tm_standort
, testergebnis
, id
, mail
, rang2
FROM bpm_tmp_jahrgang_kandidat
ORDER BY rang2 ASC
";
$result1 = $db->query($query1) or die("Cannot execute query1");
$row_cnt = $result1->num_rows;
$smarty->assign('dokverw_anzdb', $row_cnt);
while ($row1 = $result1->fetch_array())
{
$row1['rangliste'] = $row1['rang2'];
$table_data1[] = $row1;
}
$smarty->assign('table_data1', $table_data1);
}
$smarty->assign('action', "$action");
$smarty->display("$template/admin/$templatename");
?>

105
admin/rangliste2_excel.php Executable file
View File

@ -0,0 +1,105 @@
<?php
# Orner phpspreadsheet_1.8.1.0_php-7.0 f<>r Hoschschule verwenden
#require_once "../phpspreadsheet-1.13_php-7.4/vendor/autoload.php";
require_once "../phpspreadsheet_1.8.1.0_php-7.0/vendor/autoload.php";
require_once ("../config.inc.php");
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
$spreadsheet = new Spreadsheet();
#$spreadsheet->getActiveSheet()->getPageSetup()->setFitToWidth(1);
#$spreadsheet->getActiveSheet()->getPageSetup()->setFitToHeight(0);
$activeSheet = $spreadsheet->getActiveSheet();
$activeSheet->getStyle('A1:G2')
->applyFromArray(array(
'font' => array(
'bold' => true
)
));
# Wann wurden die Ranglisten berechnet
$query_tab_created = $db->query("SELECT date_format(create_time, '%d.%m.%Y - %H:%i:%s') create_time
FROM INFORMATION_SCHEMA.TABLES
WHERE table_schema = 'bpm'
AND table_name = 'bpm_tmp_jahrgang_kandidat'
");
$row_tab_created = $query_tab_created->fetch_array();
$activeSheet->setCellValue('A1', 'Stand:');
$activeSheet->setCellValue('B1', "$row_tab_created[create_time]");
$activeSheet->setCellValue('A2', 'Ranglistenplatz');
$activeSheet->setCellValue('B2', 'Vorname');
$activeSheet->setCellValue('C2', 'Nachname');
$activeSheet->setCellValue('D2', 'Mail');
$activeSheet->setCellValue('E2', 'ID');
$activeSheet->setCellValue('F2', 'Testdatum');
$activeSheet->setCellValue('G2', 'Ergebnis');
$activeSheet->freezePane('A3');
$query = $db->query("SELECT ka_id, vorname, nachname, date_format(tm_datum, '%d.%m.%Y um %H:%i Uhr') tm_datum, CASE tm_standort
WHEN 'L' THEN 'Ludwigsburg'
WHEN 'K' THEN 'Kehl'
ELSE '' END as tm_standort
, testergebnis
, id
, mail
,rang2
FROM bpm_tmp_jahrgang_kandidat
ORDER BY rang2 ASC
");
if ($query->num_rows > 0)
{
$i = 3;
while ($row = $query->fetch_assoc())
{
$activeSheet->setCellValue('A' . $i, $row['rang2']);
$activeSheet->setCellValue('B' . $i, $row['nachname']);
$activeSheet->setCellValue('C' . $i, $row['vorname']);
$activeSheet->setCellValue('D' . $i, $row['mail']);
$activeSheet->setCellValue('E' . $i, $row['id']);
$activeSheet->setCellValue('F' . $i, "$row[tm_datum] ($row[tm_standort])");
$activeSheet->setCellValue('G' . $i, $row['testergebnis']);
$i++;
}
}
$spreadsheet->getActiveSheet()
->setTitle("Rangliste 2");
$spreadsheet->getActiveSheet()
->setSelectedCell('A1');
$spreadsheet->getActiveSheet()
->getColumnDimension('A')
->setAutoSize(true);
$spreadsheet->getActiveSheet()
->getColumnDimension('B')
->setAutoSize(true);
$spreadsheet->getActiveSheet()
->getColumnDimension('C')
->setAutoSize(true);
$spreadsheet->getActiveSheet()
->getColumnDimension('D')
->setAutoSize(true);
$spreadsheet->getActiveSheet()
->getColumnDimension('E')
->setAutoSize(true);
$spreadsheet->getActiveSheet()
->getColumnDimension('F')
->setAutoSize(true);
$spreadsheet->getActiveSheet()
->getColumnDimension('G')
->setAutoSize(true);
$writer = new Xlsx($spreadsheet);
$filename = 'Rangliste2.xlsx';
header('Content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename=' . $filename);
header('Cache-Control: max-age=0');
$writer->save('php://output');
?>

72
admin/rangliste3.php Executable file
View File

@ -0,0 +1,72 @@
<?php
if (!isset($_SESSION))
{
session_start();
}
include_once '../classes/TestProjektSmarty.class_subdir.php';
require_once ("../config.inc.php");
$templatename = substr(basename($_SERVER['PHP_SELF']) , 0, -3) . "html";
$smarty = new SmartyAdmin();
require_once "../language/german.inc.php";
if (isset($_GET['action']))
{
$action = $_GET['action'];
}
else
{
$action = '';
}
if ($action == '')
{
# Wann wurden die Ranglisten berechnet
$query_tab_created = $db->query("SELECT date_format(create_time, '%d.%m.%Y - %H:%i:%s') create_time
FROM INFORMATION_SCHEMA.TABLES
WHERE table_schema = 'bpm'
AND table_name = 'bpm_tmp_jahrgang_kandidat'
");
$row_tab_created = $query_tab_created->fetch_array();
$smarty->assign('create_time', $row_tab_created['create_time']);
# Gespeicherte Werte
$query1 = "SELECT ka_id
, vorname
, nachname, date_format(tm_datum, '%d.%m.%Y um %H:%i Uhr') tm_datum
, CASE tm_standort
WHEN 'L' THEN 'Ludwigsburg'
WHEN 'K' THEN 'Kehl'
ELSE ''
END as tm_standort
, testergebnis
, id
, mail
, hzb
, testergebnis
, rang1
, rang2
, rang3
, (rang1+rang2)/2 rang3_berech
FROM bpm_tmp_jahrgang_kandidat
ORDER BY rang3 ASC
";
$result1 = $db->query($query1) or die("Cannot execute query1");
$row_cnt = $result1->num_rows;
$smarty->assign('dokverw_anzdb', $row_cnt);
while ($row1 = $result1->fetch_array())
{
$row1['hzb_form'] = number_format($row1['hzb'], 2, ',', '.');
$row1['rang3_berech_form'] = number_format($row1['rang3_berech'], 2, ',', '.');
$row1['rangliste'] = $row1['rang3'];
$table_data1[] = $row1;
}
$smarty->assign('table_data1', $table_data1);
}
$smarty->assign('action', "$action");
$smarty->display("$template/admin/$templatename");
?>

130
admin/rangliste3_excel.php Executable file
View File

@ -0,0 +1,130 @@
<?php
# Orner phpspreadsheet_1.8.1.0_php-7.0 für Hoschschule verwenden
#require_once "../phpspreadsheet-1.13_php-7.4/vendor/autoload.php";
require_once "../phpspreadsheet_1.8.1.0_php-7.0/vendor/autoload.php";
require_once ("../config.inc.php");
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
$spreadsheet = new Spreadsheet();
#$spreadsheet->getActiveSheet()->getPageSetup()->setFitToWidth(1);
#$spreadsheet->getActiveSheet()->getPageSetup()->setFitToHeight(0);
$activeSheet = $spreadsheet->getActiveSheet();
$activeSheet->getStyle('A1:J2')
->applyFromArray(array(
'font' => array(
'bold' => true
)
));
# Wann wurden die Ranglisten berechnet
$query_tab_created = $db->query("SELECT date_format(create_time, '%d.%m.%Y - %H:%i:%s') create_time
FROM INFORMATION_SCHEMA.TABLES
WHERE table_schema = 'bpm'
AND table_name = 'bpm_tmp_jahrgang_kandidat'
");
$row_tab_created = $query_tab_created->fetch_array();
$activeSheet->setCellValue('A1', 'Stand:');
$activeSheet->setCellValue('B1', "$row_tab_created[create_time]");
$activeSheet->setCellValue('A2', 'Ranglistenplatz');
$activeSheet->setCellValue('B2', 'Vorname');
$activeSheet->setCellValue('C2', 'Nachname');
$activeSheet->setCellValue('D2', 'Mail');
$activeSheet->setCellValue('E2', 'ID');
$activeSheet->setCellValue('F2', 'HZB');
$activeSheet->setCellValue('G2', 'Rangliste1');
$activeSheet->setCellValue('H2', 'Testergebnis');
$activeSheet->setCellValue('I2', 'Rangliste2');
$activeSheet->setCellValue('J2', 'Berechnung Rangliste3');
$activeSheet->freezePane('A3');
$query = $db->query("SELECT ka_id
, vorname
, nachname
, date_format(tm_datum, '%d.%m.%Y um %H:%i Uhr') tm_datum
, CASE tm_standort
WHEN 'L' THEN 'Ludwigsburg'
WHEN 'K' THEN 'Kehl'
ELSE ''
END as tm_standort
, testergebnis
, id
, mail
, hzb
, testergebnis
, rang1
, rang2
, rang3
, (rang1+rang2)/2 rang3_berech
FROM bpm_tmp_jahrgang_kandidat
ORDER BY rang3 ASC
");
if ($query->num_rows > 0)
{
$i = 3;
while ($row = $query->fetch_assoc())
{
$activeSheet->setCellValue('A' . $i, "$row[rang3]");
$activeSheet->setCellValue('B' . $i, "$row[nachname]");
$activeSheet->setCellValue('C' . $i, "$row[vorname]");
$activeSheet->setCellValue('D' . $i, "$row[mail]");
$activeSheet->setCellValue('E' . $i, "$row[id]");
$activeSheet->setCellValue('F' . $i, "$row[hzb]");
$activeSheet->setCellValue('G' . $i, "$row[rang1]");
$activeSheet->setCellValue('H' . $i, "$row[testergebnis]");
$activeSheet->setCellValue('I' . $i, "$row[rang2]");
$activeSheet->setCellValue('J' . $i, '=(G' . $i . '+I' . $i . ')/2');
$i++;
}
}
$spreadsheet->getActiveSheet()
->setTitle("Rangliste 3");
$spreadsheet->getActiveSheet()
->setSelectedCell('A1');
$spreadsheet->getActiveSheet()
->getColumnDimension('A')
->setAutoSize(true);
$spreadsheet->getActiveSheet()
->getColumnDimension('B')
->setAutoSize(true);
$spreadsheet->getActiveSheet()
->getColumnDimension('C')
->setAutoSize(true);
$spreadsheet->getActiveSheet()
->getColumnDimension('D')
->setAutoSize(true);
$spreadsheet->getActiveSheet()
->getColumnDimension('E')
->setAutoSize(true);
$spreadsheet->getActiveSheet()
->getColumnDimension('F')
->setAutoSize(true);
$spreadsheet->getActiveSheet()
->getColumnDimension('G')
->setAutoSize(true);
$spreadsheet->getActiveSheet()
->getColumnDimension('H')
->setAutoSize(true);
$spreadsheet->getActiveSheet()
->getColumnDimension('I')
->setAutoSize(true);
$spreadsheet->getActiveSheet()
->getColumnDimension('J')
->setAutoSize(true);
$writer = new Xlsx($spreadsheet);
$filename = 'Rangliste3.xlsx';
header('Content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename=' . $filename);
header('Cache-Control: max-age=0');
$writer->save('php://output');
?>

266
admin/rangliste_prepare.php Executable file
View File

@ -0,0 +1,266 @@
<?php
if (!isset($_SESSION))
{
session_start();
}
include_once '../classes/TestProjektSmarty.class_subdir.php';
require_once ("../config.inc.php");
$templatename = substr(basename($_SERVER['PHP_SELF']) , 0, -3) . "html";
$smarty = new SmartyAdmin();
require_once "../language/german.inc.php";
if (isset($_GET['action']))
{
$action = $_GET['action'];
}
else
{
$action = '';
}
if ($action == '')
{
# Auswahlmaske f<>r welche Studienbeginn die Ranglisten berechnet werden
$german = $db->query("SET lc_time_names = 'de_DE';");
$query1 = "SELECT ausbildungsbeginn
FROM bpm_stichtage
ORDER BY ausbildungsbeginn ASC";
$result1 = $db->query($query1) or die("Cannot execute query1");
while ($row1 = $result1->fetch_array())
{
$table_data1[] = $row1;
}
$smarty->assign('table_data1', $table_data1);
}
if ($action == 'ausgabe')
{
# Berechnung der Personen, f<>r die eine Rangliste erzeugt wird
# 1) Personen Selektieren, die zum ausgew<65>hlten Jahrgang geh<65>ren
# 2) Personen, die keine HZB Note abgegeben haben l<>schen
# 3) Personen l<>schen, die sich nicht beworben haben (Dokumente nicht abschlie<69>end hochgeladen haben beim Bewerbungsverfahren)
# 4) ausgeschlossene Personen l<>schen
# Berechnung der Ranglistenpl<70>tze 1-3
# 1) Personen des Jahrgangs selektieren
$ausbildungsbeginn = $_POST['ausbildungsbeginn'];
# Performance erh<72>hen, commit erst am Ende absetzen
$db->autocommit(false);
# Drop Table, damit das create Datum ausgelesen werden kann in den Ranglisten
$sql1 = $db->query("DROP TABLE bpm_tmp_jahrgang_kandidat");
$sql1 = $db->query("CREATE TABLE `bpm_tmp_jahrgang_kandidat` (
`tjk_id` int(11) NOT NULL,
`ka_id` int(11) NOT NULL,
`vorname` varchar(250) NOT NULL,
`nachname` varchar(250) NOT NULL,
`id` varchar(200) NOT NULL,
`mail` varchar(250) NOT NULL,
`ausbildungsbeginn` int(4) NOT NULL,
`hzb` decimal(10,2) NOT NULL,
`tm_datum` datetime DEFAULT NULL,
`tm_standort` enum('K','L') NOT NULL,
`testergebnis` int(5) NOT NULL COMMENT 'Nur bestandene Tests',
`rang1` int(11) NOT NULL,
`rang2` int(11) NOT NULL,
`rang3` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;");
$sql1 = $db->query("ALTER TABLE `bpm_tmp_jahrgang_kandidat` ADD PRIMARY KEY (`tjk_id`);");
$sql1 = $db->query("ALTER TABLE `bpm_tmp_jahrgang_kandidat` MODIFY `tjk_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1;");
$query = "SELECT ka_id, vorname, nachname,id, mail
FROM bpm_kandidat
where upper(nachname) not like '%TEST%'
ORDER BY nachname ASC, vorname ASC
";
$result = $db->query($query) or die("Cannot execute query");
while ($row = $result->fetch_array())
{
# Pr<50>fung der Testg<74>ltigkeit: 1) Wann hat der Kandidat den Test gemacht
$query_bpmtesttg = $db->query("SELECT date_format(tm_datum, '%Y-%m-%d') tm_datum
FROM bpm_term_kand a, bpm_termine b, bpm_kandidat c
WHERE a.tm_id = b.tm_id
AND a.ka_id = c.ka_id
AND upper(c.id) = '$row[id]'
ORDER BY tk_id desc
LIMIT 1
");
$row_bpmtesttg = $query_bpmtesttg->fetch_array();
# Pr<50>fung der Testg<74>ltigkeit: 2) F<>r welchen Ausbildungsbeginn(/Semester) gilt der Test
$query_bpmausbb = $db->query("SELECT ausbildungsbeginn
FROM bpm_stichtage
WHERE beginn <= '$row_bpmtesttg[tm_datum]'
AND ende >= '$row_bpmtesttg[tm_datum]'
LIMIT 1
");
$row_bpmausbb = $query_bpmausbb->fetch_array();
if ($row_bpmausbb['ausbildungsbeginn'] == $ausbildungsbeginn)
{
$nachname = addslashes(trim($row['nachname']));
$vorname = addslashes(trim($row['vorname']));
$query_bpmnote = $db->query("SELECT hzb
FROM bpm_note
WHERE ka_id = '$row[ka_id]'
ORDER BY no_id desc
LIMIT 1
");
$row_bpmanote = $query_bpmnote->fetch_array();
$hzb = $row_bpmanote['hzb'];
$query_bpmerg = $db->query("SELECT summe, bestanden, tm_datum, tm_standort
FROM bpm_ergebnisse a, bpm_tanpool b, bpm_term_kand c, bpm_termine d
WHERE a.tan=b.tan
AND b.tp_id=c.tp_id
AND c.tm_id=d.tm_id
AND a.ka_id = '$row[ka_id]'
ORDER BY eg_id DESC
Limit 1
");
$row_bpmerg = $query_bpmerg->fetch_array();
$summe = $row_bpmerg['summe'];
$tm_datum = $row_bpmerg['tm_datum'];
$tm_standort = $row_bpmerg['tm_standort'];
if ($row_bpmerg['bestanden'] == 1)
{
# Nur wenn der Test bestanden wurde hinzuf<75>gen
$sql1 = $db->query("insert into bpm_tmp_jahrgang_kandidat (ka_id, vorname, nachname, id, mail, ausbildungsbeginn, hzb, tm_datum, tm_standort, testergebnis) VALUES('$row[ka_id]', '$vorname', '$nachname', '$row[id]', '$row[mail]', '$ausbildungsbeginn', '$hzb', '$tm_datum', '$tm_standort', '$summe')");
}
}
}
# 2) Personen ohne HZB l<>schen
$sql1 = $db->query("DELETE FROM bpm_tmp_jahrgang_kandidat WHERE hzb='0.00'");
$sql1 = $db->query("DELETE FROM bpm_tmp_jahrgang_kandidat WHERE ka_id NOT IN (SELECT ka_id FROM bpm_ergebnisse)");
# 3) Personen ohne vollst<73>ndige Bewerbung l<>schen
$sql1 = $db->query("DELETE FROM bpm_tmp_jahrgang_kandidat WHERE ka_id in (SELECT ka_id FROM bpm_upload WHERE upload_dat='0000-00-00 00:00:00')");
$sql1 = $db->query("DELETE FROM bpm_tmp_jahrgang_kandidat WHERE ka_id NOT IN (SELECT ka_id FROM bpm_upload)");
# 4) Ausgeschlossene Personen l<>schen
$sql1 = $db->query("DELETE FROM bpm_tmp_jahrgang_kandidat WHERE ka_id in (select ka_id from bpm_ausgeschlossene_kandidaten)");
# R<>nge berechnen
# Rangliste1
$query1 = "SELECT ka_id, vorname, nachname
, hzb
, id
, mail
FROM bpm_tmp_jahrgang_kandidat
ORDER BY hzb ASC, nachname ASC, vorname ASC
";
$result1 = $db->query($query1) or die("Cannot execute query1");
$rangliste1 = 0;
$lfd_nr2_1 = 0;
$lfd_nr3_1 = 0;
$hzbvorher = 0;
while ($row1 = $result1->fetch_array())
{
$lfd_nr2_1++;
$hzb = $row1['hzb'];
if ($hzb == $hzbvorher)
{
$rangliste1 = $lfd_nr3_1;
}
else
{
$rangliste1 = $lfd_nr2_1;
$lfd_nr3_1 = $lfd_nr2_1;
}
$hzbvorher = $row1['hzb'];
$sql1 = $db->query("UPDATE bpm_tmp_jahrgang_kandidat SET rang1='$rangliste1' WHERE ka_id=$row1[ka_id]");
}
# Rangliste2
$query2 = "SELECT ka_id, vorname, nachname, date_format(tm_datum, '%d.%m.%Y um %H:%i Uhr') tm_datum, CASE tm_standort
WHEN 'L' THEN 'Ludwigsburg'
WHEN 'K' THEN 'Kehl'
ELSE '' END as tm_standort
, testergebnis
, id
, mail
FROM bpm_tmp_jahrgang_kandidat
ORDER BY testergebnis DESC, nachname ASC, vorname ASC
";
$result2 = $db->query($query2) or die("Cannot execute query2");
$rangliste2 = 0;
$lfd_nr2_2 = 0;
$lfd_nr3_2 = 0;
$testergebnisvorher = 0;
while ($row2 = $result2->fetch_array())
{
$lfd_nr2_2++;
$testergebnis = $row2['testergebnis'];
if ($testergebnis == $testergebnisvorher)
{
$rangliste2 = $lfd_nr3_2;
}
else
{
$rangliste2 = $lfd_nr2_2;
$lfd_nr3_2 = $lfd_nr2_2;
}
$testergebnisvorher = $row2['testergebnis'];
$sql1 = $db->query("UPDATE bpm_tmp_jahrgang_kandidat SET rang2='$rangliste2' WHERE ka_id=$row2[ka_id]");
}
$smarty->assign('table_data1', $table_data1);
# Rangliste3
$query3 = "SELECT ka_id, (rang1+rang2)/2 rang3
FROM bpm_tmp_jahrgang_kandidat
ORDER BY rang3 ASC, nachname ASC, vorname ASC
";
$result3 = $db->query($query3) or die("Cannot execute query3");
$rangliste3 = 0;
$lfd_nr2_3 = 0;
$lfd_nr3_3 = 0;
$rang3vorher = 0;
while ($row3 = $result3->fetch_array())
{
$lfd_nr2_3++;
$rang3 = $row3['rang3'];
if ($rang3 == $rang3vorher)
{
$rangliste3 = $lfd_nr3_3;
}
else
{
$rangliste3 = $lfd_nr2_3;
$lfd_nr3_3 = $lfd_nr2_3;
}
$rang3vorher = $row3['rang3'];
$sql1 = $db->query("UPDATE bpm_tmp_jahrgang_kandidat SET rang3='$rangliste3' WHERE ka_id=$row3[ka_id]");
}
$db->autocommit(true);
}
$smarty->assign('action', "$action");
$smarty->display("$template/admin/$templatename");
?>

56
admin/save_hs.php Executable file
View File

@ -0,0 +1,56 @@
<?php
if(!isset($_SESSION)) { session_start(); }
require_once("../config/datenbankanbindung.php");
$resp_hs = $_POST['get_resp_hs'];
$art = $_POST['get_art'];
$ka_id = $_POST['get_ka_id'];
$db = dbconnect();
if($art == 'R'){
#zust<73>ndige Hochschule
$sql1 = $db->query("UPDATE bpm_kandidat
SET hochschule = '$resp_hs'
WHERE ka_id = '$ka_id'");
}
if($art == 'W'){
#Wunsch Hochschule
$result_countid = $db->query("SELECT count(*) Anz
FROM bpm_erw_daten
WHERE ka_id = '$ka_id'");
$row_countid = $result_countid->fetch_array();
if($resp_hs != ''){
if($row_countid['Anz'] == 0){
$sql1 = $db->query("INSERT INTO bpm_erw_daten (ka_id, wunsch_hs) VALUES ($ka_id, '$resp_hs')");
}else{
$sql1 = $db->query("UPDATE bpm_erw_daten
SET wunsch_hs = '$resp_hs'
WHERE ka_id = '$ka_id'");
}
}
}
if($art == 'Z'){
#zugewiesene Hochschule
$result_countid = $db->query("SELECT count(*) Anz
FROM bpm_erw_daten
WHERE ka_id = '$ka_id'");
$row_countid = $result_countid->fetch_array();
if($resp_hs != ''){
if($row_countid['Anz'] == 0){
$sql1 = $db->query("INSERT INTO bpm_erw_daten (ka_id, zugewiesene_hs) VALUES ($ka_id, '$resp_hs')");
}else{
$sql1 = $db->query("UPDATE bpm_erw_daten
SET zugewiesene_hs = '$resp_hs'
WHERE ka_id = '$ka_id'");
}
}
}
exit;
?>

88
admin/save_note.php Executable file
View File

@ -0,0 +1,88 @@
<?php
if(!isset($_SESSION)) { session_start(); }
require_once("../config/datenbankanbindung.php");
require_once("../func_notenskala.php");
function floor3($val, $precision) {
$pos = strpos($val, '.');
$zahl = substr($val, 0, $pos+1+$precision);
return $zahl;
}
$notenart = $_POST['get_notenart'];
$note = floor3(str_replace(',','.',str_replace('.','', $_POST['get_note'])),1);
$notenskala = $_POST['get_notenskala'];
$ka_id = $_SESSION["username"];;
$db = dbconnect();
#echo $hzbnote;
if($notenart == "Keine"){
NULL;
echo "reload";
}
if($notenart == "HZB"){
$durchschnittnote = "0.00";
$durchschnittpunkte = "0.00";
$erfdat_schnitt = "0000-00-00 00:00:00";
if($notenskala == "Punkte"){
$hzbnote = notenskala($note);
$hzbpunkte = $note;
$erfdat_hzb = date("Y-m-d H:i:s");
}elseif($notenskala == "Noten"){
$hzbnote = $note;
$hzbpunkte = "0.00";
$erfdat_hzb = date("Y-m-d H:i:s");
}
}
if($notenart == "Durchschnitt"){
$hzb = "0.00";
$hzb_punkte = "0.00";
$erfdat_hzb = "0000-00-00 00:00:00";
if($notenskala == "Punkte"){
$durchschnittnote = notenskala($note);
echo "notenwert1||(= Note: ".number_format($durchschnittnote, 1, ',', '.').")";
$durchschnittpunkte = $note;
$erfdat_schnitt = date("Y-m-d H:i:s");
}elseif($notenskala == "Noten"){
$durchschnittnote = $note;
$durchschnittpunkte = "0.00";
$erfdat_schnitt = date("Y-m-d H:i:s");
}
}
$query_anz = $db->query("SELECT count(*) Anz
FROM bpm_note
WHERE ka_id = $ka_id");
$row_anz = $query_anz->fetch_array();
if($row_anz['Anz'] == 0){
#Insert
$sql1 = $db->query("INSERT INTO bpm_note (ka_id, hzb, hzb_punkte, zeugnisschnitt, zeugnisschnitt_punkte, erfdat_hzb, erfdat_schnitt) VALUES('$ka_id', '$hzbnote', '$hzbpunkte', '$durchschnittnote', '$durchschnittpunkte', '$erfdat_hzb', '$erfdat_schnitt')");
}else{
#Update
$sql1 = $db->query("UPDATE bpm_note
SET hzb = '$hzbnote'
,hzb_punkte = '$hzbpunkte'
,zeugnisschnitt = '$durchschnittnote'
,zeugnisschnitt_punkte = '$durchschnittpunkte'
,erfdat_hzb = '$erfdat_hzb'
,erfdat_schnitt = '$erfdat_schnitt'
WHERE ka_id = '$ka_id'");
}
exit;
?>

274
admin/tanimport.php Executable file
View File

@ -0,0 +1,274 @@
<?php
if(!isset($_SESSION)) { session_start(); }
include_once '../classes/TestProjektSmarty.class_subdir.php';
require_once("../config.inc.php");
$templatename = substr(basename($_SERVER['PHP_SELF']), 0, -3) . "html";
$smarty = new SmartyAdmin();
require_once("../language/german.inc.php");
require_once("../func_get_parameter.php");
require_once("../config/func_cryption.php");
if (isset($_GET['action'])) {
$action = $_GET['action'];
} else {
$action = '';
}
#########Konfiguration#######################################
$verz = "upload_csv/"; // relatives Uploadverzeichnis (relativ zum 'Standort' dieser Datei, wohin die Dateien kopiert werden sollen
$trennzeichen_excel = "\t"; // Das Trennzeichen das Excel f&uuml;r CVS-Dateien nimmt ist je nach Excelversion unterschiedlich:
// Entweder $trennzeichen_excel = ";"; --> Semikolon
// oder $trennzeichen_excel = ","; --> Komma
#############################################################
$_SESSION["ck_verz"] = $verz;
if ($action == '') {
# Den Testtermin wählt man, damit jede Hochschule seine eigenen Daten importieren kann. Wenn eine Hochschule am selben TAg einen Test hat vermeidet man dass ein halbfertiger Test importiert wird
if (isset($_POST["testtermin"])) {
$testtermin = $_POST["testtermin"];
} else {
$testtermin = $_SESSION["testtermin"];
}
$_SESSION["testtermin"] = $testtermin;
# Uploadverzeichnis aufräumen. Temporäre Dateien, die älter als 2 Wochen sind, werden gelöscht
$dir = $_SERVER["DOCUMENT_ROOT"].dirname($_SERVER['PHP_SELF'])."/$verz";
$folder = dir($dir);
while ($dateiname = $folder->read()) {
if (filetype($dir.$dateiname) != "dir") {
if (strtotime("-2 weeks") >
@filemtime($dir.$dateiname)) {
if (@unlink($dir.$dateiname) != false){
# echo $dateiname.' wurde gelöscht<br>';
}else{
# echo $dateiname.' konnte nichtgelöscht werden<br>';
}
}
}
}
$result_ct = $db->query("SELECT count(*) Anz FROM bpm_tanpool where verw_dat = '0000-00-00 00:00:00'");
$row_ct = $result_ct->fetch_array();
$smarty->assign('tanimp_anzahltan', "$row_ct[Anz]");
# Fehler beim Upload anzeigen
if (isset($_GET['error'])) {
$errorno = $_GET['error'];
$smarty->assign('index_error', 1);
if ($errorno == 1) {
$smarty->assign('index_error_text', "Es dürfen nur CSV Dateien hochgeladen werden.");
}
if ($errorno == 2) {
# Tabelle bpm_parameter
$size_mb = trim(get_parameter(12));
$smarty->assign('index_error_text', "Die Datei ist zu groß. Die Dateigröße darf max. $size_mb MB betragen.");
}
if ($errorno == 3) {
$smarty->assign('index_error_text', "Vorgang wurde abgebrochen. Die Datei wurde vom Server gelöscht");
}
if ($errorno == 4) {
$smarty->assign('index_error_text', "Vorgang wurde abgebrochen. Die Datei wurde nicht vom Server gelöscht");
}
}
}
if ($action == 'csvimp') {
$testtermin = $_SESSION["testtermin"];
// http://www.tutorials.de/tutorials65420.html
#echo '<pre>', print_r($_POST, true), '</pre>';
$tempname = $_FILES['file']['tmp_name'];
$name = $_FILES['file']['name'];
$type = $_FILES['file']['type'];
$size = $_FILES['file']['size'];
$einheit = "Byte"; // F&uuml;r die Efolgsmeldung.
$limitedext = array(
".csv"
); //Erlaubte Dateieindung beim Upload
$extlimit = "yes"; //Do you want to limit the extensions of files uploaded
$ext = strrchr($name, '.');
if (($extlimit == "yes") && (!in_array($ext, $limitedext))) {
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=1\">";
exit;
}
# Tabelle bpm_parameter
$size_mb = trim(get_parameter(12));
$size_bt = $size_mb * 1024 * 1024;
if ($size > $size_bt) {
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=2\">";
exit;
}
$name = str_replace(array(
"&auml;",
"&ouml;",
"&uuml;",
"&szlig;",
"&Auml;",
"&Ouml;",
"&Uuml;",
" "
), array(
"ae",
"oe",
"ue",
"ss",
"Ae",
"Oe",
"Ue",
"_"
), $name);
$heute = mktime(date("H"), date("i"), date("s"), date("m"), date("d"), date("Y")); // heutiges Datum & Zeit: http://de2.php.net/manual/de/function.date.php
$heuteformat = date("H-i-s_Y-m-d", $heute); // Formatierung, wie es vor dem Dateinamen erscheinen soll
$datum_db = date("Y-m-d H:i:s", $heute); // Formatierung, wie es vor dem Dateinamen erscheinen soll
$neu = $heuteformat . "_" . $name;
$_SESSION["ck_neu"] = $neu;
move_uploaded_file("$tempname", "$verz$neu"); // Unterverzeichnisse wie folgt: copy("$tempname", "pdf/$neu");
$handle = fopen("$verz$neu", "r"); // Datei zum Lesen &ouml;ffnen
# Hier vor der Schleife erste Zeile holen und ignorieren. Enthält Überschrift
# fgetcsv($handle, 0, $trennzeichen_excel);
while (($data = fgetcsv($handle, 0, $trennzeichen_excel)) !== FALSE) { // Daten werden aus der Datei in ein Array $data gelesen
if(!isset($zaehler) or $zaehler == 1){
$zaehler = 0;
}else{
$zaehler = 1;
}
$tan = $data[1];
$tinyurl = $data[2];
$row1['zaehler'] = $zaehler;
$row1['tan'] = $tan;
$row1['tinyurl'] = $tinyurl;
$table_data1[] = $row1;
}
$smarty->assign('table_data1', $table_data1);
fclose($handle);
}
if ($action == 'csvimp2') {
$neu = $_SESSION["ck_neu"]; //CSV-Dateinamen um Datei l&ouml;schen zu k&ouml;nnen
$verz = $_SESSION["ck_verz"]; //Uploadverzeichnis aus Cookie holen
$testtermin = $_SESSION["testtermin"];
if ($_POST['import'] == "0") // DS sollen nicht importiert werden
{
$dateiname = "$verz$neu";
if (@unlink($dateiname)) // Funktion l&ouml;scht Dateien und gibt true / false zur&uuml;ck
{
# Abbruch, datei gelöscht
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=3\">";
exit;
} else {
# Abbruch, datei nicht gelöscht
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=4\">";
exit;
} // End if
} elseif ($_POST['import'] == "1") // DS sollen importiert werden
{
$handle = fopen("$verz$neu", "r"); // Datei zum Lesen &ouml;ffnen
while (($data = fgetcsv($handle, 0, $trennzeichen_excel)) !== FALSE) { // Daten werden aus der Datei in ein Array $data gelesen
$dummy_name = 'Testuser-bpm';
$dummy_vorname = $data[0];
$tan = $data[1];
$tinyurl = $data[2];
$result_ct = $db->query("SELECT count(*) Anz
FROM bpm_tanpool
WHERE tan = '$tan'");
$row_ct = $result_ct->fetch_array();
if ($row_ct['Anz'] == 0) {
# keine TANs vorhanden, insert
$sql1 = $db->query("insert into bpm_tanpool (dummy_name
, dummy_vorname
, tan
, tinyurl
, aktiv)
VALUES ( '$dummy_name'
, '$dummy_vorname'
, '$tan'
, '$tinyurl'
, 'A'
)");
if (!$sql1) {
$hinweis['hinweis'] = "TAN: " . $tan . " Fehler: TAN nicht gespeichert<br>";
$smarty->assign('index_error', 1);
}
} else {
# Ergebnisse gibt es schon, kein insert
$hinweis['hinweis'] = "TAN: " . $tan . " schon vorhanden<br>";
$smarty->assign('index_error', 1);
}
$table_data2[] = $hinweis;
}
$smarty->assign('table_data2', $table_data2);
fclose($handle);
} else { // Es wurde kein Radiobutton gew&auml;hlt! Technisch aber ausgeschlossen
echo "sie m&uuml;ssen eine Auswahl treffen";
}
function deleteFiles($verz)
{
$handle = opendir($verz);
while ($file = readdir($handle)) {
if ($file != "." && $file != "..") {
$datei = $verz . $file;
if (@unlink($datei)) {
$error = TRUE;
} else {
$error = FALSE;
}
}
}
closedir($handle);
return $error;
}
deleteFiles($verz); // Dateien werden im Uploadverzeichnis gel&ouml;scht, falls noch welche darin w&auml;ren
} // ende Action
$smarty->assign('action', "$action");
$smarty->display("$template/admin/$templatename");
?>

404
admin/termine.php Executable file
View File

@ -0,0 +1,404 @@
<?php
if(!isset($_SESSION)) { session_start(); }
include_once '../classes/TestProjektSmarty.class_subdir.php';
require_once("../config.inc.php");
$templatename = substr(basename($_SERVER['PHP_SELF']),0,-3)."html";
$smarty = new SmartyAdmin();
require_once "../language/german.inc.php";
require_once("../func_get_restplatz.php");
require_once("../func_get_parameter.php");
if (isset($_GET['action'])) {
$action = $_GET['action'];
} else {
$action = '';
}
if ($action == '') {
if (isset($_GET['edit'])) {
$_SESSION["termine_status"] = 'edit';
$tm_id = $_GET['edit'];
$_SESSION["termine_tm_id"] = $tm_id;
} else {
$_SESSION["termine_status"] = 'neu';
}
# -- Fehlermeldungen -- #
if (isset($_GET['error'])) {
$errorno = $_GET['error'];
$smarty->assign('termine_error', 1);
$smarty->assign('termine_value_datum', $_SESSION["termine_value_tm_datum"]);
$smarty->assign('termine_value_zeit', $_SESSION["termine_value_tm_zeit"]);
$smarty->assign('termine_value_tm_standort', $_SESSION["termine_value_tm_standort"]);
$smarty->assign('termine_value_tm_plaetze', $_SESSION["termine_value_tm_plaetze"]);
$smarty->assign('termine_value_tm_raum', $_SESSION["termine_value_tm_raum"]);
$smarty->assign('termine_value_tm_referenznr', $_SESSION["termine_value_tm_referenznr"]);
if ($errorno == 3) {
# ungültiges Datum
$smarty->assign('termine_error_text', "Das eingegebene Datum ist nicht korrekt. Bitte korrigieren Sie das Datum!");
}
}
# --- Wenn Werte editiert werden ------------
if ($_SESSION["termine_status"] == 'edit') {
$result_edit = $db->query("SELECT tm_id, date_format(tm_datum, '%d.%m.%Y') datum, date_format(tm_datum, '%H:%i') zeit, tm_standort, tm_plaetze, tm_raum, tm_referenznr
FROM bpm_termine
WHERE tm_id = $tm_id");
$row_edit = $result_edit->fetch_array();
$smarty->assign('termine_value_datum', "$row_edit[datum]");
$smarty->assign('termine_value_zeit', "$row_edit[zeit]");
$smarty->assign('termine_value_tm_standort', "$row_edit[tm_standort]");
$smarty->assign('termine_value_tm_plaetze', "$row_edit[tm_plaetze]");
$smarty->assign('termine_value_tm_raum', "$row_edit[tm_raum]");
$smarty->assign('termine_value_tm_referenznr', "$row_edit[tm_referenznr]");
}
# --- Wenn Werte editiert werden Ende -------
if ($_GET['editende'] == 1) {
# Editieren ist beendet, als ein update auf einen Datensatz. Dann ist der status wieder Neu, damit wird wieder ein Insert durchgeführt
$_SESSION["termine_status"] = 'neu';
}
# Gespeicherte Werte
$query1 = "SELECT tm_id, date_format(tm_datum, '%d.%m.%Y') datum, date_format(tm_datum, '%H:%i') zeit, tm_standort, tm_plaetze, tm_raum, tm_referenznr
FROM bpm_termine
WHERE tm_datum > DATE_SUB( NOW() , INTERVAL 30 DAY )
ORDER BY tm_datum ASC, zeit ASC";
$result1 = $db->query($query1) or die("Cannot execute query1");
while ($row1 = $result1->fetch_array()) {
if($row1['tm_standort'] == 'L'){
$standort = 'Ludwigsburg';
}
if($row1['tm_standort'] == 'K'){
$standort = 'Kehl';
}
$restplatz = get_restplatz($row1['tm_id']);
if($restplatz != $row1['tm_plaetze']){
$disable = 0;
}else{
$disable = 1;
}
$row1['restplatz'] = $restplatz;
$row1['tm_disable'] = $disable;
$row1['standort_form'] = $standort;
$table_data1[] = $row1;
}
$smarty->assign('table_data1', $table_data1);
}
if ($action == 'save') {
$tm_datum = $_POST['tm_datum'];
$tm_zeit = $_POST['tm_zeit'];
$tm_plaetze = $_POST['tm_plaetze'];
$tm_standort = $_POST['tm_standort'];
$tm_raum = $_POST['tm_raum'];
$tm_referenznr = trim($_POST['tm_referenznr']);
$_SESSION["termine_value_tm_datum"] = $tm_datum;
$_SESSION["termine_value_tm_zeit"] = $tm_zeit;
$_SESSION["termine_value_tm_plaetze"] = $tm_plaetze;
$_SESSION["termine_value_tm_standort"] = $tm_standort;
$_SESSION["termine_value_tm_raum"] = $tm_raum;
$_SESSION["termine_value_tm_referenznr"] = $tm_referenznr;
$tm_datum_form = preg_replace('/^(\\d{2})\\.(\\d{2})\\.(\\d{4})$/', '$3-$2-$1', $tm_datum);
$testdatum = $tm_datum_form." ".$tm_zeit.":00";
$_SESSION["termine_value_tm_testdatum"] = $testdatum;
function validateDate($date, $format = 'Y-m-d')
{
$d = DateTime::createFromFormat($format, $date);
return $d && $d->format($format) == $date;
}
if(!validateDate($tm_datum_form)){
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=3\">";
exit;
}
#$datum = date("Y-m-d H:i:s");
if ($_SESSION["termine_status"] == 'neu') {
$sql1 = $db->query("INSERT INTO bpm_termine ( tm_datum
, tm_standort
, tm_plaetze
, tm_raum
, tm_referenznr
)
VALUES
( '$testdatum'
, '$tm_standort'
, '$tm_plaetze'
, '$tm_raum'
, '$tm_referenznr'
)
");
}
if ($_SESSION["termine_status"] == 'edit') {
$tm_id = $_SESSION["termine_tm_id"];
# Prüfen, ob zu diesem Termin bereits Kandidaten gebucht sind. Wenn ja, dann Weiterleitung zum Mailanschreiben und dann Termin ändern
$result_vorh = $db->query("SELECT count(*) Anz
FROM bpm_term_kand
WHERE tm_id ='$tm_id'
");
$row_vorh = $result_vorh->fetch_array();
# Prüfen, ob der Kandidat angeschrieben werden muss. Nur bei einer Änderung der Anzahl muss der Kandidat nicht extra informiert werden
$result_vorh1 = $db->query("SELECT count(*) Anz
FROM bpm_termine
WHERE tm_id ='$tm_id'
AND (tm_datum != '$testdatum'
OR tm_standort != '$tm_standort'
OR tm_raum != '$tm_raum'
OR tm_referenznr != '$tm_referenznr'
)
");
$row_vorh1 = $result_vorh1->fetch_array();
if($row_vorh['Anz'] != 0 AND $row_vorh1['Anz'] != 0){
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?action=mailterminupdate\">";
exit;
}else{
$result = $db->query("UPDATE bpm_termine
SET tm_datum = '$testdatum'
, tm_standort = '$tm_standort'
, tm_plaetze = '$tm_plaetze'
, tm_raum = '$tm_raum'
, tm_referenznr = '$tm_referenznr'
WHERE tm_id = $tm_id
");
unset($_SESSION['termine_tm_id']);
}
}
# Dann bekommts beim refresh den status neu, also es wird beim Abschicken ein Insert gemacht
$editende = 1;
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?editende=$editende\">";
}
if ($action == 'del') {
$tm_id = $_GET['tm_id'];
$del1 = $db->query("DELETE FROM bpm_termine WHERE tm_id = $tm_id");
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "\">";
}
if ($action == 'mailterminupdate') {
$tm_id = $_SESSION["termine_tm_id"];
# Gespeicherte Werte
$query1 = "SELECT mail
FROM bpm_kandidat
WHERE ka_id IN (SELECT ka_id
FROM bpm_term_kand
WHERE tm_id = $tm_id)
ORDER BY nachname ASC";
$result1 = $db->query($query1) or die("Cannot execute query1");
while ($row1 = $result1->fetch_array()) {
$mail .= "$row1[mail], ";
}
$mail_lubu = get_parameter(8);
$mail_kehl = get_parameter(7);
$mail_an = "$mail_kehl, $mail_lubu";
$mail_bcc = substr(trim($mail),0,-1);
$smarty->assign('mtupd_mailadressen_an', "$mail_an");
$smarty->assign('mtupd_mailadressen_bcc', "$mail_bcc");
}
if ($action == 'mailsenden2') {
$tm_id = $_SESSION["termine_tm_id"];
$tm_plaetze = $_SESSION["termine_value_tm_plaetze"];
$tm_standort = $_SESSION["termine_value_tm_standort"];
$tm_raum = $_SESSION["termine_value_tm_raum"];
$tm_referenznr = $_SESSION["termine_value_tm_referenznr"];
$testdatum = $_SESSION["termine_value_tm_testdatum"];
$empfaenger_an = $_POST['empfaenger_an'];
$empfaenger_bcc = $_POST['empfaenger_bcc'];
$betreff = $_POST['betreff'];
$text = $_POST['text'];
$absender = $_POST['absender'];
if($absender == 'Kehl'){
$sendermail = get_parameter(7);
$sender = 'Hochschule Kehl';
}
if($absender == 'Ludwigsburg'){
$sendermail = get_parameter(8);
$sender = 'Hochschule Ludwigsburg';
}
# Update
$result = $db->query("UPDATE bpm_termine
SET tm_datum = '$testdatum'
, tm_standort = '$tm_standort'
, tm_plaetze = '$tm_plaetze'
, tm_raum = '$tm_raum'
, tm_referenznr = '$tm_referenznr'
WHERE tm_id = $tm_id
");
$query_termin = $db->query("SELECT date_format(tm_datum, '%d.%m.%Y um %H:%i Uhr') tm_datum, tm_standort, tm_raum, tm_plaetze, tm_referenznr FROM bpm_termine WHERE tm_id='$tm_id'");
$row_termin = $query_termin->fetch_array();
if($row_termin['tm_standort'] == 'L'){
$standort = 'Ludwigsburg - Reuteallee 36, 71634 Ludwigsburg';
$sendermail = get_parameter(8);
}
if($row_termin['tm_standort'] == 'K'){
$standort = 'Kehl - Kinzigallee 1, 77694 Kehl';
$sendermail = get_parameter(7);
}
$text = $text."
<br>
<br>
Neue Daten:
<figure class='table' style='float:left;'>
<table>
<tr>
<td valign='top'>
<font face='Arial' size='2'>
<b>Testtag:</b>
</font>
</td>
<td valign='top'>
<font face='Arial' size='2'>
$row_termin[tm_datum]
</font>
</td>
</tr>
<tr>
<td valign='top'>
<font face='Arial' size='2'>
<b>Hochschule:</b>
</font>
</td>
<td valign='top'>
<font face='Arial' size='2'>
$standort
</font>
</td>
</tr>
<tr>
<td valign='top'>
<font face='Arial' size='2'>
<b>Gebäude / Raum:</b>
</font>
</td>
<td valign='top'>
<font face='Arial' size='2'>
$row_termin[tm_raum]
</font>
</td>
</tr>
</table>
</figure>
";
$query1 = "SELECT mail, ka_id
FROM bpm_kandidat
WHERE ka_id IN (SELECT ka_id
FROM bpm_term_kand
WHERE tm_id = $tm_id)
ORDER BY nachname ASC";
$result1 = $db->query($query1) or die("Cannot execute query1a $tm_id");
$lnnr = 0;
while ($row1 = $result1->fetch_array()) {
$mail[$lnnr]['mail'] = "$row1[mail]";
$mail[$lnnr]['ka_id'] = "$row1[ka_id]";
$lnnr++;
}
$lfdnr = $lfdnr++;
# Mail auch an die zuständige HS
$mail[$lnnr][mail]= $sendermail;
$mail[$lnnr][ka_id]= "";
#echo "<pre>";
#print_r($mail);
#echo "</pre><hr>";
#exit;
#echo "
#From: $sender - $sendermail<br>
#$empfaenger<br>
#$betreff<br>
#echo "$text<br>";
#echo "</pre>";
#$hochschule<br>";
#exit;
#Beim CKEDITOR die <p> Tags mit Zeilenabstand 0 in der Mail
$style ="<head>
<style>
p {margin: 0;}
</style>
</head>
";
$text = $style.$text;
for($i=0;$i<count($mail);$i++){
## Mailversand:
$headers = "From: $sender <$sendermail>\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=utf-8\r\n";
$return = @mail($empfaenger, $betreff, $text, $headers);
$heute = mktime(date("H"), date("i"), date("s"), date("m"), date("d"), date("Y")); // heutiges Datum & Zeit: http://de2.php.net/manual/de/function.date.php
$datum_db = date("Y-m-d H:i:s", $heute); // Formatierung, wie es vor dem Dateinamen erscheinen soll
$text_db = addslashes($text);
if($mail[$i][ka_id] != ""){
# Mail an HS soll nicht protokolliert werden
if($return){
$sql1 = $db->query("INSERT INTO bpm_sonstige_mail (sender, sendermail, ka_id, empfaenger, mail_betreff, mail_text, status, sendedat)
VALUES ('$sender', '$sendermail', '".$mail[$i][ka_id]."', '".$mail[$i][mail]."', '$betreff', '$text_db', 'V', '$datum_db')
");
$smarty->assign('mail_senderg', "Die Mail wurde verschickt!");
}else{
$sql1 = $db->query("INSERT INTO bpm_sonstige_mail (sender, sendermail, ka_id, empfaenger, mail_betreff, mail_text, status, sendedat)
VALUES ('$sender', '$sendermail', '".$mail[$i][ka_id]."', '".$mail[$i][mail]."', '$betreff', '$text_db', 'F', '$datum_db')
");
$err = 1;
$mail_err .= $mail[$i][mail]."<br>";
}
}
}
unset($_SESSION['termine_tm_id']);
$editende = 1;
if($err == 1){
$smarty->assign('mail_senderg', "Die Mails konnten nicht verschickt werden!<br>Prüfen Sie die folgenden Mailadressen:<br><br>$mail_err");
}else{
$smarty->assign('mail_senderg', "Die Mails wurden verschickt!");
echo "<meta http-equiv=\"refresh\" content=\"2; URL=" . $_SERVER['PHP_SELF'] . "?editende=$editende\">";
}
}
$smarty->assign('action', "$action");
$smarty->display("$template/admin/$templatename");
?>

352
admin/termine.php_bcc Executable file
View File

@ -0,0 +1,352 @@
<?php
session_start();
include_once '../classes/TestProjektSmarty.class_subdir.php';
require_once("../config.inc.php");
$templatename = substr(basename($_SERVER['PHP_SELF']),0,-3)."html";
$smarty = new SmartyAdmin();
require_once "../language/german.inc.php";
require_once("../func_get_restplatz.php");
require_once("../func_get_parameter.php");
if (isset($_GET['action'])) {
$action = $_GET['action'];
} else {
$action = '';
}
if ($action == '') {
if (isset($_GET['edit'])) {
$_SESSION["termine_status"] = 'edit';
$tm_id = $_GET['edit'];
$_SESSION["termine_tm_id"] = $tm_id;
} else {
$_SESSION["termine_status"] = 'neu';
}
# -- Fehlermeldungen -- #
if (isset($_GET['error'])) {
$errorno = $_GET['error'];
$smarty->assign('termine_error', 1);
$smarty->assign('termine_value_datum', $_SESSION["termine_value_tm_datum"]);
$smarty->assign('termine_value_zeit', $_SESSION["termine_value_tm_zeit"]);
$smarty->assign('termine_value_tm_standort', $_SESSION["termine_value_tm_standort"]);
$smarty->assign('termine_value_tm_plaetze', $_SESSION["termine_value_tm_plaetze"]);
$smarty->assign('termine_value_tm_raum', $_SESSION["termine_value_tm_raum"]);
$smarty->assign('termine_value_tm_referenznr', $_SESSION["termine_value_tm_referenznr"]);
if ($errorno == 3) {
# ungültiges Datum
$smarty->assign('termine_error_text', "Das eingegebene Datum ist nicht korrekt. Bitte korrigieren Sie das Datum!");
}
}
# --- Wenn Werte editiert werden ------------
if ($_SESSION["termine_status"] == 'edit') {
$result_edit = $db->query("SELECT tm_id, date_format(tm_datum, '%d.%m.%Y') datum, date_format(tm_datum, '%H:%i') zeit, tm_standort, tm_plaetze, tm_raum, tm_referenznr
FROM dvm_termine
WHERE tm_id = $tm_id");
$row_edit = $result_edit->fetch_array();
$smarty->assign('termine_value_datum', "$row_edit[datum]");
$smarty->assign('termine_value_zeit', "$row_edit[zeit]");
$smarty->assign('termine_value_tm_standort', "$row_edit[tm_standort]");
$smarty->assign('termine_value_tm_plaetze', "$row_edit[tm_plaetze]");
$smarty->assign('termine_value_tm_raum', "$row_edit[tm_raum]");
$smarty->assign('termine_value_tm_referenznr', "$row_edit[tm_referenznr]");
}
# --- Wenn Werte editiert werden Ende -------
if ($_GET['editende'] == 1) {
# Editieren ist beendet, als ein update auf einen Datensatz. Dann ist der status wieder Neu, damit wird wieder ein Insert durchgeführt
$_SESSION["termine_status"] = 'neu';
}
# Gespeicherte Werte
$query1 = "SELECT tm_id, date_format(tm_datum, '%d.%m.%Y') datum, date_format(tm_datum, '%H:%i') zeit, tm_standort, tm_plaetze, tm_raum, tm_referenznr
FROM dvm_termine
WHERE tm_datum > now()
ORDER BY tm_datum ASC, zeit ASC";
$result1 = $db->query($query1) or die("Cannot execute query1");
while ($row1 = $result1->fetch_array()) {
if($row1['tm_standort'] == 'L'){
$standort = 'Ludwigsburg';
}
if($row1['tm_standort'] == 'K'){
$standort = 'Kehl';
}
$restplatz = get_restplatz($row1['tm_id']);
if($restplatz != $row1['tm_plaetze']){
$disable = 0;
}else{
$disable = 1;
}
$row1['restplatz'] = $restplatz;
$row1['tm_disable'] = $disable;
$row1['standort_form'] = $standort;
$table_data1[] = $row1;
}
$smarty->assign('table_data1', $table_data1);
}
if ($action == 'save') {
$tm_datum = $_POST['tm_datum'];
$tm_zeit = $_POST['tm_zeit'];
$tm_plaetze = $_POST['tm_plaetze'];
$tm_standort = $_POST['tm_standort'];
$tm_raum = $_POST['tm_raum'];
$tm_referenznr = trim($_POST['tm_referenznr']);
$_SESSION["termine_value_tm_datum"] = $tm_datum;
$_SESSION["termine_value_tm_zeit"] = $tm_zeit;
$_SESSION["termine_value_tm_plaetze"] = $tm_plaetze;
$_SESSION["termine_value_tm_standort"] = $tm_standort;
$_SESSION["termine_value_tm_raum"] = $tm_raum;
$_SESSION["termine_value_tm_referenznr"] = $tm_referenznr;
$tm_datum_form = preg_replace('/^(\\d{2})\\.(\\d{2})\\.(\\d{4})$/', '$3-$2-$1', $tm_datum);
$testdatum = $tm_datum_form." ".$tm_zeit.":00";
$_SESSION["termine_value_tm_testdatum"] = $testdatum;
function validateDate($date, $format = 'Y-m-d')
{
$d = DateTime::createFromFormat($format, $date);
return $d && $d->format($format) == $date;
}
if(!validateDate($tm_datum_form)){
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=3\">";
exit;
}
#$datum = date("Y-m-d H:i:s");
if ($_SESSION["termine_status"] == 'neu') {
$sql1 = $db->query("INSERT INTO dvm_termine ( tm_datum
, tm_standort
, tm_plaetze
, tm_raum
, tm_referenznr
)
VALUES
( '$testdatum'
, '$tm_standort'
, '$tm_plaetze'
, '$tm_raum'
, '$tm_referenznr'
)
");
}
if ($_SESSION["termine_status"] == 'edit') {
$tm_id = $_SESSION["termine_tm_id"];
# Prüfen, ob zu diesem Termin bereits Kandidaten gebucht sind. Wenn ja, dann Weiterleitung zum Mailanschreiben und dann Termin ändern
$result_vorh = $db->query("SELECT count(*) Anz
FROM dvm_term_kand
WHERE tm_id ='$tm_id'
");
$row_vorh = $result_vorh->fetch_array();
# Prüfen, ob der Kandidat angeschrieben werden muss. Nur bei einer Änderung der Anzahl muss der Kandidat nicht extra informiert werden
$result_vorh1 = $db->query("SELECT count(*) Anz
FROM dvm_termine
WHERE tm_id ='$tm_id'
AND (tm_datum != '$testdatum'
OR tm_standort != '$tm_standort'
OR tm_raum != '$tm_raum'
OR tm_referenznr != '$tm_referenznr'
)
");
$row_vorh1 = $result_vorh1->fetch_array();
if($row_vorh['Anz'] != 0 AND $row_vorh1['Anz'] != 0){
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?action=mailterminupdate\">";
exit;
}else{
$result = $db->query("UPDATE dvm_termine
SET tm_datum = '$testdatum'
, tm_standort = '$tm_standort'
, tm_plaetze = '$tm_plaetze'
, tm_raum = '$tm_raum'
, tm_referenznr = '$tm_referenznr'
WHERE tm_id = $tm_id
");
unset($_SESSION['termine_tm_id']);
}
}
# Dann bekommts beim refresh den status neu, also es wird beim Abschicken ein Insert gemacht
$editende = 1;
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?editende=$editende\">";
}
if ($action == 'del') {
$tm_id = $_GET['tm_id'];
$del1 = $db->query("DELETE FROM dvm_termine WHERE tm_id = $tm_id");
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "\">";
}
if ($action == 'mailterminupdate') {
$tm_id = $_SESSION["termine_tm_id"];
# Gespeicherte Werte
$query1 = "SELECT mail
FROM dvm_kandidat
WHERE ka_id IN (SELECT ka_id
FROM dvm_term_kand
WHERE tm_id = $tm_id)
ORDER BY nachname ASC";
$result1 = $db->query($query1) or die("Cannot execute query1");
while ($row1 = $result1->fetch_array()) {
$mail .= "$row1[mail], ";
}
$mail_lubu = get_parameter(8);
$mail_kehl = get_parameter(7);
$mail_an = "$mail_kehl, $mail_lubu";
$mail_bcc = substr(trim($mail),0,-1);
$smarty->assign('mtupd_mailadressen_an', "$mail_an");
$smarty->assign('mtupd_mailadressen_bcc', "$mail_bcc");
}
if ($action == 'mailsenden2') {
$tm_id = $_SESSION["termine_tm_id"];
$tm_plaetze = $_SESSION["termine_value_tm_plaetze"];
$tm_standort = $_SESSION["termine_value_tm_standort"];
$tm_raum = $_SESSION["termine_value_tm_raum"];
$tm_referenznr = $_SESSION["termine_value_tm_referenznr"];
$testdatum = $_SESSION["termine_value_tm_testdatum"];
$empfaenger_an = $_POST['empfaenger_an'];
$empfaenger_bcc = $_POST['empfaenger_bcc'];
$betreff = $_POST['betreff'];
$text = $_POST['text'];
$absender = $_POST['absender'];
if($absender == 'Kehl'){
$sendermail = get_parameter(7);
$sender = 'Hochschule Kehl';
}
if($absender == 'Ludwigsburg'){
$sendermail = get_parameter(8);
$sender = 'Hochschule Ludwigsburg';
}
# Update
$result = $db->query("UPDATE dvm_termine
SET tm_datum = '$testdatum'
, tm_standort = '$tm_standort'
, tm_plaetze = '$tm_plaetze'
, tm_raum = '$tm_raum'
, tm_referenznr = '$tm_referenznr'
WHERE tm_id = $tm_id
");
$query_termin = $db->query("SELECT date_format(tm_datum, '%d.%m.%Y um %H:%i Uhr') tm_datum, tm_standort, tm_raum, tm_plaetze, tm_referenznr FROM dvm_termine WHERE tm_id='$tm_id'");
$row_termin = $query_termin->fetch_array();
if($row_termin['tm_standort'] == 'L'){
$standort = 'Ludwigsburg - Reuteallee 36, 71634 Ludwigsburg';
}
if($row_termin['tm_standort'] == 'K'){
$standort = 'Kehl - Kinzigallee 1, 77694 Kehl';
}
$text = $text."
<br>
<br>
Neue Daten:<br>
<table>
<tr>
<td valign='top'>
<font face='Arial' size='2'>
<b>Testtag:</b>
</font>
</td>
<td valign='top'>
<font face='Arial' size='2'>
$row_termin[tm_datum]
</font>
</td>
</tr>
<tr>
<td valign='top'>
<font face='Arial' size='2'>
<b>Hochschule:</b>
</font>
</td>
<td valign='top'>
<font face='Arial' size='2'>
$standort
</font>
</td>
</tr>
<tr>
<td valign='top'>
<font face='Arial' size='2'>
<b>Gebäude / Raum:</b>
</font>
</td>
<td valign='top'>
<font face='Arial' size='2'>
$row_termin[tm_raum]
</font>
</td>
</tr>
</table>
";
#echo "
#From: $sender - $sendermail<br>
#$empfaenger<br>
#$betreff<br>
#$text<br>
#$hochschule<br>";
#exit;
## Mailversand:
$headers = "From: $sender <$sendermail>\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=utf-8\r\n";
$headers .= "Bcc: $empfaenger_bcc\n";
$return = @mail($empfaenger_an, $betreff, $text, $headers);
if ($return) {
$smarty->assign('mail_senderg', "Die Mail wurde verschickt!");
} else {
$smarty->assign('mail_senderg', "Die Mail konnte nicht verschickt werden!<br>Prüfen Sie die Mailadressen.");
}
unset($_SESSION['termine_tm_id']);
$editende = 1;
echo "<meta http-equiv=\"refresh\" content=\"2; URL=" . $_SERVER['PHP_SELF'] . "?editende=$editende\">";
}
$smarty->assign('action', "$action");
$smarty->display("$template/admin/$templatename");
?>

343
admin/termine_kandidat.php Executable file
View File

@ -0,0 +1,343 @@
<?php
if(!isset($_SESSION)) { session_start(); }
include_once '../classes/TestProjektSmarty.class_subdir.php';
require_once("../config.inc.php");
$templatename = substr(basename($_SERVER['PHP_SELF']), 0, -3) . "html";
$smarty = new SmartyAdmin();
require_once("../language/german.inc.php");
require_once("../func_get_restplatz.php");
require_once("../func_get_parameter.php");
require_once("../config/func_cryption.php");
$verz = "../uploads/"; // relatives Uploadverzeichnis (relativ zum 'Standort' dieser Datei, wohin die Dateien kopiert werden sollen
if (isset($_GET['action'])) {
$action = $_GET['action'];
} else {
$action = '';
}
if ($action == '') {
unset($_SESSION["username"]);
$german = $db->query("SET lc_time_names = 'de_DE';");
# Dropdown befüllen übernimmt ajax:fetch.php
# $query1 = "SELECT ka_id, vorname, nachname
# FROM bpm_kandidat
# ORDER BY nachname, vorname";
#
# $result1 = $db->query($query1) or die("Cannot execute query1a");
#
#
# while ($row1 = $result1->fetch_array()) {
# $table_data1[] = $row1;
# }
# $smarty->assign('table_data1', $table_data1);
if (isset($_GET['error'])) {
$errorno = $_GET['error'];
$smarty->assign('bewerber_error', 1);
if ($errorno == 1) {
$smarty->assign('bewerber_error_text', "Es muss ein Bewerber ausgewählt werden.");
}
}
}
if ($action == 'ausgabe') {
if (isset($_POST['user'])) {
$username = mb_strtoupper($_POST["user"]); //remove case sensitivity on the username
} else {
$username = $_SESSION["username"];
}
$_SESSION["username"] = $username;
if(isset($_GET['error'])){
$errorno = $_GET['error'];
$smarty->assign('termine_error', 1);
if($errorno == 1){
$smarty->assign('termine_error_text', "Es muss ein Termin gewählt werden");
}
}
if ($username == "") {
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=1\">";
exit;
}
# Kandidat
$result_kandidat = $db->query("SELECT anrede, vorname, nachname
FROM bpm_kandidat
WHERE ka_id = '$username'
");
$row_kandidat = $result_kandidat->fetch_array();
if($row_kandidat['anrede'] == 'W'){
$anrede = 'Frau';
}
if($row_kandidat['anrede'] == 'M'){
$anrede = 'Herrn';
}
$smarty->assign('term_kand_anrede', $anrede);
$smarty->assign('term_kand_vorname', $row_kandidat['vorname']);
$smarty->assign('term_kand_nachname', $row_kandidat['nachname']);
# Wo ist der Kandidat bisher eingebucht
$result_bisher = $db->query("SELECT tm_id, date_format(tm_datum, '%d.%m.%Y') datum, date_format(tm_datum, '%H:%i') zeit, tm_standort, tm_plaetze, tm_raum, tm_referenznr
FROM bpm_termine
WHERE tm_id = (SELECT tm_id
FROM bpm_term_kand
WHERE ka_id = '$username'
ORDER BY tk_id desc
LIMIT 1)
");
$row_bisher = $result_bisher->fetch_array();
if($row_bisher['tm_standort'] == 'L'){
$standort = 'Ludwigsburg';
}
if($row_bisher['tm_standort'] == 'K'){
$standort = 'Kehl';
}
$smarty->assign('term_kand_datum', $row_bisher['datum']);
$smarty->assign('term_kand_zeit', $row_bisher['zeit']);
$smarty->assign('term_kand_tm_id', $row_bisher['tm_id']);
$smarty->assign('term_kand_standort', $standort);
# Gespeicherte Termine
$query1 = "SELECT tm_id, date_format(tm_datum, '%d.%m.%Y') datum, date_format(tm_datum, '%H:%i') zeit, tm_standort, tm_plaetze, tm_raum, tm_referenznr
FROM bpm_termine
WHERE tm_datum > NOW()
ORDER BY tm_datum ASC, zeit ASC";
$result1 = $db->query($query1) or die("Cannot execute query1");
while ($row1 = $result1->fetch_array()) {
if($row1['tm_standort'] == 'L'){
$standort = 'Ludwigsburg';
}
if($row1['tm_standort'] == 'K'){
$standort = 'Kehl';
}
$restplatz = get_restplatz($row1['tm_id']);
if($restplatz != $row1['tm_plaetze']){
$disable = 0;
}else{
$disable = 1;
}
$row1['restplatz'] = $restplatz;
$row1['tm_disable'] = $disable;
$row1['standort_form'] = $standort;
$table_data1[] = $row1;
}
$smarty->assign('table_data1', $table_data1);
}
if ($action == 'mail') {
$tm_id = $_POST['tm_id'];
$username = $_SESSION["username"];
if($tm_id == ""){
echo "<meta http-equiv=\"refresh\" content=\"0; URL=".$_SERVER['PHP_SELF']."?action=ausgabe&error=1\">";
exit;
}
$_SESSION["termine_tm_id"] = $tm_id;
# Gespeicherte Werte
$query1 = "SELECT mail
FROM bpm_kandidat
WHERE ka_id = '$username'
LIMIT 1";
$result1 = $db->query($query1) or die("Cannot execute query1");
while ($row1 = $result1->fetch_array()) {
$mail .= "$row1[mail]";
}
$smarty->assign('mtupd_mailadressen_an', "$mail");
}
if ($action == 'mailsenden2') {
$tm_id = $_SESSION["termine_tm_id"];
$username = $_SESSION["username"];
$empfaenger = $_POST['empfaenger_an'];
$betreff = $_POST['betreff'];
$text = $_POST['text'];
$absender = $_POST['absender'];
if($absender == 'Kehl'){
$sendermail = get_parameter(7);
$sender = 'Hochschule Kehl';
}
if($absender == 'Ludwigsburg'){
$sendermail = get_parameter(8);
$sender = 'Hochschule Ludwigsburg';
}
# Update
$result_curid = $db->query("SELECT tp_id
FROM bpm_term_kand
WHERE ka_id = $username
ORDER BY tp_id desc
LIMIT 1
");
$row_curid = $result_curid->fetch_array();
$akt_tpid = $row_curid['tp_id'];
$result = $db->query("UPDATE bpm_term_kand
SET tm_id = '$tm_id'
WHERE tp_id = $akt_tpid
");
$query_termin = $db->query("SELECT date_format(tm_datum, '%d.%m.%Y um %H:%i Uhr') tm_datum, tm_standort, tm_raum, tm_plaetze, tm_referenznr
FROM bpm_termine
WHERE tm_id='$tm_id'");
$row_termin = $query_termin->fetch_array();
if($row_termin['tm_standort'] == 'L'){
$standort = 'Ludwigsburg - Reuteallee 36, 71634 Ludwigsburg';
$sendermail = get_parameter(8);
}
if($row_termin['tm_standort'] == 'K'){
$standort = 'Kehl - Kinzigallee 1, 77694 Kehl';
$sendermail = get_parameter(7);
}
$text = $text."
<br>
<br>
Neue Daten:
<figure class='table' style='float:left;'>
<table>
<tr>
<td valign='top'>
<font face='Arial' size='2'>
<b>Testtag:</b>
</font>
</td>
<td valign='top'>
<font face='Arial' size='2'>
$row_termin[tm_datum]
</font>
</td>
</tr>
<tr>
<td valign='top'>
<font face='Arial' size='2'>
<b>Hochschule:</b>
</font>
</td>
<td valign='top'>
<font face='Arial' size='2'>
$standort
</font>
</td>
</tr>
<tr>
<td valign='top'>
<font face='Arial' size='2'>
<b>Gebäude / Raum:</b>
</font>
</td>
<td valign='top'>
<font face='Arial' size='2'>
$row_termin[tm_raum]
</font>
</td>
</tr>
</table>
</figure>
";
$query1 = "SELECT mail, ka_id
FROM bpm_kandidat
WHERE ka_id = $username
ORDER BY nachname ASC";
$result1 = $db->query($query1) or die("Cannot execute query1a $tm_id");
$lnnr = 0;
while ($row1 = $result1->fetch_array()) {
$mail[$lnnr]['mail'] = "$row1[mail]";
$mail[$lnnr]['ka_id'] = "$row1[ka_id]";
$lnnr++;
}
$lfdnr = $lfdnr++;
# Mail auch an die zuständige HS
$mail[$lnnr][mail]= $sendermail;
$mail[$lnnr][ka_id]= "";
#echo "<pre>";
#print_r($mail);
#echo "</pre><hr>";
#exit;
#echo "
#From: $sender - $sendermail<br>
#$empfaenger<br>
#$betreff<br>
#echo "$text<br>";
#echo "</pre>";
#$hochschule<br>";
#exit;
#Beim CKEDITOR die <p> Tags mit Zeilenabstand 0 in der Mail
$style ="<head>
<style>
p {margin: 0;}
</style>
</head>
";
$text = $style.$text;
for($i=0;$i<count($mail);$i++){
## Mailversand:
$headers = "From: $sender <$sendermail>\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=utf-8\r\n";
$return = @mail($empfaenger, $betreff, $text, $headers);
$heute = mktime(date("H"), date("i"), date("s"), date("m"), date("d"), date("Y")); // heutiges Datum & Zeit: http://de2.php.net/manual/de/function.date.php
$datum_db = date("Y-m-d H:i:s", $heute); // Formatierung, wie es vor dem Dateinamen erscheinen soll
$text_db = addslashes($text);
if($mail[$i][ka_id] != ""){
# Mail an HS soll nicht protokolliert werden
if($return){
$sql1 = $db->query("INSERT INTO bpm_sonstige_mail (sender, sendermail, ka_id, empfaenger, mail_betreff, mail_text, status, sendedat)
VALUES ('$sender', '$sendermail', '".$mail[$i][ka_id]."', '".$mail[$i][mail]."', '$betreff', '$text_db', 'V', '$datum_db')
");
$smarty->assign('mail_senderg', "Die Mail wurde verschickt!");
}else{
$sql1 = $db->query("INSERT INTO bpm_sonstige_mail (sender, sendermail, ka_id, empfaenger, mail_betreff, mail_text, status, sendedat)
VALUES ('$sender', '$sendermail', '".$mail[$i][ka_id]."', '".$mail[$i][mail]."', '$betreff', '$text_db', 'F', '$datum_db')
");
$err = 1;
$mail_err .= $mail[$i][mail]."<br>";
}
}
}
unset($_SESSION['termine_tm_id']);
$editende = 1;
if($err == 1){
$smarty->assign('mail_senderg', "Die Mails konnten nicht verschickt werden!<br>Prüfen Sie die folgenden Mailadressen:<br><br>$mail_err");
}else{
$smarty->assign('mail_senderg', "Die Mails wurden verschickt!");
echo "<meta http-equiv=\"refresh\" content=\"2; URL=" . $_SERVER['PHP_SELF'] . "?editende=$editende\">";
}
}
// ende Action
$smarty->assign('action', "$action");
$smarty->display("$template/admin/$templatename");
?>

889
admin/test_csv.php Executable file
View File

@ -0,0 +1,889 @@
<?php
if(!isset($_SESSION)) { session_start(); }
include_once '../classes/TestProjektSmarty.class_subdir.php';
require_once("../config.inc.php");
$templatename = substr(basename($_SERVER['PHP_SELF']),0,-3)."html";
$smarty = new SmartyAdmin();
require_once("../language/german.inc.php");
require_once("../config/func_cryption.php");
if (isset($_GET['action'])) {
$action = $_GET['action'];
} else {
$action = '';
}
#########Konfiguration#######################################
$verz = "upload_csv/"; // relatives Uploadverzeichnis (relativ zum 'Standort' dieser Datei, wohin die Dateien kopiert werden sollen
$trennzeichen_excel = "\t"; // Das Trennzeichen das Excel f&uuml;r CVS-Dateien nimmt ist je nach Excelversion unterschiedlich:
// Entweder $trennzeichen_excel = ";"; --> Semikolon
// oder $trennzeichen_excel = ","; --> Komma
#############################################################
$_SESSION["ck_verz"]=$verz;
$limitedext = array(".csv"); //Erlaubte Dateieindung beim Upload
if ($action == '') {
$heute = mktime(0, 0, 0, date("m"), date("d"), date("Y")); // heutiges Datum
$heute_format = date("Y-m-d", $heute); // ISO-8601 Format wie in der Datenbank: Formatierung f&uuml;r Vergleiche erforderlich
function deleteFiles($verz){
$handle = opendir($verz);
while ($file = readdir ($handle)) {
if($file != "." && $file != "..") {
$datei = $verz.$file;
if(@unlink($datei)){
$error = TRUE;
}
else
{
$error = FALSE;
}
}
}
closedir($handle);
return $error;
}
deleteFiles($verz); // Dateien werden im Uploadverzeichnis gel&ouml;scht, falls noch welche darin w&auml;ren
echo "
<html>
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1252\">
<link rel=\"stylesheet\" href=\"../styles_pc.css\" type=\"text/css\">
<title>CSV Upload</title>
</head>
<body>
<table border=\"0\" style=\"border-collapse: collapse\" width=\"100%\" cellpadding=\"0\" height=\"100%\" id=\"table1\">
<tr>
<td>
<div align=\"center\">
<table cellspacing=\"0\" cellpadding=\"0\" allign=\"center\" width=\"50%\" border=\"0\">
<tr>
<td width=\"10\" background=\"../images/box_e1.gif\">
<img height=\"40\" src=\"../images/blank.gif\" width=\"22\"></td>
<td nowrap=\"nowrap\" align=\"left\" width=\"98%\" background=\"../images/box_top.gif\" valign=\"top\">
<img height=\"10\" src=\"../images/blank.gif\" width=\"1\"><br>
<font class=\"hd\">CSV Upload</font><br>
<span class=\"sh\">Import eines Studienjahrgangs</span>
<img height=\"5\" src=\"../images/blank.gif\" width=\"1\"></font></td>
<td nowrap=\"nowrap\" align=\"right\" width=\"1%\" background=\"../images/box_e2.gif\">
<img height=\"40\" src=\"../images/blank.gif\" width=\"22\"></td>
</tr>
<tr>
<td width=\"1%\" background=\"../images/box_l.gif\">
<img height=\"1\" src=\"../images/blank.gif\" width=\"22\"></td>
<td>
<form action='".$_SERVER['PHP_SELF'] . "?action=csvimp" ."' enctype=\"multipart/form-data\" method='post'>
<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"border-width:0; border-collapse: collapse\" bordercolor=\"#111111\" width=\"100%\" id=\"AutoNumber1\" height=\"142\">
<tr>
<td width=\"60%\" style=\"border-style: none; border-width: medium\" >
<b>Datei w&auml;hlen:</b><br>Erlaubte Dateiendungen: *.csv
</td>
<td width=\"40%\"align=\"left\" style=\"border-style: none; border-width: medium\" >
<p>
<input name=\"file\" type=\"file\" size=\"30\"></p>
</td>
</tr>
<tr>
<td width=\"60%\" style=\"border-style: none; border-width: medium\">
</td>
<td width=\"40%\"align=\"right\" style=\"border-style: none; border-width: medium\">
<p>
<input type=\"submit\" value=\"Abschicken\" name=\"B1\" size=\"20\">
</td>
</tr>
</table>
</form>
</td>
<td width=\"1%\" background=\"../images/box_r.gif\">
<img height=\"1\" src=\"../images/blank.gif\" width=\"22\"></td>
</tr>
<tr>
<td nowrap=\"nowrap\" align=\"left\" width=\"1%\" background=\"../images/box_e3.gif\">
<img height=\"16\" src=\"../images/blank.gif\" width=\"22\">
</td>
<td nowrap=\"nowrap\" align=\"left\" width=\"98%\" background=\"../images/box_bottom.gif\">
<img height=\"16\" src=\"../images/blank.gif\" width=\"8\">
</td>
<td nowrap=\"nowrap\" align=\"right\" width=\"1%\" background=\"../images/box_e4.gif\">
<img height=\"16\" src=\"../images/blank.gif\" width=\"22\">
</td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</body>
</html>";
}
if ($action == 'csvimp') {
// http://www.tutorials.de/tutorials65420.html
$tempname = $_FILES['file']['tmp_name'];
$name = $_FILES['file']['name'];
$type = $_FILES['file']['type'];
$size = $_FILES['file']['size'];
$einheit = "Byte"; // F&uuml;r die Efolgsmeldung.
$extlimit = "yes"; //Do you want to limit the extensions of files uploaded
$ext = strrchr($name,'.');
if (($extlimit == "yes") && (!in_array($ext,$limitedext))) {
$err[] = "
<html>
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1252\">
<link rel=\"stylesheet\" href=\"../styles_pc.css\" type=\"text/css\">
<title>Falscher Dateityp</title>
</head>
<body>
<table border=\"0\" style=\"border-collapse: collapse\" width=\"100%\" cellpadding=\"0\" height=\"100%\" id=\"table1\">
<tr>
<td>
<div align=\"center\">
<table cellspacing=\"0\" cellpadding=\"0\" width=\"550\" border=\"0\">
<tr>
<td width=\"10\" background=\"../images/box_e1.gif\">
<img height=\"40\" src=\"../images/blank.gif\" width=\"22\"></td>
<td nowrap=\"nowrap\" align=\"left\" width=\"98%\" background=\"../images/box_top.gif\" valign=\"top\">
<img height=\"10\" src=\"../images/blank.gif\" width=\"1\"><br>
<span class=\"sh\">Falscher Dateityp</span>
<img height=\"5\" src=\"../images/blank.gif\" width=\"1\"></font></td>
<td nowrap=\"nowrap\" align=\"right\" width=\"1%\" background=\"../images/box_e2.gif\">
<img height=\"40\" src=\"../images/blank.gif\" width=\"22\"></td>
</tr>
<tr>
<td width=\"1%\" background=\"../images/box_l.gif\">
<img height=\"1\" src=\"../images/blank.gif\" width=\"22\"></td>
<td>
<br>
<p align=\"center\">Es d&uuml;rfen nur csv-Dateien hochgeladen werden!
<p>
<p align=\"center\"><p align=\"center\"><a href=\"javascript:history.back()\">
<img border=\"0\" src=\"../images/zurueck.gif\" width=\"77\" height=\"22\"></a>
</p>
</td>
<td width=\"1%\" background=\"../images/box_r.gif\">
<img height=\"1\" src=\"../images/blank.gif\" width=\"22\"></td>
</tr>
<tr>
<td nowrap=\"nowrap\" align=\"left\" width=\"1%\" background=\"../images/box_e3.gif\">
<img height=\"16\" src=\"../images/blank.gif\" width=\"22\">
</td>
<td nowrap=\"nowrap\" align=\"left\" width=\"98%\" background=\"../images/box_bottom.gif\">
<img height=\"16\" src=\"../images/blank.gif\" width=\"8\">
</td>
<td nowrap=\"nowrap\" align=\"right\" width=\"1%\" background=\"../images/box_e4.gif\">
<img height=\"16\" src=\"../images/blank.gif\" width=\"22\">
</td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</body>
</html>";
}
if($size > "9900000") {
$err[] = "
<html>
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1252\">
<link rel=\"stylesheet\" href=\"../styles_pc.css\" type=\"text/css\">
<title>Datei zu gro&szlig;</title>
</head>
<body>
<table border=\"0\" style=\"border-collapse: collapse\" width=\"100%\" cellpadding=\"0\" height=\"100%\" id=\"table1\">
<tr>
<td>
<div align=\"center\">
<table cellspacing=\"0\" cellpadding=\"0\" width=\"550\" border=\"0\">
<tr>
<td width=\"10\" background=\"../images/box_e1.gif\">
<img height=\"40\" src=\"../images/blank.gif\" width=\"22\"></td>
<td nowrap=\"nowrap\" align=\"left\" width=\"98%\" background=\"../images/box_top.gif\" valign=\"top\">
<img height=\"10\" src=\"../images/blank.gif\" width=\"1\"><br>
<span class=\"sh\">Datei zu gro&szlig;</span>
<img height=\"5\" src=\"../images/blank.gif\" width=\"1\"></font></td>
<td nowrap=\"nowrap\" align=\"right\" width=\"1%\" background=\"../images/box_e2.gif\">
<img height=\"40\" src=\"../images/blank.gif\" width=\"22\"></td>
</tr>
<tr>
<td width=\"1%\" background=\"../images/box_l.gif\">
<img height=\"1\" src=\"../images/blank.gif\" width=\"22\"></td>
<td>
<br>
<p align=\"center\">Die Datei welche Sie hochladen wollen, ist zu gross!<br>Maximale Dateigroesse betr&auml;gt 9.900 KB!
<p>
<p align=\"center\"><p align=\"center\"><a href=\"javascript:history.back()\">
<img border=\"0\" src=\"../images/zurueck.gif\" width=\"77\" height=\"22\"></a>
</p>
</td>
<td width=\"1%\" background=\"../images/box_r.gif\">
<img height=\"1\" src=\"../images/blank.gif\" width=\"22\"></td>
</tr>
<tr>
<td nowrap=\"nowrap\" align=\"left\" width=\"1%\" background=\"../images/box_e3.gif\">
<img height=\"16\" src=\"../images/blank.gif\" width=\"22\">
</td>
<td nowrap=\"nowrap\" align=\"left\" width=\"98%\" background=\"../images/box_bottom.gif\">
<img height=\"16\" src=\"../images/blank.gif\" width=\"8\">
</td>
<td nowrap=\"nowrap\" align=\"right\" width=\"1%\" background=\"../images/box_e4.gif\">
<img height=\"16\" src=\"../images/blank.gif\" width=\"22\">
</td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</body>
</html>";
}
$name = str_replace (array("&auml;", "&ouml;", "&uuml;", "&szlig;", "&Auml;", "&Ouml;", "&Uuml;"," "), array("ae", "oe", "ue", "ss", "Ae", "Oe", "Ue", "_"), $name);
$heute = mktime(date("H"), date("i"), date("s"), date("m"), date("d"), date("Y")); // heutiges Datum & Zeit: http://de2.php.net/manual/de/function.date.php
$heuteformat = date("H-i-s_Y-m-d", $heute); // Formatierung, wie es vor dem Dateinamen erscheinen soll
$datum_db = date("Y-m-d H:i:s", $heute); // Formatierung, wie es vor dem Dateinamen erscheinen soll
$neu = $heuteformat."_".$name;
$_SESSION["ck_neu"]=$neu;
If(empty($err)) {
move_uploaded_file("$tempname", "$verz$neu"); // Unterverzeichnisse wie folgt: copy("$tempname", "pdf/$neu");
$row = 1; // Anzahl der Arrays
$handle = fopen ("$verz$neu","r"); // Datei zum Lesen &ouml;ffnen
echo "
<html>
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1252\">
<link rel=\"stylesheet\" href=\"../styles_pc.css\" type=\"text/css\">
<title>Datens&auml;tze pr&uuml;fen</title>
</head>
<body>
<table border=\"0\" style=\"border-collapse: collapse\" width='150%' cellpadding=\"0\" height=\"90%\">
<tr>
<td>
<div align=\"center\">
<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\">
<tr>
<td width=\"10\" background=\"../images/box_e1.gif\">
<img height=\"40\" src=\"../images/blank.gif\" width=\"22\"></td>
<td nowrap=\"nowrap\" align=\"left\" width=\"98%\" background=\"../images/box_top.gif\" valign=\"top\">
<img height=\"10\" src=\"../images/blank.gif\" width=\"1\"><br>
<font class=\"hd\">Datens&auml;tze pr&uuml;fen</font><br>
<img height=\"5\" src=\"../images/blank.gif\" width=\"1\"></td>
<td nowrap=\"nowrap\" align=\"right\" width=\"1%\" background=\"../images/box_e2.gif\">
<img height=\"40\" src=\"../images/blank.gif\" width=\"22\"></td>
</tr>
<tr>
<td width=\"1%\" background=\"../images/box_l.gif\">
<img height=\"1\" src=\"../images/blank.gif\" width=\"22\"></td>
<td>
<table border=\"0\" cellpadding=\"2\" cellspacing=\"0\" style=\"border-collapse: collapse\" bordercolor=\"#E7E8ED\">
<tr>
<td width=\"4%\" style=\"border-left-style: none; border-left-width: medium; border-right-style: none; border-right-width: medium; border-top-style: none; border-top-width: medium; border-bottom-style: solid; border-bottom-width: 1px\">
<b><font size=\"1\">uid</font></b>
</td>
<td width=\"10%\" align=\"left\" style=\"border-left-style: none; border-left-width: medium; border-right-style: none; border-right-width: medium; border-top-style: none; border-top-width: medium; border-bottom-style: solid; border-bottom-width: 1px\">
<b><font size=\"1\">Nachname</font></b>
</td>
<td width=\"10%\" align=\"left\" style=\"border-left-style: none; border-left-width: medium; border-right-style: none; border-right-width: medium; border-top-style: none; border-top-width: medium; border-bottom-style: solid; border-bottom-width: 1px\">
<b><font size=\"1\">Vorname</font></b>
</td>
<td width=\"1%\" align=\"left\" style=\"border-left-style: none; border-left-width: medium; border-right-style: none; border-right-width: medium; border-top-style: none; border-top-width: medium; border-bottom-style: solid; border-bottom-width: 1px\">
<b><font size=\"1\">Matrikelnr.</font></b>
</td>
<td width=\"2%\" align=\"left\" style=\"border-left-style: none; border-left-width: medium; border-right-style: none; border-right-width: medium; border-top-style: none; border-top-width: medium; border-bottom-style: solid; border-bottom-width: 1px\">
<b><font size=\"1\">KFZ</font></b>
</td>
<td width=\"2%\" align=\"left\" style=\"border-left-style: none; border-left-width: medium; border-right-style: none; border-right-width: medium; border-top-style: none; border-top-width: medium; border-bottom-style: solid; border-bottom-width: 1px\">
<b><font size=\"1\">HS</font></b>
</td>
<td width=\"2%\" align=\"left\" style=\"border-left-style: none; border-left-width: medium; border-right-style: none; border-right-width: medium; border-top-style: none; border-top-width: medium; border-bottom-style: solid; border-bottom-width: 1px\">
<b><font size=\"1\">PLZ</font></b>
</td>
<td width=\"13%\" align=\"left\" style=\"border-left-style: none; border-left-width: medium; border-right-style: none; border-right-width: medium; border-top-style: none; border-top-width: medium; border-bottom-style: solid; border-bottom-width: 1px\">
<b><font size=\"1\">Ort</font></b>
</td>
<td width=\"14%\" align=\"left\" style=\"border-left-style: none; border-left-width: medium; border-right-style: none; border-right-width: medium; border-top-style: none; border-top-width: medium; border-bottom-style: solid; border-bottom-width: 1px\">
<b><font size=\"1\">Stra&szlig;e</font></b>
</td>
<td width=\"2%\" align=\"left\" style=\"border-left-style: none; border-left-width: medium; border-right-style: none; border-right-width: medium; border-top-style: none; border-top-width: medium; border-bottom-style: solid; border-bottom-width: 1px\">
<b><font size=\"1\">Stg</font></b>
</td>
<td width=\"11%\" align=\"left\" style=\"border-left-style: none; border-left-width: medium; border-right-style: none; border-right-width: medium; border-top-style: none; border-top-width: medium; border-bottom-style: solid; border-bottom-width: 1px\">
<b><font size=\"1\">StgText</font></b>
</td>
<td width=\"2%\" align=\"left\" style=\"border-left-style: none; border-left-width: medium; border-right-style: none; border-right-width: medium; border-top-style: none; border-top-width: medium; border-bottom-style: solid; border-bottom-width: 1px\">
<b><font size=\"1\">AG</font></b>
</td>
<td width=\"2%\" align=\"left\" style=\"border-left-style: none; border-left-width: medium; border-right-style: none; border-right-width: medium; border-top-style: none; border-top-width: medium; border-bottom-style: solid; border-bottom-width: 1px\">
<b><font size=\"1\">Jahr</font></b>
</td>
<td width=\"3%\" align=\"left\" style=\"border-left-style: none; border-left-width: medium; border-right-style: none; border-right-width: medium; border-top-style: none; border-top-width: medium; border-bottom-style: solid; border-bottom-width: 1px\">
<b><font size=\"1\">Passwort</font></b>
</td>
<td width=\"44%\" align=\"left\" style=\"border-left-style: none; border-left-width: medium; border-right-style: none; border-right-width: medium; border-top-style: none; border-top-width: medium; border-bottom-style: solid; border-bottom-width: 1px\">
<b><font size=\"1\">Mail</font></b>
</td>
</tr>";
while ( ($data = fgetcsv ($handle, 0, $trennzeichen_excel)) !== FALSE ) // Daten werden aus der Datei in ein Array $data gelesen
{
$num = count ($data); // Felder im Array $data werden gez&auml;hlt
//print "<p> $num fields in line $row: <br>\n";
print "\n";
$row++; // Anzahl der Arrays wird
// inkrementiert
$passwd = str_replace(".", "", $data[13]);
print "<tr>";
// for ($c=0; $c < $num; $c++) { // FOR-Schleife: Oder Anzahl der zu importierenden Felder ($num)
print "<td><font size=\"1\">".strtolower($data[0]) . "</td>\n"; // uid
print "<td><font size=\"1\">".$data[1] . "</td>\n"; // Nacname
print "<td><font size=\"1\">".$data[2] . "</td>\n"; // Vorname
print "<td><font size=\"1\">".$data[3] . "</td>\n"; // Matrikelnr
print "<td><font size=\"1\">".$data[4] . "</td>\n"; // KFZ
print "<td><font size=\"1\">".$data[5] . "</td>\n"; // HS
print "<td><font size=\"1\">".$data[6] . "</td>\n"; // PLZ
print "<td><font size=\"1\">".$data[7] . "</td>\n"; // ORT
print "<td><font size=\"1\">".$data[8] . "</td>\n"; // Stra&szlig;e
print "<td><font size=\"1\">".$data[9] . "</td>\n"; // STG
print "<td><font size=\"1\">".$data[10] . "</td>\n"; // StgText
print "<td><font size=\"1\">".strtoupper($data[11]) . "</td>\n"; // AG
print "<td><font size=\"1\">".$data[12] . "</td>\n"; // Jahrgang
#print "<td><font size=\"1\">".strtolower($data[12]) . "</td>\n"; // Passwort in Kleinbuchstaben
print "<td><font size=\"1\">".$passwd . "</td>\n"; // Passwort
print "<td><font size=\"1\">".$data[14] . "</td>\n"; // Mail
// }
print "</tr>";
$ln_inserts[]++; //z&auml;hlt die Anzahl der importierenden DS
}
echo "
</table>
</td>
<td width=\"1%\" background=\"../images/box_r.gif\">
<img height=\"1\" src=\"../images/blank.gif\" width=\"22\">
</td>
</tr>
<tr>
<td nowrap=\"nowrap\" align=\"left\" width=\"1%\" background=\"../images/box_e3.gif\">
<img height=\"16\" src=\"../images/blank.gif\" width=\"22\">
</td>
<td nowrap=\"nowrap\" align=\"left\" width=\"98%\" background=\"../images/box_bottom.gif\">
<img height=\"16\" src=\"../images/blank.gif\" width=\"8\">
</td>
<td nowrap=\"nowrap\" align=\"right\" width=\"1%\" background=\"../images/box_e4.gif\">
<img height=\"16\" src=\"../images/blank.gif\" width=\"22\">
</td>
</tr>
</table>
<br>";
$zahl=count($ln_inserts);
echo"
<table border=\"0\" style=\"border-collapse: collapse\" width='40%' cellpadding=\"0\">
<tr>
<td>
<div align=\"center\">
<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\">
<tr>
<td width=\"10\" background=\"../images/box_e1.gif\">
<img height=\"40\" src=\"../images/blank.gif\" width=\"22\">
</td>
<td nowrap=\"nowrap\" align=\"left\" width=\"98%\" background=\"../images/box_top.gif\" valign=\"top\">
<img height=\"10\" src=\"../images/blank.gif\" width=\"1\"><br>
<font class=\"hd\">Sollen die $zahl Datens&auml;tze importiert werden?</font><br>
<img height=\"5\" src=\"../images/blank.gif\" width=\"1\">
</td>
<td nowrap=\"nowrap\" align=\"right\" width=\"1%\" background=\"../images/box_e2.gif\">
<img height=\"40\" src=\"../images/blank.gif\" width=\"22\">
</td>
</tr>
<tr>
<td width=\"1%\" background=\"../images/box_l.gif\">
<img height=\"1\" src=\"../images/blank.gif\" width=\"22\">
</td>
<td>
<form action='".$_SERVER['PHP_SELF'] . "?action=csvimp2" ."' enctype=\"multipart/form-data\" method='post'>
<table width=\"100%\" border=\"0\" cellpadding=\"2\" cellspacing=\"0\" style=\"border-collapse: collapse\" bordercolor=\"#E7E8ED\">
<tr>
<td width=\"70%\" style=\"border-left-style: none; border-left-width: medium; border-right-style: none; border-right-width: medium; border-top-style: none; border-top-width: medium; border-bottom-style: solid; border-bottom-width: 1px\">
<b><font size=\"1\">Auswahl</font></b>
</td>
<td width=\"30%\" align=\"left\" style=\"border-left-style: none; border-left-width: medium; border-right-style: none; border-right-width: medium; border-top-style: none; border-top-width: medium; border-bottom-style: solid; border-bottom-width: 1px\">
<b><font size=\"1\">Markieren</font></b>
</td>
</tr>
<tr>
<td width=\"70%\"><font size=\"1\">Datens&auml;tze nicht importieren
</td>
<td width=\"30%\"><font size=\"1\"><input type=\"radio\" name=\"import\" value=\"0\" checked>
</td>
</tr>
<tr>
<td width=\"70%\"><font size=\"1\">Datens&auml;tze importieren
</td>
<td width=\"30%\"><font size=\"1\"><input type=\"radio\" name=\"import\" value=\"1\">
</td>
</tr>
<tr>
<td width=\"70%\">
&nbsp;
</td>
<td width=\"30%\">
&nbsp;
</td>
</tr>
<tr>
<td width=\"70%\">
&nbsp;
</td width=\"30%\">
<td>
<input type=\"submit\" value=\"Abschicken\" name=\"B1\" size=\"20\">
</td>
</tr>
</table>
</td>
<td width=\"1%\" background=\"../images/box_r.gif\">
<img height=\"1\" src=\"../images/blank.gif\" width=\"22\">
</td>
</tr>
<tr>
<td nowrap=\"nowrap\" align=\"left\" width=\"1%\" background=\"../images/box_e3.gif\">
<img height=\"16\" src=\"../images/blank.gif\" width=\"22\">
</td>
<td nowrap=\"nowrap\" align=\"left\" width=\"98%\" background=\"../images/box_bottom.gif\">
<img height=\"16\" src=\"../images/blank.gif\" width=\"8\">
</td>
<td nowrap=\"nowrap\" align=\"right\" width=\"1%\" background=\"../images/box_e4.gif\">
<img height=\"16\" src=\"../images/blank.gif\" width=\"22\">
</td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</body>
</html>
";
}else {
foreach($err as $error)
echo "$error";
exit;
} //Ende if error
fclose ($handle);
}
if ($action == 'csvimp2') {
$neu=$_SESSION["ck_neu"]; //CSV-Dateinamen um Datei l&ouml;schen zu k&ouml;nnen
$verz=$_SESSION["ck_verz"]; //Uploadverzeichnis aus Cookie holen
if ($_POST['import'] == "0") // DS sollen nicht importiert werden
{
$dateiname="$verz$neu";
if (@unlink($dateiname)) // Funktion l&ouml;scht Dateien und gibt true / false zur&uuml;ck
{
echo"
<html>
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1252\">
<link rel=\"stylesheet\" href=\"../styles_pc.css\" type=\"text/css\">
<title>Import beendet</title>
</head>
<body>
<table border=\"0\" style=\"border-collapse: collapse\" width=\"100%\" cellpadding=\"0\" height=\"100%\" id=\"table1\">
<tr>
<td>
<div align=\"center\">
<table cellspacing=\"0\" cellpadding=\"0\" width=\"550\" border=\"0\">
<tr>
<td width=\"10\" background=\"../images/box_e1.gif\">
<img height=\"40\" src=\"../images/blank.gif\" width=\"22\"></td>
<td nowrap=\"nowrap\" align=\"left\" width=\"3%\" background=\"../images/box_top.gif\" valign=\"top\"></td>
<td width=\"95%\" background=\"../images/box_top.gif\">
<img height=\"10\" src=\"../images/blank.gif\" width=\"1\"><br>
<span class=\"sh\">Importvorgang abgebrochen</span><br>
<img height=\"5\" src=\"../images/blank.gif\" width=\"1\"></td>
<td nowrap=\"nowrap\" align=\"right\" width=\"1%\" background=\"../images/box_e2.gif\">
<img height=\"40\" src=\"../images/blank.gif\" width=\"22\"></td>
</tr>
<tr>
<td width=\"1%\" background=\"../images/box_l.gif\">
<img height=\"1\" src=\"../images/blank.gif\" width=\"22\"></td>
<td colspan=\"2\"><br>
<p align=\"center\">Datems&auml;tze wurden nicht importiert!<br>Die CSV-Datei wurde vom Server gel&ouml;scht!
</p>
<p align=\"center\"><a href=\"javascript:window.close()\">
<img border=\"0\" src=\"../images/zurueck.gif\" width=\"77\" height=\"22\"></a><br>
</p>
<p></p>
<p></p>
<p></p>
<p></p>
<p><br>
</p>
</td>
<td width=\"1%\" background=\"../images/box_r.gif\">
<img height=\"1\" src=\"../images/blank.gif\" width=\"22\"></td>
</tr>
<tr>
<td nowrap=\"nowrap\" align=\"left\" width=\"1%\" background=\"../images/box_e3.gif\">
<img height=\"16\" src=\"../images/blank.gif\" width=\"22\"></td>
<td nowrap=\"nowrap\" align=\"left\" width=\"98%\" background=\"../images/box_bottom.gif\" colspan=\"2\">
<img height=\"16\" src=\"../images/blank.gif\" width=\"8\"></td>
<td nowrap=\"nowrap\" align=\"right\" width=\"1%\" background=\"../images/box_e4.gif\">
<img height=\"16\" src=\"../images/blank.gif\" width=\"22\"> </td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</body>
</html>";
}else{
echo"
<html>
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1252\">
<link rel=\"stylesheet\" href=\"../styles_pc.css\" type=\"text/css\">
<title>Datei nicht gel&ouml;scht</title>
</head>
<body>
<table border=\"0\" style=\"border-collapse: collapse\" width=\"100%\" cellpadding=\"0\" height=\"100%\" id=\"table1\">
<tr>
<td>
<div align=\"center\">
<table cellspacing=\"0\" cellpadding=\"0\" width=\"550\" border=\"0\">
<tr>
<td width=\"10\" background=\"../images/box_e1.gif\">
<img height=\"40\" src=\"../images/blank.gif\" width=\"22\"></td>
<td nowrap=\"nowrap\" align=\"left\" width=\"3%\" background=\"../images/box_top.gif\" valign=\"top\"></td>
<td width=\"95%\" background=\"../images/box_top.gif\">
<img height=\"10\" src=\"../images/blank.gif\" width=\"1\"><br>
<span class=\"sh\">Importvorgang abgebrochen</span><br>
<img height=\"5\" src=\"../images/blank.gif\" width=\"1\"></td>
<td nowrap=\"nowrap\" align=\"right\" width=\"1%\" background=\"../images/box_e2.gif\">
<img height=\"40\" src=\"../images/blank.gif\" width=\"22\"></td>
</tr>
<tr>
<td width=\"1%\" background=\"../images/box_l.gif\">
<img height=\"1\" src=\"../images/blank.gif\" width=\"22\"></td>
<td colspan=\"2\"><br>
<p align=\"center\">Datems&auml;tze wurden nicht importiert!<br>Die CSV-Datei ($neu) konnte <b>nicht</b> vom Server gel&ouml;scht werden!
</p>
<p align=\"center\"><a href=\"javascript:window.close()\">
<img border=\"0\" src=\"../images/zurueck.gif\" width=\"77\" height=\"22\"></a><br>
</p>
<p></p>
<p></p>
<p></p>
<p></p>
<p><br>
</p>
</td>
<td width=\"1%\" background=\"../images/box_r.gif\">
<img height=\"1\" src=\"../images/blank.gif\" width=\"22\"></td>
</tr>
<tr>
<td nowrap=\"nowrap\" align=\"left\" width=\"1%\" background=\"../images/box_e3.gif\">
<img height=\"16\" src=\"../images/blank.gif\" width=\"22\"></td>
<td nowrap=\"nowrap\" align=\"left\" width=\"98%\" background=\"../images/box_bottom.gif\" colspan=\"2\">
<img height=\"16\" src=\"../images/blank.gif\" width=\"8\"></td>
<td nowrap=\"nowrap\" align=\"right\" width=\"1%\" background=\"../images/box_e4.gif\">
<img height=\"16\" src=\"../images/blank.gif\" width=\"22\"> </td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</body>
</html>";
} // End if
} elseif($_POST['import'] == "1") // DS sollen importiert werden
{
$row = 1; // Anzahl der Arrays
$handle = fopen ("$verz$neu","r"); // Datei zum Lesen &ouml;ffnen
while ( ($data = fgetcsv ($handle, 1000, $trennzeichen_excel)) !== FALSE ) // Daten werden aus der Datei in ein Array $data gelesen
{
$num = count ($data); // Felder im Array $data werden gez&auml;hlt
//print "<p> $num fields in line $row: <br>\n";
print "\n";
$row++; // Anzahl der Arrays wird
// inkrementiert
#$pwd = strtolower($data[13]);
$pwd = str_replace(".", "", $data[13]);
$passwd = md5($pwd);
$uid = strtolower($data[0]);
$geb = preg_split('/\./', $data[13]);
$tag = $geb[0];
$mon = $geb[1];
$jahr = $geb[2];
$gebtag = "$jahr-$mon-$tag";
//$passwd = mysql_escape_string($passwd);
// ACHTUNG: AN DIESER ZEILE NICHTS &Auml;NDERN, da die erste Zeile des Strings rausgefiltert wird bei der Ausgabe der nichtimportierten DS
$insert[] .= "INSERT INTO stud (uid, nachname, vorname, mtknr, pokfz, hs, poplz, poOrt, poStrasse, stg, stgText, AG, Jahrgang, Pwd, mail, geburtstag) VALUES ( lower('$data[0]')
,'$data[1]'
,'$data[2]'
,'$data[3]'
,'$data[4]'
,'$data[5]'
,'$data[6]'
,'$data[7]'
,'$data[8]'
,'$data[9]'
,'$data[10]'
,upper('$data[11]')
,'$data[12]'
,'$passwd'
,'$data[14]'
,'$gebtag'
)
";
}
for ($i=0;$i<sizeof($insert);$i++)
{
$sql = mysql_query("$insert[$i]");
if (!$sql) {
$unimported[]= $insert[$i];
}
}
fclose ($handle);
$dateiname="$verz$neu";
if (@unlink($dateiname)) // Funktion l&ouml;scht Dateien und gibt true / false zur&uuml;ck
{
$y = str_replace (array("INSERT INTO stud (uid, nachname, vorname, mtknr, pokfz, hs, poplz, poOrt, poStrasse, stg, stgText, AG, Jahrgang, Pwd, mail, geburtstag) VALUES ( lower('"), array(""), $unimported);
echo"
<html>
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1252\">
<link rel=\"stylesheet\" href=\"../styles_pc.css\" type=\"text/css\">
<title>Import beendet</title>
</head>
<body>
<table border=\"0\" style=\"border-collapse: collapse\" width=\"100%\" cellpadding=\"0\" height=\"100%\" id=\"table1\">
<tr>
<td>
<div align=\"center\">
<table cellspacing=\"0\" cellpadding=\"0\" width=\"550\" border=\"0\">
<tr>
<td width=\"10\" background=\"../images/box_e1.gif\">
<img height=\"40\" src=\"../images/blank.gif\" width=\"22\"></td>
<td nowrap=\"nowrap\" align=\"left\" width=\"3%\" background=\"../images/box_top.gif\" valign=\"top\"></td>
<td width=\"95%\" background=\"../images/box_top.gif\">
<img height=\"10\" src=\"../images/blank.gif\" width=\"1\"><br>
<span class=\"sh\">Importvorgang erfolgreich</span><br>
<img height=\"5\" src=\"../images/blank.gif\" width=\"1\"></td>
<td nowrap=\"nowrap\" align=\"right\" width=\"1%\" background=\"../images/box_e2.gif\">
<img height=\"40\" src=\"../images/blank.gif\" width=\"22\"></td>
</tr>
<tr>
<td width=\"1%\" background=\"../images/box_l.gif\">
<img height=\"1\" src=\"../images/blank.gif\" width=\"22\"></td>
<td colspan=\"2\"><br>
<p align=\"center\">Der Importvorgang wurde erfolgreich beendet!<br>Die CSV-Datei wurde vom Server gel&ouml;scht!
</p>";
$num1 = count ($y); // Anzahl der nicht importierten UIDs
if ($y != "")
{
echo"Es wurden $num1 Datens&auml;tze nicht importiert<br>
Wahrscheinlich ist die UID bereits in der Datenbank vorhanden,<br>
oder eines der Felder ist zu lang:
<p>";
}
// Ausgabe der nicht importierten DS
for ($i=0;$i<sizeof($y);$i++)
{
$b = strpos ($y[$i], "'");
$e = substr($y[$i], 0, $b);
print strtolower($e); // Ausgabe der nicht importierten UIDs
echo"<br>";
}
echo"
<p align=\"center\"><a href=\"../hauptframe_welcome.php\">
<img border=\"0\" src=\"../images/zurueck.gif\" width=\"77\" height=\"22\"></a><br>
</p>
<p></p>
<p></p>
<p></p>
<p></p>
<p><br>
</p>
</td>
<td width=\"1%\" background=\"../images/box_r.gif\">
<img height=\"1\" src=\"../images/blank.gif\" width=\"22\"></td>
</tr>
<tr>
<td nowrap=\"nowrap\" align=\"left\" width=\"1%\" background=\"../images/box_e3.gif\">
<img height=\"16\" src=\"../images/blank.gif\" width=\"22\"></td>
<td nowrap=\"nowrap\" align=\"left\" width=\"98%\" background=\"../images/box_bottom.gif\" colspan=\"2\">
<img height=\"16\" src=\"../images/blank.gif\" width=\"8\"></td>
<td nowrap=\"nowrap\" align=\"right\" width=\"1%\" background=\"../images/box_e4.gif\">
<img height=\"16\" src=\"../images/blank.gif\" width=\"22\"> </td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</body>
</html>";
}else{
echo"
<html>
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1252\">
<link rel=\"stylesheet\" href=\"../styles_pc.css\" type=\"text/css\">
<title>Datei nicht gel&ouml;scht</title>
</head>
<body>
<table border=\"0\" style=\"border-collapse: collapse\" width=\"100%\" cellpadding=\"0\" height=\"100%\" id=\"table1\">
<tr>
<td>
<div align=\"center\">
<table cellspacing=\"0\" cellpadding=\"0\" width=\"550\" border=\"0\">
<tr>
<td width=\"10\" background=\"../images/box_e1.gif\">
<img height=\"40\" src=\"../images/blank.gif\" width=\"22\"></td>
<td nowrap=\"nowrap\" align=\"left\" width=\"3%\" background=\"../images/box_top.gif\" valign=\"top\"></td>
<td width=\"95%\" background=\"../images/box_top.gif\">
<img height=\"10\" src=\"../images/blank.gif\" width=\"1\"><br>
<span class=\"sh\">Importvorgang erfolgreich</span><br>
<img height=\"5\" src=\"../images/blank.gif\" width=\"1\"></td>
<td nowrap=\"nowrap\" align=\"right\" width=\"1%\" background=\"../images/box_e2.gif\">
<img height=\"40\" src=\"../images/blank.gif\" width=\"22\"></td>
</tr>
<tr>
<td width=\"1%\" background=\"../images/box_l.gif\">
<img height=\"1\" src=\"../images/blank.gif\" width=\"22\"></td>
<td colspan=\"2\"><br>
<p align=\"center\">Der Importvorgang wurde erfolgreich beendet!<br>Die CSV-Datei ($neu) konnte <b>nicht</b> vom Server gel&ouml;scht werden!
</p>";
$num1 = count ($y); // Anzahl der nicht importierten UIDs
if ($y != "")
{
echo"Es wurden $num1 Datens&auml;tze nicht importiert<br>
Wahrscheinlich ist die UID bereits in der Datenbank vorhanden,<br>
oder eines der Felder ist zu lang:
<p>";
}
// Ausgabe der nicht importierten DS
for ($i=0;$i<sizeof($y);$i++)
{
$b = strpos ($y[$i], "'");
$e = substr($y[$i], 0, $b);
print strtolower($e); // Ausgabe der nicht importierten UIDs
echo"<br>";
}
echo"
<p align=\"center\"><a href=\"javascript:window.close()\">
<img border=\"0\" src=\"../images/zurueck.gif\" width=\"77\" height=\"22\"></a><br>
</p>
<p></p>
<p></p>
<p></p>
<p></p>
<p><br>
</p>
</td>
<td width=\"1%\" background=\"../images/box_r.gif\">
<img height=\"1\" src=\"../images/blank.gif\" width=\"22\"></td>
</tr>
<tr>
<td nowrap=\"nowrap\" align=\"left\" width=\"1%\" background=\"../images/box_e3.gif\">
<img height=\"16\" src=\"../images/blank.gif\" width=\"22\"></td>
<td nowrap=\"nowrap\" align=\"left\" width=\"98%\" background=\"../images/box_bottom.gif\" colspan=\"2\">
<img height=\"16\" src=\"../images/blank.gif\" width=\"8\"></td>
<td nowrap=\"nowrap\" align=\"right\" width=\"1%\" background=\"../images/box_e4.gif\">
<img height=\"16\" src=\"../images/blank.gif\" width=\"22\"> </td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</body>
</html>";
} // End if
}else { // Es wurde kein Radiobutton gew&auml;hlt! Technisch aber ausgeschlossen
echo "sie m&uuml;ssen eine Auswahl treffen";
}
function deleteFiles($verz){
$handle = opendir($verz);
while ($file = readdir ($handle)) {
if($file != "." && $file != "..") {
$datei = $verz.$file;
if(@unlink($datei)){
$error = TRUE;
}
else
{
$error = FALSE;
}
}
}
closedir($handle);
return $error;
}
deleteFiles($verz); // Dateien werden im Uploadverzeichnis gel&ouml;scht, falls noch welche darin w&auml;ren
} // ende Action
$smarty->assign('action', "$action");
$smarty->display("$template/admin/$templatename");
?>

51
admin/titel.php Executable file
View File

@ -0,0 +1,51 @@
<?php
include_once '../classes/TestProjektSmarty.class_subdir.php';
require_once("../config.inc.php");
$templatename = substr(basename($_SERVER['PHP_SELF']),0,-3)."html";
$smarty = new SmartyAdmin();
require_once "../language/german.inc.php";
if($_SESSION["global_username"] == ''){
echo"<script type='text/javascript'>window.top.location.href = \"index.php\";</script>";
}
/*
$db = dbconnect();
#Hat User ein Adminrecht
$result_admin = $db->query("SELECT count(*) Anz FROM dep_rollen_user_zuord WHERE imtuid = '$uid' AND roid='1'");
#echo "SELECT count(*) Anz FROM dep_rollen_user_zuord WHERE imtuid = '$uid' AND roid='1'<br>";
$row_admin = $result_admin->fetch_array();
if($row_admin[Anz] > 0){
$smarty->assign('titel_admin', "1");
}
$result_ausschuss = $db->query("SELECT count(*) Anz FROM dep_rollen_user_zuord WHERE imtuid = '$uid' AND roid in (4,5)");
$row_ausschuss = $result_ausschuss->fetch_array();
if($row_ausschuss[Anz] > 0){
$smarty->assign('titel_ausschuss', "1");
}
$result_beteiligte = $db->query("SELECT count(*) Anz FROM dep_rollen_user_zuord WHERE imtuid = '$uid' AND roid='3'");
$row_beteiligte = $result_beteiligte->fetch_array();
if($row_beteiligte[Anz] > 0){
$smarty->assign('titel_beteiligte', "1");
}
$result_gutachter = $db->query("SELECT count(*) Anz FROM dep_rollen_user_zuord WHERE imtuid = '$uid' AND roid='2'");
$row_gutachter = $result_gutachter->fetch_array();
if($row_gutachter[Anz] > 0){
$smarty->assign('titel_gutachter', "1");
}
*/
$smarty->display("$template/admin/$templatename");
?>

402
admin/upload.php Executable file
View File

@ -0,0 +1,402 @@
<?php
if(!isset($_SESSION)) { session_start(); }
include_once '../classes/TestProjektSmarty.class_subdir.php';
require_once("../config.inc.php");
$templatename = substr(basename($_SERVER['PHP_SELF']), 0, -3) . "html";
$smarty = new SmartyAdmin();
require_once("../language/german.inc.php");
require_once("../func_get_parameter.php");
require_once("../config/func_cryption.php");
if (isset($_GET['action'])) {
$action = $_GET['action'];
} else {
$action = '';
}
#########Konfiguration#######################################
$verz = "upload_csv/"; // relatives Uploadverzeichnis (relativ zum 'Standort' dieser Datei, wohin die Dateien kopiert werden sollen
$trennzeichen_excel = "\t"; // Das Trennzeichen das Excel f&uuml;r CVS-Dateien nimmt ist je nach Excelversion unterschiedlich:
// Entweder $trennzeichen_excel = ";"; --> Semikolon
// oder $trennzeichen_excel = ","; --> Komma
#############################################################
$_SESSION["ck_verz"] = $verz;
if ($action == '') {
$german = $db->query("SET lc_time_names = 'de_DE';");
$query1 = "SELECT a.tm_id, date_format(tm_datum, '%a, %d.%m.%Y - %H:%i Uhr')tm_datum_form, tm_standort
FROM bpm_termine a, bpm_term_kand b
WHERE a.tm_id=b.tm_id
AND a.tm_datum > ADDDATE(now(), -7)
GROUP BY a.tm_id, tm_datum_form, tm_standort
ORDER BY tm_datum ASC";
$result1 = $db->query($query1) or die("Cannot execute query1");
while ($row1 = $result1->fetch_array()) {
if ($row1['tm_standort'] == 'L') {
$standort = 'Ludwigsburg';
}
if ($row1['tm_standort'] == 'K') {
$standort = 'Kehl';
}
$row1['tm_standort'] = $standort;
$table_data1[] = $row1;
}
$smarty->assign('table_data1', $table_data1);
}
if ($action == 'upload') {
# Den Testtermin wählt man, damit jede Hochschule seine eigenen Daten importieren kann. Wenn eine Hochschule am selben TAg einen Test hat vermeidet man dass ein halbfertiger Test importiert wird
if (isset($_POST["testtermin"])) {
$testtermin = $_POST["testtermin"];
} else {
$testtermin = $_SESSION["testtermin"];
}
$_SESSION["testtermin"] = $testtermin;
# Uploadverzeichnis aufräumen. Temporäre Dateien, die älter als 2 Wochen sind, werden gelöscht
$dir = $_SERVER["DOCUMENT_ROOT"].dirname($_SERVER['PHP_SELF'])."/$verz";
$folder = dir($dir);
while ($dateiname = $folder->read()) {
if (filetype($dir.$dateiname) != "dir") {
if (strtotime("-2 weeks") >
@filemtime($dir.$dateiname)) {
if (@unlink($dir.$dateiname) != false){
# echo $dateiname.' wurde gelöscht<br>';
}else{
# echo $dateiname.' konnte nichtgelöscht werden<br>';
}
}
}
}
# Fehler beim Upload anzeigen
if (isset($_GET['error'])) {
$errorno = $_GET['error'];
$smarty->assign('index_error', 1);
if ($errorno == 1) {
$smarty->assign('index_error_text', "Es dürfen nur CSV Dateien hochgeladen werden.");
}
if ($errorno == 2) {
# Tabelle bpm_parameter
$size_mb = trim(get_parameter(12));
$smarty->assign('index_error_text', "Die Datei ist zu groß. Die Dateigröße darf max. $size_mb MB betragen.");
}
if ($errorno == 3) {
$smarty->assign('index_error_text', "Vorgang wurde abgebrochen. Die Datei wurde vom Server gelöscht");
}
if ($errorno == 4) {
$smarty->assign('index_error_text', "Vorgang wurde abgebrochen. Die Datei wurde nicht vom Server gelöscht");
}
}
}
if ($action == 'csvimp') {
$testtermin = $_SESSION["testtermin"];
// http://www.tutorials.de/tutorials65420.html
#echo '<pre>', print_r($_POST, true), '</pre>';
$tempname = $_FILES['file']['tmp_name'];
$name = $_FILES['file']['name'];
$type = $_FILES['file']['type'];
$size = $_FILES['file']['size'];
$einheit = "Byte"; // F&uuml;r die Efolgsmeldung.
$limitedext = array(
".csv"
); //Erlaubte Dateieindung beim Upload
$extlimit = "yes"; //Do you want to limit the extensions of files uploaded
$ext = strrchr($name, '.');
if (($extlimit == "yes") && (!in_array($ext, $limitedext))) {
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?action=upload&error=1\">";
exit;
}
# Tabelle bpm_parameter
$size_mb = trim(get_parameter(12));
$size_bt = $size_mb * 1024 * 1024;
if ($size > $size_bt) {
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?action=upload&error=2\">";
exit;
}
$name = str_replace(array(
"&auml;",
"&ouml;",
"&uuml;",
"&szlig;",
"&Auml;",
"&Ouml;",
"&Uuml;",
" "
), array(
"ae",
"oe",
"ue",
"ss",
"Ae",
"Oe",
"Ue",
"_"
), $name);
$heute = mktime(date("H"), date("i"), date("s"), date("m"), date("d"), date("Y")); // heutiges Datum & Zeit: http://de2.php.net/manual/de/function.date.php
$heuteformat = date("H-i-s_Y-m-d", $heute); // Formatierung, wie es vor dem Dateinamen erscheinen soll
$datum_db = date("Y-m-d H:i:s", $heute); // Formatierung, wie es vor dem Dateinamen erscheinen soll
$neu = $heuteformat . "_" . $name;
$_SESSION["ck_neu"] = $neu;
move_uploaded_file("$tempname", "$verz$neu"); // Unterverzeichnisse wie folgt: copy("$tempname", "pdf/$neu");
$handle = fopen("$verz$neu", "r"); // Datei zum Lesen &ouml;ffnen
# Bestehnswert 65 Punkte
$bestehenswert = trim(get_parameter(11));
# Hier vor der Schleife erste Zeile holen und ignorieren. Enthält Überschrift
fgetcsv($handle, 0, $trennzeichen_excel);
while (($data = fgetcsv($handle, 0, $trennzeichen_excel)) !== FALSE) { // Daten werden aus der Datei in ein Array $data gelesen
#2020-02-23T17:44:56
$tag = substr($data[11], 8, 2);
$monat = substr($data[11], 5, 2);
$jahr = substr($data[11], 0, 4);
$std = substr($data[11], 11, 2);
$min = substr($data[11], 14, 2);
$sek = substr($data[11], 17, 2);
$datum = "$tag.$monat.$jahr - $std:$min:$sek";
$datum_db = "$jahr-$monat-$tag";
$tan = $data[7];
$result_ct = $db->query("SELECT concat(vorname,' ', nachname) name, date_format(tm_datum, '%Y-%m-%d') tm_datum
FROM bpm_kandidat a, bpm_term_kand b, bpm_termine c, bpm_tanpool d
WHERE a.ka_id = b.ka_id
AND b.tm_id = c.tm_id
AND b.tp_id = d.tp_id
AND d.tan = '$tan'
AND c.tm_id = $testtermin");
$row_ct = $result_ct->fetch_array();
if ($row_ct['name'] != '' AND $row_ct['tm_datum'] == $datum_db) {
$satzerg_raw = $data[13];
#$analogie_raw = $data[14];
$gemeinsamkeiten_raw = $data[15];
$rechenaufgaben_raw = $data[16];
$zahlenreihen_raw = $data[17];
$rechenzeichen_raw = $data[18];
$matrizen_raw = $data[21];
$merkf_raw = $data[26];
$row1['tan'] = $tan;
$row1['name'] = $row_ct['name'];
$row1['datum'] = $datum;
$row1['satzerg_raw'] = $satzerg_raw;
#$row1['analogie_raw'] = $analogie_raw;
$row1['gemeinsamkeiten_raw'] = $gemeinsamkeiten_raw;
$row1['rechenaufgaben_raw'] = $rechenaufgaben_raw;
$row1['zahlenreihen_raw'] = $zahlenreihen_raw;
$row1['rechenzeichen_raw'] = $rechenzeichen_raw;
$row1['matrizen_raw'] = $matrizen_raw;
$row1['merkf_raw'] = $merkf_raw;
# In die Berechnung fliest verb/num Intelligenz nicht mit ein. Das sind interne Berechnungen und keine Testaufgaben
$summe = $satzerg_raw + $gemeinsamkeiten_raw + $rechenaufgaben_raw + $zahlenreihen_raw + $rechenzeichen_raw + $matrizen_raw + $merkf_raw;
$row1['summe'] = $summe;
if ($summe >= $bestehenswert) {
$bestanden = 1;
} else {
$bestanden = 0;
}
$row1['bestanden'] = $bestanden;
$table_data1[] = $row1;
}
}
$smarty->assign('table_data1', $table_data1);
fclose($handle);
}
if ($action == 'csvimp2') {
$neu = $_SESSION["ck_neu"]; //CSV-Dateinamen um Datei l&ouml;schen zu k&ouml;nnen
$verz = $_SESSION["ck_verz"]; //Uploadverzeichnis aus Cookie holen
$testtermin = $_SESSION["testtermin"];
if ($_POST['import'] == "0") // DS sollen nicht importiert werden
{
$dateiname = "$verz$neu";
if (@unlink($dateiname)) // Funktion l&ouml;scht Dateien und gibt true / false zur&uuml;ck
{
# Abbruch, datei gelöscht
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?action=upload&error=3\">";
exit;
} else {
# Abbruch, datei nicht gelöscht
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?action=upload&error=4\">";
exit;
} // End if
} elseif ($_POST['import'] == "1") // DS sollen importiert werden
{
$handle = fopen("$verz$neu", "r"); // Datei zum Lesen &ouml;ffnen
# Bestehnswert 65 Punkte
$bestehenswert = trim(get_parameter(11));
# Hier vor der Schleife erste Zeile holen und ignorieren. Enthält Überschrift
fgetcsv($handle, 0, $trennzeichen_excel);
while (($data = fgetcsv($handle, 0, $trennzeichen_excel)) !== FALSE) { // Daten werden aus der Datei in ein Array $data gelesen
#2020-02-23T17:44:56
$tag = substr($data[11], 8, 2);
$monat = substr($data[11], 5, 2);
$jahr = substr($data[11], 0, 4);
$std = substr($data[11], 11, 2);
$min = substr($data[11], 14, 2);
$sek = substr($data[11], 17, 2);
$datum = "$tag.$monat.$jahr - $std:$min:$sek";
$datum_db = "$jahr-$monat-$tag";
$tan = $data[7];
$result_ct = $db->query("SELECT a.ka_id, concat(vorname,' ', nachname) name, date_format(tm_datum, '%Y-%m-%d') tm_datum
FROM bpm_kandidat a, bpm_term_kand b, bpm_termine c, bpm_tanpool d
WHERE a.ka_id = b.ka_id
AND b.tm_id = c.tm_id
AND b.tp_id = d.tp_id
AND d.tan = '$tan'
AND c.tm_id = $testtermin");
$row_ct = $result_ct->fetch_array();
if ($row_ct['name'] != '' AND $row_ct['tm_datum'] == $datum_db) {
$satzerg_raw = $data[13];
#$analogie_raw = $data[14];
$gemeinsamkeiten_raw = $data[15];
$rechenaufgaben_raw = $data[16];
$zahlenreihen_raw = $data[17];
$rechenzeichen_raw = $data[18];
$matrizen_raw = $data[21];
$merkf_raw = $data[26];
$summe = $satzerg_raw + $gemeinsamkeiten_raw + $rechenaufgaben_raw + $zahlenreihen_raw + $rechenzeichen_raw + $matrizen_raw + $merkf_raw;
if ($summe >= $bestehenswert) {
$bestanden = 1;
} else {
$bestanden = 0;
# Tan Inaktiv setzen
$result_1 = $db->query("UPDATE bpm_tanpool
SET aktiv='I'
WHERE tan = '$tan'");
}
$result_ct1 = $db->query("SELECT count(*) Anz
FROM bpm_ergebnisse
WHERE ka_id = $row_ct[ka_id]
AND tan = '$tan'");
$row_ct1 = $result_ct1->fetch_array();
if ($row_ct1['Anz'] == 0) {
# keine Ergebnisse vorhanden, insert
$sql1 = $db->query("insert into bpm_ergebnisse (ka_id
, tan
, satzerg
, gemeinsamkeiten
, rechenaufgaben
, zahlenreihen
, rechenzeichen
, matrizen
, merkf
, summe
, bestanden)
VALUES ('$row_ct[ka_id]'
, '$tan'
, '$satzerg_raw'
, '$gemeinsamkeiten_raw'
, '$rechenaufgaben_raw'
, '$zahlenreihen_raw'
, '$rechenzeichen_raw'
, '$matrizen_raw'
, '$merkf_raw'
, '$summe'
, '$bestanden')");
if (!$sql1) {
$hinweis['hinweis'] = "TAN: " . $tan . " Fehler: Ergebnis nicht gespeichert<br>";
$smarty->assign('index_error', 1);
}
} else {
# Ergebnisse gibt es schon, kein insert
$hinweis['hinweis'] = "TAN: " . $tan . " Ergebnisse schon gespeichert<br>";
$smarty->assign('index_error', 1);
}
} else {
# Testdatum stimmt nicht, kein Student gefunden
$hinweis['hinweis'] = "TAN: " . $tan . " in der CSV gehört nicht zu diesem Datum (Kein Fehler)<br>";
$smarty->assign('index_error', 1);
}
$table_data2[] = $hinweis;
}
$smarty->assign('table_data2', $table_data2);
fclose($handle);
} else { // Es wurde kein Radiobutton gew&auml;hlt! Technisch aber ausgeschlossen
echo "sie m&uuml;ssen eine Auswahl treffen";
}
function deleteFiles($verz)
{
$handle = opendir($verz);
while ($file = readdir($handle)) {
if ($file != "." && $file != "..") {
$datei = $verz . $file;
if (@unlink($datei)) {
$error = TRUE;
} else {
$error = FALSE;
}
}
}
closedir($handle);
return $error;
}
deleteFiles($verz); // Dateien werden im Uploadverzeichnis gel&ouml;scht, falls noch welche darin w&auml;ren
} // ende Action
$smarty->assign('action', "$action");
$smarty->display("$template/admin/$templatename");
?>

6
admin/verwaltung_frame.php Executable file
View File

@ -0,0 +1,6 @@
<?php
include_once '../classes/TestProjektSmarty.class_subdir.php';
require_once("../config.inc.php");
$templatename = substr(basename($_SERVER['PHP_SELF']),0,-3)."html";
$smarty = new SmartyAdmin();
require_once "../language/german.inc.php";