From 9b3036e95d5234308e0d554d443e15d5bba9233e Mon Sep 17 00:00:00 2001 From: Cris Date: Mon, 7 Sep 2020 15:16:48 +0200 Subject: [PATCH 01/19] Adapted in CIS: Display Zahlungsbestaetigung for FHTW studies only. If config entry ZAHLUNGSBESTAETIGUNG_ANZEIGEN is true and campus is FH Technikum Wien, only payments of FHTW studies are displayed now. Signed-off-by: Cris --- cis/private/profile/zahlungen.php | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/cis/private/profile/zahlungen.php b/cis/private/profile/zahlungen.php index b79f7f8b9..ed19e26b6 100644 --- a/cis/private/profile/zahlungen.php +++ b/cis/private/profile/zahlungen.php @@ -217,12 +217,22 @@ echo ' @@ -95,7 +96,7 @@ foreach ($orgform->result as $of) echo ''; } -echo ' +echo 'Unterschiede farblich hervorheben '; @@ -127,6 +128,7 @@ echo ' '; $start=0; +$color = 'black'; foreach($studiensemester->studiensemester as $row_stsem) { @@ -141,7 +143,12 @@ foreach($studiensemester->studiensemester as $row_stsem) foreach($gueltigkeit[$row_stsem->studiensemester_kurzbz][$i] as $row_studienplan) { $start=true; - $row .= $row_studienplan.'
'; + // Die Farbe des Studienplans ist immer gleich bleibend nach der Bezeichnung des Studienplans + if ($farbe == true) + { + $color = 'hsl('.abs((crc32($row_studienplan))*2 % 360).', 90%, 40%)'; + } + $row .= ''.$row_studienplan.'
'; } } $row .= ''; From 3b33b6bcdb603b7836be6dfaaaad84c9d3f15f0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Fri, 18 Sep 2020 11:55:52 +0200 Subject: [PATCH 09/19] Formatierung des Betrags bei automatisierten Gegenbuchungen korrigiert --- application/models/crm/Konto_model.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/application/models/crm/Konto_model.php b/application/models/crm/Konto_model.php index eae38a49e..a3b5cdbb6 100644 --- a/application/models/crm/Konto_model.php +++ b/application/models/crm/Konto_model.php @@ -48,17 +48,20 @@ class Konto_model extends DB_Model 'studiengang_kz' => $buchung->studiengang_kz, 'studiensemester_kurzbz' => $buchung->studiensemester_kurzbz, 'buchungsnr_verweis' => $buchungsnr, - 'betrag' => $betragOffen*(-1), + 'betrag' => str_replace(',','.',$betragOffen*(-1)), 'buchungsdatum' => date('Y-m-d'), 'buchungstext' => $buchung->buchungstext, 'insertamum' => date('Y-m-d H:i:s'), 'insertvon' => '', 'buchungstyp_kurzbz' => $buchung->buchungstyp_kurzbz, ); + return $this->insert($data); } else + { return error('Failed to load Payment'); + } } else { From ecfe6762a720e122076d30617b2bb25b56e55b41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Fri, 18 Sep 2020 16:01:23 +0200 Subject: [PATCH 10/19] Zahlungsreferenz im CIS kann nun ausgeblendet werden --- cis/private/profile/zahlungen_details.php | 19 +++++++++++++------ config/global.config-default.inc.php | 3 +++ 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/cis/private/profile/zahlungen_details.php b/cis/private/profile/zahlungen_details.php index 650ee81c0..5b56bea8c 100644 --- a/cis/private/profile/zahlungen_details.php +++ b/cis/private/profile/zahlungen_details.php @@ -15,9 +15,10 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * - * Authors: Martin Tatzber , + * Authors: Martin Tatzber , */ require_once('../../../config/cis.config.inc.php'); +require_once('../../../config/global.config.inc.php'); require_once('../../../include/functions.inc.php'); require_once('../../../include/konto.class.php'); require_once('../../../include/bankverbindung.class.php'); @@ -28,7 +29,7 @@ require_once('../../../include/benutzer.class.php'); require_once('../../../include/benutzerberechtigung.class.php'); require_once('../../../include/student.class.php'); require_once('../../../include/prestudent.class.php'); - + $uid = get_uid(); if(isset($_GET['uid'])) @@ -48,7 +49,7 @@ if(isset($_GET['uid'])) } else $getParam=''; - + $benutzer = new benutzer(); if(!$benutzer->load($uid)) die('Benutzer nicht gefunden'); @@ -88,7 +89,7 @@ $oe=new organisationseinheit(); $oe->load($studiengang->oe_kurzbz); $konto->getBuchungstyp(); -$buchungstyp = array(); +$buchungstyp = array(); foreach ($konto->result as $row) $buchungstyp[$row->buchungstyp_kurzbz]=$row->beschreibung; @@ -153,7 +154,13 @@ if($bic!='') '.$bic.' '; } -if($konto->zahlungsreferenz!='') +if ($konto->zahlungsreferenz != '' + && + ( + !defined('ZAHLUNGSBESTAETIGUNG_ZAHLUNGSREFERENZ_ANZEIGEN') + || ZAHLUNGSBESTAETIGUNG_ZAHLUNGSREFERENZ_ANZEIGEN == true + ) +) { echo ' @@ -189,7 +196,7 @@ foreach($addon->result as $a) '; } - + } echo ''; diff --git a/config/global.config-default.inc.php b/config/global.config-default.inc.php index 8d4687401..320f7adb3 100644 --- a/config/global.config-default.inc.php +++ b/config/global.config-default.inc.php @@ -303,4 +303,7 @@ define ('ZAHLUNGSBESTAETIGUNG_ANZEIGEN', true); // Gibt an, ob im CIS die Zahlungsbestaetigungen fuer Lehrgaenge zum Download angezeigt werden define ('ZAHLUNGSBESTAETIGUNG_ANZEIGEN_FUER_LEHRGAENGE', true); + +// Gibt an, ob im CIS die Zahlungsreferenz angezeigt wird +define ('ZAHLUNGSBESTAETIGUNG_ZAHLUNGSREFERENZ_ANZEIGEN', false); ?> From 4fa86ce173808809e7596ac14b3a7fb7e3ab49ba Mon Sep 17 00:00:00 2001 From: OliiverHacker Date: Tue, 22 Sep 2020 11:20:01 +0200 Subject: [PATCH 11/19] display latest status in status bar in inventory search --- ...riebsmittel_betriebsmittelstatus.class.php | 43 ++++++++++++++++++- vilesci/inventar/inventar.php | 17 +++++--- 2 files changed, 52 insertions(+), 8 deletions(-) diff --git a/include/betriebsmittel_betriebsmittelstatus.class.php b/include/betriebsmittel_betriebsmittelstatus.class.php index fa259df03..e5733ec03 100644 --- a/include/betriebsmittel_betriebsmittelstatus.class.php +++ b/include/betriebsmittel_betriebsmittelstatus.class.php @@ -368,6 +368,47 @@ class betriebsmittel_betriebsmittelstatus extends basis_db $this->errormsg = 'Fehler beim Entfernen des Betriebsmittel Betriebsmittelstatus-Datensatzes'; return false; } - } + } + + /** + * Laedt den letzten Stauts eines Betriebsmittels + * @param $betriebsmittel_id + * @return betriebsmittelstatus_kurzbz wenn ok, false im Fehlerfall + */ + public function load_last_status_by_betriebsmittel_id($betriebsmittel_id) + { + $this->result=array(); + $this->errormsg=''; + if ($betriebsmittel_id) + $this->betriebsmittel_id=$betriebsmittel_id; + + if(!is_numeric($this->betriebsmittel_id)) + { + $this->errormsg = 'Betriebsmittel_id ist ungueltig'; + return false; + } + + $qry=' SELECT * FROM wawi.tbl_betriebsmittel_betriebsmittelstatus + WHERE betriebsmittel_id='.$this->db_add_param(trim($this->betriebsmittel_id), FHC_INTEGER).' + ORDER BY betriebsmittelbetriebsmittelstatus_id DESC LIMIT 1'; + + if($this->db_query($qry)) + { + if($row = $this->db_fetch_object()) + { + return $row->betriebsmittelstatus_kurzbz; + } + else + { + $this->errormsg='Es wurde kein Eintrag gefunden'; + return false; + } + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } } ?> diff --git a/vilesci/inventar/inventar.php b/vilesci/inventar/inventar.php index 938d62094..801512f5f 100644 --- a/vilesci/inventar/inventar.php +++ b/vilesci/inventar/inventar.php @@ -334,11 +334,11 @@ if (!$uid = get_uid()) - @@ -1007,8 +1007,11 @@ function output_inventar($debug=false,$resultBetriebsmittel=null,$resultBetriebs $htmlstring.=''; // mit Berechtigung ist der Status zum bearbeiten - $betriebsmittelstatus_kurzbz_select=trim($resultBetriebsmittel[$pos]->betriebsmittelstatus_kurzbz); - if (!$schreib_recht) + $betriebsmittel_betriebsmittelstatus = new betriebsmittel_betriebsmittelstatus(); + $status = $betriebsmittel_betriebsmittelstatus->load_last_status_by_betriebsmittel_id($resultBetriebsmittel[$pos]->betriebsmittel_id); + $betriebsmittelstatus_kurzbz_select = trim($status); + //$resultBetriebsmittel[$pos]->betriebsmittelstatus_kurzbz; + if ($schreib_recht) $htmlstring.=$betriebsmittelstatus_kurzbz_select; else { From b79ab2a043cc07b0168e6e03f74284a5ee171304 Mon Sep 17 00:00:00 2001 From: OliiverHacker Date: Wed, 23 Sep 2020 10:16:57 +0200 Subject: [PATCH 12/19] add dropdown again when writing permissions --- vilesci/inventar/inventar.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vilesci/inventar/inventar.php b/vilesci/inventar/inventar.php index 801512f5f..cca67eaa0 100644 --- a/vilesci/inventar/inventar.php +++ b/vilesci/inventar/inventar.php @@ -1011,7 +1011,7 @@ function output_inventar($debug=false,$resultBetriebsmittel=null,$resultBetriebs $status = $betriebsmittel_betriebsmittelstatus->load_last_status_by_betriebsmittel_id($resultBetriebsmittel[$pos]->betriebsmittel_id); $betriebsmittelstatus_kurzbz_select = trim($status); //$resultBetriebsmittel[$pos]->betriebsmittelstatus_kurzbz; - if ($schreib_recht) + if (!$schreib_recht) $htmlstring.=$betriebsmittelstatus_kurzbz_select; else { From b62a2007af3862ea0456741bfeb0941fa11efc85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Wed, 23 Sep 2020 16:33:14 +0200 Subject: [PATCH 13/19] Schlagwortdienst auf HTTPS geaendert --- cis/private/lehre/swd.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cis/private/lehre/swd.php b/cis/private/lehre/swd.php index dfdebfcdb..b7fa82ac5 100644 --- a/cis/private/lehre/swd.php +++ b/cis/private/lehre/swd.php @@ -1,5 +1,5 @@ Date: Thu, 24 Sep 2020 08:25:28 +0200 Subject: [PATCH 14/19] =?UTF-8?q?zeige=20keine=20Pr=C3=BCfungstermine=20wo?= =?UTF-8?q?=20Note=20vorhanden=20ist?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lehre/pruefung/pruefungsanmeldung.json.php | 2 +- include/pruefungCis.class.php | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php index 07999f47d..e201fbe30 100644 --- a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php +++ b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php @@ -156,7 +156,7 @@ function getPruefungByLv($aktStudiensemester = null, $uid = null) } $lehrveranstaltungen=$lvIds; $pruefung = new pruefungCis(); - if($pruefung->getPruefungByLv($lehrveranstaltungen)) + if($pruefung->getPruefungByLv($lehrveranstaltungen, $uid)) { $pruefungen = array(); foreach($pruefung->lehrveranstaltungen as $key=>$lv) diff --git a/include/pruefungCis.class.php b/include/pruefungCis.class.php index 1ddf88443..3439793da 100644 --- a/include/pruefungCis.class.php +++ b/include/pruefungCis.class.php @@ -590,7 +590,7 @@ class pruefungCis extends basis_db * @param String|Array $lehrveranstaltung_IDs einzelne ID einer Lehrveranstaltung oder ein Array von IDs * @return boolean true, wenn ok; false, im Fehlerfall */ - public function getPruefungByLv($lehrveranstaltung_IDs) + public function getPruefungByLv($lehrveranstaltung_IDs, $uid = null) { if(empty($lehrveranstaltung_IDs)) { @@ -612,7 +612,17 @@ class pruefungCis extends basis_db $in = $lehrveranstaltung_IDs; } - $qry = 'SELECT * FROM campus.tbl_lehrveranstaltung_pruefung WHERE lehrveranstaltung_id IN ('.$in.');'; + $qry = 'SELECT * FROM campus.tbl_lehrveranstaltung_pruefung WHERE lehrveranstaltung_id IN ('.$in.')'; + + if ($uid !== null) + { + // LVs entfernen wo schon eine Note für UID vorhanden ist + $qry .= " AND lehrveranstaltung_id NOT IN ( + SELECT lehrveranstaltung_id + FROM lehre.tbl_pruefung + JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) + WHERE student_uid = " . $this->db_add_param($uid) . ");"; + } if($this->db_query($qry)) { From 51c4e1f92b84d824b7b2de0f3e1c4e95e4d459e4 Mon Sep 17 00:00:00 2001 From: Nikolaus Krondraf Date: Fri, 25 Sep 2020 13:00:41 +0200 Subject: [PATCH 15/19] =?UTF-8?q?zeige=20keine=20Pr=C3=BCfungstermine=20wo?= =?UTF-8?q?=20positive=20Note=20vorhanden=20ist?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/pruefungCis.class.php | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/include/pruefungCis.class.php b/include/pruefungCis.class.php index 3439793da..ec402ed5d 100644 --- a/include/pruefungCis.class.php +++ b/include/pruefungCis.class.php @@ -616,12 +616,19 @@ class pruefungCis extends basis_db if ($uid !== null) { - // LVs entfernen wo schon eine Note für UID vorhanden ist + // LVs entfernen wo schon eine positive Note für UID vorhanden ist $qry .= " AND lehrveranstaltung_id NOT IN ( - SELECT lehrveranstaltung_id - FROM lehre.tbl_pruefung - JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) - WHERE student_uid = " . $this->db_add_param($uid) . ");"; + SELECT lehrveranstaltung_id + FROM lehre.tbl_pruefung + JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) + WHERE student_uid = " . $this->db_add_param($uid) . " + AND note NOT IN (5, 7, 9, 11, 13, 14) + UNION + SELECT lehrveranstaltung_id + FROM lehre.tbl_zeugnisnote + WHERE student_uid = " . $this->db_add_param($uid) . " + AND note NOT IN (5, 7, 9, 11, 13, 14) + );"; } if($this->db_query($qry)) From 388a266822aae2ad88453b32121f5ec5f9a24618 Mon Sep 17 00:00:00 2001 From: Cris Date: Thu, 1 Oct 2020 11:17:14 +0200 Subject: [PATCH 16/19] Modified Dropdown-Widget Organisationseinheit Modified to enable empty default-value and default text. Signed-off-by: Cris --- application/widgets/Organisationseinheit_widget.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/application/widgets/Organisationseinheit_widget.php b/application/widgets/Organisationseinheit_widget.php index e4fbfe2ba..8aba73acc 100644 --- a/application/widgets/Organisationseinheit_widget.php +++ b/application/widgets/Organisationseinheit_widget.php @@ -31,7 +31,10 @@ class Organisationseinheit_widget extends DropdownWidget { // NOTE: no need to call addSelectToModel because getRecursiveList already returns // the correct names of the fields - $this->setElementsArray($this->OrganisationseinheitModel->getRecursiveList()); + $this->setElementsArray($this->OrganisationseinheitModel->getRecursiveList(), + true, + $this->p->t('lehre', 'organisationseinheit'), + 'No organisational unit found'); } $this->loadDropDownView($widgetData); From 5e4107fa4fe6e1ac3799386fcdb8714e83a40f0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Fri, 2 Oct 2020 15:00:57 +0200 Subject: [PATCH 17/19] Added Permission to edit Payments that are already transfered to external System --- content/student/studentDBDML.php | 62 ++++++++++++++++++++++++++++++-- system/checksystem.php | 1 + 2 files changed, 60 insertions(+), 3 deletions(-) diff --git a/content/student/studentDBDML.php b/content/student/studentDBDML.php index 886e938a8..a80ea171a 100644 --- a/content/student/studentDBDML.php +++ b/content/student/studentDBDML.php @@ -280,6 +280,51 @@ function NotePruefungAnlegen($studiensemester_kurzbz, $student_uid, $lehrveranst } } +function deleteFromSAP($buchung) +{ + global $db, $user; + + if(defined('BUCHUNGEN_CHECK_SAP') && BUCHUNGEN_CHECK_SAP == true) + { + $qry = "SELECT * FROM sync.tbl_sap_salesorder WHERE buchungsnr=".$db->db_add_param($buchung->buchungsnr); + if($result = $db->db_query($qry)) + { + if($row = $db->db_fetch_object($result)) + { + $qry = "DELETE FROM sync.tbl_sap_salesorder WHERE buchungsnr=".$db->db_add_param($buchung->buchungsnr); + if($db->db_query($qry)) + { + $log = new log(); + $log->mitarbeiter_uid = $user; + $log->beschreibung = 'Buchungszuordnung SAP geloescht: SalesOrder:'.$row->sap_sales_order_id; + $log->sql = $qry; + if(!$log->save(true)) + { + echo "Fehler beim Schreiben des Log".$log->errormsg; + return false; + } + return true; + } + else + { + echo "Fehler beim Löschen der Zahlungszuordnung"; + return false; + } + } + else + { + //Gegenbuchung + } + } + else + { + echo "Zahlung nicht gefunden"; + return false; + } + } + return true; +} + /** * Prueft ob die Kontobuchung bereits ins SAP Ubertragen wurde oder noch geändert werden darf */ @@ -1981,7 +2026,8 @@ if(!$error) } else { - if(isBuchungAllowedToChange($buchung)) + if(isBuchungAllowedToChange($buchung) + || $rechte->isBerechtigt('student/zahlungAdmin',$buchung->studiengang_kz,'suid')) { $buchung->betrag = $_POST['betrag']; $buchung->buchungsdatum = $_POST['buchungsdatum']; @@ -2062,7 +2108,8 @@ if(!$error) { if($buchung->buchungsnr_verweis=='') { - if(isBuchungAllowedToChange($buchung)) + if(isBuchungAllowedToChange($buchung) + || $rechte->isBerechtigt('student/zahlungAdmin',$buchung->studiengang_kz,'suid')) { $kto = new konto(); //$buchung->betrag*(-1); @@ -2139,8 +2186,17 @@ if(!$error) } else { - if(isBuchungAllowedToChange($buchung)) + $isAllowedToChange = isBuchungAllowedToChange($buchung); + if($isAllowedToChange + || $rechte->isBerechtigt('student/zahlungAdmin',$buchung->studiengang_kz,'suid') + ) { + if(!$isAllowedToChange) + { + // Buchung aus SAP Zwischentabelle loeschen + deleteFromSAP($buchung); + } + if($buchung->delete($_POST['buchungsnr'])) { $return = true; diff --git a/system/checksystem.php b/system/checksystem.php index 04e76bb52..3253dd5d4 100644 --- a/system/checksystem.php +++ b/system/checksystem.php @@ -195,6 +195,7 @@ $berechtigungen = array( array('student/noten','Notenverwaltung'), array('student/stammdaten','Stammdaten der Studenten'), array('student/vorrueckung','Studentenvorrückung'), + array('student/zahlungAdmin','Zahlungsadministration'), array('system/developer','Anzeige zusätzlicher Developerinfos'), array('system/loginasuser','Berechtigung zum Einloggen als anderer User'), array('system/phrase','Bearbeiten von Textphrasen'), From cd3557ed986306696878ecdee6ce8ca28dbeb26b Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 5 Oct 2020 17:34:28 +0200 Subject: [PATCH 18/19] Zeitsperretyp kurzbz in DropDown entfernt --- cis/private/profile/zeitsperre_resturlaub.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cis/private/profile/zeitsperre_resturlaub.php b/cis/private/profile/zeitsperre_resturlaub.php index b7654310e..66cb4a6e1 100644 --- a/cis/private/profile/zeitsperre_resturlaub.php +++ b/cis/private/profile/zeitsperre_resturlaub.php @@ -518,7 +518,7 @@ if(count($zeit->result)>0) $row_vertretung = $db->db_fetch_object($result_vertretung); $content_table.= " $row->bezeichnung - $row->zeitsperretyp_kurzbz + $row->zeitsperretyp_beschreibung ".$datum_obj->convertISODate($row->vondatum)." ".($row->vonstunde!=''?'('.$row->vonstunde.')':'')." ".$datum_obj->convertISODate($row->bisdatum)." ".($row->bisstunde!=''?'('.$row->bisstunde.')':'')." ".(isset($row_vertretung->kurzbz)?$row_vertretung->kurzbz:'')." @@ -587,15 +587,15 @@ $content_form.= '
t('zeitsperre/grund').''; From 2a09e1af8a3beb6cafa41f878c148d68f05bb5bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Wed, 7 Oct 2020 08:57:12 +0200 Subject: [PATCH 19/19] =?UTF-8?q?Verhindert=20dass=20Matrikelnummern=20ang?= =?UTF-8?q?efordert=20werden=20f=C3=BCr=20Studieng=C3=A4nge=20mit=20Kennza?= =?UTF-8?q?hl=20>=2010000?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/dvb.class.php | 1 + 1 file changed, 1 insertion(+) diff --git a/include/dvb.class.php b/include/dvb.class.php index 0eab0e3f0..0131f1e4d 100644 --- a/include/dvb.class.php +++ b/include/dvb.class.php @@ -188,6 +188,7 @@ class dvb extends basis_db AND tbl_benutzer.aktiv AND tbl_prestudentstatus.status_kurzbz in('Student','Incoming') AND tbl_prestudent.bismelden + AND tbl_prestudent.studiengang_kz<10000 ORDER BY tbl_prestudentstatus.datum desc LIMIT 1 ";