diff --git a/application/controllers/system/infocenter/InfoCenter.php b/application/controllers/system/infocenter/InfoCenter.php index 48c50bb4a..d027e559e 100644 --- a/application/controllers/system/infocenter/InfoCenter.php +++ b/application/controllers/system/infocenter/InfoCenter.php @@ -121,6 +121,7 @@ class InfoCenter extends Auth_Controller 'unlockPerson' => 'infocenter:rw', 'saveFormalGeprueft' => 'infocenter:rw', 'saveDocTyp' => 'infocenter:rw', + 'updateStammdaten' => 'infocenter:rw', 'saveNachreichung' => 'infocenter:rw', 'getPrestudentData' => 'infocenter:r', 'getLastPrestudentWithZgvJson' => 'infocenter:r', @@ -172,11 +173,16 @@ class InfoCenter extends Auth_Controller $this->load->model('codex/Zgv_model', 'ZgvModel'); $this->load->model('codex/Zgvmaster_model', 'ZgvmasterModel'); $this->load->model('codex/Nation_model', 'NationModel'); + $this->load->model('person/Kontakt_model', 'KontaktModel'); + $this->load->model('person/Geschlecht_model', 'GeschlechtModel'); + $this->load->model('person/adresse_model', 'AdresseModel'); // Loads libraries $this->load->library('PersonLogLib'); $this->load->library('WidgetLib'); + $this->load->config('infocenter'); + $this->loadPhrases( array( 'global', @@ -1111,14 +1117,14 @@ class InfoCenter extends Auth_Controller public function reloadDoks($person_id) { - $dokumente_nachgereicht = $this->AkteModel->getAktenWithDokInfo($person_id, null, true); + $dokumente_nachgereicht = $this->AkteModel->getAktenWithDokInfo($person_id, null, true, false); $this->load->view('system/infocenter/dokNachzureichend.php', array('dokumente_nachgereicht' => $dokumente_nachgereicht->retval)); } public function reloadUebersichtDoks($person_id) { - $dokumente = $this->AkteModel->getAktenWithDokInfo($person_id, null, false); + $dokumente = $this->AkteModel->getAktenWithDokInfo($person_id, null, false, false); $this->DokumentModel->addOrder('bezeichnung'); $dokumentdata = array('dokumententypen' => (getData($this->DokumentModel->load()))); @@ -1320,6 +1326,126 @@ class InfoCenter extends Auth_Controller $this->outputJsonSuccess('success'); } + public function updateStammdaten() + { + if (isEmptyString($this->input->post('nachname')) || + isEmptyString($this->input->post('geschlecht')) || + isEmptyString($this->input->post('gebdatum'))) + { + $this->terminateWithJsonError($this->p->t('infocenter', 'stammdatenFeldFehlt')); + } + + $datum = explode('.', $this->input->post('gebdatum')); + + if (!checkdate($datum[1], $datum[0], $datum[2])) + { + $this->terminateWithJsonError($this->p->t('infocenter', 'datumUngueltig')); + } + + $person_id = $this->input->post('personid'); + + $update = $this->PersonModel->update( + array + ( + 'person_id' => $person_id + ), + array + ( + 'titelpre' => isEmptyString($this->input->post('titelpre')) ? null : $this->input->post('titelpre'), + 'vorname' => isEmptyString($this->input->post('vorname')) ? null : $this->input->post('vorname'), + 'nachname' => $this->input->post('nachname'), + 'titelpost' => isEmptyString($this->input->post('titelpost')) ? null : $this->input->post('titelpost'), + 'gebdatum' => isEmptyString($this->input->post('gebdatum')) ? null : date("Y-m-d", strtotime($this->input->post('gebdatum'))), + 'svnr' => isEmptyString($this->input->post('svnr')) ? null : $this->input->post('svnr'), + 'staatsbuergerschaft' => isEmptyString($this->input->post('buergerschaft')) ? null : $this->input->post('buergerschaft'), + 'geschlecht' => $this->input->post('geschlecht'), + 'geburtsnation' => isEmptyString($this->input->post('gebnation')) ? null : $this->input->post('gebnation'), + 'gebort' => isEmptyString($this->input->post('gebort')) ? null : $this->input->post('gebort'), + 'updateamum' => date('Y-m-d H:i:s'), + 'updatevon' => $this->_uid + ) + ); + + if (isError($update)) + $this->terminateWithJsonError($this->p->t('ui', 'fehlerBeimSpeichern')); + + $kontakte = $this->input->post('kontakt'); + foreach ($kontakte as $kontakt) + { + $kontaktExists = $this->KontaktModel->loadWhere(array( + 'kontakt_id' => $kontakt['id'], + 'person_id' => $person_id, + )); + + if (hasData($kontaktExists)) + { + $kontaktExists = getData($kontaktExists)[0]; + + if ($kontaktExists->kontakt === $kontakt['value']) + continue; + + $update = $this->KontaktModel->update( + array + ( + 'kontakt_id' => $kontakt['id'] + ), + array + ( + 'kontakt' => isEmptyString($kontakt['value']) ? null : $kontakt['value'], + 'updateamum' => date('Y-m-d H:i:s'), + 'updatevon' => $this->_uid + ) + ); + + if (isError($update)) + $this->terminateWithJsonError($this->p->t('ui', 'fehlerBeimSpeichern')); + } + } + + $adressen = $this->input->post('adresse'); + + foreach ($adressen as $adresse) + { + $adresseExists = $this->AdresseModel->loadWhere(array( + 'adresse_id' => $adresse['id'], + 'person_id' => $person_id, + )); + + if (hasData($adresseExists)) + { + $adresse = $adresse['value']; + $adresseExists = getData($adresseExists)[0]; + if ($adresseExists->strasse !== $adresse['strasse'] || + $adresseExists->plz !== $adresse['plz'] || + $adresseExists->ort !== $adresse['ort'] || + $adresseExists->nation !== $adresse['nation']) + { + $update = $this->AdresseModel->update( + array + ( + 'adresse_id' => $adresseExists->adresse_id + ), + array + ( + 'strasse' => isEmptyString($adresse['strasse']) ? null : $adresse['strasse'], + 'plz' => isEmptyString($adresse['plz']) ? null : $adresse['plz'], + 'ort' => isEmptyString($adresse['ort']) ? null : $adresse['ort'], + 'nation' => isEmptyString($adresse['nation']) ? null : $adresse['nation'], + 'updateamum' => date('Y-m-d H:i:s'), + 'updatevon' => $this->_uid + ) + ); + + if (isError($update)) + $this->terminateWithJsonError($this->p->t('ui', 'fehlerBeimSpeichern')); + } + + } + } + + $this->outputJsonSuccess('Success'); + } + public function saveNachreichung($person_id) { $nachreichungAm = $this->input->post('nachreichungAm'); @@ -1794,14 +1920,14 @@ class InfoCenter extends Auth_Controller if (!isset($stammdaten->retval)) return null; - $dokumente = $this->AkteModel->getAktenWithDokInfo($person_id, null, false); + $dokumente = $this->AkteModel->getAktenWithDokInfo($person_id, null, false, false); if (isError($dokumente)) { show_error(getError($dokumente)); } - $dokumente_nachgereicht = $this->AkteModel->getAktenWithDokInfo($person_id, null, true); + $dokumente_nachgereicht = $this->AkteModel->getAktenWithDokInfo($person_id, null, true, false); if (isError($dokumente_nachgereicht)) { @@ -1996,6 +2122,12 @@ class InfoCenter extends Auth_Controller $this->NationModel->addOrder('langtext'); $allNations = getData($this->NationModel->load()); + + $additional_stg = explode(',', ($this->config->item('infocenter_studiengang_kz'))); + + $this->GeschlechtModel->addOrder('sort'); + $allGenders = getData($this->GeschlechtModel->load()); + $data = array ( 'zgvpruefungen' => $zgvpruefungen, 'abwstatusgruende' => $abwstatusgruende, @@ -2004,6 +2136,8 @@ class InfoCenter extends Auth_Controller 'all_zgvs' => $allZGVs, 'all_zgvs_master' => $allZGVsMaster, 'all_nations' => $allNations, + 'additional_stg' => $additional_stg, + 'all_genders' => $allGenders ); return $data; @@ -2164,8 +2298,8 @@ class InfoCenter extends Auth_Controller $prestudentstatus = $prestudent->prestudentstatus; $person_id = $prestudent->person_id; $person = $this->PersonModel->getPersonStammdaten($person_id, true)->retval; - $dokumente = $this->AkteModel->getAktenWithDokInfo($person_id, null, false)->retval; - $dokumenteNachzureichen = $this->AkteModel->getAktenWithDokInfo($person_id, null, true)->retval; + $dokumente = $this->AkteModel->getAktenWithDokInfo($person_id, null, false, false)->retval; + $dokumenteNachzureichen = $this->AkteModel->getAktenWithDokInfo($person_id, null, true, false)->retval; //fill mail variables $interessentbez = $person->geschlecht == 'm' ? 'Ein Interessent' : 'Eine Interessentin'; @@ -2262,12 +2396,10 @@ class InfoCenter extends Auth_Controller public function getAbsageData() { - $studiengang_kz_all = $this->permissionlib->getSTG_isEntitledFor('infocenter'); - $stg_typ = $this->StudiengangModel->getStudiengangTyp($studiengang_kz_all, ['b', 'm']); + $stg_typ = $this->getStudienArtBerechtigung(['b', 'm']); - if (hasData($stg_typ)) + if (!is_null($stg_typ)) { - $stg_typ = getData($stg_typ); $statusgruende = $this->StatusgrundModel->getStatus(self::ABGEWIESENERSTATUS, true)->retval; $studienSemester = $this->variablelib->getVar('infocenter_studiensemester'); $studiengaenge = $this->StudiengangModel->getStudiengaengeWithOrgForm(array_column($stg_typ, 'typ'), $studienSemester); @@ -2283,15 +2415,16 @@ class InfoCenter extends Auth_Controller $this->outputJsonSuccess(null); } - public function getStudienArtBerechtigung() + public function getStudienArtBerechtigung($typ = null) { $studiengang_kz_all = $this->permissionlib->getSTG_isEntitledFor('infocenter'); - $stg_typ = $this->StudiengangModel->getStudiengangTyp($studiengang_kz_all, ['b', 'm', 'l']); + $stg_typ = $this->StudiengangModel->getStudiengangTyp($studiengang_kz_all, $typ); return getData($stg_typ); } + public function getStudienartData() { - $this->outputJsonSuccess($this->getStudienArtBerechtigung()); + $this->outputJsonSuccess($this->getStudienArtBerechtigung(['b', 'm', 'l'])); } public function saveAbsageForAll() diff --git a/application/models/crm/Akte_model.php b/application/models/crm/Akte_model.php index fe9db5330..15a38022e 100644 --- a/application/models/crm/Akte_model.php +++ b/application/models/crm/Akte_model.php @@ -171,7 +171,7 @@ class Akte_model extends DB_Model * @param bool $nachgereicht if true, retrieves only nachgereichte Dokumente. if false, only not nachgereichte. default: null, all Dokumente * @return array */ - public function getAktenWithDokInfo($person_id, $dokument_kurzbz = null, $nachgereicht = null) + public function getAktenWithDokInfo($person_id, $dokument_kurzbz = null, $nachgereicht = null, $archiv = null) { $this->addSelect('public.tbl_akte.*, bezeichnung_mehrsprachig, dokumentbeschreibung_mehrsprachig, public.tbl_dokument.bezeichnung as dokument_bezeichnung, bis.tbl_nation.*, ausstellungsdetails'); $this->addJoin('public.tbl_dokument', 'dokument_kurzbz'); @@ -184,6 +184,9 @@ class Akte_model extends DB_Model if(is_bool($nachgereicht)) $where['nachgereicht'] = $nachgereicht; + if (is_bool($archiv)) + $where['archiv'] = $archiv; + $dokumente = $this->loadWhere($where); if($dokumente->error) return $dokumente; diff --git a/application/models/crm/Prestudent_model.php b/application/models/crm/Prestudent_model.php index f37b715f4..d05b63303 100644 --- a/application/models/crm/Prestudent_model.php +++ b/application/models/crm/Prestudent_model.php @@ -309,13 +309,39 @@ class Prestudent_model extends DB_Model */ public function getLastPrestudent($person_id, $withzgv = false) { - $qry = 'SELECT * FROM public.tbl_prestudent - WHERE person_id = ? + $qry = 'SELECT * FROM public.tbl_prestudent ps %s + WHERE ps.person_id = ? ORDER BY updateamum DESC NULLS LAST, insertamum DESC NULLS LAST LIMIT 1'; - $zgvwhere = $withzgv === true ? 'AND zgv_code IS NOT NULL' : ''; + $zgvwhere = ''; + if ($withzgv === true) + { + $zgvwhere = ' + LEFT JOIN ( + SELECT ps2.zgvmas_code, + ps2.zgvmanation, + ps2.zgvmadatum, + ps2.zgvmaort, + ps2.zgvmas_erfuellt, + ps2.person_id + FROM tbl_prestudent ps2 + WHERE zgvmas_code IS NOT NULL + ORDER BY updateamum DESC NULLS LAST, insertamum DESC NULLS LAST + ) zgvmas ON zgvmas.person_id = ps.person_id + LEFT JOIN ( + SELECT ps2.zgv_code, + ps2.zgvnation, + ps2.zgvdatum, + ps2.zgvort, + ps2.zgv_erfuellt, + ps2.person_id + FROM tbl_prestudent ps2 + WHERE zgv_code IS NOT NULL + ORDER BY updateamum DESC NULLS LAST, insertamum DESC NULLS LAST + )zgv ON zgv.person_id = ps.person_id'; + } $qry = sprintf($qry, $zgvwhere); diff --git a/application/models/organisation/Studiengang_model.php b/application/models/organisation/Studiengang_model.php index e848cb4c2..f4f8b3c9e 100644 --- a/application/models/organisation/Studiengang_model.php +++ b/application/models/organisation/Studiengang_model.php @@ -508,13 +508,20 @@ class Studiengang_model extends DB_Model return $this->execQuery($query, array($typ, $semester)); } - public function getStudiengangTyp($studiengang_kz, $typ) + public function getStudiengangTyp($studiengang_kz, $typ = null) { $query = "SELECT DISTINCT(sgt.*) FROM tbl_studiengangstyp sgt JOIN tbl_studiengang sg on sgt.typ = sg.typ - WHERE studiengang_kz IN ? and sgt.typ IN ?"; + WHERE studiengang_kz IN ?"; - return $this->execQuery($query, array($studiengang_kz, $typ)); + $params[] = $studiengang_kz; + if (!is_null($typ)) + { + $query .= " AND sgt.typ IN ?"; + $params[] = $typ; + } + + return $this->execQuery($query, $params); } } diff --git a/application/models/person/Geschlecht_model.php b/application/models/person/Geschlecht_model.php new file mode 100644 index 000000000..60ac3ba15 --- /dev/null +++ b/application/models/person/Geschlecht_model.php @@ -0,0 +1,14 @@ +dbTable = 'public.tbl_geschlecht'; + $this->pk = 'geschlecht'; + } +} diff --git a/application/views/system/infocenter/infocenterDetails.php b/application/views/system/infocenter/infocenterDetails.php index 158feeb2c..066e5cff6 100644 --- a/application/views/system/infocenter/infocenterDetails.php +++ b/application/views/system/infocenter/infocenterDetails.php @@ -25,7 +25,8 @@ 'public/js/infocenter/messageList.js', 'public/js/infocenter/infocenterDetails.js', 'public/js/infocenter/zgvUeberpruefung.js', - 'public/js/infocenter/docUeberpruefung.js' + 'public/js/infocenter/docUeberpruefung.js', + 'public/js/infocenter/stammdaten.js' ), 'phrases' => array( 'infocenter' => array( diff --git a/application/views/system/infocenter/stammdaten.php b/application/views/system/infocenter/stammdaten.php index a80439bfe..f143c9c03 100644 --- a/application/views/system/infocenter/stammdaten.php +++ b/application/views/system/infocenter/stammdaten.php @@ -1,60 +1,104 @@
-
+
- titelpre)): ?> - + - + - + +
nachname ?>
+ + + + + - titelpost)): ?> - - - - - +
gebdatum), 'd.m.Y') ?>
+ +
svnr ?>
+ + + + + + + - +
p->t('person','titelpre')) ?>titelpre ?> +
titelpre ?>
+
p->t('person','vorname')) ?>vorname ?> +
vorname ?>
+
p->t('person','nachname')) ?> - nachname ?>
p->t('person','titelpost')) ?> +
titelpost ?>
+
p->t('person','titelpost')) ?>titelpost ?>
p->t('person','geburtsdatum')) ?> - gebdatum), 'd.m.Y') ?>
p->t('person','svnr')) ?> - svnr ?>
p->t('person','staatsbuergerschaft')) ?> - staatsbuergerschaft ?>
p->t('person','geschlecht')) ?> - geschlecht ?>
p->t('person','geburtsnation')) ?> - geburtsnation ?>
p->t('person','geburtsort')) ?>gebort ?> +
gebort ?>
+
- +
@@ -78,7 +122,7 @@
p->t('global','kontakt')) ?>kontakttyp) ?> - kontakttyp.'">';?> + kontakttyp.'" data-id="'. $kontakt->kontakt_id .'" data-value="' . $kontakt->kontakt .'">';?> kontakttyp === 'email'): ?> kontakt; @@ -99,8 +143,30 @@ p->t('person','adresse')) ?> - strasse.', '.$adresse->plz.' '.$adresse->ort : '' ?> - nationkurztext) ? '
'.$adresse->nationkurztext : '' ?> + +
+
strasse ?>
+ +
plz ?>
+ +
ort ?>
+ + nationkurztext)): ?> + +
+
+ +
heimatadresse === true ? 'Heimatadresse' : ''). @@ -126,6 +192,16 @@ target='_blank'> p->t('infocenter','zugangBewerbung') ?> + diff --git a/application/views/system/infocenter/zgvpruefungen.php b/application/views/system/infocenter/zgvpruefungen.php index 2e6ea90d2..1d26b9d55 100644 --- a/application/views/system/infocenter/zgvpruefungen.php +++ b/application/views/system/infocenter/zgvpruefungen.php @@ -2,7 +2,7 @@ infoonly; $studiengangkurzbz = $studiengangbezeichnung = $studiengangtyp = ''; diff --git a/application/views/system/issues/issuesData.php b/application/views/system/issues/issuesData.php index 501cf4b26..50b7c1483 100644 --- a/application/views/system/issues/issuesData.php +++ b/application/views/system/issues/issuesData.php @@ -56,7 +56,7 @@ $query .= "SELECT issue_id, fehlercode AS \"Fehlercode\", iss.fehlercode_extern WHERE person_id = pers.person_id ORDER BY prestudent_id DESC ) prestudents - WHERE last_status IN ('Aufgenommener', 'Student', 'Incoming', 'Diplomand', 'Abbrecher', 'Unterbrecher', 'Absolvent') + WHERE last_status IN ('Abgewiesener','Aufgenommener', 'Student', 'Incoming', 'Diplomand', 'Abbrecher', 'Unterbrecher', 'Absolvent') GROUP BY person_id LIMIT 1; ) AS \"Zugehörigkeit\", @@ -89,7 +89,9 @@ $query .= "SELECT issue_id, fehlercode AS \"Fehlercode\", iss.fehlercode_extern LEFT JOIN public.tbl_funktion fu USING (funktion_kurzbz) WHERE fehlercode = fr.fehlercode GROUP BY fehlercode - ) AS \"Organisationseinheit Zuständigkeiten\" + ) AS \"Organisationseinheit Zuständigkeiten\", + pers.bpk AS \"BPK\", + pers.matr_nr AS \"Matrikelnummer\" FROM system.tbl_issue iss JOIN system.tbl_fehler fr USING (fehlercode) JOIN system.tbl_fehlertyp ftyp USING (fehlertyp_kurzbz) @@ -173,7 +175,9 @@ $filterWidgetArray = array( ucfirst($this->p->t('fehlermonitoring', 'zugehoerigkeit')), ucfirst($this->p->t('fehlermonitoring', 'hauptzustaendig')), ucfirst($this->p->t('fehlermonitoring', 'zustaendigePersonen')), - ucfirst($this->p->t('fehlermonitoring', 'zustaendigeOrganisationseinheiten')) + ucfirst($this->p->t('fehlermonitoring', 'zustaendigeOrganisationseinheiten')), + 'BPK', + 'Matrikelnummer' ), 'formatRow' => function($datasetRaw) { @@ -222,6 +226,16 @@ $filterWidgetArray = array( $datasetRaw->{'Organisationseinheit Zuständigkeiten'} = '-'; } + if ($datasetRaw->{'BPK'} == null) + { + $datasetRaw->{'BPK'} = '-'; + } + + if ($datasetRaw->{'Matrikelnummer'} == null) + { + $datasetRaw->{'Matrikelnummer'} = '-'; + } + return $datasetRaw; }, 'markRow' => function($datasetRaw) { diff --git a/cis/private/lehre/fotoliste.pdf.php b/cis/private/lehre/fotoliste.pdf.php index 353f3a2ad..881649ddf 100644 --- a/cis/private/lehre/fotoliste.pdf.php +++ b/cis/private/lehre/fotoliste.pdf.php @@ -180,7 +180,8 @@ $qry = 'SELECT DISTINCT ON tbl_person.matr_nr, tbl_person.geschlecht, tbl_person.foto, - tbl_person.foto_sperre + tbl_person.foto_sperre, + (tbl_bisio.bis::timestamp - tbl_bisio.von::timestamp) as daysout FROM campus.vw_student_lehrveranstaltung JOIN public.tbl_benutzer USING(uid) @@ -200,7 +201,7 @@ $qry = 'SELECT DISTINCT ON if ($lehreinheit != '') $qry .= ' AND vw_student_lehrveranstaltung.lehreinheit_id=' . $db->db_add_param($lehreinheit, FHC_INTEGER); -$qry .= ' ORDER BY nachname, vorname, person_id, tbl_bisio.bis DESC'; +$qry .= ' ORDER BY nachname, vorname, person_id, daysout DESC'; $stsem_obj = new studiensemester(); $stsem_obj->load($studiensemester); diff --git a/cis/private/lehre/pruefung/pruefung.js.php b/cis/private/lehre/pruefung/pruefung.js.php index f2435828d..a9677e808 100644 --- a/cis/private/lehre/pruefung/pruefung.js.php +++ b/cis/private/lehre/pruefung/pruefung.js.php @@ -353,10 +353,9 @@ function writePruefungsTable(e, data, anmeldung) var time = termin[1].substring(0,5); termin = termin[0].split("-"); - // Wie viele Monate vor Prüfungen dürfen sich Studierende anmelden? - // Sperre "deaktiviert" indem man sich 24 Monate vorher anmelden darf + // Studierende dürfen sich 2 Monate vor Prüfungen anmelden var minimumFrist = new Date(termin[0], termin[1]-1,termin[2]); - minimumFrist.setMonth(minimumFrist.getMonth() - 24); + minimumFrist.setMonth(minimumFrist.getMonth() - 2); termin = new Date(termin[0], termin[1]-1,termin[2]); var frist = termin; diff --git a/cis/private/profile/urlaubstool.php b/cis/private/profile/urlaubstool.php index fc77a01d0..7a113f623 100644 --- a/cis/private/profile/urlaubstool.php +++ b/cis/private/profile/urlaubstool.php @@ -16,8 +16,9 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Authors: Christian Paminger , - * Andreas Oesterreicher and - * Rudolf Hangl . + * Andreas Oesterreicher , + * Rudolf Hangl , + * Manuela Thamer */ /** * Seite zum Eintragen von Urlaubstagen @@ -30,11 +31,13 @@ require_once('../../../include/person.class.php'); require_once('../../../include/benutzer.class.php'); require_once('../../../include/mitarbeiter.class.php'); require_once('../../../include/mail.class.php'); +require_once('../../../include/sancho.inc.php'); require_once('../../../include/phrasen.class.php'); require_once('../../../include/globals.inc.php'); require_once('../../../include/sprache.class.php'); require_once('../../../include/zeitaufzeichnung.class.php'); +$datum_obj = new datum(); $sprache = getSprache(); $lang = new sprache(); $lang->load($sprache); @@ -49,8 +52,8 @@ $mehrarbeitsstunden = '0'; $anspruch = '25'; $zaehl=1; $tage=array(); //Array Tage für Kalenderanzeige -$hgfarbe=array_fill(0,44,'#E9ECEE'); //Array mit Hintegrundfarben der Kalenderfelder -$datensatz=array_fill(0,44,0); +$hgfarbe=array_fill(0, 44, '#E9ECEE'); //Array mit Hintegrundfarben der Kalenderfelder +$datensatz=array_fill(0, 44, 0); $freigabevon=array(); $freigabeamum=array(); $vertretung_uid=array(); @@ -60,26 +63,26 @@ $erreichbarkeit_kurzbz=array(); //$monatsname = array("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"); $jahre = array(); //Array Jahreszahlen für Auswahl (immer aktuelles Jahr und die 4 nächsten Jahre) -$akette=array_fill(0,1,0); -$ekette=array_fill(0,1,0); -$links=''; -$rechts=''; -$tag=array(); -$vertretung=''; -$erreichbar=''; -$vgmail=''; -$vtmail=''; -$spmonat=array(); -$hgchange=false; -$wvon=''; -$wbis=''; -$datensatz=''; -$t=getdate(); +$akette = array_fill(0, 1, 0); +$ekette = array_fill(0, 1, 0); +$links = ''; +$rechts = ''; +$tag = array(); +$vertretung = ''; +$erreichbar = ''; +$vgmail = ''; +$vtmail = ''; +$spmonat = array(); +$hgchange = false; +$wvon = ''; +$wbis = ''; +$datensatz = ''; +$t = getdate(); $uid = get_uid(); -$taste=0; +$taste = 0; -$ma= new mitarbeiter(); -for($i=0;$i<6;$i++) +$ma = new mitarbeiter(); +for($i = 0; $i<6; $i++) { $jahre[$i]="$t[year]"+($i-1); } @@ -118,14 +121,13 @@ else } if (isset($_GET['hgfarbe'])) { - $hgfarbe=explode(",",$_GET['hgfarbe']); + $hgfarbe=explode(",", $_GET['hgfarbe']); } else { - if (!isset($_GET['spmonat'])) { - for($i=0;$i<44;$i++) + for($i=0; $i<44; $i++) { if(!isset($hgfarbe[$i]) || $hgfarbe[$i]!='#FFFC7F') $hgfarbe[$i]='#E9ECEE'; @@ -167,71 +169,76 @@ if (isset($_GET['rechts_x']) || isset($_POST['rechts_x'])) //Bereits freigegebenen Eintrag löschen //Eintragung löschen -if((isset($_GET['delete']) && isset($_GET['informSupervisor'])) || (isset($_POST['delete']) && isset($_POST['informSupervisor']))) -{ - $zeitsperre = new zeitsperre(); - $zeitsperre->load($_GET['delete']); - - $vondatum = $zeitsperre->getVonDatum(); - $bisdatum = $zeitsperre->getBisDatum(); - - if(!$zeitsperre->delete($_GET['delete'])) - echo $zeitsperre->errormsg; - - //Mail an Vorgesetzten - $prsn = new person(); - - $vorgesetzter = $ma->getVorgesetzte($uid); - if($vorgesetzter) - { - $to=''; - $fullName =''; - foreach($ma->vorgesetzte as $vg) - { - if($to!='') - { - $to.=', '.$vg.'@'.DOMAIN; - $name = $prsn->getFullNameFromBenutzer($vg); - $fullName.=', '.$name; - } - else - { - $to.=$vg.'@'.DOMAIN; - $name = $prsn->getFullNameFromBenutzer($vg); - $fullName.=$name; - } - } - - $benutzer = new benutzer(); - $benutzer->load($uid); - $message = $p->t('urlaubstool/diesIstEineAutomatischeMail')."\n". - $p->t('urlaubstool/xHatUrlaubGeloescht',array($benutzer->nachname,$benutzer->vorname)).":\n"; - $message.= $p->t('urlaubstool/von')." ".date("d.m.Y", strtotime($vondatum))." ".$p->t('urlaubstool/bis')." ".date("d.m.Y", strtotime($bisdatum))."\n"; - - - $mail = new mail($to, 'vilesci@'.DOMAIN,$p->t('urlaubstool/freigegebenerUrlaubGeloescht'), $message); - if($mail->send()) - { - $vgmail="".$p->t('urlaubstool/VorgesetzteInformiert',array($fullName)).""; - } - else - { - $vgmail="
".$p->t('urlaubstool/fehlerBeimSendenAufgetreten',array($fullName))."!"; - } - } - else - { - $vgmail="
".$p->t('urlaubstool/konnteKeinFreigabemailVersendetWerden').""; - } -} - - -//Eintragung löschen -if((isset($_GET['delete']) || isset($_POST['delete']))) +if(isset($_GET['delete'])) { $zeitsperre = new zeitsperre(); + $zeitsperre->load($_GET['delete']); + + $vondatum = $zeitsperre->getVonDatum(); + $bisdatum = $zeitsperre->getBisDatum(); + $vondatum = $datum_obj->formatDatum($vondatum, 'd.m.Y'); + $bisdatum = $datum_obj->formatDatum($bisdatum, 'd.m.Y'); + if(!$zeitsperre->delete($_GET['delete'])) + { echo $zeitsperre->errormsg; + } + else + { + //Mail an Vorgesetzten + $prsn = new person(); + + $vorgesetzter = $ma->getVorgesetzte($uid); + if($vorgesetzter) + { + $to=''; + $fullName =''; + foreach($ma->vorgesetzte as $vg) + { + if($to!='') + { + $to.=', '.$vg.'@'.DOMAIN; + $name = $prsn->getFullNameFromBenutzer($vg); + $fullName.=', '.$name; + } + else + { + $to.=$vg.'@'.DOMAIN; + $name = $prsn->getFullNameFromBenutzer($vg); + $fullName.=$name; + } + } + + $benutzer = new benutzer(); + $benutzer->load($uid); + + //new sanchomail + $nameMitarbeiter = $benutzer->vorname. " ". $benutzer->nachname; + $beschreibung = $zeitsperre->bezeichnung; + $subject = "Urlaub wurde gelöscht"; + $mailvorlage = 'Sancho_Mail_Urlaub_Loeschen'; + + $from='vilesci@'.DOMAIN; + + //Sanchomail mit Vorlage Sancho Mail Urlaub + $template_data = array( + 'vorgesetzter' => $fullName, + 'nameMitarbeiter' => $nameMitarbeiter, + 'beschreibung' =>$beschreibung, + 'vonDatum' => $vondatum, + 'bisDatum' => $bisdatum + ); + + if (sendSanchoMail($mailvorlage, $template_data, $to, $subject)) + { + $vgmail="".$p->t('urlaubstool/VorgesetzteInformiert', array($fullName)).""; + } + else + { + $vgmail="
".$p->t('urlaubstool/fehlerBeimSendenAufgetreten', array($fullName))."!"; + } + } + } } //Eintragung speichern @@ -255,10 +262,10 @@ if(isset($_GET['speichern']) && isset($_GET['wtag'])) $wtag=$_GET['wtag']; $akette[0]=$wtag[0]; $ekette[0]=$wtag[0]; - for($i=1,$j=0;$iformat("Y-m-d"); - } - } - - foreach ($daysToCheck AS $date) { - $zeitsperre->getSperreByDate($uid, $date, null, zeitsperre::NUR_BLOCKIERENDE_ZEITSPERREN); + $daysToCheck[] = $date->format("Y-m-d"); + } + } - foreach ($zeitsperre->result as $z) + foreach ($daysToCheck as $date) + { + $zeitsperre->getSperreByDate($uid, $date, null, zeitsperre::NUR_BLOCKIERENDE_ZEITSPERREN); + + foreach ($zeitsperre->result as $z) + { + if ($z->zeitsperretyp_kurzbz) { - if ($z->zeitsperretyp_kurzbz) - { - $error = true; + $error = true; - $z->zeitsperretyp_kurzbz == 'Urlaub' ? - $vgmail.='
'.$p->t('zeitsperre/urlaubBereitsEingetragen').'' : - $vgmail .= '
'.$p->t('zeitsperre/zeitsperreEingetragen',[$date, $z->zeitsperretyp_kurzbz]). ''; + $z->zeitsperretyp_kurzbz == 'Urlaub' ? + $vgmail.='
'.$p->t('zeitsperre/urlaubBereitsEingetragen').'' : + $vgmail .= '
'.$p->t('zeitsperre/zeitsperreEingetragen', [$date, $z->zeitsperretyp_kurzbz]). ''; - break; - } + break; } } + } } if(!$error) { - for($i=0;$ierrormsg; } - } if(!$error) { //Mail an Vorgesetzten - $prsn = new person(); + $prsn = new person(); $vorgesetzter = $ma->getVorgesetzte($uid); if($vorgesetzter) @@ -384,31 +389,67 @@ if(isset($_GET['speichern']) && isset($_GET['wtag'])) $benutzer = new benutzer(); $benutzer->load($uid); - $message = $p->t('urlaubstool/diesIstEineAutomatischeMail')."\n". - $p->t('urlaubstool/xHatNeuenUrlaubEingetragen',array($benutzer->nachname,$benutzer->vorname)).":\n"; - for($i=0;$ivorname. " ". $benutzer->nachname; + $beschreibung = (!empty($zeitsperre->bezeichnung) ? $zeitsperre->bezeichnung : $zeitsperre->beschreibung); + + // $message = $p->t('urlaubstool/diesIstEineAutomatischeMail')."\n". + // $p->t('urlaubstool/xHatNeuenUrlaubEingetragen',array($benutzer->nachname,$benutzer->vorname)).":\n"; + + for($i=0; $it('urlaubstool/von')." ".date("d.m.Y", strtotime($akette[$i]))." ".$p->t('urlaubstool/bis')." ".date("d.m.Y", strtotime($ekette[$i]))."\n"; + $von = date("d.m.Y", strtotime($akette[$i])); + $bis = date("d.m.Y", strtotime($ekette[$i])); } + //Ab September wird das neue Jahr uebergeben - if(date("m",strtotime($akette[0]))>=9) - $jahr = date("Y", strtotime($akette[0]))+1; - else - $jahr = date("Y", strtotime($akette[0])); + if(date("m", strtotime($akette[0]))>=9) + $jahr = date("Y", strtotime($akette[0]))+1; + else + $jahr = date("Y", strtotime($akette[0])); - $message.="\n".$p->t('urlaubstool/sieKoennenDiesenUnterFolgenderAdresseFreigeben').":\n". - APP_ROOT."cis/private/profile/urlaubsfreigabe.php?uid=$uid&year=".$jahr; + $link = " Link Urlaubstool "; - $mail = new mail($to, 'vilesci@'.DOMAIN,$p->t('urlaubstool/freigabeansuchenUrlaub'), $message); - if($mail->send()) + $subject = "Freigabeansuchen Urlaub"; + $mailvorlage = 'Sancho_Mail_Urlaub_Neu'; + + $from='vilesci@'.DOMAIN; + + // Überprüfen, ob addon casetime aktiv ist + $addon_obj = new addon(); + $addoncasetime = $addon_obj->checkActiveAddon("casetime"); + $urlaubssaldo = ""; + if($addoncasetime) { - $vgmail="".$p->t('urlaubstool/freigabemailWurdeVersandt',array($fullName)).""; + require_once('../../../addons/casetime/config.inc.php'); + require_once('../../../addons/casetime/include/functions.inc.php'); + $urlaubssaldo = getCastTimeUrlaubssaldo($uid); + $urlaubssaldo = $urlaubssaldo->{'AktuellerStand'}; + } + + //Sanchomail mit Vorlage Sancho Mail Urlaub Neu + $template_data = array( + 'vorgesetzter' => $fullName, + 'nameMitarbeiter' => $nameMitarbeiter, + 'beschreibung' =>$beschreibung, + 'vonDatum' => $von, + 'bisDatum' => $bis, + 'Link'=> $link, + 'urlaubssaldo' => $urlaubssaldo + ); + + + if (sendSanchoMail($mailvorlage, $template_data, $to, $subject)) + + // $mail = new mail($to, 'vilesci@'.DOMAIN,$p->t('urlaubstool/freigabeansuchenUrlaub'), $message); + //if($mail->send()) + { + $vgmail="".$p->t('urlaubstool/freigabemailWurdeVersandt', array($fullName)).""; } else { - $vgmail="
".$p->t('urlaubstool/fehlerBeimSendenAufgetreten',array($to))."!"; + $vgmail="
".$p->t('urlaubstool/fehlerBeimSendenAufgetreten', array($to))."!"; } } else @@ -422,14 +463,13 @@ if(isset($_GET['speichern']) && isset($_GET['wtag'])) } } } - } //Eintragungen laden -if ((isset($wmonat) || isset($wmonat))&&(isset($wjahr) || isset($wjahr))) +if ((isset($wmonat) || isset($wmonat)) && (isset($wjahr) || isset($wjahr))) { //Urlaubstageage markieren - $mbeginn=mktime(0, 0, 0, ($wmonat+1) , 1, $jahre[$wjahr]); + $mbeginn=mktime(0, 0, 0, ($wmonat+1), 1, $jahre[$wjahr]); $ttt=getdate($mbeginn); $wotag="$ttt[wday]"; if ($wotag==0) @@ -447,22 +487,22 @@ if ((isset($wmonat) || isset($wmonat))&&(isset($wjahr) || isset($wjahr))) } //$wvon=date("Y-m-d",mktime(0, 0, 0, ($wmonat+1) , 1, $jahre[$wjahr])); //$wbis=date("Y-m-d",mktime(0, 0, 0, ($wmonat+1) , $mende, $jahre[$wjahr])); - $ttt=getdate(mktime(0, 0, 0, ($wmonat+1) , $mende, $jahre[$wjahr])); + $ttt=getdate(mktime(0, 0, 0, ($wmonat+1), $mende, $jahre[$wjahr])); if($wmonat==0) { - $wvon=date("Y-m-d",mktime(0, 0, 0, 12 , $mendev-($wotag-1), ($jahre[$wjahr])-1)); + $wvon=date("Y-m-d", mktime(0, 0, 0, 12, $mendev-($wotag-1), ($jahre[$wjahr])-1)); } else { - $wvon=date("Y-m-d",mktime(0, 0, 0, ($wmonat) , $mendev-($wotag-1), ($jahre[$wjahr]))); + $wvon=date("Y-m-d", mktime(0, 0, 0, ($wmonat), $mendev-($wotag-1), ($jahre[$wjahr]))); } if($wmonat==11) { - $wbis=date("Y-m-d",mktime(0, 0, 0, 1 , (7-($ttt['wday']==0?7:$ttt['wday'])), $jahre[$wjahr]+1)); + $wbis=date("Y-m-d", mktime(0, 0, 0, 1, (7-($ttt['wday']==0?7:$ttt['wday'])), $jahre[$wjahr]+1)); } else { - $wbis=date("Y-m-d",mktime(0, 0, 0, ($wmonat+2) , (7-($ttt['wday']==0?7:$ttt['wday'])), $jahre[$wjahr])); + $wbis=date("Y-m-d", mktime(0, 0, 0, ($wmonat+2), (7-($ttt['wday']==0?7:$ttt['wday'])), $jahre[$wjahr])); } $qry="SELECT * FROM campus.tbl_zeitsperre WHERE zeitsperretyp_kurzbz='Urlaub' @@ -477,19 +517,19 @@ if ((isset($wmonat) || isset($wmonat))&&(isset($wjahr) || isset($wjahr))) { //echo " ".$row->vondatum; //echo "-".$row->bisdatum; - for($i=1;$i<=$mende+($wotag-1)+(7-($ttt['wday']==0?7:$ttt['wday']));$i++) + for($i=1; $i<=$mende+($wotag-1)+(7-($ttt['wday']==0?7:$ttt['wday'])); $i++) { - if(date("Y-m-d",mktime(0, 0, 0, ($wmonat+1) , $i-$wotag+1, $jahre[$wjahr]))>=$row->vondatum - && date("Y-m-d",mktime(0, 0, 0, ($wmonat+1) , $i-$wotag+1, $jahre[$wjahr]))<=$row->bisdatum) + if(date("Y-m-d", mktime(0, 0, 0, ($wmonat+1), $i-$wotag+1, $jahre[$wjahr]))>=$row->vondatum + && date("Y-m-d", mktime(0, 0, 0, ($wmonat+1), $i-$wotag+1, $jahre[$wjahr]))<=$row->bisdatum) { - if($row->freigabevon!='' && $row->vondatum<=date("Y-m-d",time())) + if($row->freigabevon!='' && $row->vondatum<=date("Y-m-d", time())) { $hgfarbe[$i]='#bbb'; } - elseif ($row->freigabevon!='' && $row->vondatum>date("Y-m-d",time())) - { + elseif ($row->freigabevon!='' && $row->vondatum>date("Y-m-d", time())) + { $hgfarbe[$i]='#CDDDEE'; - } + } else { $hgfarbe[$i]='#FFFC7F'; @@ -513,7 +553,7 @@ if ((isset($wmonat) || isset($wmonat))&&(isset($wjahr) || isset($wjahr))) } } } - for($i=$mende+$wotag+(7-($ttt['wday']==0?7:$ttt['wday']));$i<44;$i++) + for($i=$mende+$wotag+(7-($ttt['wday']==0?7:$ttt['wday'])); $i<44; $i++) { $hgfarbe[$i]='#E9ECEE'; $datensatz[$i]=0; @@ -567,58 +607,60 @@ echo ' } }); '; -?> - - - <?php echo $p->t('urlaubstool/urlaubstool');?> - + }, + select: function(event, ui) + { + //Ausgeaehlte Ressource zuweisen und Textfeld wieder leeren + $("#vertretung").val(ui.item.uid); + } + }); +}) + + +<?php echo $p->t('urlaubstool/urlaubstool');?> + ".$p->t('urlaubstool/urlaubstool')." (".$uid.")"; + //Anzeige Resturlaubsberechnung echo ''; echo ''; -for($i=1;$i<=7;$i++) +for($i=1; $i<=7; $i++) echo "\n".''; echo ''; -for ($i=0;$i<6;$i++) +for ($i=0; $i<6; $i++) { echo "\n".''; - for ($j=1;$j<8;$j++) + for ($j=1; $j<8; $j++) { echo "\n"; - if(strlen(stristr($tage[$j+7*$i],"."))>0) + if(strlen(stristr($tage[$j+7*$i], "."))>0) { if($j%6==0 || $j==7) { @@ -822,7 +864,7 @@ for ($i=0;$i<6;$i++) } if($tage[$j+7*$i]!='') { - if($hgfarbe[$j+7*$i]=='#FFFC7F' )//|| $hgfarbe[$j+7*$i]=='#CDDDEE') + if($hgfarbe[$j+7*$i]=='#FFFC7F')//|| $hgfarbe[$j+7*$i]=='#CDDDEE') { echo 't('urlaubstool/erreichbar').': '.$erreichbarkeit_kurzbz[$j+7*$i].'">'.$tage[$j+7*$i].'
';; $k=$j+7*$i; @@ -832,16 +874,16 @@ for ($i=0;$i<6;$i++) elseif($hgfarbe[$j+7*$i]=='#E9ECEE') { echo ''.$tage[$j+7*$i].'
'; - if(strlen(stristr($tage[$j+7*$i],"."))>0) + if(strlen(stristr($tage[$j+7*$i], "."))>0) { echo ''; + value="'.date("Y-m-d", mktime(0, 0, 0, substr($tage[$j+7*$i], 3, 2), substr($tage[$j+7*$i], 0, 2), substr($tage[$j+7*$i], 6, 4))).'" + id="'.date("d.m.Y", mktime(0, 0, 0, substr($tage[$j+7*$i], 3, 2), substr($tage[$j+7*$i], 0, 2), substr($tage[$j+7*$i], 6, 4))).'">'; } else { - echo ''; + echo ''; } } else @@ -853,12 +895,12 @@ for ($i=0;$i<6;$i++) } elseif(isset($freigabeamum[$j+7*$i])) { - echo 'freigegeben '; + echo 'freigegeben '; if($hgfarbe[$j+7*$i]=='#CDDDEE') { $k=$j+7*$i; - echo ""; - echo 'loeschen'; + echo ""; + echo 'loeschen'; } } else diff --git a/cis/private/profile/zeitsperre_resturlaub.php b/cis/private/profile/zeitsperre_resturlaub.php index 16ed393f9..46d342971 100644 --- a/cis/private/profile/zeitsperre_resturlaub.php +++ b/cis/private/profile/zeitsperre_resturlaub.php @@ -31,6 +31,7 @@ require_once('../../../include/person.class.php'); require_once('../../../include/benutzer.class.php'); require_once('../../../include/mitarbeiter.class.php'); require_once('../../../include/mail.class.php'); +require_once('../../../include/sancho.inc.php'); require_once('../../../include/benutzerberechtigung.class.php'); require_once('../../../include/phrasen.class.php'); require_once('../../../include/zeitaufzeichnung.class.php'); @@ -65,6 +66,7 @@ if(isset($_GET['uid'])) die($p->t('global/FuerDieseAktionBenoetigenSieAdministrationsrechte')); } } + $datum_obj = new datum(); $ma= new mitarbeiter(); @@ -100,6 +102,7 @@ $num_rows_stunde=$db->db_num_rows($result_stunde); loadAddons(); @@ -109,6 +112,9 @@ foreach($addon_obj->result as $addon) echo ''; } +// Überprüfen, ob addon casetime aktiv ist +$addoncasetime = $addon_obj->checkActiveAddon("casetime"); + // Wenn Seite fertig geladen ist Addons aufrufen echo ' '; ?> @@ -316,6 +324,10 @@ function showHideStudeDropDown() { document.getElementById('vonStd').style.visibility = 'hidden'; document.getElementById('bisStd').style.visibility = 'hidden'; + + // Stunde entfernen + document.getElementById('vonstunde').selectedIndex = 0; + document.getElementById('bisstunde').selectedIndex = 0; } else { @@ -339,6 +351,17 @@ function showHideStudeDropDown() {'AktuellerStand'}; +} //Zeitsperre Speichern if(isset($_GET['type']) && ($_GET['type']=='edit_sperre' || $_GET['type']=='new_sperre')) @@ -502,17 +525,24 @@ if(isset($_GET['type']) && ($_GET['type']=='edit_sperre' || $_GET['type']=='new_ $zeitsperre->updateamum = date('Y-m-d H:i:s'); $zeitsperre->updatevon = $uid; + // Zeitsperretyp Beschreibung + $zeitsperre->loadZeitsperretyp($zeitsperre->zeitsperretyp_kurzbz); + $zeitsperre->beschreibung = $zeitsperre->result[0]->beschreibung; + if($zeitsperre->save()) { echo "

".$p->t('global/erfolgreichgespeichert')."

"; if(URLAUB_TOOLS) { - if($zeitsperre->new && $zeitsperre->zeitsperretyp_kurzbz=='Urlaub') + //Beim Anlegen von neuen Urlauben oder neuem Zeitausgleich wird ein Mail an den Vorgesetzten versendet + if($zeitsperre->new && ($zeitsperre->zeitsperretyp_kurzbz=='Urlaub' || $zeitsperre->zeitsperretyp_kurzbz == 'ZA') + || !$zeitsperre->new && $zeitsperre->zeitsperretyp_kurzbz == 'ZA') { //Beim Anlegen von neuen Urlauben wird ein Mail an den Vorgesetzten versendet um diesen Freizugeben $prsn = new person(); - $vorgesetzter = $ma->getVorgesetzte($uid); + $vorgesetzter = $ma->getVorgesetzte($uid); + if($vorgesetzter) { $to=''; @@ -531,21 +561,75 @@ if(isset($_GET['type']) && ($_GET['type']=='edit_sperre' || $_GET['type']=='new_ $benutzer = new benutzer(); $benutzer->load($uid); + $nameMitarbeiter = $benutzer->vorname. " ". $benutzer->nachname; + $beschreibung = (!empty($zeitsperre->bezeichnung) ? $zeitsperre->bezeichnung : $zeitsperre->beschreibung); + if($datum_obj->formatDatum($zeitsperre->vondatum, 'm')>=9) $jahr = $datum_obj->formatDatum($zeitsperre->vondatum, 'Y')+1; else $jahr = $datum_obj->formatDatum($zeitsperre->vondatum, 'Y'); - $message = "Dies ist eine automatische Mail! \n". - "$benutzer->nachname $benutzer->vorname hat einen neuen Urlaub eingetragen:\n". - "$zeitsperre->bezeichnung von ".$datum_obj->formatDatum($zeitsperre->vondatum,'d.m.Y')." bis ".$datum_obj->formatDatum($zeitsperre->bisdatum,'d.m.Y')."\n\n". - "Sie können diesen unter folgender Adresse freigeben:\n". - APP_ROOT."cis/private/profile/urlaubsfreigabe.php?uid=$uid&year=".$jahr; - $from='vilesci@'.DOMAIN; - $mail = new mail($to, $from, 'Freigabeansuchen', $message); - if($mail->send()) + $von = $datum_obj->formatDatum($zeitsperre->vondatum,'d.m.Y'); + $bis = $datum_obj->formatDatum($zeitsperre->bisdatum,'d.m.Y'); + + // Wenn ein neuer Urlaub eingetragen wurde, Freigabemail-Text + if ($zeitsperre->zeitsperretyp_kurzbz=='Urlaub') { - echo "
".$p->t('urlaubstool/freigabemailWurdeVersandt',array($fullName)).""; + $link = " Link Urlaubstool "; + + $subject = "Freigabeansuchen Urlaub"; + $mailvorlage = 'Sancho_Mail_Urlaub_Neu'; + + $template_data = array( + 'vorgesetzter' => $fullName, + 'nameMitarbeiter' => $nameMitarbeiter, + 'beschreibung' =>$beschreibung, + 'vonDatum' => $von, + 'bisDatum' => $bis, + 'Link'=> $link, + 'urlaubssaldo' => $urlaubssaldo + ); + } + + // Wenn ein Zeitausgleich eingetragen wurde... + if ($zeitsperre->zeitsperretyp_kurzbz == 'ZA') + { + // ...Mail-Text für neuen Zeitausgleich + if ($zeitsperre->new) + { + $subject = $p->t('urlaubstool/zeitausgleichNeu'); + $mailvorlage = 'Sancho_Content_Zeitausgleich'; + } + // ...Mail-Text für geaenderten Zeitausgleich + else + { + $subject = $subject = $p->t('urlaubstool/zeitausgleichGeaendert'); + $mailvorlage = 'Sancho_Content_ZA_Aendern'; + } + $template_data = array( + 'vorgesetzter' => $fullName, + 'nameMitarbeiter' => $nameMitarbeiter, + 'beschreibung' =>$beschreibung, + 'vonDatum' => $von, + 'bisDatum' => $bis, + 'Saldo'=> $zeitsaldo + ); + } + + $from='vilesci@'.DOMAIN; + + //Sanchomail mit Vorlage Sancho Mail Zeitausgleich + if (sendSanchoMail($mailvorlage, $template_data, $to, $subject)) + { + if ($zeitsperre->zeitsperretyp_kurzbz=='Urlaub') + { + echo "
". $p->t('urlaubstool/freigabemailWurdeVersandt', array($fullName)). ""; + } + + if ($zeitsperre->zeitsperretyp_kurzbz == 'ZA') + { + echo "
". $p->t('urlaubstool/VorgesetzteInformiert', array($fullName)). ""; + } } else { @@ -572,8 +656,15 @@ if((isset($_GET['type']) && $_GET['type']=='delete_sperre' && isset($_GET['infor $zeitsperre = new zeitsperre(); $zeitsperre->load($_GET['id']); - $vondatum = $zeitsperre->getVonDatum(); - $bisdatum = $zeitsperre->getBisDatum(); + $zeitsperre->loadZeitsperretyp($zeitsperre->zeitsperretyp_kurzbz); + $zeitsperre->beschreibung = $zeitsperre->result[0]->beschreibung; + + $vonDatum = $zeitsperre->getVonDatum(); + $bisDatum = $zeitsperre->getBisDatum(); + + $vonDatum = $datum_obj->formatDatum($vonDatum ,'d.m.Y'); + $bisDatum = $datum_obj->formatDatum($bisDatum,'d.m.Y'); + if(!$zeitsperre->delete($_GET['id'])) echo $zeitsperre->errormsg; @@ -604,16 +695,32 @@ if((isset($_GET['type']) && $_GET['type']=='delete_sperre' && isset($_GET['infor $benutzer = new benutzer(); $benutzer->load($uid); - $message = $p->t('urlaubstool/diesIstEineAutomatischeMail')."\n". - $p->t('urlaubstool/xHatUrlaubGeloescht',array($benutzer->nachname,$benutzer->vorname)).":\n"; + $nameMitarbeiter = $benutzer->vorname. " ". $benutzer->nachname; + $beschreibung = (!empty($zeitsperre->bezeichnung) ? $zeitsperre->bezeichnung : $zeitsperre->beschreibung); + if ($zeitsperre->zeitsperretyp_kurzbz == 'Urlaub') + { + $subject = $p->t('urlaubstool/UrlaubGeloescht'); + $mailvorlage = 'Sancho_Mail_Urlaub_Loeschen'; + } - $message.= $p->t('urlaubstool/von')." ".date("d.m.Y", strtotime($vondatum))." ".$p->t('urlaubstool/bis')." ".date("d.m.Y", strtotime($bisdatum))."\n"; + if ($zeitsperre->zeitsperretyp_kurzbz == 'ZA') + { + $subject = $p->t('urlaubstool/zeitausgleichGeloescht'); + $mailvorlage = 'Sancho_Mail_ZA_loeschen'; + } + $template_data = array( + 'vorgesetzter' => $fullName, + 'nameMitarbeiter' => $nameMitarbeiter, + 'beschreibung' =>$beschreibung, + 'vonDatum' => $vonDatum, + 'bisDatum' => $bisDatum + ); - $mail = new mail($to, 'vilesci@'.DOMAIN,$p->t('urlaubstool/freigegebenerUrlaubGeloescht'), $message); - if($mail->send()) + if (sendSanchoMail($mailvorlage, $template_data, $to, $subject)) { + echo "" . $p->t('global/erfolgreichgelöscht') . '
'; echo "
".$p->t('urlaubstool/VorgesetzteInformiert',array($fullName)).""; } else @@ -621,6 +728,7 @@ if((isset($_GET['type']) && $_GET['type']=='delete_sperre' && isset($_GET['infor echo "
".$p->t('urlaubstool/fehlerBeimSendenAufgetreten',array($fullName))."!"; } } + else { $vgmail="
".$p->t('urlaubstool/konnteKeinFreigabemailVersendetWerden').""; @@ -632,6 +740,7 @@ if(isset($_GET['type']) && $_GET['type']=='delete_sperre' && !isset($_GET['infor { $zeit = new zeitsperre(); $zeit->load($_GET['id']); + //pruefen ob die person die den datensatz loeschen will auch der //besitzer dieses datensatzes ist if($zeit->mitarbeiter_uid==$uid) @@ -698,7 +807,7 @@ if(count($zeit->result)>0) $content_table.=""; if ($row->vondatum < $gesperrt_bis AND in_array($row->zeitsperretyp_kurzbz,$typen_arr)) $content_table .= ''; - else if($row->vondatum>=date("Y-m-d",time()) && $row->zeitsperretyp_kurzbz=='Urlaub') + else if($row->vondatum>=date("Y-m-d",time()) && ($row->zeitsperretyp_kurzbz=='Urlaub' || $row->zeitsperretyp_kurzbz == 'ZA')) { $content_table.="\n"; } @@ -779,7 +888,7 @@ $content_form.= '"; $content_form.= ''; +//$content_form.= ' +//'; + + $content_form.= "'; + + $content_form.= '
'; @@ -664,7 +706,7 @@ echo ' style="vertical-align: middle;" alt="links">  \n"; echo ' '; echo ' '; //Tage -$mbeginn=mktime(0, 0, 0, ($wmonat+1) , 1, $jahre[$wjahr]); +$mbeginn=mktime(0, 0, 0, ($wmonat+1), 1, $jahre[$wjahr]); $ttt=getdate($mbeginn); $wotag="$ttt[wday]"; if ($wotag==0) @@ -742,9 +784,9 @@ else { $mendev = cal_days_in_month(CAL_GREGORIAN, ($wmonat), $jahre[$wjahr]); } -$ttt=getdate(mktime(0, 0, 0, ($wmonat+1) , $mende, $jahre[$wjahr])); +$ttt=getdate(mktime(0, 0, 0, ($wmonat+1), $mende, $jahre[$wjahr])); //echo "monatsende:".$mende; -for($i=1;$i<43;$i++) +for($i=1; $i<43; $i++) { if($i>=$wotag && $zaehl<=$mende) { @@ -755,22 +797,22 @@ for($i=1;$i<43;$i++) { if($wmonat==0) { - $tage[$i]=date("d.m.Y", mktime(0, 0, 0, 12 , $mendev+$i-($wotag-1), $jahre[$wjahr]-1)); + $tage[$i]=date("d.m.Y", mktime(0, 0, 0, 12, $mendev+$i-($wotag-1), $jahre[$wjahr]-1)); } else { - $tage[$i]=date("d.m.Y", mktime(0, 0, 0, ($wmonat) , $mendev+$i-($wotag-1), $jahre[$wjahr])); + $tage[$i]=date("d.m.Y", mktime(0, 0, 0, ($wmonat), $mendev+$i-($wotag-1), $jahre[$wjahr])); } } elseif ($i>$mende && $i<=$mende+($wotag-1)+(7-($ttt['wday']==0?7:$ttt['wday']))) { if($wmonat==11) { - $tage[$i]=date("d.m.Y", mktime(0, 0, 0, 1 , $i-$mende-$wotag+1, $jahre[$wjahr+1])); + $tage[$i]=date("d.m.Y", mktime(0, 0, 0, 1, $i-$mende-$wotag+1, $jahre[$wjahr+1])); } else { - $tage[$i]=date("d.m.Y", mktime(0, 0, 0, ($wmonat+2) , $i-$mende-$wotag+1, $jahre[$wjahr])); + $tage[$i]=date("d.m.Y", mktime(0, 0, 0, ($wmonat+2), $i-$mende-$wotag+1, $jahre[$wjahr])); } } else @@ -788,17 +830,17 @@ echo '
'.$tagbez[$lang->index][$i].'
".$p->t('zeitsperre/edit')." ".$p->t('zeitsperre/loeschen')."
'.$p->t('global/von').'\n"; +$content_form.= "
'.$p->t('global/bis').' '; //dropdown fuer bisstunde $content_form.= $p->t('zeitsperre/stundeInklusive'); -$content_form.= " \n"; if($zeitsperre->bisstunde=='') $content_form.= "\n"; @@ -836,6 +945,10 @@ if($result = $db->db_query($qry)) } $content_form.= '
'.$p->t('global/bezeichnung').'
".$p->t('urlaubstool/erreichbarkeit')."'; + + if(isset($_GET['type']) && $_GET['type']=='edit') $content_form.= ""; @@ -875,6 +992,7 @@ echo '
'; ?>
+ showHideStudeDropDown();'; ?> diff --git a/cis/private/tools/zeitaufzeichnung.php b/cis/private/tools/zeitaufzeichnung.php index ff8e863e2..773582177 100644 --- a/cis/private/tools/zeitaufzeichnung.php +++ b/cis/private/tools/zeitaufzeichnung.php @@ -605,9 +605,14 @@ echo ' { projphasenhtml += "'; + echo ''; } echo ''; } @@ -1379,7 +1393,27 @@ if ($projekt->getProjekteMitarbeiter($user, true)) } } echo ''; - echo '

'; + echo '
'; + + if (defined('DEFAULT_ALLIN_DIENSTVERTRAG') && DEFAULT_ALLIN_DIENSTVERTRAG != '') + { + $bisver = new bisverwendung(); + $bisver->getLastVerwendung($user); + // $ba1code = $bisver->ba1code; + $ba1code = null; + + if (in_array($bisver->ba1code, DEFAULT_ALLIN_DIENSTVERTRAG)) + { + echo '

'; + } + else + echo '
'; + } + else + echo '
'; + + + if (!$adminView) { diff --git a/cis/private/tools/zeitaufzeichnung_projektphasen.php b/cis/private/tools/zeitaufzeichnung_projektphasen.php index 053f38b91..05df74443 100644 --- a/cis/private/tools/zeitaufzeichnung_projektphasen.php +++ b/cis/private/tools/zeitaufzeichnung_projektphasen.php @@ -86,6 +86,7 @@ if (isset($_GET['projekt_kurzbz'])) $item['bezeichnung'] = $row->bezeichnung; $item['start'] = $datum_obj->formatDatum($row->start, 'd.m.Y'); $item['ende'] = $datum_obj->formatDatum($row->ende, 'd.m.Y'); + $item['zeitaufzeichnung_erlaubt'] = $row->zeitaufzeichnung; $result_obj[] = $item; } } diff --git a/cis/testtool/admin/uebersichtFragen.php b/cis/testtool/admin/uebersichtFragen.php index 50963a337..0342abd05 100644 --- a/cis/testtool/admin/uebersichtFragen.php +++ b/cis/testtool/admin/uebersichtFragen.php @@ -1,263 +1,339 @@ -, - */ -require_once("../../../config/cis.config.inc.php"); -require_once('../../../include/basis_db.class.php'); -require_once("../../../include/gebiet.class.php"); -require_once("../../../include/frage.class.php"); -require_once("../../../include/vorschlag.class.php"); -require_once('../../../include/functions.inc.php'); -require_once("../../../include/benutzerberechtigung.class.php"); - -if (!$db = new basis_db()) - die('Fehler beim Oeffnen der Datenbankverbindung'); -?> - - - - - Testool Fragen Übersicht - - - -getBerechtigungen($user); - -if(!$rechte->isBerechtigt('basis/testtool', null, 's')) - die('Sie haben keine Berechtigung für diese Seite'); - -$gebiet = new gebiet(); -$gebiet->getAll(); -$sprache = (isset($_REQUEST['Sprache'])?$_REQUEST['Sprache']:'German'); -$Auswahlgebiet = (isset($_REQUEST['AuswahlGebiet'])?$_REQUEST['AuswahlGebiet']:''); -$loesungen = (isset($_REQUEST['loesungen']) && $_REQUEST['loesungen'] != '' ? true:false); - -echo '
- - - - - - - - - - - - - - -
Gebiet:
Sprache: -
-Mit Lösungen -

'; - - -if(isset($_REQUEST['AuswahlGebiet'])) -{ - $gebiet_id = $_REQUEST['AuswahlGebiet']; - - $gebietdetails = new gebiet(); - $gebietdetails->load($gebiet_id); - - $qry = "SELECT DISTINCT UPPER(typ||kurzbz) AS studiengang - FROM testtool.tbl_ablauf JOIN public.tbl_studiengang USING (studiengang_kz) - WHERE gebiet_id=".$db->db_add_param($gebiet_id)." - ORDER BY studiengang"; - $result = $db->db_query($qry); - - if ($gebietdetails) - { - echo ' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Gebiet:'.$gebietdetails->bezeichnung.'
Verwendet in den Studiengängen:'; - $i=1; - while ($row = $db->db_fetch_object($result)) - { - echo $row->studiengang.($db->db_num_rows($result)>1 && $db->db_num_rows($result)>$i?', ':''); - $i++; - if ($i % 10 == 0) - echo '
'; - } - echo '
  
Beschreibung:'.($gebietdetails->beschreibung!=''?$gebietdetails->beschreibung:'-').'
Zeit:'.$gebietdetails->zeit.'
Multipleresponse:'.($gebietdetails->multipleresponse==true?'Ja':'Nein').'
Gestellte Fragen:'.$gebietdetails->maxfragen.'
Zufallsfrage:'.($gebietdetails->zufallfrage==true?'Ja':'Nein').'
Zufallsvorschlag:'.($gebietdetails->zufallvorschlag==true?'Ja':'Nein').'
Startlevel:'.($gebietdetails->level_start!=''?$gebietdetails->level_start:'Keines').'
Höheres Level nach:'.($gebietdetails->level_sprung_auf!=''?$gebietdetails->level_sprung_auf.' richtigen Antwort(en)':'-').'
Niedrigeres Level nach:'.($gebietdetails->level_sprung_ab!=''?$gebietdetails->level_sprung_ab.' falschen Antwort(en)':'-').'
Levelgleichverteilung:'.($gebietdetails->levelgleichverteilung==true?'Ja':'Nein').'
Maximalpunkte:'.$gebietdetails->maxpunkte.'
Antworten pro Zeile:'.$gebietdetails->antwortenprozeile.'


'; - } - - $frage = new frage(); - $frage->getFragenGebiet($gebiet_id); - - foreach($frage->result as $fragen) - { - $sprachevorschlag = new vorschlag(); - $spracheFrage = new frage(); - $spracheFrage->getFrageSprache($fragen->frage_id, $sprache); - - echo "<NR:".$fragen->nummer.($fragen->level!=""?"  Level: ".$fragen->level."":"").($fragen->demo=="t"?"  Demo":"").">
"; - //Sound einbinden - if($spracheFrage->audio!='') - { - echo ' '; - } - // FRAGE anzeigen - echo "$spracheFrage->text

\n"; - - // Bild einbinden wenn vorhanden - if($spracheFrage->bild!='') - echo "

\n"; - - echo"
"; - - // ANTWORTEN anzeigen - $sprachevorschlag->getVorschlag($fragen->frage_id, $sprache, $random=false); - $anzahlBild = 0; - foreach($sprachevorschlag->result as $vor) - { - $vorschlag = new vorschlag(); - $vorschlag->loadVorschlagSprache($vor->vorschlag_id, $sprache); - - if($vorschlag->bild == '') - { - if ($loesungen) - { - echo ''; - } - else - { - echo ''; - } - } - if($vorschlag->bild!='') - { - // zeilenumbruch nach 4 bilder - if($anzahlBild%4==0) - echo ""; - echo ""; - } - else - { - echo ""; - } - - $anzahlBild++; - } - if($vorschlag->audio!='') - { - echo ' '; - } - - } - echo "
'.$vor->nummer.''.$vor->punkte.' '.$vorschlag->text.'
'.$vor->nummer.' '.$vorschlag->text.'
"; - echo "
"; - if ($loesungen) - { - echo "
".$vor->punkte."


"; - } -} -?> - +, + */ +require_once("../../../config/cis.config.inc.php"); +require_once('../../../include/basis_db.class.php'); +require_once("../../../include/gebiet.class.php"); +require_once("../../../include/frage.class.php"); +require_once("../../../include/vorschlag.class.php"); +require_once('../../../include/functions.inc.php'); +require_once("../../../include/benutzerberechtigung.class.php"); +require_once('../../../include/studiengang.class.php'); +require_once('../../../include/ablauf.class.php'); + +if (!$db = new basis_db()) + die('Fehler beim Oeffnen der Datenbankverbindung'); +?> + + + + + Testool Fragen Übersicht + + + +getBerechtigungen($user); + +if(!$rechte->isBerechtigt('basis/testtool', null, 's')) + die('Sie haben keine Berechtigung für diese Seite'); + +$gebiet = new gebiet(); +$gebiet->getAll(); +$sprache = (isset($_REQUEST['Sprache'])?$_REQUEST['Sprache']:'German'); +$Auswahlgebiet = (isset($_REQUEST['AuswahlGebiet'])?$_REQUEST['AuswahlGebiet']:''); +$loesungen = (isset($_REQUEST['loesungen']) && $_REQUEST['loesungen'] != '' ? true:false); + +$studiengang = new studiengang(); +$studiengang->getAll('typ, kurzbz', false); +$stg_kz = (isset($_GET['stg_kz'])?$_GET['stg_kz']:'-1'); +$gebiet_id = (isset($_GET['gebiet_id'])?$_GET['gebiet_id']:''); + +echo ' + + + + + +'; +/*echo '';*/ +echo ' + + + + + + + + + + +
Studiengang:'; +//Liste der Studiengänge +echo ''; +echo '
Gebiet:'; +//Liste der Gebiete +$qry = "SELECT * FROM testtool.tbl_ablauf WHERE studiengang_kz=".$db->db_add_param($stg_kz); +$anzahl = $db->db_num_rows($db->db_query($qry)); + +if ($stg_kz !== "-1" && $anzahl !== 0) +{ + $qry = "SELECT * FROM testtool.tbl_gebiet LEFT JOIN testtool.tbl_ablauf USING (gebiet_id) + WHERE studiengang_kz=".$db->db_add_param($stg_kz)." ORDER BY semester,reihung"; +} +else + $qry = "SELECT * FROM testtool.tbl_gebiet ORDER BY bezeichnung"; + +if (($anzahl !== 0) || ($stg_kz == '-1') && ($stg_kz !== '')) +{ + if ($result = $db->db_query($qry)) + { + echo ' '; + } +} +elseif (($anzahl == 0)) +{ + echo 'Keine Gebiete für diesen Studiengang'; +} +echo '
Sprache: +
+Mit Lösungen +

'; + + +if(isset($_REQUEST['AuswahlGebiet'])) +{ + $gebiet_id = $_REQUEST['AuswahlGebiet']; + + $gebietdetails = new gebiet(); + $gebietdetails->load($gebiet_id); + + $qry = "SELECT DISTINCT UPPER(typ||kurzbz) AS studiengang + FROM testtool.tbl_ablauf JOIN public.tbl_studiengang USING (studiengang_kz) + WHERE gebiet_id=".$db->db_add_param($gebiet_id)." + ORDER BY studiengang"; + $result = $db->db_query($qry); + + if ($gebietdetails) + { + echo ' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Gebiet:'.$gebietdetails->bezeichnung.'
Verwendet in den Studiengängen:'; + $i=1; + while ($row = $db->db_fetch_object($result)) + { + echo $row->studiengang.($db->db_num_rows($result)>1 && $db->db_num_rows($result)>$i?', ':''); + $i++; + if ($i % 10 == 0) + echo '
'; + } + echo '
  
Beschreibung:'.($gebietdetails->beschreibung!=''?$gebietdetails->beschreibung:'-').'
Zeit:'.$gebietdetails->zeit.'
Multipleresponse:'.($gebietdetails->multipleresponse==true?'Ja':'Nein').'
Gestellte Fragen:'.$gebietdetails->maxfragen.'
Zufallsfrage:'.($gebietdetails->zufallfrage==true?'Ja':'Nein').'
Zufallsvorschlag:'.($gebietdetails->zufallvorschlag==true?'Ja':'Nein').'
Startlevel:'.($gebietdetails->level_start!=''?$gebietdetails->level_start:'Keines').'
Höheres Level nach:'.($gebietdetails->level_sprung_auf!=''?$gebietdetails->level_sprung_auf.' richtigen Antwort(en)':'-').'
Niedrigeres Level nach:'.($gebietdetails->level_sprung_ab!=''?$gebietdetails->level_sprung_ab.' falschen Antwort(en)':'-').'
Levelgleichverteilung:'.($gebietdetails->levelgleichverteilung==true?'Ja':'Nein').'
Maximalpunkte:'.$gebietdetails->maxpunkte.'
Antworten pro Zeile:'.$gebietdetails->antwortenprozeile.'


'; + } + + $frage = new frage(); + $frage->getFragenGebiet($gebiet_id); + + foreach($frage->result as $fragen) + { + $sprachevorschlag = new vorschlag(); + $spracheFrage = new frage(); + $spracheFrage->getFrageSprache($fragen->frage_id, $sprache); + + echo "<NR:".$fragen->nummer.($fragen->level!=""?"  Level: ".$fragen->level."":"").($fragen->demo=="t"?"  Demo":"").">
"; + //Sound einbinden + if($spracheFrage->audio!='') + { + echo ' '; + } + // FRAGE anzeigen + echo "$spracheFrage->text

\n"; + + // Bild einbinden wenn vorhanden + if($spracheFrage->bild!='') + echo "

\n"; + + echo"
"; + + // ANTWORTEN anzeigen + $sprachevorschlag->getVorschlag($fragen->frage_id, $sprache, $random=false); + $anzahlBild = 0; + foreach($sprachevorschlag->result as $vor) + { + $vorschlag = new vorschlag(); + $vorschlag->loadVorschlagSprache($vor->vorschlag_id, $sprache); + + if($vorschlag->bild == '') + { + if ($loesungen) + { + echo ''; + } + else + { + echo ''; + } + } + if($vorschlag->bild!='') + { + // zeilenumbruch nach 4 bilder + if($anzahlBild%4==0) + echo ""; + echo ""; + } + else + { + echo ""; + } + + $anzahlBild++; + } + if($vorschlag->audio!='') + { + echo ' '; + } + + } + echo "
'.$vor->nummer.''.$vor->punkte.' '.$vorschlag->text.'
'.$vor->nummer.' '.$vorschlag->text.'
"; + echo "
"; + if ($loesungen) + { + echo "
".$vor->punkte."


"; + } +} +?> + \ No newline at end of file diff --git a/cis/testtool/frage.php b/cis/testtool/frage.php index 2897cc258..6f47992a1 100644 --- a/cis/testtool/frage.php +++ b/cis/testtool/frage.php @@ -164,6 +164,9 @@ $pruefling->load($_SESSION['pruefling_id']); if ($pruefling->gesperrt === 't') die(""); +if (!in_array($gebiet_id, $_SESSION['alleGebiete'])) + die($p->t('testtool/dasGebietIstNichtFuerSieBestimmt')); + $gebiet = new gebiet($gebiet_id); if($gebiet->level_start!='') diff --git a/cis/testtool/login.php b/cis/testtool/login.php index 43f157026..0b114b8c5 100644 --- a/cis/testtool/login.php +++ b/cis/testtool/login.php @@ -82,7 +82,8 @@ if (isset($_REQUEST['prestudent'])) $ps = new prestudent($_REQUEST['prestudent']); $login_ok = false; - if (defined('TESTTOOL_LOGIN_BEWERBUNGSTOOL') && TESTTOOL_LOGIN_BEWERBUNGSTOOL && isset($_GET['confirmation'])) + if (defined('TESTTOOL_LOGIN_BEWERBUNGSTOOL') && TESTTOOL_LOGIN_BEWERBUNGSTOOL && + (isset($_GET['confirmation']) || isset($_GET['confirmed_code']))) { if (isset($_SESSION['bewerbung/personId']) && $ps->person_id == $_SESSION['bewerbung/personId']) { @@ -153,6 +154,33 @@ if (isset($_REQUEST['prestudent'])) { // regenerate Session ID after Login session_regenerate_id(); + if (defined('TESTTOOL_LOGIN_BEWERBUNGSTOOL') && TESTTOOL_LOGIN_BEWERBUNGSTOOL) + { + if ($rt->zugangs_ueberpruefung && !is_null($rt->zugangscode)) + { + $_SESSION['confirmed_code'] = false; + if (isset($_SESSION['confirmation_needed']) && $_SESSION['confirmation_needed'] === true) + { + if (isset($_GET['confirmed_code'])) + { + if ($_GET['confirmed_code'] === $_SESSION['reihungstest_code']) + { + $_SESSION['confirmed_code'] = true; + } + else + $alertmsg .= '
Code ist nicht korrekt.
'; + } + } + + if ($_SESSION['confirmed_code'] === false) + { + $_SESSION['reihungstest_code'] = $rt->zugangscode; + $_SESSION['confirmation_needed'] = true; + } + else + $reload_menu = true; + } + } $pruefling = new pruefling(); if ($pruefling->getPruefling($ps->prestudent_id)) @@ -314,8 +342,11 @@ else } } - -if (isset($_SESSION['prestudent_id']) && !isset($_SESSION['pruefling_id'])) +if ((isset($_SESSION['prestudent_id']) && !isset($_SESSION['pruefling_id']) && + !isset($_SESSION['confirmation_needed']) && !isset($_SESSION['confirmed_code'])) || + (isset($_SESSION['confirmation_needed']) && $_SESSION['confirmation_needed'] === true && + isset($_SESSION['confirmed_code']) && $_SESSION['confirmed_code'] === true && + isset($_SESSION['prestudent_id']) && !isset($_SESSION['pruefling_id']))) { $pruefling = new pruefling(); @@ -421,8 +452,32 @@ if (isset($_POST['save']) && isset($_SESSION['prestudent_id'])) +
+
'.$alertmsg.'
+
+ '.$p->t('testtool/freischalttext').' +
+
+ '.$p->t('testtool/freischaltcode').': + + + +
+
+ + +
+
'; +} //REIHUNGSTEST STARTSEITE (nach Login) -if (isset($prestudent_id)) +elseif (isset($prestudent_id)) { $prestudent = new prestudent($prestudent_id); $stg_obj = new studiengang($prestudent->studiengang_kz); diff --git a/cis/testtool/menu.php b/cis/testtool/menu.php index eea02e9c0..11fbc61d5 100644 --- a/cis/testtool/menu.php +++ b/cis/testtool/menu.php @@ -277,6 +277,7 @@ if (isset($_SESSION['pruefling_id'])) $anzahlGebiete = $db->db_num_rows($result); $lastsemester = ''; $quereinsteiger_stg = ''; + $_SESSION['alleGebiete']= []; while($row = $db->db_fetch_object($result)) { //Jedes Semester in einer eigenen Tabelle anzeigen @@ -385,6 +386,7 @@ if (isset($_SESSION['pruefling_id'])) '; + $_SESSION['alleGebiete'][] = $row->gebiet_id; } else { diff --git a/config/cis.config-default.inc.php b/config/cis.config-default.inc.php index 66d855b61..027af9504 100644 --- a/config/cis.config-default.inc.php +++ b/config/cis.config-default.inc.php @@ -259,4 +259,11 @@ define('CIS_ZEITWUNSCH_GD', false); // Covid-Status anzeigen define('CIS_SHOW_COVID_STATUS', false); + +//Vertrag Allin +define ('DEFAULT_ALLIN_DIENSTVERTRAG',[111]); + +//Echter Dienstvertrag +define ('DEFAULT_ECHTER_DIENSTVERTRAG',[103,111]); + ?> diff --git a/config/vilesci.config-default.inc.php b/config/vilesci.config-default.inc.php index 2227916a9..17f668b90 100644 --- a/config/vilesci.config-default.inc.php +++ b/config/vilesci.config-default.inc.php @@ -268,4 +268,7 @@ define('ZEUGNISNOTE_NICHT_ANZEIGEN',serialize(array('iar', 'nz'))); //Default Lehrmodus define ('DEFAULT_LEHRMODUS','regulaer'); + +//Echter Dienstvertrag +define ('DEFAULT_ECHTER_DIENSTVERTRAG',[103,110]); ?> diff --git a/content/lvplanung/lehrveranstaltungDBDML.php b/content/lvplanung/lehrveranstaltungDBDML.php index 9827dec4f..da64a6619 100644 --- a/content/lvplanung/lehrveranstaltungDBDML.php +++ b/content/lvplanung/lehrveranstaltungDBDML.php @@ -65,6 +65,13 @@ $data = ''; $error = false; $warnung = false; +//Default BA1Codes für echte Dienstverträge aus Config Laden +$arrEchterDV = [103]; +if (defined('DEFAULT_ECHTER_DIENSTVERTRAG') && DEFAULT_ECHTER_DIENSTVERTRAG != '') +{ + $arrEchterDV = DEFAULT_ECHTER_DIENSTVERTRAG; +} + loadVariables($user); //Berechtigungen laden @@ -560,10 +567,12 @@ if(!$error) { // Bei echten Dienstvertraegen mit voller inkludierter Lehre wird kein Stundensatz // geliefert da dies im Vertrag inkludiert ist. - if ($row_verwendung->ba1code == 103 && $row_verwendung->inkludierte_lehre == -1) + + if ((in_array($row_verwendung->ba1code, $arrEchterDV)) && $row_verwendung->inkludierte_lehre == -1) { $fixangestellt = true; $lem->stundensatz = ''; + break; } } @@ -1567,9 +1576,10 @@ if(!$error) foreach($bisverwendung->result as $row_verwendung) { + // Bei echten Dienstvertraegen mit voller inkludierter Lehre wird kein Stundensatz // geliefert da dies im Vertrag inkludiert ist. - if ($row_verwendung->ba1code == 103 && $row_verwendung->inkludierte_lehre == -1) + if ((in_array($row_verwendung->ba1code, $arrEchterDV)) && $row_verwendung->inkludierte_lehre == -1) { $data = ''; break; diff --git a/content/lvplanung/lehrveranstaltungdetailoverlay.xul.php b/content/lvplanung/lehrveranstaltungdetailoverlay.xul.php index e18407e72..0d238d179 100644 --- a/content/lvplanung/lehrveranstaltungdetailoverlay.xul.php +++ b/content/lvplanung/lehrveranstaltungdetailoverlay.xul.php @@ -469,12 +469,24 @@ $p = new phrasen($sprache);