From ba134efcc114ba93d69166d6a2c88d9cf7fd470e Mon Sep 17 00:00:00 2001 From: marko Date: Wed, 28 Oct 2020 09:19:06 +0100 Subject: [PATCH] - add posibility to add missing data within the list - section for adding new corona trainee - list (of the last month) can be send to an eMail --- homepage/mams/index.php | 34 +++++++++++++---- homepage/mams/lib/api.php | 79 +++++++++++++++++++++++++++++++++++++-- homepage/mams/lib/db.php | 75 ++++++++++++++++++++++++++++++++----- 3 files changed, 169 insertions(+), 19 deletions(-) diff --git a/homepage/mams/index.php b/homepage/mams/index.php index 5f6c355..b6c87d1 100644 --- a/homepage/mams/index.php +++ b/homepage/mams/index.php @@ -12,7 +12,7 @@ $dbConnection = getPdoDbConnection( processPostData($dbConnection, $_POST); -$judokas = getJudokasInTraining($dbConnection, "inTraining"); +$judokas = getUsersWithAttribute($dbConnection, "inTraining"); $lastAttendances = getLastAttendances($dbConnection); $lastAttendancesAssocArray = array(); @@ -44,18 +44,28 @@ $lastTrainingDay = max($dateLastWendsday, $dateLastFriday); +

Corona-Anwesenheitsliste der Judoka des Chemnitzer WSV

+

Anwesenheiten hinzufügen

-
+
" /> - ".$j['vorname']." ".$j['name']."");?>
+

Anwesenheiten

+

Sende Anwesenheitsliste an eMail

+
+ + + + +
$attendees){ - echo("

".$date."

"); + echo("

".$date."

"); echo(""); echo(""); echo(""); @@ -68,13 +78,23 @@ $lastTrainingDay = max($dateLastWendsday, $dateLastFriday); echo(""); echo(""); echo(""); - echo(""); - echo(""); - echo(""); + echo(""); + echo(""); + echo(""); echo(""); } echo("
name
".$a['name']."".$a['vorname']."".$a['corona_PLZ']."".$a['corona_telephon']."".$a['corona_eMail']."".( $a['corona_PLZ'] ? $a['corona_PLZ'] : "
")."
".( $a['corona_telephon'] ? $a['corona_telephon'] : "
")."
".( $a['corona_eMail'] ? $a['corona_eMail'] : "
")."
"); } ?> +

Trainee hinzufügen

+
+ + + + + + + +
diff --git a/homepage/mams/lib/api.php b/homepage/mams/lib/api.php index f0576d1..ff7a13f 100644 --- a/homepage/mams/lib/api.php +++ b/homepage/mams/lib/api.php @@ -1,10 +1,83 @@ format("Y-m-d"), + $emailText + ); + } + catch(Exception $e) { + echo 'Message: ' .$e->getMessage(); + } +} + +function attendancesAssocArray2text($attendancesAssocArray){ + $ret = ""; + foreach($attendancesAssocArray as $date => $attendees){ + $ret .= $date."\n"; + foreach($attendees as $a){ + $ret .= "\n"; + $ret .= "Name: ".$a['name'].", ".$a['vorname']."\n"; + $ret .= "PLZ: ".$a['corona_PLZ']."\n"; + $ret .= "Tel.: ".$a['corona_telephon']."\n"; + $ret .= "eMail: ".$a['corona_eMail']."\n"; + } + $ret .= "\n"; + } +return $ret; +} + +function attendancesAssocArray2mdList($attendancesAssocArray, $date=null){ + if($date == null) + $date=new DateTime(); + $ret = "# Anwesenheitsliste zur Corona-Kontaktverfolgung der Abteilung Judo des CWSV vom ".$date->format("Y-m-d")."\n\n"; + foreach($attendancesAssocArray as $d => $attendees){ + $ret .= "## ".$d."\n"; + $i=0; + foreach($attendees as $a){ + $i += 1; + $ret .= "\n"; + $ret .= $i." ".$a['name'].", ".$a['vorname']."\n"; + $ret .= " - PLZ: ".$a['corona_PLZ']."\n"; + $ret .= " - Tel.: ".$a['corona_telephon']."\n"; + $ret .= " - eMail: ".$a['corona_eMail']."\n"; + } + $ret .= "\n"; + } +return $ret; +} ?> diff --git a/homepage/mams/lib/db.php b/homepage/mams/lib/db.php index 4c8ac6f..493fa49 100644 --- a/homepage/mams/lib/db.php +++ b/homepage/mams/lib/db.php @@ -56,9 +56,6 @@ if( empty($someOptions['dontFetch' ]) ) $someOptions['dontFetch' ] = false; } $pdoResult = $pdoStatement->execute(); - //if(!$pdoResult) - //echo("Strange! \"".$aQueryString."\" failed without exception!"); - if($someOptions['dontFetch']){ $ret = NULL; } @@ -82,24 +79,35 @@ if( empty($someOptions['dontFetch' ]) ) $someOptions['dontFetch' ] = false; ); } } +//var_dump($ret); +//var_dump($aQueryString); +//var_dump($aBindArray); return $ret; } -function getLastAttendances($db){ +function getLastAttendances($db, $minDate=null){ +if ($minDate == null){ + $minDate = new DateTime; + $minDate->sub(new DateInterval("P1M")); // from the current date subtract a *P*eriod of *1* *M*onth +} + $query = << array('value' => $minDate->format('Y-m-d'), 'data_type' => PDO::PARAM_STR) + ); $options = array(); $ret = dbQuery($db, $query, $params, $options); return $ret; } -function getJudokasInTraining($dbConnection, $attributeName){ +function getUsersWithAttribute($dbConnection, $attributeName){ $query = <<userAttributes` (`userId`, `attributeId`) +SELECT :userId, `id` +FROM `cwsvjudo`.`wkParticipo_userAttributes` +WHERE `name` = :attributeName; +SQL; + $params = array( + ':userId' => array('value'=>$userId, 'data_type'=>PDO::PARAM_INT), + ':attributeName' => array('value'=>$attributeName, 'data_type'=>PDO::PARAM_STR) + ); +return dbQuery($dbConnection, $query, $params); +} + function giveJudokasAttendence($dbConnection, $date, $ids){ $values = array(); try{ @@ -129,4 +151,39 @@ function giveJudokasAttendence($dbConnection, $date, $ids){ return null; } } + +// updates corona data of an user +function updateCoronaData($db, $userId, $columnName, $columnValue){ + $coronaColumnNames = ["corona_PLZ", "corona_telephon", "corona_eMail"]; + + if( !in_array( $columnName, $coronaColumnNames) ){ + return; + } + $query = "UPDATE `cwsvjudo`.`wkParticipo_Users` SET `".$columnName."`=:val WHERE `id`=:id;"; + $params = array( + ':val' => array('value'=>$columnValue, 'data_type'=>PDO::PARAM_STR), + ':id' => array('value'=>$userId, 'data_type'=>PDO::PARAM_INT) + ); + dbQuery($db, $query, $params); +return; +} + +function addCoronaUser($db, $name, $vorname, $corona_PLZ, $corona_telephon, $corona_eMail){ + $query = << array('value'=>$name, 'data_type'=>PDO::PARAM_STR), + ':vorname' => array('value'=>$vorname, 'data_type'=>PDO::PARAM_STR), + ':plz' => array('value'=>$corona_PLZ, 'data_type'=>PDO::PARAM_STR), + ':telephon' => array('value'=>$corona_telephon, 'data_type'=>PDO::PARAM_STR), + ':email' => array('value'=>$corona_eMail, 'data_type'=>PDO::PARAM_STR), + ); + dbQuery($db, $query, $params); + + $newId = $db->lastInsertId(); + giveUserAnUserAttribute($db, $newId, "inTraining"); +return; +} ?>