diff --git a/cis/public/incoming/incoming.php b/cis/public/incoming/incoming.php index def2bc4bb..a51c58b6d 100644 --- a/cis/public/incoming/incoming.php +++ b/cis/public/incoming/incoming.php @@ -187,6 +187,11 @@ $( document ).ready(function() } } }); +function setBisdatum(datum) +{ + if(document.getElementById("bis_datum").value=="") + document.getElementById("bis_datum").value=datum; +} '; ?> @@ -269,20 +274,51 @@ if($method =="austauschprogram") // Speichert Austauschprogram in preincoming tabelle if(isset($_POST['submit_program'])) { - $preincoming->von = $date->formatDatum($_REQUEST['von'],'Y-m-d'); - $preincoming->bis = $date->formatDatum($_REQUEST['bis'],'Y-m-d'); - if (isset($_REQUEST['code'])) - $preincoming->code = $_REQUEST['code']; - if($_REQUEST['austausch_kz']== "austausch_auswahl") - $preincoming->mobilitaetsprogramm_code = ''; + $von_datum = $_REQUEST['von']; + $bis_datum = $_REQUEST['bis']; + + //Datum auf Gueltigkeit pruefen + if (($von_datum != '' && !$date->formatDatum($von_datum,'Y-m-d')) || ($bis_datum != '' && !$date->formatDatum($bis_datum,'Y-m-d'))) + { + echo ''.($p->t('incoming/bitteGueltigesDatumEingeben')).''; + } else - $preincoming->mobilitaetsprogramm_code = $_REQUEST['austausch_kz']; - $preincoming->updateamum = date('Y-m-d H:i:s'); + { + $von_datum = $date->formatDatum($von_datum,'Y-m-d'); + $bis_datum = $date->formatDatum($bis_datum,'Y-m-d'); + + $dtstart = new DateTime($von_datum); + $dtende = new DateTime($bis_datum); + $jetzt = new DateTime(); - if(!$preincoming->save()) - echo $preincoming->errormsg; - else - echo $p->t('global/erfolgreichgespeichert'); + if ($dtstart < $jetzt) + { + echo ''.$p->t('incoming/beginnNichtInVergangenheit').''; + $_REQUEST['von'] = ''; + } + elseif ($von_datum != '' && $bis_datum != '' && $dtende < $dtstart) + { + echo ''.$p->t('incoming/endeGroesserStart').''; + $_REQUEST['bis'] = ''; + } + else + { + $preincoming->von = $date->formatDatum($_REQUEST['von'],'Y-m-d'); + $preincoming->bis = $date->formatDatum($_REQUEST['bis'],'Y-m-d'); + if (isset($_REQUEST['code'])) + $preincoming->code = $_REQUEST['code']; + if($_REQUEST['austausch_kz']== "austausch_auswahl") + $preincoming->mobilitaetsprogramm_code = ''; + else + $preincoming->mobilitaetsprogramm_code = $_REQUEST['austausch_kz']; + $preincoming->updateamum = date('Y-m-d H:i:s'); + + if(!$preincoming->save()) + echo $preincoming->errormsg; + else + echo $p->t('global/erfolgreichgespeichert'); + } + } } // Ausgabe Austauschprogram Formular echo '
@@ -317,11 +353,11 @@ if($method =="austauschprogram") '.$p->t('incoming/studiertvon').' - (dd.mm.yyyy) + (dd.mm.yyyy) '.$p->t('incoming/studiertbis').' - (dd.mm.yyyy) + (dd.mm.yyyy)     @@ -345,12 +381,71 @@ else if($method=="lehrveranstaltungen") { // speichern der LV-ID if($_GET['mode']=="add") { - $id= $_GET['id']; - - if($preincoming->addLehrveranstaltung($preincoming->preincoming_id, $_GET['id'], date('Y-m-d H:i:s'))) - $message = ''.($p->t('global/erfolgreichgespeichert')).''; - else - $message = ''.($p->t('global/fehleraufgetreten')).''; + $id = $db->db_add_param($_GET['id'], FHC_INTEGER, false); + $freieplaetze = 0; + // Freie Plaetze ermitteln + $qry = " SELECT tbl_lehrveranstaltung.incoming, ( + SELECT count(*) + FROM ( + SELECT person_id + FROM campus.vw_student_lehrveranstaltung + JOIN PUBLIC.tbl_benutzer using (uid) + JOIN PUBLIC.tbl_student ON (uid = student_uid) + JOIN PUBLIC.tbl_prestudentstatus USING (prestudent_id) + WHERE lehrveranstaltung_id = ".$id." + AND lehreinheit_id IN ( + SELECT lehreinheit_id + FROM lehre.tbl_lehreinheit + WHERE lehrveranstaltung_id = ".$id." + AND tbl_lehreinheit.studiensemester_kurzbz = '$stsem->studiensemester_kurzbz' + ) + AND tbl_prestudentstatus.status_kurzbz = 'Incoming' + AND tbl_prestudentstatus.studiensemester_kurzbz = '$stsem->studiensemester_kurzbz' + + UNION + + SELECT person_id + FROM PUBLIC.tbl_preincoming_lehrveranstaltung + JOIN PUBLIC.tbl_preincoming using (preincoming_id) + WHERE lehrveranstaltung_id = ".$id." + AND + ( + (bis - '$stsem->start' > '$stsem->start' - von) OR + ('$stsem->start' <= von AND bis >= '$stsem->ende' AND '$stsem->ende' - von > bis - '$stsem->ende') OR + (bis <= '$stsem->ende' AND bis >= '$stsem->start' AND von < '$stsem->start') OR + ('$stsem->start' <= von AND von < '$stsem->ende' AND bis > '$stsem->ende') OR + (von >= '$stsem->start' AND bis <= '$stsem->ende') OR + (von <= '$stsem->start' AND bis >= '$stsem->ende') OR + (von IS NULL AND bis IS NULL) OR + (von IS NULL AND bis <= '$stsem->ende' AND bis > '$stsem->start') OR + (bis IS NULL AND von < '$stsem->ende' AND von >= '$stsem->start') + ) + AND aktiv = true + ) a + ) AS anzahl + FROM lehre.tbl_lehrveranstaltung + WHERE tbl_lehrveranstaltung.lehrveranstaltung_id = ".$id; + + if($result = $db->db_query($qry)) + { + if ($db->db_num_rows($result)>0) + { + if ($row = $db->db_fetch_object($result)) + { + $freieplaetze = $row->incoming - $row->anzahl; + } + } + } + + if(!$preincoming->checkLehrveranstaltung($preincoming->preincoming_id, $_GET['id']) && $freieplaetze>0) + { + if($preincoming->addLehrveranstaltung($preincoming->preincoming_id, $_GET['id'], date('Y-m-d H:i:s'))) + $message = ''.($p->t('global/erfolgreichgespeichert')).''; + else + $message = ''.($p->t('global/fehleraufgetreten')).''; + } + else + $message = ''.$p->t('incoming/lvVollBelegt').''; } // löschen der LV-ID if($_GET['mode'] == "delete") @@ -709,19 +804,6 @@ else if($method=="lehrveranstaltungen") echo ' - - -


'; @@ -739,7 +821,7 @@ else if($method=="lehrveranstaltungen") //Uebersicht LVs - /* Erklaerung der Datumszeitraeume ab Zeile 663: + /* Erklaerung der Datumszeitraeume ab Zeile 857: * |=============== Studiensemester ===============| * |--------------| Incoming beginnt vor SS-Beginn und endet VOR SS-Ende jedoch ueberwiegend innerhalb SS * |--------------| Incoming beginnt VOR SS-Ende und endet NACH SS-Ende, jedoch ueberwiegend innerhalb SS @@ -861,7 +943,7 @@ else if($method=="lehrveranstaltungen") if ($preincoming->checkLehrveranstaltung($preincoming->preincoming_id, $row->lehrveranstaltung_id)) $style = 'style="background-color: #88DD88"'; - elseif ($freieplaetze==0) + elseif ($freieplaetze<=0) $style = 'style="background-color: #FF8888"'; //if($freieplaetze>0) //{ @@ -879,7 +961,7 @@ else if($method=="lehrveranstaltungen") if(!$preincoming->checkLehrveranstaltung($preincoming->preincoming_id, $row->lehrveranstaltung_id) && $freieplaetze>0) echo ''.$p->t('global/anmelden').''; - elseif (!$preincoming->checkLehrveranstaltung($preincoming->preincoming_id, $row->lehrveranstaltung_id) && $freieplaetze==0) + elseif (!$preincoming->checkLehrveranstaltung($preincoming->preincoming_id, $row->lehrveranstaltung_id) && $freieplaetze<=0) echo ''.$p->t('incoming/noVacancies').''; else echo ''.$p->t('global/angemeldet').''; diff --git a/locale/de-AT/incoming.php b/locale/de-AT/incoming.php index e491bac46..c2a83a3b2 100755 --- a/locale/de-AT/incoming.php +++ b/locale/de-AT/incoming.php @@ -132,6 +132,10 @@ $this->phrasen['incoming/tabelleSortierinformation']='Sie können die Spalten du $this->phrasen['incoming/waehlenSieAusDenOptionen']='Bitte wählen Sie die gewünschen Optionen aus dem DropDown und klicken Sie auf "Filter"'; $this->phrasen['incoming/lvInfo']='LV-Info'; $this->phrasen['incoming/erfolgreichAbgeschickt']='Ihre Bewerbung wurde erfolgreich abgeschickt. Die zuständige Assistenz wird sich in Kürze mit Ihnen in Verbindung setzen'; -$this->phrasen['incoming/fehlerBeimSenden']='Fehler beim senden der Bewerbung. Bitte kontaktieren Sie '.MAIL_INTERNATIONAL.''; -$this->phrasen['incoming/jahreStudiertMussGanzeZahlSein']='Das Feld "Jahre studiert" muss eine ganze Zahl sein'; +$this->phrasen['incoming/fehlerBeimSenden']='Fehler beim Senden der Bewerbung. Bitte kontaktieren Sie '.MAIL_INTERNATIONAL.''; +$this->phrasen['incoming/jahreStudiertMussGanzeZahlSein']='Das Feld "Jahre studiert" muss eine ganze Zahl sein'; +$this->phrasen['incoming/lvVollBelegt']='Es sind mittlerweile keine freien Plätze mehr für diese Lehrveranstaltung verfügbar. Bei Rückfragen kontaktieren Sie bitte '.MAIL_INTERNATIONAL.''; +$this->phrasen['incoming/beginnNichtInVergangenheit']='Das Beginndatum darf nicht in der Vergangenheit liegen'; +$this->phrasen['incoming/endeGroesserStart']='Das Endedatum darf nicht vor dem Beginndatum liegen'; +$this->phrasen['incoming/bitteGueltigesDatumEingeben']='Das Start- oder Endedatum muss im Format TT.MM.YYYY vorliegen'; ?> \ No newline at end of file diff --git a/locale/en-US/incoming.php b/locale/en-US/incoming.php index b2e833177..411b962df 100755 --- a/locale/en-US/incoming.php +++ b/locale/en-US/incoming.php @@ -134,5 +134,9 @@ $this->phrasen['incoming/waehlenSieAusDenOptionen']='Please choose your options $this->phrasen['incoming/lvInfo']='Course-Info'; $this->phrasen['incoming/erfolgreichAbgeschickt']='Admission sent successfully. The administrative assistant responsible will contact you soon'; $this->phrasen['incoming/fehlerBeimSenden']='An error occured while sending the application. Please contact '.MAIL_INTERNATIONAL.''; -$this->phrasen['incoming/jahreStudiertMussGanzeZahlSein']='"Years completed" must be a positive integer'; +$this->phrasen['incoming/jahreStudiertMussGanzeZahlSein']='"Years completed" must be a positive integer'; +$this->phrasen['incoming/lvVollBelegt']='By now there are no vacancies for this course. For further questions please contact '.MAIL_INTERNATIONAL.''; +$this->phrasen['incoming/beginnNichtInVergangenheit']='The "From"-date may not be in the past'; +$this->phrasen['incoming/endeGroesserStart']='The "To"-date may not be before the start'; +$this->phrasen['incoming/bitteGueltigesDatumEingeben']='The date for the begin and end must be entered in the DD.MM.YYYY format'; ?> \ No newline at end of file