From f5a68a1e44d0c42097075f63d83996cd0934d5c9 Mon Sep 17 00:00:00 2001 From: OliiverHacker Date: Wed, 19 Aug 2020 10:40:43 +0200 Subject: [PATCH 1/7] change wawi.tbl_betriebsmitteltyp typ_code from character(2) to varchar(6) --- system/dbupdate_3.3.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index 33499621d..b102d6c8c 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -4401,6 +4401,20 @@ if(!$result = @$db->db_query("SELECT iso3166_1_a3 FROM bis.tbl_nation LIMIT 1")) echo '
bis.tbl_nation: Spalte iso3166_1_a3 hinzugefuegt'; } +// OE_KURZBZ in system.tbl_filters auf 32 Zeichen verlängert +if($result = $db->db_query("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='wawi' AND TABLE_NAME='tbl_betriebsmitteltyp' AND COLUMN_NAME = 'typ_code' AND character_maximum_length=2")) +{ + if($db->db_num_rows($result)>0) + { + $qry = " ALTER TABLE wawi.tbl_betriebsmitteltyp ALTER COLUMN typ_code TYPE varchar(6)"; + + if(!$db->db_query($qry)) + echo 'wawi.tbl_betriebsmitteltyp '.$db->db_last_error().'
'; + else + echo '
Spalte typ_code in wawi.tbl_betriebsmitteltyp von character(2) auf varchar(6) geändert
'; + } +} + // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

'; From c31d74e9ba8c29246e2c781453144f7d0f73a0f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Tue, 8 Sep 2020 08:44:13 +0200 Subject: [PATCH 2/7] Added return value to Job to to avoid wrong logging Errors --- .../controllers/jobs/LehrauftragJob.php | 87 ++++++++++--------- 1 file changed, 44 insertions(+), 43 deletions(-) diff --git a/application/controllers/jobs/LehrauftragJob.php b/application/controllers/jobs/LehrauftragJob.php index 2f6b928c7..4ba327a2f 100644 --- a/application/controllers/jobs/LehrauftragJob.php +++ b/application/controllers/jobs/LehrauftragJob.php @@ -20,31 +20,31 @@ class LehrauftragJob extends JOB_Controller { const BERECHTIGUNG_LEHRAUFTRAG_ERTEILEN = 'lehre/lehrauftrag_erteilen'; const BERECHTIGUNG_LEHRAUFTRAG_AKZEPTIEREN = 'lehre/lehrauftrag_akzeptieren'; - + const LEHRAUFTRAG_ERTEILEN_URI = 'lehre/lehrauftrag/LehrauftragErteilen'; const LEHRAUFTRAG_AKZEPTIEREN_URI = '/lehre/lehrauftrag/LehrauftragAkzeptieren'; - + /** * Constructor */ public function __construct() { parent::__construct(); - + // Load models $this->load->model('accounting/Vertrag_model', 'VertragModel'); $this->load->model('accounting/Vertragvertragsstatus_model', 'VertragvertragsstatusModel'); $this->load->model('education/Lehrveranstaltung_model', 'LehrveranstaltungModel'); $this->load->model('person/Benutzerfunktion_model', 'BenutzerfunktionModel'); $this->load->model('system/Benutzerrolle_model', 'BenutzerrolleModel'); - + // Load libraries $this->load->library('PermissionLib'); - + // Load helpers $this->load->helper('hlp_sancho_helper'); } - + /** * This daily job sends information about all lehr-/projektauftraege ordered (and not approved) the day bofore. * Receivers: Department-/Kompetenzfeldleiter @@ -62,7 +62,7 @@ class LehrauftragJob extends JOB_Controller foreach ($vertrag_arr as $vertrag) { $result = $this->VertragModel->getLehreinheitData($vertrag->vertrag_id, 'lehrveranstaltung_id, studiensemester_kurzbz'); - + if (hasData($result)) { $obj = new StdClass(); @@ -72,7 +72,7 @@ class LehrauftragJob extends JOB_Controller } } } - + /** * Build the data array to be used in the email. Data array is clustered as follows: * Array @@ -90,7 +90,7 @@ class LehrauftragJob extends JOB_Controller foreach ($lehreinheit_data_arr as $lehreinheit_data) { $result = $this->_getLVData($lehreinheit_data->lehrveranstaltung_id); - + if (hasData($result)) { // Search if studiensemester exists in data_arr @@ -102,12 +102,12 @@ class LehrauftragJob extends JOB_Controller $data = array( 'studiensemester_kurzbz' => $lehreinheit_data->studiensemester_kurzbz ); - + $data []= array( 'oe_kurzbz' => $result->retval[0]->oe_kurzbz, 'oe_bezeichnung' => $result->retval[0]->lv_oe_bezeichnung ); - + // Add stg data to oe, start amount with 1 $data[0][] = array( 'stg_kz' => $result->retval[0]->studiengang_kz, @@ -115,7 +115,7 @@ class LehrauftragJob extends JOB_Controller 'stg_bezeichnung' => $result->retval[0]->lv_stg_bezeichnung, 'amount' => 1 ); - + // Push to final data_arr $data_arr []= $data; } @@ -124,7 +124,7 @@ class LehrauftragJob extends JOB_Controller { // Search if oe exists inside existing studiensemester of data_arr $oe_index = array_search($result->retval[0]->oe_kurzbz, array_column($data_arr[$ss_index], 'oe_kurzbz')); - + // If oe is new, add oe and stg to studiensemester if ($oe_index === false) { @@ -132,7 +132,7 @@ class LehrauftragJob extends JOB_Controller $data_arr[$ss_index][] = array( 'oe_kurzbz' => $result->retval[0]->oe_kurzbz, 'oe_bezeichnung' => $result->retval[0]->lv_oe_bezeichnung, - + // Add stg data to oe, start amount with 1 array( 'stg_kz' => $result->retval[0]->studiengang_kz, @@ -147,7 +147,7 @@ class LehrauftragJob extends JOB_Controller { // Search if stg exists inside existing oe of data_arr $stg_index = array_search($result->retval[0]->studiengang_kz, array_column($data_arr[$ss_index][$oe_index], 'stg_kz')); - + // If stg is new, add stg to oe, start amount with 1 if ($stg_index === false) { @@ -168,7 +168,7 @@ class LehrauftragJob extends JOB_Controller } } } - + /** * Cluster data by uid of entitled mail receivers. * Returning array is clustered as follows: @@ -186,7 +186,7 @@ class LehrauftragJob extends JOB_Controller * [amount] // amount of new ordered lehrauftraege of that stg */ $data_arr = $this->_clusterData_byReceiver($data_arr); - + // Send email if(!$this->_sendMail_toApprove($data_arr)) { @@ -197,7 +197,7 @@ class LehrauftragJob extends JOB_Controller $this->logError('Error when sending emails in job MailLehrauftragToApprove'); } } - + /** * This daily job sends information about all lehr-/projektauftraege approved the day bofore. * Receivers: lectors @@ -208,7 +208,7 @@ class LehrauftragJob extends JOB_Controller $this->VertragvertragsstatusModel->addSelect('vertrag_id, uid'); $this->VertragvertragsstatusModel->addOrder('uid'); $result = $this->VertragvertragsstatusModel->getApproved_fromDate('YESTERDAY'); - + /** * Build the data array to be used in the email. Data array is clustered as follows: * Array @@ -228,10 +228,10 @@ class LehrauftragJob extends JOB_Controller { $studiensemester = $studiensemester[0]->vertragsstunden_studiensemester_kurzbz; } - + // Search if uid exists in data_arr $uid_index = array_search($vertrag->uid, array_column($data_arr, 'uid')); - + // If uid is new, add uid, studiensemester and start amount with 1 if ($uid_index === false) { @@ -249,7 +249,7 @@ class LehrauftragJob extends JOB_Controller { $data_arr[$uid_index]['studiensemester'] .= ' und '. $studiensemester; } - + // Increase amount +1 $data_arr[$uid_index]['amount']++; } @@ -266,11 +266,11 @@ class LehrauftragJob extends JOB_Controller $this->logError('Error when sending emails in job MailLehrauftragToAccept'); } } - + //****************************************************************************************************************** // PRIVATE FUNCTIONS //****************************************************************************************************************** - + /** * Get data of given lehrveranstaltung. * @param $lehrveranstaltung_id @@ -286,7 +286,7 @@ class LehrauftragJob extends JOB_Controller stg.typ AS "stg_typ", stg.kurzbz AS "stg_kurzbz" '); - + $this->LehrveranstaltungModel->addJoin('lehre.tbl_studienplan_lehrveranstaltung stpllv', 'lehrveranstaltung_id'); $this->LehrveranstaltungModel->addJoin('lehre.tbl_studienplan stpl', 'studienplan_id'); $this->LehrveranstaltungModel->addJoin('lehre.tbl_studienordnung sto', 'studienordnung_id'); @@ -294,10 +294,10 @@ class LehrauftragJob extends JOB_Controller $this->LehrveranstaltungModel->addJoin('public.tbl_organisationseinheit oe', 'ON oe.oe_kurzbz = tbl_lehrveranstaltung.oe_kurzbz'); $this->LehrveranstaltungModel->addOrder('stpllv.insertamum', 'DESC'); $this->LehrveranstaltungModel->addLimit(1); - + return $this->LehrveranstaltungModel->load($lehrveranstaltung_id); } - + /** * Send Sancho eMail about ordered Lehrauftraege. * @param $data_arr @@ -310,12 +310,12 @@ class LehrauftragJob extends JOB_Controller // Set mail recipients (department assistance/leader) $to = $data['uid']. '@'. DOMAIN; $html_table = $this->_renderData_LehrauftraegeToApprove($data); - + // Prepare mail content $content_data_arr = array( 'table' => $html_table ); - + sendSanchoMail( 'LehrauftragNeueBestellungen', $content_data_arr, @@ -326,7 +326,7 @@ class LehrauftragJob extends JOB_Controller ); } } - + /** * Cluster the data array by entitled mail receiver. * Returning array is clustered as follows: @@ -409,7 +409,7 @@ class LehrauftragJob extends JOB_Controller return $mail_data_arr; } - + /** * Render the data array for the mail template returing a HTML table. * @param $data_arr Data to be used in HTML table @@ -425,11 +425,11 @@ class LehrauftragJob extends JOB_Controller if (isset($studiensemester_container['studiensemester_kurzbz'])) { $studiensemester = $studiensemester_container['studiensemester_kurzbz']; - + // Link to LehrauftragErteilen $url = site_url(self::LEHRAUFTRAG_ERTEILEN_URI).'?studiensemester='. $studiensemester; } - + // HTML table header $html .= '
@@ -446,7 +446,7 @@ class LehrauftragJob extends JOB_Controller ' ; - + // HTML table body foreach ($studiensemester_container as $oe_container) { @@ -456,7 +456,7 @@ class LehrauftragJob extends JOB_Controller { $oe_bezeichnung = $oe_container['oe_bezeichnung']; } - + foreach ($oe_container as $stg_data) { if (is_array($stg_data)) // is_array 'trims' the outer associative keys [oe_kurzbz] and [oe_bezeichnung] @@ -473,7 +473,7 @@ class LehrauftragJob extends JOB_Controller } } } - + // HTML table body end and link $html .= ' @@ -484,10 +484,10 @@ class LehrauftragJob extends JOB_Controller '; } } - + return $html; } - + /** * Send Sancho eMail about ordered Lehrauftraege. * @param $data_arr @@ -499,24 +499,24 @@ class LehrauftragJob extends JOB_Controller { // Set mail recipient (lector) $to = $data['uid']. '@'. DOMAIN; - + // Link to LehrauftragAkzeptieren $url = CIS_ROOT. 'cis/index.php?menu='. CIS_ROOT. 'cis/menu.php?content_id=&content='. CIS_ROOT. index_page(). self::LEHRAUFTRAG_AKZEPTIEREN_URI; - + // Get first name $first_name = ''; $this->load->model('person/Benutzer_model', 'BenutzerModel'); $this->BenutzerModel->addSelect('vorname'); $this->BenutzerModel->addJoin('public.tbl_person', 'person_id'); $result = $this->BenutzerModel->loadWhere(array('uid' => $data['uid'])); - + if (hasData($result)) { $first_name = $result->retval[0]->vorname; } - + // Prepare mail content $content_data_arr = array( 'vorname' => $first_name, @@ -524,7 +524,7 @@ class LehrauftragJob extends JOB_Controller 'anzahl' => $data['amount'], 'link' => anchor($url, 'Lehraufträge Übersicht') ); - + sendSanchoMail( 'LehrauftragNeueErteilte', $content_data_arr, @@ -532,5 +532,6 @@ class LehrauftragJob extends JOB_Controller 'Neu erteilte Lehraufträge zum Annehmen bereit' ); } + return true; } } From be285b22177949438784a0e5a256121805e5ca02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Tue, 8 Sep 2020 15:59:05 +0200 Subject: [PATCH 3/7] =?UTF-8?q?Kartenverwaltung=20angepasst=20damit=20Erfa?= =?UTF-8?q?ssung=20und=20Kartenausgabe=20m=C3=B6glich=20ist=20wenn=20nur?= =?UTF-8?q?=20die=20Nummer2=20(Mifare)=20angegeben=20wird?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/student/studentDBDML.php | 15 ++++++++++++--- include/betriebsmittel.class.php | 17 +++++++++++++---- include/betriebsmittelperson.class.php | 2 +- vilesci/fhausweis/kartenausgabe.php | 2 +- vilesci/fhausweis/kartezuweisen.php | 7 ++++--- 5 files changed, 31 insertions(+), 12 deletions(-) diff --git a/content/student/studentDBDML.php b/content/student/studentDBDML.php index 097bc5134..886e938a8 100644 --- a/content/student/studentDBDML.php +++ b/content/student/studentDBDML.php @@ -2555,7 +2555,7 @@ if(!$error) $_POST['nummer']=$bm->transform_kartennummer($_POST['nummer']); //Das speichern von Zutrittskarten ohne Nummern verhindern - if($_POST['betriebsmitteltyp']=='Zutrittskarte' && $_POST['nummer']=='') + if($_POST['betriebsmitteltyp']=='Zutrittskarte' && ($_POST['nummer']=='' && $_POST['nummer2']=='')) { $error = true; $return = false; @@ -2563,14 +2563,23 @@ if(!$error) } else { + if ($_POST['betriebsmitteltyp']=='Zutrittskarte' && $_POST['nummer'] == '') + { + $resultBM = $bm->getBetriebsmittel($_POST['betriebsmitteltyp'],null, $_POST['nummer2']); + } + else + { + $resultBM = $bm->getBetriebsmittel($_POST['betriebsmitteltyp'],$_POST['nummer']); + } + //Nachschauen ob dieses Betriebsmittel schon existiert - if($bm->getBetriebsmittel($_POST['betriebsmitteltyp'],$_POST['nummer'])) + if($resultBM) { if(count($bm->result)>0) { //Wenn die Nummer gleich bleibt dann die alte ID verwenden da es //unterschiedliche Schluessel gibt die die gleiche nummer haben ?!? - if($_POST['nummer']==$_POST['nummerold']) + if($_POST['nummer'] != '' && $_POST['nummer'] == $_POST['nummerold']) { $betriebsmittel_id = $_POST['betriebsmittel_id']; } diff --git a/include/betriebsmittel.class.php b/include/betriebsmittel.class.php index efd275827..d3e208076 100644 --- a/include/betriebsmittel.class.php +++ b/include/betriebsmittel.class.php @@ -407,7 +407,7 @@ class betriebsmittel extends basis_db * @param $nummer * @return boolean */ - public function getBetriebsmittel($betriebsmitteltyp, $nummer) + public function getBetriebsmittel($betriebsmitteltyp, $nummer, $nummer2 = null) { // Initialisieren $this->result=array(); @@ -415,7 +415,16 @@ class betriebsmittel extends basis_db $qry= 'SELECT * '; $qry.= ' FROM wawi.tbl_betriebsmittel '; - $qry.= " WHERE betriebsmitteltyp=".$this->db_add_param($betriebsmitteltyp)." AND nummer=".$this->db_add_param($nummer); + $qry.= " WHERE betriebsmitteltyp=".$this->db_add_param($betriebsmitteltyp); + if (is_null($nummer2)) + { + $qry.= " AND nummer=".$this->db_add_param($nummer); + } + else + { + $qry.= " AND nummer2=".$this->db_add_param($nummer2); + } + $qry.= ' ORDER BY updateamum DESC'; if($this->db_query($qry)) @@ -1222,7 +1231,7 @@ class betriebsmittel extends basis_db { $this->result=''; $this->errormsg = ''; - + $qry ="SELECT * FROM wawi.tbl_betriebsmittelperson WHERE uid =".$this->db_add_param($uid, FHC_STRING)." AND betriebsmittel_id IN( SELECT betriebsmittel_id @@ -1252,7 +1261,7 @@ class betriebsmittel extends basis_db { $this->errormsg = 'Fehler beim Laden der Daten'; return false; - } + } } /** diff --git a/include/betriebsmittelperson.class.php b/include/betriebsmittelperson.class.php index 90be34eb7..c105cc6da 100644 --- a/include/betriebsmittelperson.class.php +++ b/include/betriebsmittelperson.class.php @@ -595,7 +595,7 @@ class betriebsmittelperson extends basis_db FROM wawi.tbl_betriebsmittel JOIN wawi.tbl_betriebsmittelperson USING(betriebsmittel_id) - WHERE tbl_betriebsmittel.nummer='.$this->db_add_param($nummer).' + WHERE tbl_betriebsmittel.nummer2='.$this->db_add_param($nummer).' AND tbl_betriebsmittel.betriebsmitteltyp=\'Zutrittskarte\' AND tbl_betriebsmittelperson.person_id='.$this->db_add_param($person_id); diff --git a/vilesci/fhausweis/kartenausgabe.php b/vilesci/fhausweis/kartenausgabe.php index 58ce7ec6d..aae80f2b0 100644 --- a/vilesci/fhausweis/kartenausgabe.php +++ b/vilesci/fhausweis/kartenausgabe.php @@ -139,7 +139,7 @@ if ($action == 'kartenausgabe') } echo ' -Ziehen Sie die neue Karte über den Hitag Kartenleser um die Karte zu aktivieren: +Ziehen Sie die neue Karte über den Mifare Kartenleser um die Karte zu aktivieren: