mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-07 23:29:28 +00:00
Merge branch 'master' into messages
This commit is contained in:
@@ -1,6 +1,4 @@
|
||||
<?php
|
||||
|
||||
// --------------------------------------------------------------------------------------------------------------------
|
||||
// Header menu
|
||||
|
||||
$config['navigation_header'] = array(
|
||||
@@ -22,16 +20,8 @@ $config['navigation_header'] = array(
|
||||
'icon' => '',
|
||||
'description' => 'Vilesci',
|
||||
'expand' => true,
|
||||
'sort' => 1,
|
||||
'requiredPermissions' => 'basis/vilesci:r'
|
||||
),
|
||||
'reihungstest' => array(
|
||||
'link' => site_url('organisation/Reihungstest'),
|
||||
'icon' => 'list-ol',
|
||||
'description' => 'Reihungstests',
|
||||
'expand' => true,
|
||||
'sort' => 10,
|
||||
'requiredPermissions' => 'infocenter:r'
|
||||
'requiredPermissions' => 'basis/vilesci:r'
|
||||
)
|
||||
)
|
||||
),
|
||||
@@ -47,14 +37,20 @@ $config['navigation_header'] = array(
|
||||
'description' => 'CIS',
|
||||
'sort' => 10
|
||||
),
|
||||
'infocenter' => array(
|
||||
'link' => site_url('system/infocenter/InfoCenter'),
|
||||
'icon' => 'info',
|
||||
'description' => 'Infocenter',
|
||||
'reihungstest' => array(
|
||||
'link' => site_url('organisation/Reihungstest'),
|
||||
'description' => 'Reihungstests',
|
||||
'expand' => true,
|
||||
'sort' => 20,
|
||||
'requiredPermissions' => 'infocenter:r'
|
||||
),
|
||||
'infocenter' => array(
|
||||
'link' => site_url('system/infocenter/InfoCenter'),
|
||||
'description' => 'Infocenter',
|
||||
'expand' => true,
|
||||
'sort' => 30,
|
||||
'requiredPermissions' => 'infocenter:r'
|
||||
),
|
||||
)
|
||||
),
|
||||
'Personen' => array(
|
||||
@@ -71,6 +67,23 @@ $config['navigation_header'] = array(
|
||||
'requiredPermissions' => 'admin:r'
|
||||
)
|
||||
)
|
||||
),
|
||||
'Administration' => array(
|
||||
'link' => '#',
|
||||
'icon' => 'gear',
|
||||
'description' => 'Administration',
|
||||
'expand' => false,
|
||||
'sort' => 50,
|
||||
'requiredPermissions' => 'admin:r',
|
||||
'children'=> array(
|
||||
'extensions' => array(
|
||||
'link' => site_url('system/extensions/Manager'),
|
||||
'description' => 'Extensions Manager',
|
||||
'expand' => true,
|
||||
'sort' => 10,
|
||||
'requiredPermissions' => 'admin:r'
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
@@ -86,55 +99,6 @@ $config['navigation_menu']['Vilesci/index'] = array(
|
||||
'description' => 'Dashboard',
|
||||
'icon' => 'dashboard',
|
||||
'sort' => 1
|
||||
),
|
||||
'lehre' => array(
|
||||
'link' => '#',
|
||||
'icon' => 'graduation-cap',
|
||||
'description' => 'Lehre',
|
||||
'expand' => true,
|
||||
'sort' => 2,
|
||||
'children'=> array(
|
||||
'cis' => array(
|
||||
'link' => CIS_ROOT,
|
||||
'icon' => '',
|
||||
'description' => 'CIS',
|
||||
'expand' => true,
|
||||
'sort' => 1
|
||||
),
|
||||
'infocenter' => array(
|
||||
'link' => site_url('system/infocenter/InfoCenter'),
|
||||
'icon' => 'info',
|
||||
'description' => 'Infocenter',
|
||||
'expand' => true,
|
||||
'sort' => 2,
|
||||
'requiredPermissions' => 'infocenter:r'
|
||||
),
|
||||
)
|
||||
),
|
||||
'administration' => array(
|
||||
'link' => '#',
|
||||
'icon' => 'gear',
|
||||
'description' => 'Administration',
|
||||
'expand' => false,
|
||||
'sort' => 3,
|
||||
'children'=> array(
|
||||
'vilesci' => array(
|
||||
'link' => base_url('vilesci'),
|
||||
'icon' => '',
|
||||
'description' => 'Vilesci',
|
||||
'expand' => true,
|
||||
'sort' => 1,
|
||||
'requiredPermissions' => 'basis/vilesci:r'
|
||||
),
|
||||
'extensions' => array(
|
||||
'link' => site_url('system/extensions/Manager'),
|
||||
'icon' => 'cubes',
|
||||
'description' => 'Extensions Manager',
|
||||
'expand' => true,
|
||||
'sort' => 2,
|
||||
'requiredPermissions' => 'admin:r'
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
@@ -0,0 +1,178 @@
|
||||
<?php
|
||||
/* Copyright (C) 2019 fhcomplete.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>
|
||||
*/
|
||||
if (! defined('BASEPATH'))
|
||||
exit('No direct script access allowed');
|
||||
|
||||
class LVPlanJob extends FHC_Controller
|
||||
{
|
||||
/**
|
||||
* Initialize LVPlanJob Class
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
// An empty array as parameter will ensure that this controller is ONLY callable from command line
|
||||
parent::__construct(array());
|
||||
|
||||
if ($this->input->is_cli_request())
|
||||
{
|
||||
$cli = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->output->set_status_header(403, 'Jobs must be run from the CLI');
|
||||
echo "Jobs must be run from the CLI";
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Main function index as help
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$result = "The following are the available command line interface commands\n\n";
|
||||
$result .= "php ".$this->config->item('index_page')." jobs/LVPlanJob AddDirectGroups";
|
||||
|
||||
echo $result.PHP_EOL;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check all Courses with direkt Groups attached and adds the Groups to the Schedule if missing
|
||||
*/
|
||||
public function addDirectGroups()
|
||||
{
|
||||
$studiensemester_arr = array();
|
||||
|
||||
$this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel');
|
||||
$this->load->model('ressource/Stundenplandev_model', 'StundenplandevModel');
|
||||
$this->load->model('education/Lehreinheit_model', 'LehreinheitModel');
|
||||
$this->load->model('education/Lehreinheitgruppe_model', 'LehreinheitgruppeModel');
|
||||
|
||||
// Get actual Studiensemester
|
||||
$resultsem = $this->StudiensemesterModel->getAktOrNextSemester();
|
||||
|
||||
if(hasData($resultsem))
|
||||
{
|
||||
$studiensemester_arr[] = $resultsem->retval[0]->studiensemester_kurzbz;
|
||||
}
|
||||
else
|
||||
{
|
||||
echo 'kein Studiensemester gefunden';
|
||||
return false;
|
||||
}
|
||||
|
||||
// Get nearest Studiensemester to actual
|
||||
$resultsem = $this->StudiensemesterModel->getNearestFrom($studiensemester_arr[0]);
|
||||
if(hasData($resultsem))
|
||||
{
|
||||
$studiensemester_arr[] = $resultsem->retval[0]->studiensemester_kurzbz;
|
||||
}
|
||||
|
||||
foreach($studiensemester_arr as $studiensemester)
|
||||
{
|
||||
echo "LVPlanJob/addDirectGroups Studiensemester: ".$studiensemester."\n";
|
||||
$succ = 0;
|
||||
$fail = 0;
|
||||
|
||||
// get all schedule entries where group is missing
|
||||
$result = $this->StundenplandevModel->getMissingDirectGroups($studiensemester);
|
||||
if(hasData($result))
|
||||
{
|
||||
foreach($result->retval as $row)
|
||||
{
|
||||
$this->LehreinheitModel->addJoin('lehre.tbl_lehrveranstaltung','lehrveranstaltung_id');
|
||||
$result_le = $this->LehreinheitModel->loadWhere(array('lehreinheit_id' => $row->lehreinheit_id));
|
||||
|
||||
// load additional data of course
|
||||
$unr = null;
|
||||
$stg_kz = null;
|
||||
$semester = null;
|
||||
$gruppe_kurzbz = null;
|
||||
|
||||
if (hasData($result_le))
|
||||
{
|
||||
$le = $result_le->retval[0];
|
||||
$unr = $le->unr;
|
||||
$stg_kz = $le->studiengang_kz;
|
||||
$semester = $le->semester;
|
||||
}
|
||||
else
|
||||
{
|
||||
echo 'Failed to load Lehreinheit '.$row->lehreinheit_id;
|
||||
$fail++;
|
||||
continue;
|
||||
}
|
||||
|
||||
// get direct group if course
|
||||
$result_leg = $this->LehreinheitgruppeModel->getDirectGroup($row->lehreinheit_id);
|
||||
if (hasData($result_leg))
|
||||
{
|
||||
$gruppe_kurzbz = $result_leg->retval[0]->gruppe_kurzbz;
|
||||
}
|
||||
else
|
||||
{
|
||||
echo 'Failed to load direct group for le '.$row->lehreinheit_id;
|
||||
$fail++;
|
||||
continue;
|
||||
}
|
||||
|
||||
// add group to schedule
|
||||
$result = $this->StundenplandevModel->insert(
|
||||
array(
|
||||
'lehreinheit_id' => $row->lehreinheit_id,
|
||||
'unr' => $unr,
|
||||
'studiengang_kz' => $stg_kz,
|
||||
'semester' => $semester,
|
||||
'verband' => '',
|
||||
'gruppe' => '',
|
||||
'gruppe_kurzbz' => $gruppe_kurzbz,
|
||||
'mitarbeiter_uid' => $row->mitarbeiter_uid,
|
||||
'ort_kurzbz' => $row->ort_kurzbz,
|
||||
'datum' => $row->datum,
|
||||
'stunde' => $row->stunde,
|
||||
'titel' => null,
|
||||
'anmerkung' => null,
|
||||
'fix' => false,
|
||||
'updateamum' => date('Y-m-d H:i:s'),
|
||||
'updatevon' => 'lvplanjob',
|
||||
'insertvon' => 'lvplanjob',
|
||||
'insertamum' => date('Y-m-d H:i:s')
|
||||
)
|
||||
);
|
||||
|
||||
if (isSuccess($result))
|
||||
{
|
||||
$succ++;
|
||||
}
|
||||
else
|
||||
{
|
||||
$fail++;
|
||||
}
|
||||
}
|
||||
}
|
||||
echo "New Entries ".$succ."\n";
|
||||
echo "Failed ".$fail."\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -42,6 +42,7 @@ class ReihungstestJob extends FHC_Controller
|
||||
|
||||
// Load models
|
||||
$this->load->model('crm/Reihungstest_model', 'ReihungstestModel');
|
||||
$this->load->model('organisation/Studiengang_model', 'StudiengangModel');
|
||||
|
||||
// Load helpers
|
||||
$this->load->helper('hlp_sancho_helper');
|
||||
@@ -102,6 +103,304 @@ class ReihungstestJob extends FHC_Controller
|
||||
}
|
||||
}
|
||||
|
||||
public function runZentraleReihungstestAnmeldefristAssistenzJob()
|
||||
{
|
||||
// Get placement tests where registration date was yesterday
|
||||
$result = $this->ReihungstestModel->checkReachedRegistrationDate(11000);
|
||||
|
||||
$reachedRegistration_rt_arr = array();
|
||||
|
||||
if (hasData($result))
|
||||
{
|
||||
$reachedRegistration_rt_arr = $result->retval;
|
||||
}
|
||||
elseif (isError($result))
|
||||
{
|
||||
show_error($result->error);
|
||||
}
|
||||
|
||||
$applicants_arr = array();
|
||||
|
||||
foreach ($reachedRegistration_rt_arr as $reihungstest)
|
||||
{
|
||||
$applicants = $this->ReihungstestModel->getApplicantsOfPlacementTestForCronjob($reihungstest->reihungstest_id);
|
||||
|
||||
if (hasData($applicants))
|
||||
{
|
||||
$applicants_arr = $applicants->retval;
|
||||
}
|
||||
elseif (isError($applicants))
|
||||
{
|
||||
show_error($applicants->error);
|
||||
}
|
||||
|
||||
// Get all Bachelor-Degree-Programs with Mailadress
|
||||
$bachelorStudiengeange = $this->StudiengangModel->loadStudiengaengeFromTyp('b');
|
||||
|
||||
if (hasData($bachelorStudiengeange))
|
||||
{
|
||||
$bachelorStudiengeange_arr = $bachelorStudiengeange->retval;
|
||||
}
|
||||
elseif (isError($bachelorStudiengeange))
|
||||
{
|
||||
show_error($bachelorStudiengeange->error);
|
||||
}
|
||||
|
||||
// If a person ist an applicant of this degree-program send mail with application data
|
||||
// Otherwise inform assistant, that no applicant is registered in this test
|
||||
foreach ($bachelorStudiengeange_arr as $bachelorStudiengang)
|
||||
{
|
||||
$studiengang_kuerzel = strtoupper($bachelorStudiengang->typ.$bachelorStudiengang->kurzbz);
|
||||
$applicants_list = '';
|
||||
$applicantCounter = 0;
|
||||
$rowstyle = 'style="background-color: #EEEEEE; padding: 4px;"';
|
||||
$mailReceipients = ''; // String with all mailadresses
|
||||
$mailcontent_data_arr = array();
|
||||
foreach ($applicants_arr as $applicant)
|
||||
{
|
||||
if ($bachelorStudiengang->studiengang_kz == $applicant->studiengang_kz)
|
||||
{
|
||||
$mailReceipients .= $applicant->email. ';';
|
||||
$applicantCounter ++;
|
||||
$applicants_list .= '
|
||||
<tr '.$rowstyle.'>
|
||||
<td>'. $applicant->orgform_kurzbz. '</td>
|
||||
<td>'. $applicant->ausbildungssemester. '</td>
|
||||
<td>'. $applicant->nachname. '</td>
|
||||
<td>'. $applicant->vorname. '</td>
|
||||
<td>'. $applicant->zgv_kurzbz. '</td>
|
||||
<td>'. $applicant->prioritaet. '</td>
|
||||
<td>'. $applicant->qualifikationskurs. '</td>
|
||||
<td><a href="mailto:'. $applicant->email. '">'. $applicant->email. '</a></td>
|
||||
</tr>
|
||||
';
|
||||
}
|
||||
}
|
||||
if ($applicantCounter == 0)
|
||||
{
|
||||
$mailcontent = '<p style="font-family: verdana, sans-serif;">Der Anmeldeschluss für den zentralen Reihungstest am ' . date_format(date_create($reihungstest->datum), 'd.m.Y') . ' um ' . $reihungstest->uhrzeit . ' Uhr wurde gestern erreicht.</p>';
|
||||
$mailcontent .= '<p style="font-family: verdana, sans-serif;"><b>Für den Studiengang '.$studiengang_kuerzel.' nehmen keine InteressentInnen an diesem Reihungstest teil</b></p>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$headerstyle = 'style="background: #DCE4EF; border: 1px solid #FFF; padding: 4px; text-align: left;"';
|
||||
|
||||
$mailcontent = '<p style="font-family: verdana, sans-serif;">Der Anmeldeschluss für den zentralen Reihungstest am ' . date_format(date_create($reihungstest->datum), 'd.m.Y') . ' um ' . $reihungstest->uhrzeit . ' Uhr wurde gestern erreicht.</p>';
|
||||
$mailcontent .= '
|
||||
<p style="font-family: verdana, sans-serif;">Folgende ' . $applicantCounter . ' InteressentInnen des Studiengangs ' . $studiengang_kuerzel . ' nehmen daran teil:</p>
|
||||
<table width="100%" style="cellpadding: 3px; font-family: verdana, sans-serif; border: 1px solid #000000;">
|
||||
<thead>
|
||||
<th '.$headerstyle.'>OrgForm</th>
|
||||
<th '.$headerstyle.'>Semester</th>
|
||||
<th '.$headerstyle.'>Nachname</th>
|
||||
<th '.$headerstyle.'>Vorname</th>
|
||||
<th '.$headerstyle.'>ZGV</th>
|
||||
<th '.$headerstyle.'>Priorität</th>
|
||||
<th '.$headerstyle.'>Qualikurs</th>
|
||||
<th '.$headerstyle.'>E-Mail</th>
|
||||
</thead>
|
||||
<tbody>
|
||||
';
|
||||
$mailcontent .= $applicants_list;
|
||||
$mailcontent .= '
|
||||
</tbody>
|
||||
</table>
|
||||
';
|
||||
$mailcontent .= '<p style="font-family: verdana, sans-serif;"><a href="mailto:?bcc=' . $mailReceipients . '">Mail an alle schicken</a></p>';
|
||||
}
|
||||
$mailcontent_data_arr['table'] = $mailcontent;
|
||||
//$mailcontent_data_arr['link'] = $this->VILESCI_RT_VERWALTUNGS_URL;
|
||||
//var_dump($mailcontent_data_arr);
|
||||
// Send email in Sancho design
|
||||
if (!isEmptyString($mailcontent))
|
||||
{
|
||||
sendSanchoMail(
|
||||
'Sancho_ReihungstestteilnehmerJob',
|
||||
$mailcontent_data_arr,
|
||||
array($bachelorStudiengang->email,'kindlm@technikum-wien.at'),
|
||||
'Anmeldeschluss Reihungstest ' . date_format(date_create($reihungstest->datum), 'd.m.Y') . ' ' . $reihungstest->uhrzeit . ' Uhr',
|
||||
'sancho_header_min_bw.jpg',
|
||||
'sancho_footer_min_bw.jpg');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Checks, if an applicant was assigned to a test after Anmeldefrist
|
||||
public function runZentraleReihungstestNachtraeglichHinzugefuegtJob()
|
||||
{
|
||||
// Get applicants that have been added to a test after Anmeldefrist
|
||||
$result = $this->ReihungstestModel->getApplicantAssignedAfterDate(11000);
|
||||
|
||||
$applicants_after_anmeldefrist_arr = array();
|
||||
|
||||
if (hasData($result))
|
||||
{
|
||||
$applicants_after_anmeldefrist_arr = $result->retval;
|
||||
}
|
||||
elseif (isError($result))
|
||||
{
|
||||
show_error($result->error);
|
||||
}
|
||||
|
||||
$studiengang = '';
|
||||
$mailReceipients = ''; // String with all mailadresses
|
||||
$mailcontent_data_arr = array();
|
||||
$headerstyle = 'style="background: #DCE4EF; border: 1px solid #FFF; padding: 4px; text-align: left;"';
|
||||
$rowstyle = 'style="background-color: #EEEEEE; padding: 4px;"';
|
||||
$mailcontent = '';
|
||||
$applicants_list = '';
|
||||
|
||||
if (count($applicants_after_anmeldefrist_arr) > 0)
|
||||
{
|
||||
foreach ($applicants_after_anmeldefrist_arr as $applicant)
|
||||
{
|
||||
if ($studiengang != $applicant->studiengang_kz)
|
||||
{
|
||||
if ($studiengang != '' && $studiengang != $applicant->studiengang_kz)
|
||||
{
|
||||
$bachelorStudiengang = $this->StudiengangModel->load($studiengang);
|
||||
$mailcontent .= $applicants_list;
|
||||
$mailcontent .= '</tbody></table>';
|
||||
$mailcontent .= '<p style="font-family: verdana, sans-serif;"><a href="mailto:?bcc=' . $mailReceipients . '">Mail an alle schicken</a></p>';
|
||||
$mailcontent_data_arr['table'] = $mailcontent;
|
||||
sendSanchoMail(
|
||||
'Sancho_ReihungstestteilnehmerJob',
|
||||
$mailcontent_data_arr,
|
||||
array($bachelorStudiengang->retval[0]->email,'kindlm@technikum-wien.at'),
|
||||
'InteressentIn nach Reihungstest-Anmeldeschluss hinzugefügt',
|
||||
'sancho_header_min_bw.jpg',
|
||||
'sancho_footer_min_bw.jpg');
|
||||
$applicants_list = '';
|
||||
$mailcontent_data_arr = array();
|
||||
}
|
||||
|
||||
$mailcontent = '<p style="font-family: verdana, sans-serif;">Folgende InteressentInnen wurden <b>nach</b> der Anmeldefrist zu einem Reihungstest hinzugefügt.</p>';
|
||||
$mailcontent .= '
|
||||
<table width="100%" style="cellpadding: 3px; font-family: verdana, sans-serif; border: 1px solid #000000;">
|
||||
<thead>
|
||||
<th ' . $headerstyle . '>Datum des Tests</th>
|
||||
<th ' . $headerstyle . '>Uhrzeit des Tests</th>
|
||||
<th ' . $headerstyle . '>OrgForm</th>
|
||||
<th ' . $headerstyle . '>Semester</th>
|
||||
<th ' . $headerstyle . '>Nachname</th>
|
||||
<th ' . $headerstyle . '>Vorname</th>
|
||||
<th ' . $headerstyle . '>ZGV</th>
|
||||
<th ' . $headerstyle . '>Priorität</th>
|
||||
<th ' . $headerstyle . '>Qualikurs</th>
|
||||
<th ' . $headerstyle . '>E-Mail</th>
|
||||
</thead>
|
||||
<tbody>
|
||||
';
|
||||
}
|
||||
|
||||
$studiengang = $applicant->studiengang_kz;
|
||||
$mailReceipients .= $applicant->email . ';';
|
||||
$applicants_list .= '
|
||||
<tr ' . $rowstyle . '>
|
||||
<td>' . date_format(date_create($applicant->datum), 'd.m.Y') . '</td>
|
||||
<td>' . $applicant->uhrzeit . '</td>
|
||||
<td>' . $applicant->orgform_kurzbz . '</td>
|
||||
<td>' . $applicant->ausbildungssemester . '</td>
|
||||
<td>' . $applicant->nachname . '</td>
|
||||
<td>' . $applicant->vorname . '</td>
|
||||
<td>' . $applicant->zgv_kurzbz . '</td>
|
||||
<td>' . $applicant->prioritaet . '</td>
|
||||
<td>' . $applicant->qualifikationskurs . '</td>
|
||||
<td><a href="mailto:' . $applicant->email . '">' . $applicant->email . '</a></td>
|
||||
</tr>
|
||||
';
|
||||
};
|
||||
$bachelorStudiengang = $this->StudiengangModel->load($studiengang);
|
||||
$mailcontent .= $applicants_list;
|
||||
$mailcontent .= '</tbody></table>';
|
||||
$mailcontent .= '<p style="font-family: verdana, sans-serif;"><a href="mailto:?bcc=' . $mailReceipients . '">Mail an alle schicken</a></p>';
|
||||
$mailcontent_data_arr['table'] = $mailcontent;
|
||||
sendSanchoMail(
|
||||
'Sancho_ReihungstestteilnehmerJob',
|
||||
$mailcontent_data_arr,
|
||||
array($bachelorStudiengang->retval[0]->email,'kindlm@technikum-wien.at'),
|
||||
'InteressentIn nach Reihungstest-Anmeldeschluss hinzugefügt',
|
||||
'sancho_header_min_bw.jpg',
|
||||
'sancho_footer_min_bw.jpg');
|
||||
}
|
||||
}
|
||||
|
||||
public function runRemindApplicantsOfPlacementTestJob()
|
||||
{
|
||||
// Get placement tests with testdate within 3 working days
|
||||
|
||||
// Check if today +3 days is working day
|
||||
$todayPlus3 = date('Y-m-d', strtotime("+3 days"));
|
||||
|
||||
if (getWorkingDays($todayPlus3, $todayPlus3) == 0)
|
||||
{
|
||||
// If not increase counting days till next working day
|
||||
for ($i = 3; $i < 100; $i++)
|
||||
{
|
||||
$dateToCheck = date('Y-m-d', strtotime("+".$i." days"));
|
||||
if (getWorkingDays($dateToCheck, $dateToCheck) == 1)
|
||||
{
|
||||
$nextWorkingDay = $dateToCheck;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$nextWorkingDay = date('Y-m-d', strtotime("+3 days"));
|
||||
}
|
||||
|
||||
// Check if a placement test happens on $nextWorkingDay
|
||||
$result = $this->ReihungstestModel->getTestsOnDate($nextWorkingDay, 11000);
|
||||
|
||||
$testsOndate = array();
|
||||
|
||||
if (hasData($result))
|
||||
{
|
||||
$testsOndate = $result->retval;
|
||||
}
|
||||
elseif (isError($result))
|
||||
{
|
||||
show_error($result->error);
|
||||
}
|
||||
|
||||
$applicants_arr = array();
|
||||
|
||||
foreach ($testsOndate as $reihungstest)
|
||||
{
|
||||
// Loads applicants of a test
|
||||
$applicants = $this->ReihungstestModel->getApplicantsOfPlacementTest($reihungstest->reihungstest_id);
|
||||
|
||||
if (hasData($applicants))
|
||||
{
|
||||
$applicants_arr = $applicants->retval;
|
||||
}
|
||||
elseif (isError($applicants))
|
||||
{
|
||||
show_error($applicants->error);
|
||||
}
|
||||
|
||||
foreach ($applicants_arr as $applicant)
|
||||
{
|
||||
$mailcontent_data_arr = array();
|
||||
$mailcontent_data_arr['anrede'] = $applicant->anrede;
|
||||
$mailcontent_data_arr['nachname'] = $applicant->nachname;
|
||||
$mailcontent_data_arr['vorname'] = $applicant->vorname;
|
||||
$mailcontent_data_arr['rt_datum'] = date_format(date_create($reihungstest->datum), 'd.m.Y');
|
||||
$mailcontent_data_arr['rt_uhrzeit'] = date_format(date_create($reihungstest->uhrzeit), 'H:i');
|
||||
$mailcontent_data_arr['rt_raum'] = $applicant->planbezeichnung;
|
||||
$mailcontent_data_arr['wegbeschreibung'] = $applicant->lageplan;
|
||||
|
||||
sendSanchoMail(
|
||||
'Sancho_RemindApplicantsOfTest',
|
||||
$mailcontent_data_arr,
|
||||
array($applicant->email,'kindlm@technikum-wien.at'),
|
||||
'Ihre Anmeldung zum Reihungstest - Reminder / Your registration for the placement test - Reminder');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// Private methods
|
||||
/**
|
||||
@@ -118,7 +417,8 @@ class ReihungstestJob extends FHC_Controller
|
||||
// Prepare HTML table with study plans that have no placement tests yet
|
||||
if (!empty($missing_rt_arr))
|
||||
{
|
||||
$studienplan_list = '
|
||||
$studienplan_list
|
||||
= '
|
||||
<table'. $style_tbl2.'>
|
||||
';
|
||||
|
||||
|
||||
@@ -527,7 +527,7 @@ class InfoCenter extends Auth_Controller
|
||||
|
||||
$logparams = array($prestudent_id, $logdata['studiengang_kurzbz'], '');
|
||||
|
||||
if (isset($statusgrund_id))
|
||||
if (isset($statusgrund_id) && is_numeric($statusgrund_id))
|
||||
{
|
||||
$this->StatusgrundModel->addSelect('bezeichnung_mehrsprachig');
|
||||
$statusgrund_kurzbz = $this->StatusgrundModel->load($statusgrund_id);
|
||||
|
||||
@@ -167,3 +167,100 @@ function isEmptyArray($array)
|
||||
{
|
||||
return ($array == null) || ($array != null && !is_array($array) || (is_array($array) && count($array) == 0));
|
||||
}
|
||||
|
||||
/**
|
||||
* The function returns the number of business days between two dates and it skips the (static) holidays
|
||||
* @param string $startDate Date (YYYY-MM-DD) to start counting from (included)
|
||||
* @param string $endDate Date (YYYY-MM-DD) to end counting (included)
|
||||
* @param array $dynamic_holidays Optional. Static holidays that have the same date every year are included automatically.
|
||||
* You can give an array with dates (YYYY-MM-DD) that should be included furthermore
|
||||
* @return integer Number of working days between $startDate and $endDate
|
||||
*/
|
||||
function getWorkingDays($startDate, $endDate, $dynamic_holidays = array())
|
||||
{
|
||||
//Get year of $startDate
|
||||
$startYear = substr($startDate, 0, 4);
|
||||
//Get year of $endDate
|
||||
$endYear = substr($endDate, 0, 4);
|
||||
|
||||
$datediff = $endYear - $startYear;
|
||||
$austrian_holidays = array();
|
||||
for ($i = 0; $i <= $datediff; $i++)
|
||||
{
|
||||
$austrian_holidays[] = $startYear.'-01-01'; // Neujahr
|
||||
$austrian_holidays[] = $startYear.'-01-06'; // 3 Könige
|
||||
$austrian_holidays[] = $startYear.'-05-01'; // Staatsfeiertag
|
||||
$austrian_holidays[] = $startYear.'-08-15'; // Maria Himmelfahrt
|
||||
$austrian_holidays[] = $startYear.'-10-26'; // Nationalfeiertag
|
||||
$austrian_holidays[] = $startYear.'-11-01'; // Allerheiligen
|
||||
$austrian_holidays[] = $startYear.'-12-08'; // Maria Empfängnis
|
||||
$austrian_holidays[] = $startYear.'-12-25'; // Weihnachten
|
||||
$austrian_holidays[] = $startYear.'-12-26'; // Stefanitag
|
||||
$startYear++;
|
||||
}
|
||||
if (count($dynamic_holidays) > 0)
|
||||
{
|
||||
$austrian_holidays = array_merge($austrian_holidays, $dynamic_holidays);
|
||||
}
|
||||
// do strtotime calculations just once
|
||||
$endDate = strtotime($endDate);
|
||||
$startDate = strtotime($startDate);
|
||||
|
||||
//The total number of days between the two dates. We compute the no. of seconds and divide it to 60*60*24
|
||||
//We add one to inlude both dates in the interval.
|
||||
$days = ($endDate - $startDate) / 86400 + 1;
|
||||
|
||||
$no_full_weeks = floor($days / 7);
|
||||
$no_remaining_days = fmod($days, 7);
|
||||
|
||||
//It will return 1 if it's Monday,.. ,7 for Sunday
|
||||
$the_first_day_of_week = date("N", $startDate);
|
||||
$the_last_day_of_week = date("N", $endDate);
|
||||
|
||||
//---->The two can be equal in leap years when february has 29 days, the equal sign is added here
|
||||
//In the first case the whole interval is within a week, in the second case the interval falls in two weeks.
|
||||
if ($the_first_day_of_week <= $the_last_day_of_week)
|
||||
{
|
||||
if ($the_first_day_of_week <= 6 && 6 <= $the_last_day_of_week) $no_remaining_days--;
|
||||
if ($the_first_day_of_week <= 7 && 7 <= $the_last_day_of_week) $no_remaining_days--;
|
||||
}
|
||||
else {
|
||||
// (edit by Tokes to fix an edge case where the start day was a Sunday
|
||||
// and the end day was NOT a Saturday)
|
||||
|
||||
// the day of the week for start is later than the day of the week for end
|
||||
if ($the_first_day_of_week == 7) {
|
||||
// if the start date is a Sunday, then we definitely subtract 1 day
|
||||
$no_remaining_days--;
|
||||
|
||||
if ($the_last_day_of_week == 6) {
|
||||
// if the end date is a Saturday, then we subtract another day
|
||||
$no_remaining_days--;
|
||||
}
|
||||
}
|
||||
else {
|
||||
// the start date was a Saturday (or earlier), and the end date was (Mon..Fri)
|
||||
// so we skip an entire weekend and subtract 2 days
|
||||
$no_remaining_days -= 2;
|
||||
}
|
||||
}
|
||||
|
||||
//The no. of business days is: (number of weeks between the two dates) * (5 working days) + the remainder
|
||||
//---->february in none leap years gave a remainder of 0 but still calculated weekends between first and last day, this is one way to fix it
|
||||
$workingDays = $no_full_weeks * 5;
|
||||
if ($no_remaining_days > 0 )
|
||||
{
|
||||
$workingDays += $no_remaining_days;
|
||||
}
|
||||
|
||||
//We subtract the holidays
|
||||
foreach($austrian_holidays as $key=>$value)
|
||||
{
|
||||
$time_stamp=strtotime($value);
|
||||
//If the holiday doesn't fall in weekend
|
||||
if ($startDate <= $time_stamp && $time_stamp <= $endDate && date("N",$time_stamp) != 6 && date("N",$time_stamp) != 7)
|
||||
$workingDays--;
|
||||
}
|
||||
|
||||
return $workingDays;
|
||||
}
|
||||
@@ -29,7 +29,7 @@ const DEFAULT_SANCHO_FOOTER_IMG = 'sancho_footer_DEFAULT.jpg';
|
||||
/**
|
||||
* Send single Mail with Sancho Design and Layout.
|
||||
* @param string $vorlage_kurzbz Name of the template for specific mail content.
|
||||
* @param array $vorlage_data Associative array with specific mail content varibales
|
||||
* @param array $vorlage_data Associative array with specific mail content variables
|
||||
* to be replaced in the content template.
|
||||
* @param string $to Email-adress.
|
||||
* @param string $subject Subject of mail.
|
||||
|
||||
@@ -204,8 +204,8 @@ class Prestudent_model extends DB_Model
|
||||
$this->addJoin('bis.tbl_nation zgvmanat', 'zgvmanation = zgvmanat.nation_code', 'LEFT');
|
||||
|
||||
$prestudent = $this->load($prestudent_id);
|
||||
if($prestudent->error)
|
||||
return error($prestudent->retval);
|
||||
if (!hasData($prestudent))
|
||||
return error('prestudent could not be loaded');
|
||||
|
||||
//Prestudentstatus
|
||||
$this->load->model('crm/prestudentstatus_model', 'PrestudentstatusModel');
|
||||
@@ -225,6 +225,7 @@ class Prestudent_model extends DB_Model
|
||||
|
||||
if (count($studienordnung->retval) > 0)
|
||||
{
|
||||
$lastStatus->retval[0]->studiengang_kz = $studienordnung->retval[0]->studiengang_kz;
|
||||
$lastStatus->retval[0]->studiengangkurzbzlang = $studienordnung->retval[0]->studiengangkurzbzlang;
|
||||
$lastStatus->retval[0]->studiengangbezeichnung = $studienordnung->retval[0]->studiengangbezeichnung;
|
||||
$lastStatus->retval[0]->studiengangbezeichnung_englisch = $studienordnung->retval[0]->studiengangbezeichnung_englisch;
|
||||
@@ -233,6 +234,7 @@ class Prestudent_model extends DB_Model
|
||||
|
||||
//get Sprache
|
||||
$this->load->model('system/sprache_model', 'SpracheModel');
|
||||
$this->SpracheModel->addSelect('sprache, locale, bezeichnung');
|
||||
$language = $this->SpracheModel->load($lastStatus->retval[0]->sprache);
|
||||
|
||||
if ($language->error)
|
||||
|
||||
@@ -224,4 +224,270 @@ class Reihungstest_model extends DB_Model
|
||||
|
||||
return $this->execQuery($query);
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if a registration date (Anmeldefrist) of a placement test has been reached yesterday.
|
||||
* @param integer $studiengang_kz Optional. Kennzahl of degree program whose registration date should be checked.
|
||||
* @return array Returns object array with reihungstest_ids whose registration date has been reached yesterday.
|
||||
*/
|
||||
public function checkReachedRegistrationDate($studiengang_kz = null)
|
||||
{
|
||||
$query = '
|
||||
SELECT *
|
||||
FROM PUBLIC.tbl_reihungstest
|
||||
WHERE anmeldefrist = (
|
||||
SELECT CURRENT_DATE - 1
|
||||
)
|
||||
';
|
||||
|
||||
$parametersArray = array();
|
||||
|
||||
if (!isEmptyString($studiengang_kz))
|
||||
{
|
||||
$query .= ' AND studiengang_kz = ?';
|
||||
array_push($parametersArray, $studiengang_kz);
|
||||
}
|
||||
|
||||
return $this->execQuery($query, $parametersArray);
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads all applicants of a placement test for runZentraleReihungstestAnmeldefristAssistenzJob
|
||||
* @param integer $reihungstest_id ID of placement test
|
||||
* @return array Returns object array with data of applicants.
|
||||
*/
|
||||
public function getApplicantsOfPlacementTestForCronjob($reihungstest_id)
|
||||
{
|
||||
$query = '
|
||||
SELECT tbl_rt_person.person_id,
|
||||
ps.prestudent_id,
|
||||
tbl_studienplan.orgform_kurzbz,
|
||||
tbl_prestudentstatus.studienplan_id,
|
||||
tbl_prestudentstatus.ausbildungssemester,
|
||||
nachname,
|
||||
vorname,
|
||||
tbl_zgv.zgv_kurzbz,
|
||||
ps.studiengang_kz,
|
||||
CASE WHEN tbl_prestudentstatus.statusgrund_id=9
|
||||
THEN \'Ja\'
|
||||
ELSE \'Nein\'
|
||||
END AS "qualifikationskurs",
|
||||
(
|
||||
SELECT count(*) AS prio_relativ
|
||||
FROM (
|
||||
SELECT *,
|
||||
(
|
||||
SELECT status_kurzbz
|
||||
FROM PUBLIC.tbl_prestudentstatus
|
||||
WHERE prestudent_id = pst.prestudent_id
|
||||
ORDER BY datum DESC,
|
||||
tbl_prestudentstatus.insertamum DESC LIMIT 1
|
||||
) AS laststatus
|
||||
FROM PUBLIC.tbl_prestudent pst
|
||||
JOIN PUBLIC.tbl_prestudentstatus USING (prestudent_id)
|
||||
WHERE person_id = (
|
||||
SELECT person_id
|
||||
FROM PUBLIC.tbl_prestudent
|
||||
WHERE prestudent_id = ps.prestudent_id
|
||||
)
|
||||
AND studiensemester_kurzbz = (
|
||||
SELECT studiensemester_kurzbz
|
||||
FROM PUBLIC.tbl_prestudentstatus
|
||||
WHERE prestudent_id = ps.prestudent_id
|
||||
AND status_kurzbz = \'Interessent\' LIMIT 1
|
||||
)
|
||||
AND status_kurzbz = \'Interessent\'
|
||||
) prest
|
||||
WHERE laststatus NOT IN (\'Abbrecher\', \'Abgewiesener\', \'Absolvent\')
|
||||
AND priorisierung <= (
|
||||
SELECT priorisierung
|
||||
FROM PUBLIC.tbl_prestudent
|
||||
WHERE prestudent_id = ps.prestudent_id
|
||||
)
|
||||
) AS "prioritaet",
|
||||
(
|
||||
SELECT kontakt
|
||||
FROM PUBLIC.tbl_kontakt
|
||||
WHERE kontakttyp = \'email\'
|
||||
AND zustellung = true
|
||||
AND person_id = tbl_rt_person.person_id
|
||||
ORDER BY insertamum DESC,
|
||||
updateamum DESC LIMIT 1
|
||||
) AS "email"
|
||||
FROM PUBLIC.tbl_rt_person
|
||||
JOIN PUBLIC.tbl_person ON (tbl_rt_person.person_id = tbl_person.person_id)
|
||||
JOIN PUBLIC.tbl_reihungstest rt ON (rt_id = reihungstest_id)
|
||||
JOIN PUBLIC.tbl_prestudent ps ON (ps.person_id = tbl_rt_person.person_id)
|
||||
JOIN PUBLIC.tbl_prestudentstatus USING (prestudent_id)
|
||||
JOIN lehre.tbl_studienplan ON (tbl_prestudentstatus.studienplan_id = tbl_studienplan.studienplan_id)
|
||||
LEFT JOIN bis.tbl_zgv ON (ps.zgv_code = tbl_zgv.zgv_code)
|
||||
WHERE rt_id = ?
|
||||
AND get_rolle_prestudent(prestudent_id, rt.studiensemester_kurzbz) = \'Interessent\'
|
||||
AND tbl_prestudentstatus.studiensemester_kurzbz = rt.studiensemester_kurzbz
|
||||
AND bewerbung_abgeschicktamum IS NOT NULL
|
||||
AND bestaetigtam IS NOT NULL
|
||||
ORDER BY studiengang_kz,
|
||||
orgform_kurzbz,
|
||||
prioritaet,
|
||||
nachname,
|
||||
vorname,
|
||||
person_id
|
||||
';
|
||||
|
||||
return $this->execQuery($query, array($reihungstest_id));
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if an Applicant was assigned to a plament test after Anmeldefrist and before Test-Date
|
||||
* @param integer $studiengang_kz Kennzahl of degree program those tests should be checked
|
||||
* @return array Returns object array with data of applicants.
|
||||
*/
|
||||
public function getApplicantAssignedAfterDate($studiengang_kz)
|
||||
{
|
||||
$query = '
|
||||
SELECT tbl_rt_person.person_id,
|
||||
ps.prestudent_id,
|
||||
rt.datum,
|
||||
rt.uhrzeit,
|
||||
tbl_studienplan.orgform_kurzbz,
|
||||
tbl_prestudentstatus.studienplan_id,
|
||||
tbl_prestudentstatus.ausbildungssemester,
|
||||
nachname,
|
||||
vorname,
|
||||
tbl_zgv.zgv_kurzbz,
|
||||
ps.studiengang_kz,
|
||||
CASE WHEN tbl_prestudentstatus.statusgrund_id=9
|
||||
THEN \'Ja\'
|
||||
ELSE \'Nein\'
|
||||
END AS "qualifikationskurs",
|
||||
(
|
||||
SELECT count(*) AS prio_relativ
|
||||
FROM (
|
||||
SELECT *,
|
||||
(
|
||||
SELECT status_kurzbz
|
||||
FROM PUBLIC.tbl_prestudentstatus
|
||||
WHERE prestudent_id = pst.prestudent_id
|
||||
ORDER BY datum DESC,
|
||||
tbl_prestudentstatus.insertamum DESC LIMIT 1
|
||||
) AS laststatus
|
||||
FROM PUBLIC.tbl_prestudent pst
|
||||
JOIN PUBLIC.tbl_prestudentstatus USING (prestudent_id)
|
||||
WHERE person_id = (
|
||||
SELECT person_id
|
||||
FROM PUBLIC.tbl_prestudent
|
||||
WHERE prestudent_id = ps.prestudent_id
|
||||
)
|
||||
AND studiensemester_kurzbz = (
|
||||
SELECT studiensemester_kurzbz
|
||||
FROM PUBLIC.tbl_prestudentstatus
|
||||
WHERE prestudent_id = ps.prestudent_id
|
||||
AND status_kurzbz = \'Interessent\' LIMIT 1
|
||||
)
|
||||
AND status_kurzbz = \'Interessent\'
|
||||
) prest
|
||||
WHERE laststatus NOT IN (\'Abbrecher\', \'Abgewiesener\', \'Absolvent\')
|
||||
AND priorisierung <= (
|
||||
SELECT priorisierung
|
||||
FROM PUBLIC.tbl_prestudent
|
||||
WHERE prestudent_id = ps.prestudent_id
|
||||
)
|
||||
) AS "prioritaet",
|
||||
(
|
||||
SELECT kontakt
|
||||
FROM PUBLIC.tbl_kontakt
|
||||
WHERE kontakttyp = \'email\'
|
||||
AND zustellung = true
|
||||
AND person_id = tbl_rt_person.person_id
|
||||
ORDER BY insertamum DESC,
|
||||
updateamum DESC LIMIT 1
|
||||
) AS "email"
|
||||
FROM PUBLIC.tbl_rt_person
|
||||
JOIN PUBLIC.tbl_person ON (tbl_rt_person.person_id = tbl_person.person_id)
|
||||
JOIN PUBLIC.tbl_reihungstest rt ON (rt_id = reihungstest_id)
|
||||
JOIN PUBLIC.tbl_prestudent ps ON (ps.person_id = tbl_rt_person.person_id)
|
||||
JOIN PUBLIC.tbl_prestudentstatus USING (prestudent_id)
|
||||
JOIN lehre.tbl_studienplan ON (tbl_prestudentstatus.studienplan_id = tbl_studienplan.studienplan_id)
|
||||
LEFT JOIN bis.tbl_zgv ON (ps.zgv_code = tbl_zgv.zgv_code)
|
||||
WHERE rt.studiengang_kz = ?
|
||||
AND get_rolle_prestudent(prestudent_id, rt.studiensemester_kurzbz) = \'Interessent\'
|
||||
AND tbl_prestudentstatus.studiensemester_kurzbz = rt.studiensemester_kurzbz
|
||||
AND bewerbung_abgeschicktamum IS NOT NULL
|
||||
AND bestaetigtam IS NOT NULL
|
||||
AND anmeldefrist < (SELECT CURRENT_DATE)
|
||||
AND rt.datum > (SELECT CURRENT_DATE)
|
||||
--AND tbl_rt_person.insertamum > anmeldefrist
|
||||
--AND tbl_rt_person.insertamum < rt.datum
|
||||
AND tbl_rt_person.insertamum::date = (SELECT CURRENT_DATE -1)
|
||||
ORDER BY studiengang_kz,
|
||||
orgform_kurzbz,
|
||||
prioritaet,
|
||||
nachname,
|
||||
vorname,
|
||||
person_id
|
||||
';
|
||||
|
||||
return $this->execQuery($query, array($studiengang_kz));
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads all applicants of a placement test
|
||||
* @param integer $reihungstest_id ID of placement test
|
||||
* @return array Returns object array with data of applicants.
|
||||
*/
|
||||
public function getApplicantsOfPlacementTest($reihungstest_id)
|
||||
{
|
||||
$query = '
|
||||
SELECT DISTINCT tbl_rt_person.person_id,
|
||||
anrede,
|
||||
nachname,
|
||||
vorname,
|
||||
(
|
||||
SELECT kontakt
|
||||
FROM PUBLIC.tbl_kontakt
|
||||
WHERE kontakttyp = \'email\'
|
||||
AND zustellung = true
|
||||
AND person_id = tbl_rt_person.person_id
|
||||
ORDER BY insertamum DESC,
|
||||
updateamum DESC LIMIT 1
|
||||
) AS "email",
|
||||
tbl_ort.planbezeichnung,
|
||||
tbl_ort.lageplan
|
||||
FROM PUBLIC.tbl_rt_person
|
||||
JOIN PUBLIC.tbl_person ON (tbl_rt_person.person_id = tbl_person.person_id)
|
||||
JOIN PUBLIC.tbl_reihungstest rt ON (rt_id = reihungstest_id)
|
||||
JOIN PUBLIC.tbl_prestudent ps ON (ps.person_id = tbl_rt_person.person_id)
|
||||
JOIN PUBLIC.tbl_prestudentstatus USING (prestudent_id)
|
||||
LEFT JOIN bis.tbl_zgv ON (ps.zgv_code = tbl_zgv.zgv_code)
|
||||
LEFT JOIN PUBLIC.tbl_ort ON (tbl_rt_person.ort_kurzbz = tbl_ort.ort_kurzbz)
|
||||
WHERE rt_id = ?
|
||||
AND get_rolle_prestudent(prestudent_id, rt.studiensemester_kurzbz) = \'Interessent\'
|
||||
AND tbl_prestudentstatus.studiensemester_kurzbz = rt.studiensemester_kurzbz
|
||||
AND bewerbung_abgeschicktamum IS NOT NULL
|
||||
AND bestaetigtam IS NOT NULL
|
||||
ORDER BY nachname,
|
||||
vorname,
|
||||
person_id
|
||||
';
|
||||
|
||||
return $this->execQuery($query, array($reihungstest_id));
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads all placement tests of the given day and optional degree program
|
||||
* @param string $date Date of the tests to be loaded (YYYY-MM-DD)
|
||||
* @param integer $studiengang_kz Optional. Kennzahl of degree program to load
|
||||
* @return array Returns object array with data of applicants.
|
||||
*/
|
||||
public function getTestsOnDate($date, $studiengang_kz = null)
|
||||
{
|
||||
$query = '
|
||||
SELECT *
|
||||
FROM PUBLIC.tbl_reihungstest
|
||||
WHERE datum = ?
|
||||
AND studiengang_kz = ?
|
||||
';
|
||||
|
||||
return $this->execQuery($query, array($date, $studiengang_kz));
|
||||
}
|
||||
}
|
||||
@@ -11,4 +11,14 @@ class Lehreinheitgruppe_model extends DB_Model
|
||||
$this->dbTable = 'lehre.tbl_lehreinheitgruppe';
|
||||
$this->pk = 'lehreinheitgruppe_id';
|
||||
}
|
||||
|
||||
public function getDirectGroup($lehreinheit_id)
|
||||
{
|
||||
$this->addJoin('public.tbl_gruppe', 'gruppe_kurzbz');
|
||||
return $this->loadWhere(array(
|
||||
'tbl_gruppe.direktinskription' => true,
|
||||
'lehreinheit_id' => $lehreinheit_id
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -429,4 +429,23 @@ class Studiengang_model extends DB_Model
|
||||
|
||||
return $this->execQuery($query, array($studiensemester_kurzbz));
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads degree programs of the given type
|
||||
* @param string $typ Type of degree programs to be loaded
|
||||
* @return array
|
||||
*/
|
||||
public function loadStudiengaengeFromTyp($typ)
|
||||
{
|
||||
$query = "SELECT
|
||||
distinct tbl_studiengang.*
|
||||
FROM
|
||||
public.tbl_studiengang
|
||||
WHERE
|
||||
tbl_studiengang.typ=?
|
||||
ORDER BY
|
||||
kurzbz";
|
||||
|
||||
return $this->execQuery($query, array($typ));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -109,7 +109,7 @@ class Studiensemester_model extends DB_Model
|
||||
*/
|
||||
public function getAusbildungssemesterByStudiensemesterAndStudiengang($studiensemester_kurzbz, $studiengang_kz)
|
||||
{
|
||||
$query = "SELECT DISTINCT semester
|
||||
$query = "SELECT DISTINCT semester
|
||||
FROM lehre.tbl_studienplan
|
||||
JOIN lehre.tbl_studienordnung USING(studienordnung_id)
|
||||
JOIN lehre.tbl_studienplan_semester USING(studienplan_id)
|
||||
@@ -131,9 +131,9 @@ class Studiensemester_model extends DB_Model
|
||||
if (date_format(date_create($from), 'Y-m-d') > (date_format(date_create($to), 'Y-m-d')))
|
||||
return success(array());
|
||||
|
||||
$query = "SELECT *
|
||||
$query = "SELECT *
|
||||
FROM public.tbl_studiensemester
|
||||
WHERE
|
||||
WHERE
|
||||
(ende > ?::date AND start < ?::date)
|
||||
OR start = ?::date
|
||||
OR ende = ?::date
|
||||
@@ -141,4 +141,19 @@ class Studiensemester_model extends DB_Model
|
||||
|
||||
return $this->execQuery($query, array($from, $to, $from, $to));
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert das Studiensemester das aktuell am naehesten zu $studiensemester_kurzbz liegt
|
||||
*
|
||||
* @param $studiensemester_kurzbz
|
||||
* @return array | null
|
||||
*/
|
||||
public function getNearestFrom($studiensemester_kurzbz)
|
||||
{
|
||||
$query = "SELECT studiensemester_kurzbz, start, ende FROM public.vw_studiensemester
|
||||
WHERE studiensemester_kurzbz <> ?
|
||||
ORDER BY delta LIMIT 1";
|
||||
|
||||
return $this->execQuery($query, array($studiensemester_kurzbz));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,4 +11,54 @@ class Stundenplandev_model extends DB_Model
|
||||
$this->dbTable = 'lehre.tbl_stundenplandev';
|
||||
$this->pk = 'stundenplandev_id';
|
||||
}
|
||||
|
||||
public function getMissingDirectGroups($studiensemester_kurzbz = null)
|
||||
{
|
||||
$qry = "
|
||||
SELECT
|
||||
distinct lehreinheit_id, datum, stunde, mitarbeiter_uid, ort_kurzbz
|
||||
FROM
|
||||
lehre.tbl_stundenplandev stpl
|
||||
WHERE
|
||||
lehreinheit_id IN(
|
||||
SELECT
|
||||
lehreinheit_id
|
||||
FROM
|
||||
lehre.tbl_lehreinheit
|
||||
JOIN lehre.tbl_lehreinheitgruppe USING(lehreinheit_id)
|
||||
JOIN public.tbl_gruppe USING(gruppe_kurzbz)
|
||||
WHERE
|
||||
tbl_gruppe.direktinskription = true
|
||||
";
|
||||
|
||||
$parametersArray = array();
|
||||
|
||||
if (!is_null($studiensemester_kurzbz))
|
||||
{
|
||||
$parametersArray[] = $studiensemester_kurzbz;
|
||||
$qry .= ' AND tbl_lehreinheit.studiensemester_kurzbz = ?';
|
||||
}
|
||||
$qry .= ")
|
||||
AND NOT EXISTS(
|
||||
SELECT
|
||||
1
|
||||
FROM
|
||||
lehre.tbl_stundenplandev
|
||||
WHERE
|
||||
datum=stpl.datum
|
||||
AND stunde=stpl.stunde
|
||||
AND lehreinheit_id=stpl.lehreinheit_id
|
||||
AND gruppe_kurzbz=(SELECT
|
||||
gruppe_kurzbz
|
||||
FROM
|
||||
lehre.tbl_lehreinheitgruppe
|
||||
JOIN public.tbl_gruppe USING(gruppe_kurzbz)
|
||||
WHERE
|
||||
lehreinheit_id=stpl.lehreinheit_id
|
||||
AND tbl_gruppe.direktinskription = true
|
||||
)
|
||||
)";
|
||||
|
||||
return $this->execQuery($qry, $parametersArray);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ $this->load->view('templates/FHC-Header',
|
||||
'fontawesome' => true,
|
||||
'sbadmintemplate' => true,
|
||||
'ajaxlib' => true,
|
||||
'addons' => true,
|
||||
'navigationwidget' => true
|
||||
)
|
||||
);
|
||||
@@ -23,102 +24,8 @@ $this->load->view('templates/FHC-Header',
|
||||
<h3 class="page-header">FH-Complete</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-3 col-md-6">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
<div class="row">
|
||||
<div class="col-xs-3">
|
||||
<i class="fa fa-comments fa-5x"></i>
|
||||
</div>
|
||||
<div class="col-xs-9 text-right">
|
||||
<div class="huge">26</div>
|
||||
<div>neue Messages</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<a href="#">
|
||||
<div class="panel-footer">
|
||||
<span class="pull-left">View Details</span>
|
||||
<span class="pull-right"><i class="fa fa-arrow-circle-right"></i></span>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3 col-md-6">
|
||||
<div class="panel panel-green">
|
||||
<div class="panel-heading">
|
||||
<div class="row">
|
||||
<div class="col-xs-3">
|
||||
<i class="fa fa-tasks fa-5x"></i>
|
||||
</div>
|
||||
<div class="col-xs-9 text-right">
|
||||
<div class="huge">12</div>
|
||||
<div>neue Interessenten</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<a href="#">
|
||||
<div class="panel-footer">
|
||||
<span class="pull-left">View Details</span>
|
||||
<span class="pull-right"><i class="fa fa-arrow-circle-right"></i></span>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3 col-md-6">
|
||||
<div class="panel panel-yellow">
|
||||
<div class="panel-heading">
|
||||
<div class="row">
|
||||
<div class="col-xs-3">
|
||||
<i class="fa fa-clock-o fa-5x"></i>
|
||||
</div>
|
||||
<div class="col-xs-9 text-right">
|
||||
<div class="huge">124</div>
|
||||
<div>inaktive Interessenten</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<a href="#">
|
||||
<div class="panel-footer">
|
||||
<span class="pull-left">View Details</span>
|
||||
<span class="pull-right"><i class="fa fa-arrow-circle-right"></i></span>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3 col-md-6">
|
||||
<div class="panel panel-red">
|
||||
<div class="panel-heading">
|
||||
<div class="row">
|
||||
<div class="col-xs-3">
|
||||
<i class="fa fa-support fa-5x"></i>
|
||||
</div>
|
||||
<div class="col-xs-9 text-right">
|
||||
<div class="huge">13</div>
|
||||
<div>Support Tickets!</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<a href="#">
|
||||
<div class="panel-footer">
|
||||
<span class="pull-left">View Details</span>
|
||||
<span class="pull-right"><i class="fa fa-arrow-circle-right"></i></span>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
|
||||
<span>
|
||||
<?php
|
||||
//$this->load->view('system/infocenter/infocenterData.php');
|
||||
?>
|
||||
<div id="dashboard"></div>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -9,7 +9,8 @@
|
||||
'fontawesome' => true,
|
||||
'ajaxlib' => true,
|
||||
'customCSSs' => array(
|
||||
'public/css/tools/gradelist.css'
|
||||
'public/css/tools/gradelist.css',
|
||||
'public/css/fhcomplete.css'
|
||||
),
|
||||
'customJSs' => array(
|
||||
'public/js/bootstrapper.js'
|
||||
|
||||
@@ -2,11 +2,34 @@
|
||||
<?php
|
||||
$unique_studsemester = array();
|
||||
$first = true;
|
||||
$fit_programme_studiengaenge = array(10021, 10027);
|
||||
foreach ($zgvpruefungen as $zgvpruefung):
|
||||
$infoonly = $zgvpruefung->infoonly;
|
||||
$studiengangkurzbz = $studiengangbezeichnung = $studiengangtyp = '';
|
||||
|
||||
$studiensemester = isset($zgvpruefung->prestudentstatus->studiensemester_kurzbz) ? $zgvpruefung->prestudentstatus->studiensemester_kurzbz : '';
|
||||
$studiengangkurzbz = empty($zgvpruefung->prestudentstatus->studiengangkurzbzlang) ? $zgvpruefung->studiengang : $zgvpruefung->prestudentstatus->studiengangkurzbzlang;
|
||||
$studiengangbezeichnung = empty($zgvpruefung->prestudentstatus->studiengangbezeichnung) ? $zgvpruefung->studiengangbezeichnung : $zgvpruefung->prestudentstatus->studiengangbezeichnung;
|
||||
$studiengang_kz = isset($zgvpruefung->studiengang_kz) ? $zgvpruefung->studiengang_kz : '';
|
||||
$studiengangtyp = isset($zgvpruefung->studiengangtyp) ? $zgvpruefung->studiengangtyp : '';
|
||||
|
||||
if (empty($zgvpruefung->prestudentstatus->studiengangkurzbzlang))
|
||||
{
|
||||
if (!empty($zgvpruefung->studiengang))
|
||||
$studiengangkurzbz = $zgvpruefung->studiengang;
|
||||
}
|
||||
else
|
||||
{
|
||||
$studiengangkurzbz = $zgvpruefung->prestudentstatus->studiengangkurzbzlang;
|
||||
}
|
||||
|
||||
if (empty($zgvpruefung->prestudentstatus->studiengangbezeichnung))
|
||||
{
|
||||
if (!empty($zgvpruefung->studiengangbezeichnung))
|
||||
$studiengangbezeichnung = $zgvpruefung->studiengangbezeichnung;
|
||||
}
|
||||
else
|
||||
{
|
||||
$studiengangbezeichnung = $zgvpruefung->prestudentstatus->studiengangbezeichnung;
|
||||
}
|
||||
|
||||
//set bootstrap columns for zgv form
|
||||
$columns = array(3, 3, 3, 3);
|
||||
@@ -219,7 +242,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<!-- show only master zgv if master studiengang - start -->
|
||||
<?php if ($zgvpruefung->studiengangtyp === 'm') : ?>
|
||||
<?php if ($studiengangtyp === 'm') : ?>
|
||||
<div class="row">
|
||||
<div class="col-lg-<?php echo $columns[0] ?>">
|
||||
<div class="form-group"><label><?php echo $this->p->t('infocenter', 'zgv') . ' ' . $this->p->t('lehre','master') . ':'?></label>
|
||||
@@ -360,17 +383,24 @@
|
||||
</div>
|
||||
</div><!-- /.column-absage -->
|
||||
<?php
|
||||
$disabled = $disabledTxt = '';
|
||||
$disabled = $disabledStg = $disabledTxt = $disabledStgTxt = '';
|
||||
if (isEmptyString($zgvpruefung->prestudentstatus->bewerbung_abgeschicktamum))
|
||||
{
|
||||
$disabled = 'disabled';
|
||||
$disabledTxt = 'Die Bewerbung muss erst abgeschickt worden sein.';
|
||||
$disabled = $disabledStg = 'disabled';
|
||||
$disabledTxt = $disabledStgTxt = 'Die Bewerbung muss erst abgeschickt worden sein.';
|
||||
}
|
||||
|
||||
if ($zgvpruefung->studiengangtyp !== 'b')
|
||||
if ($studiengangtyp !== 'b')
|
||||
{
|
||||
$disabled = 'disabled';
|
||||
$disabledTxt = 'Nur Bachelorstudiengänge können freigegeben werden.';;
|
||||
$disabledTxt = 'Nur Bachelorstudiengänge können freigegeben werden.';
|
||||
|
||||
// FIT-Lehrgänge: exceptions, can be freigegeben in Infocenter
|
||||
if (!in_array($studiengang_kz, $fit_programme_studiengaenge))
|
||||
{
|
||||
$disabledStg = 'disabled';
|
||||
$disabledStgTxt = 'Nur Bachelorstudiengänge können freigegeben werden.';
|
||||
}
|
||||
}
|
||||
?>
|
||||
<div class="col-lg-8 text-right">
|
||||
@@ -378,7 +408,7 @@
|
||||
<div class="input-group frgstatusgrselect" id="frgstatusgrselect_<?php echo $zgvpruefung->prestudent_id ?>">
|
||||
<select name="frgstatusgrund"
|
||||
class="d-inline float-right"
|
||||
<?php echo $disabled ?>
|
||||
<?php echo $disabledStg ?>
|
||||
required>
|
||||
<option value="null"
|
||||
selected="selected"><?php echo ucfirst($this->p->t('ui', 'freigabeart')) . '...' ?>
|
||||
@@ -388,8 +418,8 @@
|
||||
<?php endforeach ?>
|
||||
</select>
|
||||
<span class="input-group-btn">
|
||||
<button class="btn btn-default freigabebtnstg" <?php echo $disabled ?> id="freigabebtnstg_<?php echo $zgvpruefung->prestudent_id ?>"
|
||||
data-toggle="tooltip" title="<?php echo $disabledTxt ?>">
|
||||
<button class="btn btn-default freigabebtnstg" <?php echo $disabledStg ?> id="freigabebtnstg_<?php echo $zgvpruefung->prestudent_id ?>"
|
||||
data-toggle="tooltip" title="<?php echo $disabledStgTxt ?>">
|
||||
<?php echo $this->p->t('ui', 'freigabeAnStudiengang') ?>
|
||||
</button>
|
||||
</span>
|
||||
|
||||
@@ -93,8 +93,6 @@
|
||||
// NavigationWidget CSS
|
||||
if ($navigationwidget === true) generateCSSsInclude('public/css/NavigationWidget.css');
|
||||
|
||||
generateCSSsInclude('public/css/fhcomplete.css');
|
||||
|
||||
// Eventually required CSS
|
||||
generateCSSsInclude($customCSSs); // Eventually required CSS
|
||||
|
||||
|
||||
@@ -184,30 +184,51 @@ else
|
||||
|
||||
// Erstes und letztes Studiensemester mit Studenten-Status ermitteln
|
||||
$prestudent = new prestudent();
|
||||
$prestudent->getFirstStatus($prestudent_id, 'Student');
|
||||
$firstStudiensemester = $prestudent->studiensemester_kurzbz;
|
||||
$prestudent->getLastStatus($prestudent_id, null, 'Student');
|
||||
$lastStudiensemester = $prestudent->studiensemester_kurzbz;
|
||||
|
||||
// Wenn Incoming, dann Incomingstatus laden, sonst Studentenstatus
|
||||
$prestudent->getPrestudentRolle($prestudent_id, 'Incoming');
|
||||
if(count($prestudent->result) > 0)
|
||||
{
|
||||
$prestudent->getFirstStatus($prestudent_id, 'Incoming');
|
||||
$firstStudiensemester = $prestudent->studiensemester_kurzbz;
|
||||
$prestudent->getLastStatus($prestudent_id, null, 'Incoming');
|
||||
$lastStudiensemester = $prestudent->studiensemester_kurzbz;
|
||||
}
|
||||
else
|
||||
{
|
||||
$prestudent->getFirstStatus($prestudent_id, 'Student');
|
||||
$firstStudiensemester = $prestudent->studiensemester_kurzbz;
|
||||
$prestudent->getLastStatus($prestudent_id, null, 'Student');
|
||||
$lastStudiensemester = $prestudent->studiensemester_kurzbz;
|
||||
}
|
||||
|
||||
$stsem_obj->getStudiensemesterBetween($firstStudiensemester, $lastStudiensemester);
|
||||
|
||||
echo "<br />";
|
||||
echo "<b>".$p->t('global/name').":</b> $vorname $nachname<br />";
|
||||
echo "<b>".$p->t('global/studiengang').":</b> $studiengang_bezeichnung<br />";
|
||||
echo "<b>".$p->t('global/studiensemester')."</b> <SELECT name='stsem' onChange=\"MM_jumpMenu('self',this,0)\">";
|
||||
echo "<OPTION value='notenliste.php?stsem=alle".$getParam."'>alle Semester</OPTION>";
|
||||
echo "<OPTION value='notenliste.php?stsem=alle".$getParam."'>".$p->t('news/allesemester')."</OPTION>";
|
||||
$notenImAktuellenStSem = false;
|
||||
foreach ($stsem_obj->studiensemester as $semrow)
|
||||
{
|
||||
if ($stsem == $semrow->studiensemester_kurzbz)
|
||||
{
|
||||
echo "<OPTION value='notenliste.php?stsem=" . $semrow->studiensemester_kurzbz . $getParam . "' selected>$semrow->studiensemester_kurzbz</OPTION>";
|
||||
$notenImAktuellenStSem = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<OPTION value='notenliste.php?stsem=" . $semrow->studiensemester_kurzbz . $getParam . "'>$semrow->studiensemester_kurzbz</OPTION>";
|
||||
}
|
||||
}
|
||||
echo "</SELECT><br />";
|
||||
|
||||
// echo "Datum: ".date('d.m.Y')."<br />";
|
||||
echo "<br />";
|
||||
|
||||
if ($notenImAktuellenStSem == false)
|
||||
{
|
||||
$stsem = 'alle';
|
||||
}
|
||||
// Lehrveranstaltungen und Noten holen
|
||||
if ($stsem != "alle")
|
||||
{
|
||||
|
||||
+6
-6
@@ -329,6 +329,12 @@ foreach($addon_obj->result as $addon)
|
||||
label = "&menu-statistic-lehrauftragsliste.label;"
|
||||
command = "menu-statistic-lehrauftragsliste:command"
|
||||
accesskey = "&menu-statistic-lehrauftragsliste.accesskey;"/>
|
||||
<menuitem
|
||||
id = "menu-extras-lektorenzuordnunginstitute"
|
||||
key = "menu-extras-lektorenzuordnunginstitute:key"
|
||||
label = "&menu-extras-lektorenzuordnunginstitute.label;"
|
||||
command = "menu-extras-lektorenzuordnunginstitute:command"
|
||||
accesskey = "&menu-extras-lektorenzuordnunginstitute.accesskey;"/>
|
||||
</menupopup>
|
||||
</menu>
|
||||
<!-- *** Student *** -->
|
||||
@@ -839,12 +845,6 @@ foreach($addon_obj->result as $addon)
|
||||
label = "&menu-extras-lehrfachverwaltung.label;"
|
||||
command = "menu-extras-lehrfachverwaltung:command"
|
||||
accesskey = "&menu-extras-lehrfachverwaltung.accesskey;"/> -->
|
||||
<menuitem
|
||||
id = "menu-extras-lektorenzuordnunginstitute"
|
||||
key = "menu-extras-lektorenzuordnunginstitute:key"
|
||||
label = "&menu-extras-lektorenzuordnunginstitute.label;"
|
||||
command = "menu-extras-lektorenzuordnunginstitute:command"
|
||||
accesskey = "&menu-extras-lektorenzuordnunginstitute.accesskey;"/>
|
||||
<menuitem
|
||||
id = "menu-extras-preinteressentenuebernahme"
|
||||
key = "menu-extras-preinteressentenuebernahme:key"
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
+713
-698
File diff suppressed because it is too large
Load Diff
@@ -524,6 +524,9 @@ class lehreinheit extends basis_db
|
||||
//Gruppen / Verbaende pruefen
|
||||
$sql_query="SELECT $stpl_id, studiengang_kz, semester, verband, gruppe_kurzbz, stunde, gruppe FROM $stpl_table
|
||||
WHERE datum=".$this->db_add_param($datum)." AND stunde=".$this->db_add_param($stunde);
|
||||
|
||||
// Direkte Lehreinheitsgruppen kollidieren nicht
|
||||
$sql_query.=" AND NOT EXISTS(SELECT 1 FROM public.tbl_gruppe g WHERE g.gruppe_kurzbz=$stpl_table.gruppe_kurzbz AND direktinskription=true)";
|
||||
if (is_numeric($this->unr))
|
||||
$sql_query.=" AND unr!=".$this->db_add_param($this->unr)." AND (1=2 ";
|
||||
|
||||
@@ -532,7 +535,9 @@ class lehreinheit extends basis_db
|
||||
$sql_query.=" OR ((studiengang_kz=".$this->db_add_param($this->studiengang_kz[$anz])." AND semester=".$this->db_add_param($this->semester[$anz]).")";
|
||||
|
||||
if ($this->gruppe_kurzbz[$anz]!=null && $this->gruppe_kurzbz[$anz]!='' && $this->gruppe_kurzbz[$anz]!=' ')
|
||||
{
|
||||
$sql_query.=" OR (gruppe_kurzbz=".$this->db_add_param($this->gruppe_kurzbz[$anz]).")";
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($this->verband[$anz]!=null && $this->verband[$anz]!='' && $this->verband[$anz]!=' ')
|
||||
|
||||
+468
-422
@@ -1,422 +1,468 @@
|
||||
<?php
|
||||
/* Copyright (C) 2006 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
||||
*/
|
||||
require_once(dirname(__FILE__).'/basis_db.class.php');
|
||||
|
||||
class lehreinheitgruppe extends basis_db
|
||||
{
|
||||
public $new; // boolean
|
||||
public $lehreinheitgruppe = array(); // lehreinheitgruppe Objekt
|
||||
|
||||
//Tabellenspalten
|
||||
public $lehreinheitgruppe_id; //integer
|
||||
public $lehreinheit_id; // integer
|
||||
public $studiengang_kz; // integer
|
||||
public $semester; // smalint
|
||||
public $verband; // char(1)
|
||||
public $gruppe; // char(1)
|
||||
public $gruppe_kurzbz; // varchar(16)
|
||||
public $ext_id; // bigint
|
||||
public $updateamum; // timestamp
|
||||
public $updatevon; // varchar(16)
|
||||
public $insertamum; // timestamp
|
||||
public $insertvon; // varchar(16)
|
||||
|
||||
/**
|
||||
* Konstruktor - Laedt optional eine LEGruppe
|
||||
* @param $lehreinheitgruppe_id
|
||||
*/
|
||||
public function __construct($lehreinheitgruppe_id=null)
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
if(!is_null($lehreinheitgruppe_id))
|
||||
$this->load($lehreinheitgruppe_id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt die LEGruppe
|
||||
* @param lehreinheit_id
|
||||
*/
|
||||
function load($lehreinheitgruppe_id)
|
||||
{
|
||||
if(!is_numeric($lehreinheitgruppe_id))
|
||||
{
|
||||
$this->errormsg = 'Lehreinheitgruppe_id ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
$qry = "SELECT * FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheitgruppe_id=".$this->db_add_param($lehreinheitgruppe_id, FHC_INTEGER).';';
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->lehreinheitgruppe_id = $row->lehreinheitgruppe_id;
|
||||
$this->lehreinheit_id = $row->lehreinheit_id;
|
||||
$this->studiengang_kz = $row->studiengang_kz;
|
||||
$this->semester = $row->semester;
|
||||
$this->verband = $row->verband;
|
||||
$this->gruppe = $row->gruppe;
|
||||
$this->gruppe_kurzbz = $row->gruppe_kurzbz;
|
||||
$this->updateamum = $row->updateamum;
|
||||
$this->updatevon = $row->updatevon;
|
||||
$this->insertamum = $row->insertamum;
|
||||
$this->insertvon = $row->insertvon;
|
||||
$this->ext_id = $row->ext_id;
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Es existiert kein Eintrag mit dieser ID';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Prueft die Variablen vor dem Speichern
|
||||
* auf Gueltigkeit.
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
protected function validate()
|
||||
{
|
||||
if(!is_numeric($this->lehreinheit_id))
|
||||
{
|
||||
$this->errormsg = 'Lehreinheit_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
if(!is_numeric($this->studiengang_kz))
|
||||
{
|
||||
$this->errormsg = 'Studiengang_kz muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
if($this->semester!='' && !is_numeric($this->semester))
|
||||
{
|
||||
$this->errormsg = 'Semester muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
if(mb_strlen($this->verband)>1)
|
||||
{
|
||||
$this->verband = 'Verband darf nicht laenger als 1 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(mb_strlen($this->gruppe)>1)
|
||||
{
|
||||
$this->gruppe = 'Gruppe darf nicht laenger als 1 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(mb_strlen($this->gruppe_kurzbz)>32)
|
||||
{
|
||||
$this->errormsg = 'Gruppe_kurzbz darf nicht laenger als 32 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Speichert GruppeLE in die Datenbank
|
||||
* Wenn $new auf true gesetzt ist wird ein neuer Datensatz
|
||||
* angelegt, ansonsten der Datensatz upgedated
|
||||
* @return true wenn erfolgreich, false im Fehlerfall
|
||||
*/
|
||||
public function save($new=null)
|
||||
{
|
||||
if(is_null($new))
|
||||
$new = $this->new;
|
||||
|
||||
//Variablen auf Gueltigkeit pruefen
|
||||
if(!$this->validate())
|
||||
return false;
|
||||
|
||||
if($new)
|
||||
{
|
||||
$qry = 'INSERT INTO lehre.tbl_lehreinheitgruppe (lehreinheit_id, studiengang_kz, semester, verband, gruppe, gruppe_kurzbz, insertamum, insertvon)
|
||||
VALUES('.$this->db_add_param($this->lehreinheit_id, FHC_INTEGER).','.
|
||||
$this->db_add_param($this->studiengang_kz, FHC_INTEGER).','.
|
||||
$this->db_add_param($this->semester, FHC_INTEGER).','.
|
||||
$this->db_add_param($this->verband).','.
|
||||
$this->db_add_param($this->gruppe).','.
|
||||
$this->db_add_param($this->gruppe_kurzbz).','.
|
||||
$this->db_add_param($this->insertamum).','.
|
||||
$this->db_add_param($this->insertvon).');';
|
||||
}
|
||||
else
|
||||
{
|
||||
$qry = 'UPDATE lehre.tbl_lehreinheitgruppe SET'.
|
||||
' lehreinheit_id='.$this->db_add_param($this->lehreinheit_id, FHC_INTEGER).','.
|
||||
' studiengang_kz='.$this->db_add_param($this->studiengang_kz, FHC_INTEGER).','.
|
||||
' semester='.$this->db_add_param($this->semester, FHC_INTEGER).','.
|
||||
' verband='.$this->db_add_param($this->verband).','.
|
||||
' gruppe='.$this->db_add_param($this->gruppe).','.
|
||||
' gruppe_kurzbz='.$this->db_add_param($this->gruppe_kurzbz).','.
|
||||
' updateamum='.$this->db_add_param($this->updateamum).','.
|
||||
' updatevon='.$this->db_add_param($this->updatevon).
|
||||
" WHERE lehreinheitgruppe_id=".$this->db_add_param($this->lehreinheitgruppe_id, FHC_INTEGER).";";
|
||||
}
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
//Log schreiben
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Speichern der GruppeLE';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sieht nach ob Gruppe schon zu dieser Lehreinheit
|
||||
* zugeordnet ist.
|
||||
* @param lehreinheit_id
|
||||
* studiengang_kz
|
||||
* semester
|
||||
* verband
|
||||
* gruppe
|
||||
* gruppe_kurzbz
|
||||
* @return true wenn vorhanden, false wenn nicht
|
||||
*/
|
||||
public function exists($lehreinheit_id, $studiengang_kz, $semester, $verband, $gruppe, $gruppe_kurzbz)
|
||||
{
|
||||
$qry = "SELECT * FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheit_id=".$this->db_add_param($lehreinheit_id, FHC_INTEGER);
|
||||
|
||||
if($gruppe_kurzbz!='')
|
||||
{
|
||||
$qry .= " AND gruppe_kurzbz=".$this->db_add_param($gruppe_kurzbz);
|
||||
}
|
||||
else
|
||||
{
|
||||
$qry .= " AND semester=".$this->db_add_param($semester, FHC_INTEGER);
|
||||
if($verband!='')
|
||||
$qry .= " AND verband=".$this->db_add_param($verband);
|
||||
if($gruppe!='')
|
||||
$qry .= " AND gruppe=".$this->db_add_param($gruppe);
|
||||
}
|
||||
$qry.=';';
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($this->db_num_rows()>0)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Lesen der Lehreinheitgruppen';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert alle Gruppenzuordnungen zu einer
|
||||
* Lehreinheit.
|
||||
* @param lehreinheit_id Lehreinheit zu der
|
||||
* die Gruppen geladen werden sollen
|
||||
* @return true wenn ok, false im fehlerfall
|
||||
*/
|
||||
public function getLehreinheitgruppe($lehreinheit_id)
|
||||
{
|
||||
if(!is_numeric($lehreinheit_id))
|
||||
{
|
||||
$this->errormsg = 'Lehreinheit_id ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT * FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheit_id=".$this->db_add_param($lehreinheit_id, FHC_INTEGER).';';
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$leg_obj = new lehreinheitgruppe();
|
||||
|
||||
$leg_obj->lehreinheitgruppe_id = $row->lehreinheitgruppe_id;
|
||||
$leg_obj->lehreinheit_id = $row->lehreinheit_id;
|
||||
$leg_obj->studiengang_kz = $row->studiengang_kz;
|
||||
$leg_obj->semester = $row->semester;
|
||||
$leg_obj->verband = $row->verband;
|
||||
$leg_obj->gruppe = $row->gruppe;
|
||||
$leg_obj->gruppe_kurzbz = $row->gruppe_kurzbz;
|
||||
$leg_obj->updateamum = $row->updateamum;
|
||||
$leg_obj->updatevon = $row->updatevon;
|
||||
$leg_obj->insertamum = $row->insertamum;
|
||||
$leg_obj->insertvon = $row->insertvon;
|
||||
$leg_obj->ext_id = $row->ext_id;
|
||||
|
||||
$this->lehreinheitgruppe[] = $leg_obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Loescht die Zuornung Gruppe-Lehreinheit
|
||||
* @param lehreinheigruppe_id ID des zu loeschenden Datensatzes
|
||||
* @return true wenn ok, false im fehlerfall
|
||||
*/
|
||||
public function delete($lehreinheitgruppe_id)
|
||||
{
|
||||
if(!is_numeric($lehreinheitgruppe_id))
|
||||
{
|
||||
$this->errormsg = 'Lehreinheitgruppe_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
$qry_del = "DELETE FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheitgruppe_id=".$this->db_add_param($lehreinheitgruppe_id, FHC_INTEGER).';';
|
||||
$qry = "SELECT * FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheitgruppe_id=".$this->db_add_param($lehreinheitgruppe_id, FHC_INTEGER).';';
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
$sql_undo = "INSERT INTO lehre.tbl_lehreinheitgruppe ".
|
||||
"(lehreinheitgruppe_id, lehreinheit_id, studiengang_kz, semester, ".
|
||||
"verband, gruppe, gruppe_kurzbz, updateamum, updatevon, insertamum, insertvon) ".
|
||||
"VALUES(".$this->db_add_param($row->lehreinheitgruppe_id, FHC_INTEGER).','.
|
||||
$this->db_add_param($row->lehreinheit_id, FHC_INTEGER).','.
|
||||
$this->db_add_param($row->studiengang_kz, FHC_INTEGER).','.
|
||||
$this->db_add_param($row->semester, FHC_INTEGER).','.
|
||||
$this->db_add_param($row->verband).','.
|
||||
$this->db_add_param($row->gruppe).','.
|
||||
$this->db_add_param($row->gruppe_kurzbz).','.
|
||||
$this->db_add_param($row->updateamum).','.
|
||||
$this->db_add_param($row->updatevon).','.
|
||||
$this->db_add_param($row->insertamum).','.
|
||||
$this->db_add_param($row->insertvon).');';
|
||||
|
||||
$log = new log();
|
||||
$log->sql = $qry_del;
|
||||
$log->sqlundo = $sql_undo;
|
||||
$log->mitarbeiter_uid = get_uid();
|
||||
if($row->gruppe_kurzbz!='')
|
||||
$grp = $row->gruppe_kurzbz;
|
||||
else
|
||||
{
|
||||
$qry_stg = "SELECT UPPER(typ::varchar(1) || kurzbz) as kuerzel FROM public.tbl_studiengang WHERE studiengang_kz=".$this->db_add_param($row->studiengang_kz, FHC_INTEGER).';';
|
||||
$this->db_query($qry_stg);
|
||||
$row_stg = $this->db_fetch_object();
|
||||
$grp = $row_stg->kuerzel.$row->semester.$row->verband.$row->gruppe;
|
||||
}
|
||||
$log->beschreibung = "Gruppenzuteilung loeschen $grp - $row->lehreinheit_id";
|
||||
$this->db_query('BEGIN;');
|
||||
|
||||
if($log->save(true))
|
||||
{
|
||||
if($this->db_query($qry_del))
|
||||
{
|
||||
$this->db_query('COMMIT;');
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->db_query('ROLLBACK;');
|
||||
$this->errormsg = 'Fehler beim Loeschen';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->db_query('ROLLBACK;');
|
||||
$this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Datensatz wurde nicht gefunden';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Lesen aus der Datenbank';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Prueft ob die Gruppe schon dieser Lehreinheit zugeordnet ist
|
||||
*/
|
||||
public function checkVorhanden()
|
||||
{
|
||||
$qry = "SELECT
|
||||
count(*) as anzahl
|
||||
FROM
|
||||
lehre.tbl_lehreinheitgruppe
|
||||
WHERE
|
||||
lehreinheit_id=".$this->db_add_param($this->lehreinheit_id, FHC_INTEGER)." AND
|
||||
studiengang_kz=".$this->db_add_param($this->studiengang_kz, FHC_INTEGER);
|
||||
if($this->semester!='')
|
||||
$qry.=" AND semester=".$this->db_add_param($this->semester, FHC_INTEGER);
|
||||
else
|
||||
$qry.=" AND (semester='' OR semester is null)";
|
||||
|
||||
if($this->verband!='')
|
||||
$qry.=" AND trim(verband)=".$this->db_add_param($this->verband);
|
||||
else
|
||||
$qry.=" AND (trim(verband)='' OR verband is null)";
|
||||
|
||||
if($this->gruppe!='')
|
||||
$qry.=" AND trim(gruppe)=".$this->db_add_param($this->gruppe);
|
||||
else
|
||||
$qry.=" AND (trim(gruppe)='' OR gruppe is null)";
|
||||
|
||||
if($this->gruppe_kurzbz!='')
|
||||
$qry.=" AND trim(gruppe_kurzbz)=".$this->db_add_param($this->gruppe_kurzbz);
|
||||
else
|
||||
$qry.= " AND (trim(gruppe_kurzbz)='' OR gruppe_kurzbz is null)";
|
||||
|
||||
$qry.=';';
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
if($row->anzahl>0)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Interner Fehler';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg='Fehler bei einer Abfrage';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
/* Copyright (C) 2006 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
||||
*/
|
||||
require_once(dirname(__FILE__).'/basis_db.class.php');
|
||||
|
||||
class lehreinheitgruppe extends basis_db
|
||||
{
|
||||
public $new; // boolean
|
||||
public $lehreinheitgruppe = array(); // lehreinheitgruppe Objekt
|
||||
|
||||
//Tabellenspalten
|
||||
public $lehreinheitgruppe_id; //integer
|
||||
public $lehreinheit_id; // integer
|
||||
public $studiengang_kz; // integer
|
||||
public $semester; // smalint
|
||||
public $verband; // char(1)
|
||||
public $gruppe; // char(1)
|
||||
public $gruppe_kurzbz; // varchar(16)
|
||||
public $ext_id; // bigint
|
||||
public $updateamum; // timestamp
|
||||
public $updatevon; // varchar(16)
|
||||
public $insertamum; // timestamp
|
||||
public $insertvon; // varchar(16)
|
||||
|
||||
/**
|
||||
* Konstruktor - Laedt optional eine LEGruppe
|
||||
* @param $lehreinheitgruppe_id
|
||||
*/
|
||||
public function __construct($lehreinheitgruppe_id=null)
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
if(!is_null($lehreinheitgruppe_id))
|
||||
$this->load($lehreinheitgruppe_id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt die LEGruppe
|
||||
* @param lehreinheit_id
|
||||
*/
|
||||
function load($lehreinheitgruppe_id)
|
||||
{
|
||||
if(!is_numeric($lehreinheitgruppe_id))
|
||||
{
|
||||
$this->errormsg = 'Lehreinheitgruppe_id ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
$qry = "SELECT * FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheitgruppe_id=".$this->db_add_param($lehreinheitgruppe_id, FHC_INTEGER).';';
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->lehreinheitgruppe_id = $row->lehreinheitgruppe_id;
|
||||
$this->lehreinheit_id = $row->lehreinheit_id;
|
||||
$this->studiengang_kz = $row->studiengang_kz;
|
||||
$this->semester = $row->semester;
|
||||
$this->verband = $row->verband;
|
||||
$this->gruppe = $row->gruppe;
|
||||
$this->gruppe_kurzbz = $row->gruppe_kurzbz;
|
||||
$this->updateamum = $row->updateamum;
|
||||
$this->updatevon = $row->updatevon;
|
||||
$this->insertamum = $row->insertamum;
|
||||
$this->insertvon = $row->insertvon;
|
||||
$this->ext_id = $row->ext_id;
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Es existiert kein Eintrag mit dieser ID';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Prueft die Variablen vor dem Speichern
|
||||
* auf Gueltigkeit.
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
protected function validate()
|
||||
{
|
||||
if(!is_numeric($this->lehreinheit_id))
|
||||
{
|
||||
$this->errormsg = 'Lehreinheit_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
if(!is_numeric($this->studiengang_kz))
|
||||
{
|
||||
$this->errormsg = 'Studiengang_kz muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
if($this->semester!='' && !is_numeric($this->semester))
|
||||
{
|
||||
$this->errormsg = 'Semester muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
if(mb_strlen($this->verband)>1)
|
||||
{
|
||||
$this->verband = 'Verband darf nicht laenger als 1 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(mb_strlen($this->gruppe)>1)
|
||||
{
|
||||
$this->gruppe = 'Gruppe darf nicht laenger als 1 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if(mb_strlen($this->gruppe_kurzbz)>32)
|
||||
{
|
||||
$this->errormsg = 'Gruppe_kurzbz darf nicht laenger als 32 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Speichert GruppeLE in die Datenbank
|
||||
* Wenn $new auf true gesetzt ist wird ein neuer Datensatz
|
||||
* angelegt, ansonsten der Datensatz upgedated
|
||||
* @return true wenn erfolgreich, false im Fehlerfall
|
||||
*/
|
||||
public function save($new=null)
|
||||
{
|
||||
if(is_null($new))
|
||||
$new = $this->new;
|
||||
|
||||
//Variablen auf Gueltigkeit pruefen
|
||||
if(!$this->validate())
|
||||
return false;
|
||||
|
||||
if($new)
|
||||
{
|
||||
$qry = 'INSERT INTO lehre.tbl_lehreinheitgruppe (lehreinheit_id, studiengang_kz, semester, verband, gruppe, gruppe_kurzbz, insertamum, insertvon)
|
||||
VALUES('.$this->db_add_param($this->lehreinheit_id, FHC_INTEGER).','.
|
||||
$this->db_add_param($this->studiengang_kz, FHC_INTEGER).','.
|
||||
$this->db_add_param($this->semester, FHC_INTEGER).','.
|
||||
$this->db_add_param($this->verband).','.
|
||||
$this->db_add_param($this->gruppe).','.
|
||||
$this->db_add_param($this->gruppe_kurzbz).','.
|
||||
$this->db_add_param($this->insertamum).','.
|
||||
$this->db_add_param($this->insertvon).');';
|
||||
}
|
||||
else
|
||||
{
|
||||
$qry = 'UPDATE lehre.tbl_lehreinheitgruppe SET'.
|
||||
' lehreinheit_id='.$this->db_add_param($this->lehreinheit_id, FHC_INTEGER).','.
|
||||
' studiengang_kz='.$this->db_add_param($this->studiengang_kz, FHC_INTEGER).','.
|
||||
' semester='.$this->db_add_param($this->semester, FHC_INTEGER).','.
|
||||
' verband='.$this->db_add_param($this->verband).','.
|
||||
' gruppe='.$this->db_add_param($this->gruppe).','.
|
||||
' gruppe_kurzbz='.$this->db_add_param($this->gruppe_kurzbz).','.
|
||||
' updateamum='.$this->db_add_param($this->updateamum).','.
|
||||
' updatevon='.$this->db_add_param($this->updatevon).
|
||||
" WHERE lehreinheitgruppe_id=".$this->db_add_param($this->lehreinheitgruppe_id, FHC_INTEGER).";";
|
||||
}
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
//Log schreiben
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Speichern der GruppeLE';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sieht nach ob Gruppe schon zu dieser Lehreinheit
|
||||
* zugeordnet ist.
|
||||
* @param lehreinheit_id
|
||||
* studiengang_kz
|
||||
* semester
|
||||
* verband
|
||||
* gruppe
|
||||
* gruppe_kurzbz
|
||||
* @return true wenn vorhanden, false wenn nicht
|
||||
*/
|
||||
public function exists($lehreinheit_id, $studiengang_kz, $semester, $verband, $gruppe, $gruppe_kurzbz)
|
||||
{
|
||||
$qry = "SELECT * FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheit_id=".$this->db_add_param($lehreinheit_id, FHC_INTEGER);
|
||||
|
||||
if($gruppe_kurzbz!='')
|
||||
{
|
||||
$qry .= " AND gruppe_kurzbz=".$this->db_add_param($gruppe_kurzbz);
|
||||
}
|
||||
else
|
||||
{
|
||||
$qry .= " AND semester=".$this->db_add_param($semester, FHC_INTEGER);
|
||||
if($verband!='')
|
||||
$qry .= " AND verband=".$this->db_add_param($verband);
|
||||
if($gruppe!='')
|
||||
$qry .= " AND gruppe=".$this->db_add_param($gruppe);
|
||||
}
|
||||
$qry.=';';
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($this->db_num_rows()>0)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Lesen der Lehreinheitgruppen';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert alle Gruppenzuordnungen zu einer
|
||||
* Lehreinheit.
|
||||
* @param lehreinheit_id Lehreinheit zu der
|
||||
* die Gruppen geladen werden sollen
|
||||
* @return true wenn ok, false im fehlerfall
|
||||
*/
|
||||
public function getLehreinheitgruppe($lehreinheit_id)
|
||||
{
|
||||
if(!is_numeric($lehreinheit_id))
|
||||
{
|
||||
$this->errormsg = 'Lehreinheit_id ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT * FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheit_id=".$this->db_add_param($lehreinheit_id, FHC_INTEGER).';';
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$leg_obj = new lehreinheitgruppe();
|
||||
|
||||
$leg_obj->lehreinheitgruppe_id = $row->lehreinheitgruppe_id;
|
||||
$leg_obj->lehreinheit_id = $row->lehreinheit_id;
|
||||
$leg_obj->studiengang_kz = $row->studiengang_kz;
|
||||
$leg_obj->semester = $row->semester;
|
||||
$leg_obj->verband = $row->verband;
|
||||
$leg_obj->gruppe = $row->gruppe;
|
||||
$leg_obj->gruppe_kurzbz = $row->gruppe_kurzbz;
|
||||
$leg_obj->updateamum = $row->updateamum;
|
||||
$leg_obj->updatevon = $row->updatevon;
|
||||
$leg_obj->insertamum = $row->insertamum;
|
||||
$leg_obj->insertvon = $row->insertvon;
|
||||
$leg_obj->ext_id = $row->ext_id;
|
||||
|
||||
$this->lehreinheitgruppe[] = $leg_obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Loescht die Zuornung Gruppe-Lehreinheit
|
||||
* @param lehreinheigruppe_id ID des zu loeschenden Datensatzes
|
||||
* @return true wenn ok, false im fehlerfall
|
||||
*/
|
||||
public function delete($lehreinheitgruppe_id)
|
||||
{
|
||||
if(!is_numeric($lehreinheitgruppe_id))
|
||||
{
|
||||
$this->errormsg = 'Lehreinheitgruppe_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
$qry_del = "DELETE FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheitgruppe_id=".$this->db_add_param($lehreinheitgruppe_id, FHC_INTEGER).';';
|
||||
$qry = "SELECT * FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheitgruppe_id=".$this->db_add_param($lehreinheitgruppe_id, FHC_INTEGER).';';
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
$sql_undo = "INSERT INTO lehre.tbl_lehreinheitgruppe ".
|
||||
"(lehreinheitgruppe_id, lehreinheit_id, studiengang_kz, semester, ".
|
||||
"verband, gruppe, gruppe_kurzbz, updateamum, updatevon, insertamum, insertvon) ".
|
||||
"VALUES(".$this->db_add_param($row->lehreinheitgruppe_id, FHC_INTEGER).','.
|
||||
$this->db_add_param($row->lehreinheit_id, FHC_INTEGER).','.
|
||||
$this->db_add_param($row->studiengang_kz, FHC_INTEGER).','.
|
||||
$this->db_add_param($row->semester, FHC_INTEGER).','.
|
||||
$this->db_add_param($row->verband).','.
|
||||
$this->db_add_param($row->gruppe).','.
|
||||
$this->db_add_param($row->gruppe_kurzbz).','.
|
||||
$this->db_add_param($row->updateamum).','.
|
||||
$this->db_add_param($row->updatevon).','.
|
||||
$this->db_add_param($row->insertamum).','.
|
||||
$this->db_add_param($row->insertvon).');';
|
||||
|
||||
$log = new log();
|
||||
$log->sql = $qry_del;
|
||||
$log->sqlundo = $sql_undo;
|
||||
$log->mitarbeiter_uid = get_uid();
|
||||
if($row->gruppe_kurzbz!='')
|
||||
$grp = $row->gruppe_kurzbz;
|
||||
else
|
||||
{
|
||||
$qry_stg = "SELECT UPPER(typ::varchar(1) || kurzbz) as kuerzel FROM public.tbl_studiengang WHERE studiengang_kz=".$this->db_add_param($row->studiengang_kz, FHC_INTEGER).';';
|
||||
$this->db_query($qry_stg);
|
||||
$row_stg = $this->db_fetch_object();
|
||||
$grp = $row_stg->kuerzel.$row->semester.$row->verband.$row->gruppe;
|
||||
}
|
||||
$log->beschreibung = "Gruppenzuteilung loeschen $grp - $row->lehreinheit_id";
|
||||
$this->db_query('BEGIN;');
|
||||
|
||||
if($log->save(true))
|
||||
{
|
||||
if($this->db_query($qry_del))
|
||||
{
|
||||
$this->db_query('COMMIT;');
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->db_query('ROLLBACK;');
|
||||
$this->errormsg = 'Fehler beim Loeschen';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->db_query('ROLLBACK;');
|
||||
$this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Datensatz wurde nicht gefunden';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Lesen aus der Datenbank';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Prueft ob die Gruppe schon dieser Lehreinheit zugeordnet ist
|
||||
*/
|
||||
public function checkVorhanden()
|
||||
{
|
||||
$qry = "SELECT
|
||||
count(*) as anzahl
|
||||
FROM
|
||||
lehre.tbl_lehreinheitgruppe
|
||||
WHERE
|
||||
lehreinheit_id=".$this->db_add_param($this->lehreinheit_id, FHC_INTEGER)." AND
|
||||
studiengang_kz=".$this->db_add_param($this->studiengang_kz, FHC_INTEGER);
|
||||
if($this->semester!='')
|
||||
$qry.=" AND semester=".$this->db_add_param($this->semester, FHC_INTEGER);
|
||||
else
|
||||
$qry.=" AND (semester='' OR semester is null)";
|
||||
|
||||
if($this->verband!='')
|
||||
$qry.=" AND trim(verband)=".$this->db_add_param($this->verband);
|
||||
else
|
||||
$qry.=" AND (trim(verband)='' OR verband is null)";
|
||||
|
||||
if($this->gruppe!='')
|
||||
$qry.=" AND trim(gruppe)=".$this->db_add_param($this->gruppe);
|
||||
else
|
||||
$qry.=" AND (trim(gruppe)='' OR gruppe is null)";
|
||||
|
||||
if($this->gruppe_kurzbz!='')
|
||||
$qry.=" AND trim(gruppe_kurzbz)=".$this->db_add_param($this->gruppe_kurzbz);
|
||||
else
|
||||
$qry.= " AND (trim(gruppe_kurzbz)='' OR gruppe_kurzbz is null)";
|
||||
|
||||
$qry.=';';
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
if($row->anzahl>0)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Interner Fehler';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg='Fehler bei einer Abfrage';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Prueft ob zu der Lehreinheit bereits eine direkte Gruppe zugeordnet ist
|
||||
* @param $lehreinheit_id ID der lehreinheit
|
||||
* @return true und objekt mit Gruppe falls vorhanden oder false im fehlerfall
|
||||
*/
|
||||
public function getDirectGroup($lehreinheit_id)
|
||||
{
|
||||
$qry = "
|
||||
SELECT
|
||||
tbl_lehreinheitgruppe.*
|
||||
FROM
|
||||
lehre.tbl_lehreinheitgruppe
|
||||
JOIN public.tbl_gruppe USING(gruppe_kurzbz)
|
||||
WHERE
|
||||
tbl_gruppe.direktinskription
|
||||
AND tbl_lehreinheitgruppe.lehreinheit_id=".$this->db_add_param($lehreinheit_id);
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$this->lehreinheitgruppe_id = $row->lehreinheitgruppe_id;
|
||||
$this->lehreinheit_id = $row->lehreinheit_id;
|
||||
$this->studiengang_kz = $row->studiengang_kz;
|
||||
$this->semester = $row->semester;
|
||||
$this->verband = $row->verband;
|
||||
$this->gruppe = $row->gruppe;
|
||||
$this->gruppe_kurzbz = $row->gruppe_kurzbz;
|
||||
$this->updateamum = $row->updateamum;
|
||||
$this->updatevon = $row->updatevon;
|
||||
$this->insertamum = $row->insertamum;
|
||||
$this->insertvon = $row->insertvon;
|
||||
$this->ext_id = $row->ext_id;
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -728,27 +728,47 @@ class lehrstunde extends basis_db
|
||||
|
||||
// Datenbank abfragen
|
||||
$sql_query="SELECT $stpl_id AS id, lektor, stg_kurzbz, ort_kurzbz, semester, verband, gruppe, gruppe_kurzbz, datum, stunde FROM $stpl_table
|
||||
WHERE datum=".$this->db_add_param($this->datum)." AND stunde=".$this->db_add_param($this->stunde)." AND (ort_kurzbz=".$this->db_add_param($this->ort_kurzbz)." ";
|
||||
WHERE datum=".$this->db_add_param($this->datum)." AND stunde=".$this->db_add_param($this->stunde);
|
||||
|
||||
// Direkte Lehreinheitsgruppen kollidieren nicht
|
||||
$sql_query.=" AND NOT EXISTS(SELECT 1 FROM public.tbl_gruppe WHERE gruppe_kurzbz = ".$stpl_table.".gruppe_kurzbz AND direktinskription=true)";
|
||||
|
||||
$sql_query.= " AND (ort_kurzbz=".$this->db_add_param($this->ort_kurzbz)." ";
|
||||
|
||||
if (!in_array($this->lektor_uid,unserialize(KOLLISIONSFREIE_USER)))
|
||||
$sql_query.=" OR (uid=".$this->db_add_param($this->lektor_uid)." AND uid not in (".$this->db_implode4SQL(unserialize(KOLLISIONSFREIE_USER))."))";
|
||||
|
||||
//Wenn eine Kollisionspruefung auf Studentenebene durchgefuehrt wird, werden die LVB nicht gecheckt
|
||||
if($kollision_student=='false')
|
||||
{
|
||||
$sql_query.=" OR (studiengang_kz=".$this->db_add_param($this->studiengang_kz)." AND semester=".$this->db_add_param($this->sem);
|
||||
// Direkte Gruppen kollidieren nicht
|
||||
$direktgruppe = false;
|
||||
if($this->gruppe_kurzbz!=null && $this->gruppe_kurzbz!='' && $this->gruppe_kurzbz!=' ')
|
||||
{
|
||||
$sql_query.=" OR (gruppe_kurzbz=".$this->db_add_param($this->gruppe_kurzbz).")";
|
||||
$grp_obj = new gruppe();
|
||||
$grp_obj->load($this->gruppe_kurzbz);
|
||||
if($grp_obj->direktinskription)
|
||||
{
|
||||
$direktgruppe = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
if(!$direktgruppe)
|
||||
{
|
||||
if ($this->ver!=null && $this->ver!='' && $this->ver!=' ')
|
||||
$sql_query.=" AND (verband=".$this->db_add_param($this->ver)." OR verband IS NULL OR verband='' OR verband=' ')";
|
||||
if ($this->grp!=null && $this->grp!='' && $this->grp!=' ')
|
||||
$sql_query.=" AND (gruppe=".$this->db_add_param($this->grp)." OR gruppe IS NULL OR gruppe='' OR gruppe=' ')";
|
||||
}
|
||||
$sql_query.=" OR (studiengang_kz=".$this->db_add_param($this->studiengang_kz)." AND semester=".$this->db_add_param($this->sem);
|
||||
if($this->gruppe_kurzbz!=null && $this->gruppe_kurzbz!='' && $this->gruppe_kurzbz!=' ')
|
||||
{
|
||||
$sql_query.=" OR (gruppe_kurzbz=".$this->db_add_param($this->gruppe_kurzbz).")";
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($this->ver!=null && $this->ver!='' && $this->ver!=' ')
|
||||
$sql_query.=" AND (verband=".$this->db_add_param($this->ver)." OR verband IS NULL OR verband='' OR verband=' ')";
|
||||
if ($this->grp!=null && $this->grp!='' && $this->grp!=' ')
|
||||
$sql_query.=" AND (gruppe=".$this->db_add_param($this->grp)." OR gruppe IS NULL OR gruppe='' OR gruppe=' ')";
|
||||
}
|
||||
|
||||
$sql_query.=")";
|
||||
$sql_query.=")";
|
||||
}
|
||||
}
|
||||
$sql_query.=") AND unr!=".$this->db_add_param($this->unr);
|
||||
|
||||
@@ -776,7 +796,7 @@ class lehrstunde extends basis_db
|
||||
else
|
||||
{
|
||||
$row = $this->db_fetch_object($erg_stpl);
|
||||
$this->errormsg="Kollision ($stpl_table): $row->id|$row->lektor|$row->ort_kurzbz|$row->stg_kurzbz-$row->semester$row->verband$row->gruppe$row->gruppe_kurzbz - $row->datum/$row->stunde"; //\n".$sql_query
|
||||
$this->errormsg="Kollision ($stpl_table): $row->id|$row->lektor|$row->ort_kurzbz|$row->stg_kurzbz-$row->semester$row->verband$row->gruppe$row->gruppe_kurzbz - $row->datum/$row->stunde\n"; //\n".$sql_query
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -619,7 +619,7 @@ class student extends benutzer
|
||||
nachname, vorname, vornamen, gebdatum, gebort, gebzeit, anmerkung, homepage, svnr,
|
||||
ersatzkennzeichen, familienstand, geschlecht, anzahlkinder, tbl_person.aktiv, kurzbeschreibung,
|
||||
tbl_benutzer.aktiv as bnaktiv, tbl_student.studiengang_kz, tbl_student.semester, tbl_student.verband,
|
||||
tbl_student.gruppe, tbl_student.prestudent_id
|
||||
tbl_student.gruppe, tbl_student.prestudent_id, tbl_benutzer.uid
|
||||
FROM
|
||||
public.tbl_person
|
||||
JOIN public.tbl_benutzer USING(person_id)
|
||||
@@ -671,6 +671,7 @@ class student extends benutzer
|
||||
$l->verband = $row->verband;
|
||||
$l->gruppe = $row->gruppe;
|
||||
$l->prestudent_id = $row->prestudent_id;
|
||||
$l->uid = $row->uid;
|
||||
$this->result[]=$l;
|
||||
}
|
||||
}
|
||||
@@ -823,7 +824,7 @@ class student extends benutzer
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Checkt, ob ein Student schon BIS-Gemeldet wurde.
|
||||
*
|
||||
@@ -846,13 +847,13 @@ class student extends benutzer
|
||||
$datumNovemberVorjahr = date('Y', strtotime("-1 year")).'-11-15';
|
||||
$datumApril = date('Y').'-04-15';
|
||||
$datumNovember = date('Y').'-11-15';
|
||||
|
||||
|
||||
$timestampNovemberVorjahr = strtotime(date('Y', strtotime("-1 year")).'-11-15');
|
||||
$timestampApril = strtotime(date('Y').'-04-15');
|
||||
$timestampNovember = strtotime(date('Y').'-11-15');
|
||||
|
||||
$heute = time();
|
||||
|
||||
|
||||
if ($heute - $timestampNovemberVorjahr >= $heute - $timestampApril &&
|
||||
$heute - $timestampApril < 0)
|
||||
$datumLetzteMeldung = $datumNovemberVorjahr;
|
||||
@@ -861,7 +862,7 @@ class student extends benutzer
|
||||
$datumLetzteMeldung = $datumApril;
|
||||
else
|
||||
$datumLetzteMeldung = $datumNovember;
|
||||
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
if($this->db_num_rows($result) > 0)
|
||||
@@ -871,7 +872,7 @@ class student extends benutzer
|
||||
// Wenn der Studentenstatus kleiner oder gleich dem Datum der letzten Meldung ist, wurde der Student gemeldet
|
||||
if (strtotime($row->datum) <= strtotime($datumLetzteMeldung))
|
||||
return true;
|
||||
else
|
||||
else
|
||||
return false;
|
||||
}
|
||||
else
|
||||
@@ -880,7 +881,7 @@ class student extends benutzer
|
||||
return null;
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
return null;
|
||||
}
|
||||
else
|
||||
|
||||
@@ -47,6 +47,9 @@ class vorlage extends basis_db
|
||||
public $vorlagestudiengang_id; // bigint
|
||||
public $anmerkung_vorlagestudiengang; // text
|
||||
public $aktiv; // boolean
|
||||
public $sprache; // varchar(16)
|
||||
public $subject; // text
|
||||
public $orgform_kurzbz; // varchar(3)
|
||||
|
||||
public $archivierbar = false;
|
||||
public $signierbar = false;
|
||||
@@ -223,6 +226,9 @@ class vorlage extends basis_db
|
||||
$this->berechtigung = $row->berechtigung;
|
||||
$this->anmerkung_vorlagestudiengang = $row->anmerkung_vorlagestudiengang;
|
||||
$this->aktiv = $this->db_parse_bool($row->aktiv);
|
||||
$this->sprache = $row->sprache;
|
||||
$this->subject = $row->subject;
|
||||
$this->orgform_kurzbz = $row->orgform_kurzbz;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
@@ -276,6 +282,9 @@ class vorlage extends basis_db
|
||||
$obj->berechtigung = $row->berechtigung;
|
||||
$obj->anmerkung_vorlagestudiengang = $row->anmerkung_vorlagestudiengang;
|
||||
$obj->aktiv = $this->db_parse_bool($row->aktiv);
|
||||
$obj->sprache = $row->sprache;
|
||||
$obj->subject = $row->subject;
|
||||
$obj->orgform_kurzbz = $row->orgform_kurzbz;
|
||||
|
||||
$this->result[]= $obj;
|
||||
}
|
||||
@@ -336,7 +345,7 @@ class vorlage extends basis_db
|
||||
|
||||
if($new)
|
||||
{
|
||||
$qry = "INSERT INTO public.tbl_vorlagestudiengang(vorlage_kurzbz,studiengang_kz,version,text,oe_kurzbz,style,berechtigung,anmerkung_vorlagestudiengang,aktiv) VALUES(".
|
||||
$qry = "INSERT INTO public.tbl_vorlagestudiengang(vorlage_kurzbz,studiengang_kz,version,text,oe_kurzbz,style,berechtigung,anmerkung_vorlagestudiengang,aktiv,sprache,subject,orgform_kurzbz) VALUES(".
|
||||
$this->db_add_param($this->vorlage_kurzbz).','.
|
||||
$this->db_add_param($this->studiengang_kz).','.
|
||||
$this->db_add_param($this->version).','.
|
||||
@@ -345,7 +354,10 @@ class vorlage extends basis_db
|
||||
$this->db_add_param($this->style).','.
|
||||
$this->db_add_param($this->berechtigung).','.
|
||||
$this->db_add_param($this->anmerkung_vorlagestudiengang).','.
|
||||
$this->db_add_param($this->aktiv, FHC_BOOLEAN).');';
|
||||
$this->db_add_param($this->aktiv, FHC_BOOLEAN).','.
|
||||
$this->db_add_param($this->sprache).','.
|
||||
$this->db_add_param($this->subject).','.
|
||||
$this->db_add_param($this->orgform_kurzbz).');';
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -358,7 +370,10 @@ class vorlage extends basis_db
|
||||
style='.$this->db_add_param($this->style).',
|
||||
berechtigung='.$this->db_add_param($this->berechtigung).',
|
||||
aktiv='.$this->db_add_param($this->aktiv, FHC_BOOLEAN).',
|
||||
anmerkung_vorlagestudiengang='.$this->db_add_param($this->anmerkung_vorlagestudiengang).'
|
||||
anmerkung_vorlagestudiengang='.$this->db_add_param($this->anmerkung_vorlagestudiengang).',
|
||||
sprache='.$this->db_add_param($this->sprache).',
|
||||
subject='.$this->db_add_param($this->subject).',
|
||||
orgform_kurzbz='.$this->db_add_param($this->orgform_kurzbz).'
|
||||
WHERE vorlagestudiengang_id='.$this->db_add_param($this->vorlagestudiengang_id).';';
|
||||
}
|
||||
|
||||
@@ -508,6 +523,9 @@ class vorlage extends basis_db
|
||||
$this->berechtigung = $this->db_parse_array($row->berechtigung);
|
||||
$this->anmerkung_vorlagestudiengang = $row->anmerkung_vorlagestudiengang;
|
||||
$this->aktiv = $this->db_parse_bool($row->aktiv);
|
||||
$this->sprache = $row->sprache;
|
||||
$this->subject = $row->subject;
|
||||
$this->orgform_kurzbz = $row->orgform_kurzbz;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -44,6 +44,7 @@ require_once(dirname(__FILE__).'/sprache.class.php');
|
||||
require_once(dirname(__FILE__).'/functions.inc.php');
|
||||
require_once(dirname(__FILE__).'/betriebsmittel.class.php');
|
||||
require_once(dirname(__FILE__).'/lehrveranstaltung.class.php');
|
||||
require_once(dirname(__FILE__).'/gruppe.class.php');
|
||||
|
||||
class wochenplan extends basis_db
|
||||
{
|
||||
@@ -1279,6 +1280,13 @@ class wochenplan extends basis_db
|
||||
foreach ($this->std_plan[$i][$j] as $lehrstunde)
|
||||
{
|
||||
$a_unr[]=$lehrstunde->unr;
|
||||
if($lehrstunde->gruppe_kurzbz!='')
|
||||
{
|
||||
$gruppe = new gruppe();
|
||||
$gruppe->load($lehrstunde->gruppe_kurzbz);
|
||||
if($gruppe->direktinskription)
|
||||
continue;
|
||||
}
|
||||
$a_lvb[$lehrstunde->unr][]=$lehrstunde->sem.$lehrstunde->ver.$lehrstunde->grp;
|
||||
}
|
||||
|
||||
@@ -1348,7 +1356,8 @@ class wochenplan extends basis_db
|
||||
foreach ($a_unr as $unr)
|
||||
{
|
||||
$lvb_unr_arr[$a]=$unr;
|
||||
$lvb[$a++]=$a_lvb[$unr];
|
||||
if(isset($a_lvb[$unr]))
|
||||
$lvb[$a++]=$a_lvb[$unr];
|
||||
}
|
||||
for ($a=0;$a<count($lvb)-1;$a++)
|
||||
for ($b=0;$b<count($lvb[$a]);$b++)
|
||||
@@ -1716,17 +1725,32 @@ class wochenplan extends basis_db
|
||||
$leids='';
|
||||
for ($i=0;$i<$num_rows_stpl;$i++)
|
||||
{
|
||||
$direktinskription = false;
|
||||
$row=$this->db_fetch_object(null,$i);
|
||||
if ($row->gruppe_kurzbz!=null)
|
||||
{
|
||||
$gruppe[]=$row->gruppe_kurzbz;
|
||||
|
||||
// Bei direkten Gruppen wird kein Lehrverband hinzugefuegt da diese nicht kollidieren
|
||||
$grp_obj = new gruppe();
|
||||
$grp_obj->load($row->gruppe_kurzbz);
|
||||
if($grp_obj->direktinskription)
|
||||
$direktinskription = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$gruppe[]='';
|
||||
if (!isset($lehrverband[$i]))
|
||||
$lehrverband[$i]= new stdClass();
|
||||
$lehrverband[$i]->stg_kz=$row->studiengang_kz;
|
||||
$lehrverband[$i]->sem=$row->semester;
|
||||
$lehrverband[$i]->ver=$row->verband;
|
||||
$lehrverband[$i]->grp=$row->gruppe;
|
||||
}
|
||||
|
||||
if (!$direktinskription)
|
||||
{
|
||||
if (!isset($lehrverband[$i]))
|
||||
$lehrverband[$i]= new stdClass();
|
||||
$lehrverband[$i]->stg_kz=$row->studiengang_kz;
|
||||
$lehrverband[$i]->sem=$row->semester;
|
||||
$lehrverband[$i]->ver=$row->verband;
|
||||
$lehrverband[$i]->grp=$row->gruppe;
|
||||
}
|
||||
$leids.="$row->lehreinheit_id,";
|
||||
$lektor[$i]=$row->uid;
|
||||
$unr=$row->unr;
|
||||
@@ -1755,6 +1779,10 @@ class wochenplan extends basis_db
|
||||
foreach ($lektor as $l)
|
||||
$lkt.=" OR uid=".$this->db_add_param($l);
|
||||
$lkt=mb_substr($lkt,3);
|
||||
|
||||
// Kollisionsfreie User ausnehmen
|
||||
$lkt="(($lkt) AND uid not in (".$this->db_implode4SQL(unserialize(KOLLISIONSFREIE_USER))."))";
|
||||
|
||||
// Einheiten
|
||||
$gruppe=array_unique($gruppe);
|
||||
$gruppen='';
|
||||
@@ -1792,10 +1820,17 @@ class wochenplan extends basis_db
|
||||
$raster[$t][$s]->kollision=false;
|
||||
}
|
||||
}
|
||||
|
||||
if($lvb!='')
|
||||
$lvbor = "OR ($lvb)";
|
||||
else
|
||||
$lvbor = '';
|
||||
// Stundenplanabfrage bauen (Wo ist Kollision?)
|
||||
$sql_query="SELECT DISTINCT datum, stunde FROM $stpl_view
|
||||
WHERE datum>=".$this->db_add_param($this->datum_begin)." AND datum<".$this->db_add_param($this->datum_end)." AND
|
||||
($lkt $gruppen OR ($lvb) ) AND unr!=".$this->db_add_param($unr);
|
||||
($lkt $gruppen $lvbor ) AND unr!=".$this->db_add_param($unr);
|
||||
|
||||
$sql_query.=" AND NOT EXISTS(SELECT 1 FROM public.tbl_gruppe g WHERE g.gruppe_kurzbz=$stpl_view.gruppe_kurzbz AND direktinskription=true)";
|
||||
|
||||
if (!$this->db_query($sql_query))
|
||||
die($this->db_last_error());
|
||||
@@ -1945,11 +1980,34 @@ class wochenplan extends basis_db
|
||||
$raumtyp[$i]=$row->raumtyp;
|
||||
$raumtypalt[$i]=$row->raumtypalternativ;
|
||||
if ($row->gruppe_kurzbz!=null && $row->gruppe_kurzbz!='')
|
||||
{
|
||||
$gruppe[$i]=$row->gruppe_kurzbz;
|
||||
@$lehrverband[$i]->stg_kz=$row->studiengang_kz;
|
||||
$lehrverband[$i]->sem=$row->semester;
|
||||
$lehrverband[$i]->ver=$row->verband;
|
||||
$lehrverband[$i]->grp=$row->gruppe;
|
||||
|
||||
// Direktinskriptionsgruppen von der Kollisionspruefung ausnehmen
|
||||
$grp_obj = new gruppe();
|
||||
$grp_obj->load($row->gruppe_kurzbz);
|
||||
if ($grp_obj->direktinskription)
|
||||
$direktinskription = true;
|
||||
else
|
||||
$direktinskription = false;
|
||||
}
|
||||
else
|
||||
$direktinskription = false;
|
||||
|
||||
if (!$direktinskription)
|
||||
{
|
||||
// Wenn direktinskriptionsgruppe dann wird Studiengang und Semester nicht
|
||||
// gesetzt da dies sonst kollidiert
|
||||
// Bei normalen Spezialgruppen wir dieser trotzdem gesetzt damit Verbandsgruppen
|
||||
// mit Spezialgruppen des selben Studiengangs kollidieren
|
||||
if(!isset($lehrverband[$i]))
|
||||
$lehrverband[$i] = new stdClass();
|
||||
|
||||
$lehrverband[$i]->stg_kz=$row->studiengang_kz;
|
||||
$lehrverband[$i]->sem=$row->semester;
|
||||
$lehrverband[$i]->ver=$row->verband;
|
||||
$lehrverband[$i]->grp=$row->gruppe;
|
||||
}
|
||||
$lektor[$i]=$row->lektor_uid;
|
||||
$verplant[$i]=$row->verplant;
|
||||
$planstunden[$i]=$row->planstunden;
|
||||
@@ -2018,7 +2076,13 @@ class wochenplan extends basis_db
|
||||
{
|
||||
$gruppe=array_unique($gruppe);
|
||||
foreach ($gruppe as $g)
|
||||
$gruppen.=" OR gruppe_kurzbz=".$this->db_add_param($g);
|
||||
{
|
||||
// Gruppen fuer direkte inskription kollidieren nicht
|
||||
/*$grp_obj = new gruppe();
|
||||
$grp_obj->load($g);
|
||||
if($grp_obj->direktinskription==false)*/
|
||||
$gruppen.=" OR gruppe_kurzbz=".$this->db_add_param($g);
|
||||
}
|
||||
}
|
||||
|
||||
//Lehrverband
|
||||
@@ -2086,12 +2150,17 @@ class wochenplan extends basis_db
|
||||
}
|
||||
}
|
||||
|
||||
if($lvb!='')
|
||||
$orlvb = "OR ($lvb)";
|
||||
else
|
||||
$orlvb = '';
|
||||
// Stundenplanabfrage bauen (Wo ist Kollision?)
|
||||
$sql_query="SELECT DISTINCT datum, stunde FROM $stpl_table
|
||||
WHERE datum>=".$this->db_add_param($datum_begin)." AND datum<".$this->db_add_param($datum_end)." AND
|
||||
($lkt $gruppen OR ($lvb) )";
|
||||
($lkt $gruppen $orlvb )";
|
||||
if (is_numeric($unr))
|
||||
$sql_query.=" AND unr!=".$this->db_add_param($unr);
|
||||
$sql_query.=" AND NOT EXISTS(SELECT 1 FROM public.tbl_gruppe WHERE gruppe_kurzbz=".$stpl_table.".gruppe_kurzbz and direktinskription=true)";
|
||||
|
||||
if (!$this->db_query($sql_query))
|
||||
{
|
||||
|
||||
@@ -7,6 +7,10 @@ const RTFREIGABE_MESSAGE_VORLAGE_QUER = "InfocenterRTfreigegQuer";
|
||||
const RTFREIGABE_MESSAGE_VORLAGE_QUER_KURZ = "InfocenterRTfreigegQuerKurz";
|
||||
const STGFREIGABE_MESSAGE_VORLAGE = "InfocenterSTGfreigegeben";
|
||||
|
||||
//Statusgründe for which no Studiengang Freigabe Message should be sent
|
||||
const FIT_PROGRAMM_STUDIENGAENGE = [10021, 10027];
|
||||
const STGFREIGABE_MESSAGESEND_EXCEPTIONS = ["FIT Programm", "FIT program", "FIT programme"];
|
||||
|
||||
/**
|
||||
* javascript file for infocenterDetails page
|
||||
*/
|
||||
@@ -263,23 +267,23 @@ var InfocenterDetails = {
|
||||
}
|
||||
);
|
||||
},
|
||||
saveFreigabe: function(data, rtfreigabe)
|
||||
saveFreigabe: function(freigabeData)
|
||||
{
|
||||
FHC_AjaxClient.ajaxCallPost(
|
||||
CALLED_PATH + '/saveFreigabe',
|
||||
data,
|
||||
{"prestudent_id": freigabeData.prestudent_id, "statusgrund_id": freigabeData.statusgrund_id},
|
||||
{
|
||||
successCallback: function(data, textStatus, jqXHR) {
|
||||
successCallback: function(freigabeResponseData, textStatus, jqXHR) {
|
||||
|
||||
if (FHC_AjaxClient.hasData(data))
|
||||
if (FHC_AjaxClient.hasData(freigabeResponseData))
|
||||
{
|
||||
FHC_AjaxClient.showVeil();
|
||||
InfocenterDetails.initFrgMessageSend(data.retval.prestudent_id, rtfreigabe);
|
||||
InfocenterDetails.initFrgMessageSend(freigabeData);
|
||||
InfocenterDetails._refreshZgv();
|
||||
FHC_AjaxClient.hideVeil();
|
||||
InfocenterDetails._refreshLog();
|
||||
}
|
||||
else if (data.error === 2 && parseInt(data.retval.prestudent_id, 10))
|
||||
else if (freigabeResponseData.error === 2 && parseInt(freigabeResponseData.retval.prestudent_id, 10))
|
||||
{
|
||||
FHC_DialogLib.alertError("error when setting accepted documents");
|
||||
InfocenterDetails._refreshZgv();
|
||||
@@ -472,13 +476,17 @@ var InfocenterDetails = {
|
||||
}
|
||||
);
|
||||
},
|
||||
initFrgMessageSend: function(prestudentid, rtfreigabe)
|
||||
initFrgMessageSend: function(freigabedata)
|
||||
{
|
||||
var callback = function (data)
|
||||
{
|
||||
if (data == null)
|
||||
return;
|
||||
|
||||
var prestudent_id = freigabedata.prestudent_id;
|
||||
var statusgrund_id = freigabedata.statusgrund_id;
|
||||
var rtfreigabe = !$.isNumeric(statusgrund_id);
|
||||
|
||||
// check if a prestudent in same semester is already freigegeben - then not send message again
|
||||
var rtFreigegeben = false;
|
||||
var stgFreigegeben = false;
|
||||
@@ -487,7 +495,7 @@ var InfocenterDetails = {
|
||||
//get prestudentstatus of message receiver
|
||||
for(var i = 0; i < data.length; i++)
|
||||
{
|
||||
if (data[i].prestudentstatus.prestudent_id === prestudentid)
|
||||
if (data[i].prestudentstatus.prestudent_id === prestudent_id)
|
||||
{
|
||||
receiverPrestudentstatus = data[i].prestudentstatus;
|
||||
break;
|
||||
@@ -504,18 +512,19 @@ var InfocenterDetails = {
|
||||
var prestudentstatus = prestudent.prestudentstatus;
|
||||
var id = prestudentstatus.prestudent_id;
|
||||
|
||||
if (id !== prestudentid)
|
||||
if (id !== prestudent_id)
|
||||
{
|
||||
var fitfreigegeben = $.inArray(prestudentstatus.bezeichnung_statusgrund[0], STGFREIGABE_MESSAGESEND_EXCEPTIONS) >= 0;
|
||||
|
||||
if (receiverPrestudentstatus.studiensemester_kurzbz === prestudentstatus.studiensemester_kurzbz
|
||||
&& prestudentstatus.bestaetigtam !== null && prestudentstatus.status_kurzbz === "Interessent"
|
||||
&& prestudent.studiengangtyp === "b")
|
||||
&& (prestudent.studiengangtyp === "b"))
|
||||
{
|
||||
if (prestudentstatus.statusgrund_id === null)
|
||||
{
|
||||
rtFreigegeben = true;
|
||||
break;
|
||||
}
|
||||
else if($.isNumeric(prestudentstatus.statusgrund_id))
|
||||
else if ($.isNumeric(prestudentstatus.statusgrund_id) && !fitfreigegeben)
|
||||
{
|
||||
stgFreigegeben = true;
|
||||
}
|
||||
@@ -541,7 +550,7 @@ var InfocenterDetails = {
|
||||
'studiengangbezeichnung_englisch': studiengangbezeichnung_englisch
|
||||
};
|
||||
|
||||
InfocenterDetails.sendFreigabeMessage(prestudentid, RTFREIGABE_MESSAGE_VORLAGE_QUER_KURZ, msgvars);
|
||||
InfocenterDetails.sendFreigabeMessage(prestudent_id, RTFREIGABE_MESSAGE_VORLAGE_QUER_KURZ, msgvars);
|
||||
}
|
||||
}
|
||||
else //not already for RT freigegeben - send RTfreigabe message
|
||||
@@ -563,15 +572,17 @@ var InfocenterDetails = {
|
||||
vorlage = RTFREIGABE_MESSAGE_VORLAGE
|
||||
}
|
||||
|
||||
InfocenterDetails.sendFreigabeMessage(prestudentid, vorlage, msgvars);
|
||||
InfocenterDetails.sendFreigabeMessage(prestudent_id, vorlage, msgvars);
|
||||
}
|
||||
}
|
||||
else if (rtfreigabe === false)
|
||||
{
|
||||
var statusgrundbez = freigabedata.statusgrundbezeichnung ? freigabedata.statusgrundbezeichnung : "";
|
||||
|
||||
// if Freigabe to Studiengang, send StgFreigabe Message if not already sent
|
||||
if (!stgFreigegeben)
|
||||
if (!stgFreigegeben && $.inArray(statusgrundbez, STGFREIGABE_MESSAGESEND_EXCEPTIONS) < 0)
|
||||
{
|
||||
InfocenterDetails.sendFreigabeMessage(prestudentid, STGFREIGABE_MESSAGE_VORLAGE, msgvars);
|
||||
InfocenterDetails.sendFreigabeMessage(prestudent_id, STGFREIGABE_MESSAGE_VORLAGE, msgvars);
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -729,8 +740,8 @@ var InfocenterDetails = {
|
||||
{
|
||||
$(".freigabeModal").modal("hide");
|
||||
var prestudent_id = this.id.substr(this.id.indexOf("_") + 1);
|
||||
var data = {"prestudent_id": prestudent_id};
|
||||
InfocenterDetails.saveFreigabe(data, true);//Reihungstestfreigabe
|
||||
var data = {"prestudent_id": prestudent_id, "statusgrund_id": null};
|
||||
InfocenterDetails.saveFreigabe(data);//Reihungstestfreigabe
|
||||
}
|
||||
);
|
||||
|
||||
@@ -738,9 +749,11 @@ var InfocenterDetails = {
|
||||
{
|
||||
$(".freigabeModal").modal("hide");
|
||||
var prestudent_id = this.id.substr(this.id.indexOf("_") + 1);
|
||||
var statusgrund_id = $("#frgstatusgrselect_" + prestudent_id + " select[name=frgstatusgrund]").val();
|
||||
var data = {"prestudent_id": prestudent_id, "statusgrund_id": statusgrund_id};
|
||||
InfocenterDetails.saveFreigabe(data, false);//Studiengangfreigabe
|
||||
var statusgrundel = $("#frgstatusgrselect_" + prestudent_id + " select[name=frgstatusgrund]");
|
||||
var statusgrund_id = statusgrundel.val();
|
||||
var statusgrundbezeichnung = statusgrundel.find("option[value="+statusgrund_id+"]").text();
|
||||
var data = {"prestudent_id": prestudent_id, "statusgrund_id": statusgrund_id, "statusgrundbezeichnung": statusgrundbezeichnung};
|
||||
InfocenterDetails.saveFreigabe(data);//Studiengangfreigabe
|
||||
}
|
||||
)
|
||||
},
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
<?php
|
||||
/* Copyright (C) 2019 fhcomplete.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Andreas Oesterreicher <oesi@technikum-wien.at>
|
||||
*/
|
||||
require_once('../config/vilesci.config.inc.php');
|
||||
require_once('../include/rdf.class.php');
|
||||
require_once('../include/basis_db.class.php');
|
||||
require_once('../include/functions.inc.php');
|
||||
require_once('../include/benutzerberechtigung.class.php');
|
||||
require_once('../include/student.class.php');
|
||||
|
||||
$user = get_uid();
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
if(!$rechte->isBerechtigt('lehre/lehrveranstaltung'))
|
||||
die($rechte->errormsg);
|
||||
|
||||
$datum_obj = new datum();
|
||||
|
||||
$oRdf = new rdf('BENUTZER','http://www.technikum-wien.at/benutzer');
|
||||
|
||||
$filter = filter_input(INPUT_GET,'filter');
|
||||
|
||||
if (mb_strlen($filter) < 3)
|
||||
die('Filter muss mindestens 3 Zeichen lang sein');
|
||||
|
||||
$benutzer = new student();
|
||||
$benutzer->getTab($filter);
|
||||
|
||||
$studiengang = new studiengang();
|
||||
$studiengang->getAll(null, false);
|
||||
|
||||
$oRdf->sendHeader();
|
||||
$db = new basis_db();
|
||||
|
||||
if(count($benutzer->result) > 0)
|
||||
{
|
||||
$i=0;
|
||||
foreach($benutzer->result as $row)
|
||||
{
|
||||
if(isset($studiengang->kuerzel_arr[$row->studiengang_kz]))
|
||||
$stg = $studiengang->kuerzel_arr[$row->studiengang_kz];
|
||||
else
|
||||
$stg = '';
|
||||
|
||||
$i=$oRdf->newObjekt($i);
|
||||
$oRdf->obj[$i]->setAttribut('uid',$row->uid,true);
|
||||
$oRdf->obj[$i]->setAttribut('vorname',$row->vorname,true);
|
||||
$oRdf->obj[$i]->setAttribut('nachname',$row->nachname,true);
|
||||
$oRdf->obj[$i]->setAttribut('studiengang',$stg,true);
|
||||
$oRdf->obj[$i]->setAttribut('semester',$row->semester,true);
|
||||
$oRdf->addSequence($i);
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
$oRdf->sendRdfText();
|
||||
?>
|
||||
@@ -291,7 +291,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
|
||||
echo ' <niveau_deutsch>Doktoratsstudium (UNESCO ISCED 8)</niveau_deutsch>';
|
||||
echo ' <niveau_englisch>University doctoral studies (UNESCO ISCED 8)</niveau_englisch>';
|
||||
}
|
||||
elseif($row->typ=='l' || $row->typ=='k')
|
||||
elseif($row->typ=='l' || $row->typ=='k' || $row->typ=='e')
|
||||
{
|
||||
echo ' <niveau_code>UNESCO ISCED 7</niveau_code>';
|
||||
echo ' <niveau_deutsch>Lehrgang zur Weiterbildung nach §9 FHStG idgF.</niveau_deutsch>';
|
||||
|
||||
@@ -0,0 +1,76 @@
|
||||
<?php
|
||||
/* Copyright (C) 2019 fhcomplete.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Andreas Oesterreicher <oesi@technikum-wien.at>
|
||||
*/
|
||||
require_once('../config/vilesci.config.inc.php');
|
||||
require_once('../include/rdf.class.php');
|
||||
require_once('../include/basis_db.class.php');
|
||||
require_once('../include/functions.inc.php');
|
||||
require_once('../include/benutzerberechtigung.class.php');
|
||||
|
||||
$user = get_uid();
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
if (!$rechte->isBerechtigt('lehre/lehrveranstaltung'))
|
||||
die($rechte->errormsg);
|
||||
|
||||
$datum_obj = new datum();
|
||||
|
||||
$oRdf = new rdf('LEHREINHEITDIREKT','http://www.technikum-wien.at/lehreinheitdirekt');
|
||||
|
||||
$lehreinheit_id = filter_input(INPUT_GET,'lehreinheit_id');
|
||||
|
||||
if ($lehreinheit_id == '' || !is_numeric($lehreinheit_id))
|
||||
{
|
||||
die('LehreinheitID ungueltig');
|
||||
}
|
||||
|
||||
$oRdf->sendHeader();
|
||||
$db = new basis_db();
|
||||
|
||||
$qry = "
|
||||
SELECT
|
||||
uid, vorname, nachname, gruppe_kurzbz
|
||||
FROM
|
||||
lehre.tbl_lehreinheitgruppe
|
||||
JOIN public.tbl_gruppe USING(gruppe_kurzbz)
|
||||
JOIN public.tbl_benutzergruppe USING(gruppe_kurzbz)
|
||||
JOIN public.tbl_benutzer USING(uid)
|
||||
JOIN public.tbl_person USING(person_id)
|
||||
WHERE
|
||||
tbl_lehreinheitgruppe.lehreinheit_id=".$db->db_add_param($lehreinheit_id, FHC_INTEGER)."
|
||||
AND tbl_gruppe.direktinskription
|
||||
ORDER BY vorname, nachname";
|
||||
|
||||
if ($result = $db->db_query($qry))
|
||||
{
|
||||
$i = 0;
|
||||
while ($row = $db->db_fetch_object($result))
|
||||
{
|
||||
$i = $oRdf->newObjekt($i);
|
||||
$oRdf->obj[$i]->setAttribut('uid', $row->uid,true);
|
||||
$oRdf->obj[$i]->setAttribut('vorname', $row->vorname,true);
|
||||
$oRdf->obj[$i]->setAttribut('nachname', $row->nachname,true);
|
||||
$oRdf->obj[$i]->setAttribut('gruppe_kurzbz', $row->gruppe_kurzbz,true);
|
||||
$oRdf->addSequence($i);
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
$oRdf->sendRdfText();
|
||||
?>
|
||||
@@ -70,6 +70,11 @@ foreach ($DAO_obj->lehreinheitgruppe as $row)
|
||||
$bezeichnung = $row->gruppe_kurzbz;
|
||||
$gruppe = new gruppe();
|
||||
$gruppe->load($row->gruppe_kurzbz);
|
||||
|
||||
// Direkte Gruppen werden uebersprungen
|
||||
if($gruppe->direktinskription)
|
||||
continue;
|
||||
|
||||
$beschreibung = $gruppe->bezeichnung;
|
||||
|
||||
$qry_verplant = "SELECT 1 FROM lehre.tbl_stundenplandev
|
||||
|
||||
@@ -355,7 +355,16 @@ $oRdf->sendHeader();
|
||||
$row_lf = $db->db_fetch_object($result_lf);
|
||||
|
||||
//Gruppen holen
|
||||
$qry = "SELECT upper(tbl_studiengang.typ::varchar(1) || tbl_studiengang.kurzbz) as kuerzel, * FROM lehre.tbl_lehreinheitgruppe LEFT JOIN public.tbl_studiengang USING(studiengang_kz) WHERE lehreinheit_id='$row_le->lehreinheit_id'";
|
||||
$qry = "SELECT
|
||||
upper(tbl_studiengang.typ::varchar(1) || tbl_studiengang.kurzbz) as kuerzel,
|
||||
tbl_lehreinheitgruppe.*,
|
||||
tbl_gruppe.direktinskription
|
||||
FROM
|
||||
lehre.tbl_lehreinheitgruppe
|
||||
LEFT JOIN public.tbl_studiengang USING(studiengang_kz)
|
||||
LEFT JOIN public.tbl_gruppe USING(gruppe_kurzbz)
|
||||
WHERE lehreinheit_id=".$db->db_add_param($row_le->lehreinheit_id);
|
||||
|
||||
$result_grp = $db->db_query($qry);
|
||||
$grp='';
|
||||
while($row_grp = $db->db_fetch_object($result_grp))
|
||||
@@ -363,7 +372,11 @@ $oRdf->sendHeader();
|
||||
if($row_grp->gruppe_kurzbz=='')
|
||||
$grp.=' '.$row_grp->kuerzel.trim($row_grp->semester).trim($row_grp->verband).trim($row_grp->gruppe);
|
||||
else
|
||||
$grp.=' '.$row_grp->gruppe_kurzbz;
|
||||
{
|
||||
// Direkte Gruppen werden nicht angezeigt
|
||||
if(!$db->db_parse_bool($row_grp->direktinskription))
|
||||
$grp.=' '.$row_grp->gruppe_kurzbz;
|
||||
}
|
||||
}
|
||||
//Lektoren und Stunden holen
|
||||
$qry = "SELECT kurzbz, semesterstunden, planstunden FROM lehre.tbl_lehreinheitmitarbeiter JOIN public.tbl_mitarbeiter USING(mitarbeiter_uid) WHERE lehreinheit_id='$row_le->lehreinheit_id'";
|
||||
@@ -377,7 +390,17 @@ $oRdf->sendHeader();
|
||||
$semesterstunden.=$row_lkt->semesterstunden.' ';
|
||||
$planstunden.=$row_lkt->planstunden.' ';
|
||||
}
|
||||
$qry = "SELECT tbl_fachbereich.bezeichnung FROM public.tbl_fachbereich, lehre.tbl_lehrveranstaltung as lehrfach, lehre.tbl_lehreinheit WHERE tbl_fachbereich.oe_kurzbz=lehrfach.oe_kurzbz AND lehrfach.lehrveranstaltung_id=tbl_lehreinheit.lehrfach_id AND tbl_lehreinheit.lehreinheit_id=".$db->db_add_param($row_le->lehreinheit_id, FHC_INTEGER);
|
||||
$qry = "SELECT
|
||||
tbl_organisationseinheit.bezeichnung
|
||||
FROM
|
||||
public.tbl_organisationseinheit,
|
||||
lehre.tbl_lehrveranstaltung as lehrfach,
|
||||
lehre.tbl_lehreinheit
|
||||
WHERE
|
||||
tbl_organisationseinheit.oe_kurzbz = lehrfach.oe_kurzbz
|
||||
AND lehrfach.lehrveranstaltung_id = tbl_lehreinheit.lehrfach_id
|
||||
AND tbl_lehreinheit.lehreinheit_id = ".$db->db_add_param($row_le->lehreinheit_id, FHC_INTEGER);
|
||||
|
||||
$fachbereich='';
|
||||
if($result_fb = $db->db_query($qry))
|
||||
if($row_fb = $db->db_fetch_object($result_fb))
|
||||
|
||||
+867
-859
File diff suppressed because it is too large
Load Diff
@@ -116,7 +116,7 @@ foreach ($obj->result as $row)
|
||||
<NOTE:lehrveranstaltung_kurzbz><![CDATA['.$lv_obj->kurzbz.']]></NOTE:lehrveranstaltung_kurzbz>
|
||||
<NOTE:student_nachname><![CDATA['.$benutzer->nachname.']]></NOTE:student_nachname>
|
||||
<NOTE:student_vorname><![CDATA['.$benutzer->vorname.']]></NOTE:student_vorname>
|
||||
<NOTE:studiengang><![CDATA['.$stg_arr[$benutzer->studiengang_kz].']]></NOTE:studiengang>
|
||||
<NOTE:studiengang><![CDATA['.(isset($stg_arr[$benutzer->studiengang_kz])?$stg_arr[$benutzer->studiengang_kz]:'').']]></NOTE:studiengang>
|
||||
<NOTE:studiengang_kz><![CDATA['.$benutzer->studiengang_kz.']]></NOTE:studiengang_kz>
|
||||
<NOTE:studiengang_lv><![CDATA['.$stg_arr[$lv_obj->studiengang_kz].']]></NOTE:studiengang_lv>
|
||||
<NOTE:semester_lv><![CDATA['.$lv_obj->semester.']]></NOTE:semester_lv>
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 58 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 21 KiB |
@@ -0,0 +1,4 @@
|
||||
body
|
||||
{
|
||||
font-size: 14px;
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 18 KiB |
@@ -162,6 +162,7 @@ toolbarbutton.stplweekoverlay-toolbarbutton:hover
|
||||
color: #AAAAAA;
|
||||
visibility:hidden;
|
||||
font-size: small;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
treechildren::-moz-tree-row(makeItred)
|
||||
|
||||
+13
-1
@@ -2513,6 +2513,18 @@ if($result = $db->db_query("SELECT 1 FROM system.tbl_app WHERE app='reihungstest
|
||||
}
|
||||
}
|
||||
|
||||
// Spalte direktinskription fuer public.tbl_gruppe
|
||||
if(!$result = @$db->db_query("SELECT direktinskription FROM public.tbl_gruppe LIMIT 1"))
|
||||
{
|
||||
$qry = "ALTER TABLE public.tbl_gruppe ADD COLUMN direktinskription boolean NOT NULL DEFAULT FALSE;
|
||||
COMMENT ON COLUMN public.tbl_gruppe.direktinskription IS 'Verwendung fuer direkte Zuweisung zu Lehreinheit'";
|
||||
|
||||
if(!$db->db_query($qry))
|
||||
echo '<strong>public.tbl_gruppe: '.$db->db_last_error().'</strong><br>';
|
||||
else
|
||||
echo '<br>public.tbl_gruppe: Spalte direktinskription hinzugefuegt';
|
||||
}
|
||||
|
||||
// Spalte aktiv für tbl_betreuerart
|
||||
if(!$result = @$db->db_query("SELECT aktiv FROM lehre.tbl_betreuerart LIMIT 1"))
|
||||
{
|
||||
@@ -2888,7 +2900,7 @@ $tabellen=array(
|
||||
"public.tbl_fotostatus" => array("fotostatus_kurzbz","beschreibung"),
|
||||
"public.tbl_funktion" => array("funktion_kurzbz","beschreibung","aktiv","fachbereich","semester"),
|
||||
"public.tbl_geschaeftsjahr" => array("geschaeftsjahr_kurzbz","start","ende","bezeichnung"),
|
||||
"public.tbl_gruppe" => array("gruppe_kurzbz","studiengang_kz","semester","bezeichnung","beschreibung","sichtbar","lehre","aktiv","sort","mailgrp","generiert","updateamum","updatevon","insertamum","insertvon","ext_id","orgform_kurzbz","gid","content_visible","gesperrt","zutrittssystem","aufnahmegruppe"),
|
||||
"public.tbl_gruppe" => array("gruppe_kurzbz","studiengang_kz","semester","bezeichnung","beschreibung","sichtbar","lehre","aktiv","sort","mailgrp","generiert","updateamum","updatevon","insertamum","insertvon","ext_id","orgform_kurzbz","gid","content_visible","gesperrt","zutrittssystem","aufnahmegruppe","direktinskription"),
|
||||
"public.tbl_kontakt" => array("kontakt_id","person_id","kontakttyp","anmerkung","kontakt","zustellung","updateamum","updatevon","insertamum","insertvon","ext_id","standort_id"),
|
||||
"public.tbl_kontaktmedium" => array("kontaktmedium_kurzbz","beschreibung"),
|
||||
"public.tbl_kontakttyp" => array("kontakttyp","beschreibung","bezeichnung_mehrsprachig"),
|
||||
|
||||
+455
-436
@@ -1,441 +1,460 @@
|
||||
<?php
|
||||
/* Copyright (C) 2006 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger < christian.paminger@technikum-wien.at >
|
||||
* Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
|
||||
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
|
||||
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
|
||||
*/
|
||||
|
||||
/*******************************************************************************************************
|
||||
* abgabe_assistenz
|
||||
* abgabe_assistenz ist die Assistenzoberfläche des Abgabesystems
|
||||
* für Diplom- und Bachelorarbeiten
|
||||
*******************************************************************************************************/
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/datum.class.php');
|
||||
require_once('../../include/person.class.php');
|
||||
require_once('../../include/benutzer.class.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../include/mitarbeiter.class.php');
|
||||
require_once('../../include/variable.class.php');
|
||||
require_once('../../include/phrasen.class.php');
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
|
||||
|
||||
if (!$getuid = get_uid())
|
||||
die('Keine UID gefunden ! <a href="javascript:history.back()">Zurück</a>');
|
||||
|
||||
$p=new phrasen(DEFAULT_LANGUAGE);
|
||||
$htmlstr = "";
|
||||
$erstbegutachter='';
|
||||
$zweitbegutachter='';
|
||||
$fachbereich_kurzbz='';
|
||||
//$p2id='';
|
||||
|
||||
$stg_kz=(isset($_REQUEST['stg_kz'])?$_REQUEST['stg_kz']:'');
|
||||
if(!is_numeric($stg_kz) && $stg_kz!='')
|
||||
die('Bitte vor dem Aufruf Studiengang auswählen!');
|
||||
$stgbez='';
|
||||
|
||||
$trenner='';
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($getuid);
|
||||
|
||||
if(!$rechte->isBerechtigt('admin', $stg_kz, 'suid') && !$rechte->isBerechtigt('assistenz', $stg_kz, 'suid') && !$rechte->isBerechtigt('assistenz', null, 'suid', $fachbereich_kurzbz) )
|
||||
die('Sie haben keine Berechtigung für diesen Studiengang <a href="javascript:history.back()">Zurück</a>');
|
||||
|
||||
function showFarbcodes()
|
||||
{
|
||||
$farbcodes = '';
|
||||
|
||||
$farbcodes.= "<table>";
|
||||
$farbcodes.="<tr><td style=\"background-color:#FFFFFF; width:35px;\"></td><td style=\"padding-left:5px;\">Termin noch mehr als 12 Tage entfernt</tr>";
|
||||
$farbcodes.="<tr><td style=\"background-color:#FFFF00;\"></td><td style=\"padding-left:5px;\">Termin innerhalb der nächsten 12 Tage</tr>";
|
||||
$farbcodes.="<tr><td style=\"background-color:#FF0000;\"></td><td style=\"padding-left:5px;\">Termin überschritten / keine Abgabe</tr>";
|
||||
$farbcodes.="<tr><td style=\"background-color:#00FF00;\"></td><td style=\"padding-left:5px;\">abgegeben</tr>";
|
||||
$farbcodes.="<tr><td style=\"background-color:#EA7B7B;\"></td><td style=\"padding-left:5px;\">Abgabe nach Termin</tr>";
|
||||
$farbcodes.="</table>";
|
||||
return $farbcodes;
|
||||
}
|
||||
|
||||
$trenner = new variable();
|
||||
$trenner->loadVariables($getuid);
|
||||
|
||||
$sql_query = "SELECT *,
|
||||
(SELECT orgform_kurzbz
|
||||
FROM tbl_prestudentstatus
|
||||
WHERE prestudent_id=(Select prestudent_id from tbl_student where student_uid=xy.uid limit 1)
|
||||
ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1
|
||||
) as organisationsform
|
||||
FROM (SELECT DISTINCT ON(tbl_projektarbeit.projektarbeit_id) public.tbl_studiengang.bezeichnung as stgbez,tbl_projekttyp.bezeichnung AS prjbez,* FROM lehre.tbl_projektarbeit
|
||||
LEFT JOIN public.tbl_benutzer on(uid=student_uid)
|
||||
LEFT JOIN public.tbl_person on(tbl_benutzer.person_id=tbl_person.person_id)
|
||||
LEFT JOIN lehre.tbl_lehreinheit using(lehreinheit_id)
|
||||
LEFT JOIN lehre.tbl_lehrveranstaltung using(lehrveranstaltung_id)
|
||||
LEFT JOIN public.tbl_studiengang using(studiengang_kz)
|
||||
LEFT JOIN lehre.tbl_projekttyp USING (projekttyp_kurzbz)
|
||||
WHERE (projekttyp_kurzbz='Bachelor' OR projekttyp_kurzbz='Diplom')
|
||||
AND public.tbl_benutzer.aktiv
|
||||
AND lehre.tbl_projektarbeit.note IS NULL
|
||||
AND public.tbl_studiengang.studiengang_kz=".$db->db_add_param($stg_kz)."
|
||||
ORDER BY tbl_projektarbeit.projektarbeit_id desc) as xy
|
||||
ORDER BY nachname";
|
||||
|
||||
if(!$erg=$db->db_query($sql_query))
|
||||
{
|
||||
$errormsg='Fehler beim Laden der Betreuungen';
|
||||
}
|
||||
else
|
||||
{
|
||||
//$htmlstr .= "<form name='formular'><input type='hidden' name='check' value=''></form>";
|
||||
$htmlstr .= "<form name='multitermin' action='abgabe_assistenz_multitermin.php' title='Serientermin' target='al_detail' method='POST'>";
|
||||
//$htmlstr .= "<table id='t1' class='liste table-autosort:5 table-stripeclass:alternate table-autostripe'>\n";
|
||||
$htmlstr .= "<table id='t1' class='tablesorter'>\n";
|
||||
$htmlstr .= "<thead><tr class='liste'>\n";
|
||||
$htmlstr .= "<th></th><th class='table-sortable:default'>UID</th>
|
||||
<th>Email</th>
|
||||
<th class='table-sortable:default'>Sem.</th>
|
||||
<th class='table-sortable:default'>Vorname</th>
|
||||
<th class='table-sortable:alphanumeric'>Nachname</th>
|
||||
<th class='table-sortable:default'>Orgform</th>";
|
||||
$htmlstr .= "<th class='table-sortable:default'>Typ</th>
|
||||
<th>Titel</th>
|
||||
<th class='table-sortable:alphanumeric'>1.Begutachter(in)</th>
|
||||
<th>1</th>
|
||||
<th>2</th>
|
||||
<th class='table-sortable:alphanumeric'>2.Begutachter(in)</th>";
|
||||
$htmlstr .= "</tr></thead><tbody>\n";
|
||||
$i = 0;
|
||||
$erstbegutachter='';
|
||||
$zweitbegutachter='';
|
||||
$muid='';
|
||||
$muid2='';
|
||||
$mituid='';
|
||||
$p2id='';
|
||||
while($row=$db->db_fetch_object($erg))
|
||||
{
|
||||
$erstbegutachter='';
|
||||
$zweitbegutachter='';
|
||||
$muid='';
|
||||
$muid2='';
|
||||
$mituid='';
|
||||
$p2id='';
|
||||
$stgbez=$row->stgbez;
|
||||
//Betreuer suchen
|
||||
$qry_betr="SELECT trim(COALESCE(nachname,'')||', '||COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(titelpost,'')) as first, '' as second,
|
||||
public.tbl_mitarbeiter.mitarbeiter_uid, '' as kontakt, public.tbl_person.person_id
|
||||
FROM public.tbl_person JOIN lehre.tbl_projektbetreuer ON(lehre.tbl_projektbetreuer.person_id=public.tbl_person.person_id)
|
||||
LEFT JOIN public.tbl_benutzer ON(public.tbl_benutzer.person_id=public.tbl_person.person_id)
|
||||
LEFT JOIN public.tbl_mitarbeiter ON(public.tbl_benutzer.uid=public.tbl_mitarbeiter.mitarbeiter_uid)
|
||||
WHERE projektarbeit_id=".$db->db_add_param($row->projektarbeit_id, FHC_INTEGER)."
|
||||
AND (tbl_projektbetreuer.betreuerart_kurzbz='Erstbegutachter' OR tbl_projektbetreuer.betreuerart_kurzbz='Betreuer')
|
||||
UNION
|
||||
SELECT '' as first, trim(COALESCE(nachname,'')||', '||COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(titelpost,'')) as second,
|
||||
public.tbl_mitarbeiter.mitarbeiter_uid,
|
||||
(SELECT kontakt FROM public.tbl_kontakt WHERE person_id=tbl_person.person_id AND kontakttyp='email' AND zustellung LIMIT 1) as kontakt, public.tbl_person.person_id
|
||||
FROM public.tbl_person JOIN lehre.tbl_projektbetreuer ON(lehre.tbl_projektbetreuer.person_id=public.tbl_person.person_id)
|
||||
LEFT JOIN public.tbl_benutzer ON(public.tbl_benutzer.person_id=public.tbl_person.person_id)
|
||||
LEFT JOIN public.tbl_mitarbeiter ON(public.tbl_benutzer.uid=public.tbl_mitarbeiter.mitarbeiter_uid)
|
||||
WHERE projektarbeit_id=".$db->db_add_param($row->projektarbeit_id, FHC_INTEGER)."
|
||||
AND tbl_projektbetreuer.betreuerart_kurzbz='Zweitbegutachter'
|
||||
";
|
||||
|
||||
if(!$betr=$db->db_query($qry_betr))
|
||||
{
|
||||
$errormsg='Fehler beim Laden der Betreuer';
|
||||
}
|
||||
else
|
||||
{
|
||||
while($row_betr=$db->db_fetch_object($betr))
|
||||
{
|
||||
if($row_betr->first!='' && $row_betr->mitarbeiter_uid!=NULL)
|
||||
{
|
||||
if(trim($erstbegutachter==''))
|
||||
{
|
||||
$erstbegutachter=$row_betr->first;
|
||||
$muid=$row_betr->mitarbeiter_uid."@".DOMAIN;
|
||||
$mituid=$row_betr->mitarbeiter_uid;
|
||||
}
|
||||
else
|
||||
{
|
||||
$erstbegutachter.=$trenner->variable->emailadressentrennzeichen." ".$row_betr->first;
|
||||
$muid.=$trenner->variable->emailadressentrennzeichen." ".$row_betr->mitarbeiter_uid."@".DOMAIN;
|
||||
}
|
||||
}
|
||||
if($row_betr->second!='')
|
||||
{
|
||||
$zweitbegutachter=$row_betr->second;
|
||||
$p2id=$row_betr->person_id;
|
||||
if($row_betr->mitarbeiter_uid!='' && $row_betr->mitarbeiter_uid!=NULL)
|
||||
{
|
||||
$muid2=$row_betr->mitarbeiter_uid."@".DOMAIN;
|
||||
}
|
||||
else
|
||||
{
|
||||
if($row_betr->kontakt!='' && $row_betr->kontakt!=NULL)
|
||||
{
|
||||
$muid2=$row_betr->kontakt;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
$htmlstr .= " <tr >\n";//class='liste".($i%2)."'
|
||||
$htmlstr .= " <td><input type='checkbox' id='mc_".$row->projektarbeit_id."' name='mc_".$row->projektarbeit_id."' ></td>";
|
||||
//Anzeige
|
||||
$qry_end="SELECT * FROM campus.tbl_paabgabe WHERE paabgabetyp_kurzbz='end' AND projektarbeit_id=".$db->db_add_param($row->projektarbeit_id, FHC_INTEGER)." ORDER BY datum DESC";
|
||||
if(!$result_end=$db->db_query($qry_end))
|
||||
{
|
||||
$htmlstr .= " <td><a href='abgabe_assistenz_details.php?uid=".$row->uid."&projektarbeit_id=".$row->projektarbeit_id."&erst=".$mituid."&p2id=".$p2id."' target='al_detail' title='Details anzeigen'>".$row->uid."</a></td>\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
if($db->db_num_rows($result_end)>0)
|
||||
{
|
||||
$bgcol='';
|
||||
if($row_end=$db->db_fetch_object($result_end))
|
||||
{
|
||||
if($row_end->abgabedatum==NULL)
|
||||
{
|
||||
if ($row_end->datum<date('Y-m-d'))
|
||||
{
|
||||
$bgcol='#FF0000';
|
||||
}
|
||||
elseif (($row_end->datum>=date('Y-m-d')) && ($row_end->datum<date('Y-m-d',mktime(0, 0, 0, date("m") , date("d")+11, date("Y")))))
|
||||
{
|
||||
$bgcol='#FFFF00';
|
||||
}
|
||||
else
|
||||
{
|
||||
$bgcol='#FFFFFF';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if($row_end->abgabedatum>$row_end->datum)
|
||||
{
|
||||
$bgcol='#EA7B7B';
|
||||
}
|
||||
else
|
||||
{
|
||||
$bgcol='#00FF00';
|
||||
}
|
||||
}
|
||||
if($bgcol!='')
|
||||
{
|
||||
$htmlstr .= " <td style='background-color:".$bgcol."'><a href='abgabe_assistenz_details.php?uid=".$row->uid."&projektarbeit_id=".$row->projektarbeit_id."&erst=".$mituid."&p2id=".$p2id."' target='al_detail' title='Details anzeigen'>".$row->uid."</a></td>\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
$htmlstr .= " <td><a href='abgabe_assistenz_details.php?uid=".$row->uid."&projektarbeit_id=".$row->projektarbeit_id."&erst=".$mituid."&p2id=".$p2id."' target='al_detail' title='Details anzeigen'>".$row->uid."</a></td>\n";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$htmlstr .= " <td><a href='abgabe_assistenz_details.php?uid=".$row->uid."&projektarbeit_id=".$row->projektarbeit_id."&erst=".$mituid."&p2id=".$p2id."' target='al_detail' title='Details anzeigen'>".$row->uid."</a></td>\n";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$htmlstr .= " <td><a href='abgabe_assistenz_details.php?uid=".$row->uid."&projektarbeit_id=".$row->projektarbeit_id."&erst=".$mituid."&p2id=".$p2id."' target='al_detail' title='Details anzeigen'>".$row->uid."</a></td>\n";
|
||||
}
|
||||
}
|
||||
$htmlstr .= " <td align= center><input type='hidden' name='st_".$row->projektarbeit_id."' value='$row->uid@".DOMAIN."'><a href='mailto:$row->uid@".DOMAIN."?subject=Betreuung ".$row->prjbez." bei Studiengang $row->stgbez'><img src='../../skin/images/email.png' alt='email' title='Email an StudentIn'></a></td>";
|
||||
$htmlstr .= " <td>".$db->convert_html_chars($row->studiensemester_kurzbz)."</td>\n";
|
||||
$htmlstr .= " <td>".$db->convert_html_chars($row->vorname)."</td>\n";
|
||||
$htmlstr .= " <td>".$db->convert_html_chars($row->nachname)."</td>\n";
|
||||
$htmlstr .= " <td>".$db->convert_html_chars($row->organisationsform)."</td>\n";
|
||||
$htmlstr .= " <td>".$db->convert_html_chars($row->prjbez)."</td>\n";
|
||||
$htmlstr .= " <td>".$db->convert_html_chars($row->titel)."</td>\n";
|
||||
|
||||
//$htmlstr.="<a href='mailto:$row->uid@".DOMAIN."?subject=".$row->projekttyp_kurzbz."arbeitsbetreuung%20von%20".$row->vorname."%20".$row->nachname."'>
|
||||
//<img src='../../../skin/images/email.png' alt='email' title='Email an Betreuer schreiben'></a>";
|
||||
|
||||
if($muid != NULL && $muid !='')
|
||||
{
|
||||
$htmlstr .= " <td><input type='hidden' name='b1_".$row->projektarbeit_id."' value='$muid'><a href='mailto:$muid?subject=Betreuung%20".$row->prjbez."%20von%20".$row->vorname."%20".$row->nachname." bei Studiengang $row->stgbez' title='Email an Erstbegutachter'>".$erstbegutachter."</a></td>\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
$htmlstr .= " <td>".$erstbegutachter."</td>\n";
|
||||
}
|
||||
$htmlstr .= " <td align='center'><input type='checkbox' id='m1_".$row->projektarbeit_id."' name='m1_".$row->projektarbeit_id."'></td>";
|
||||
$htmlstr .= " <td align='center'><input type='checkbox' id='m2_".$row->projektarbeit_id."' name='m2_".$row->projektarbeit_id."'></td>";
|
||||
if($muid2 != NULL && $muid2 !='')
|
||||
{
|
||||
$htmlstr .= " <td><input type='hidden' name='b2_".$row->projektarbeit_id."' value='$muid2'><a href='mailto:".$muid2."?subject=Betreuung%20".$row->prjbez."%20von%20".$row->vorname."%20".$row->nachname." bei Studiengang $row->stgbez' title='Email an Zweitbegutachter'>".$zweitbegutachter."</a></td>\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
$htmlstr .= " <td>".$zweitbegutachter."</td>\n";
|
||||
}
|
||||
$htmlstr .= " </tr>\n";
|
||||
$i++;
|
||||
}
|
||||
$htmlstr .= "</tbody></table>\n";
|
||||
$htmlstr .= '<input type="hidden" name="stg_kz" value="'.$db->convert_html_chars($stg_kz).'">';
|
||||
$htmlstr .= '<input type="hidden" name="p2id" value="'.$db->convert_html_chars($p2id).'">';
|
||||
$htmlstr .= "<table width='100%'><tr><td>";
|
||||
$htmlstr .= "<table><tr><td><input type='checkbox' name='alle' id='alle' onclick='markiere()'> alle markieren </td></tr><tr><td> </td></tr><tr>\n";
|
||||
$htmlstr .= "<td rowspan=2><input type='submit' name='multi' value='Terminserie anlegen' title='Termin für mehrere Personen anlegen.'></td>";
|
||||
$htmlstr .= "<td rowspan=2><input type='button' name='stmail' value='E-Mail Studierende' title='E-Mail an mehrere Studierende schicken' onclick='stserienmail(\"".$trenner->variable->emailadressentrennzeichen."\",\"".$stgbez."\")'></td>";
|
||||
$htmlstr .= "<td rowspan=2><input type='button' name='btmail' value='E-Mail Begutachter(innen)' title='E-Mail an mehrere BegutachterInnen schicken' onclick='btserienmail(\"".$trenner->variable->emailadressentrennzeichen."\",\"".$stgbez."\")'></td></tr></table>\n";
|
||||
$htmlstr .="</td><td align='right'>".showFarbcodes().'</td></tr></table>';
|
||||
$htmlstr .= "</form>";
|
||||
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
<html>
|
||||
<head>
|
||||
<title>Abgabesystem_Assistenzsicht</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
|
||||
<link rel="stylesheet" href="../../skin/tablesort.css" type="text/css"/>
|
||||
<?php
|
||||
/* Copyright (C) 2006 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger < christian.paminger@technikum-wien.at >
|
||||
* Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
|
||||
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
|
||||
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
|
||||
*/
|
||||
|
||||
/*******************************************************************************************************
|
||||
* abgabe_assistenz
|
||||
* abgabe_assistenz ist die Assistenzoberfläche des Abgabesystems
|
||||
* für Diplom- und Bachelorarbeiten
|
||||
*******************************************************************************************************/
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/datum.class.php');
|
||||
require_once('../../include/person.class.php');
|
||||
require_once('../../include/benutzer.class.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../include/mitarbeiter.class.php');
|
||||
require_once('../../include/variable.class.php');
|
||||
require_once('../../include/phrasen.class.php');
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
|
||||
|
||||
if (!$getuid = get_uid())
|
||||
die('Keine UID gefunden ! <a href="javascript:history.back()">Zurück</a>');
|
||||
|
||||
$p=new phrasen(DEFAULT_LANGUAGE);
|
||||
$htmlstr = "";
|
||||
$erstbegutachter='';
|
||||
$zweitbegutachter='';
|
||||
$fachbereich_kurzbz='';
|
||||
//$p2id='';
|
||||
|
||||
$stg_kz=(isset($_REQUEST['stg_kz'])?$_REQUEST['stg_kz']:'');
|
||||
if(!is_numeric($stg_kz) && $stg_kz!='')
|
||||
die('Bitte vor dem Aufruf Studiengang auswählen!');
|
||||
$stgbez='';
|
||||
|
||||
$trenner='';
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($getuid);
|
||||
|
||||
if(!$rechte->isBerechtigt('admin', $stg_kz, 'suid') && !$rechte->isBerechtigt('assistenz', $stg_kz, 'suid') && !$rechte->isBerechtigt('assistenz', null, 'suid', $fachbereich_kurzbz) )
|
||||
die('Sie haben keine Berechtigung für diesen Studiengang <a href="javascript:history.back()">Zurück</a>');
|
||||
|
||||
function showFarbcodes()
|
||||
{
|
||||
$farbcodes = '';
|
||||
|
||||
$farbcodes.= "<table>";
|
||||
$farbcodes.="<tr><td style=\"background-color:#FFFFFF; width:35px;\"></td><td style=\"padding-left:5px;\">Termin noch mehr als 12 Tage entfernt</tr>";
|
||||
$farbcodes.="<tr><td style=\"background-color:#FFFF00;\"></td><td style=\"padding-left:5px;\">Termin innerhalb der nächsten 12 Tage</tr>";
|
||||
$farbcodes.="<tr><td style=\"background-color:#FF0000;\"></td><td style=\"padding-left:5px;\">Termin überschritten / keine Abgabe</tr>";
|
||||
$farbcodes.="<tr><td style=\"background-color:#00FF00;\"></td><td style=\"padding-left:5px;\">abgegeben</tr>";
|
||||
$farbcodes.="<tr><td style=\"background-color:#EA7B7B;\"></td><td style=\"padding-left:5px;\">Abgabe nach Termin</tr>";
|
||||
$farbcodes.="</table>";
|
||||
return $farbcodes;
|
||||
}
|
||||
|
||||
$trenner = new variable();
|
||||
$trenner->loadVariables($getuid);
|
||||
|
||||
$sql_query = "SELECT *,
|
||||
(SELECT orgform_kurzbz
|
||||
FROM tbl_prestudentstatus
|
||||
WHERE prestudent_id=(Select prestudent_id from tbl_student where student_uid=xy.uid limit 1)
|
||||
ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1
|
||||
) as organisationsform
|
||||
FROM (SELECT DISTINCT ON(tbl_projektarbeit.projektarbeit_id) public.tbl_studiengang.bezeichnung as stgbez,tbl_projekttyp.bezeichnung AS prjbez,* FROM lehre.tbl_projektarbeit
|
||||
LEFT JOIN public.tbl_benutzer on(uid=student_uid)
|
||||
LEFT JOIN public.tbl_person on(tbl_benutzer.person_id=tbl_person.person_id)
|
||||
LEFT JOIN lehre.tbl_lehreinheit using(lehreinheit_id)
|
||||
LEFT JOIN lehre.tbl_lehrveranstaltung using(lehrveranstaltung_id)
|
||||
LEFT JOIN public.tbl_studiengang using(studiengang_kz)
|
||||
LEFT JOIN lehre.tbl_projekttyp USING (projekttyp_kurzbz)
|
||||
WHERE (projekttyp_kurzbz='Bachelor' OR projekttyp_kurzbz='Diplom')
|
||||
AND public.tbl_benutzer.aktiv
|
||||
AND lehre.tbl_projektarbeit.note IS NULL
|
||||
AND public.tbl_studiengang.studiengang_kz=".$db->db_add_param($stg_kz)."
|
||||
ORDER BY tbl_projektarbeit.projektarbeit_id desc) as xy
|
||||
ORDER BY nachname";
|
||||
|
||||
if(!$erg=$db->db_query($sql_query))
|
||||
{
|
||||
$errormsg='Fehler beim Laden der Betreuungen';
|
||||
}
|
||||
else
|
||||
{
|
||||
//$htmlstr .= "<form name='formular'><input type='hidden' name='check' value=''></form>";
|
||||
$htmlstr .= "<form name='multitermin' action='abgabe_assistenz_multitermin.php' title='Serientermin' target='al_detail' method='POST'>";
|
||||
//$htmlstr .= "<table id='t1' class='liste table-autosort:5 table-stripeclass:alternate table-autostripe'>\n";
|
||||
$htmlstr .= "<table id='t1' class='tablesorter'>\n";
|
||||
$htmlstr .= "<thead><tr class='liste'>\n";
|
||||
$htmlstr .= "<th></th><th class='table-sortable:default'>UID</th>
|
||||
<th>Email</th>
|
||||
<th class='table-sortable:default'>Sem.</th>
|
||||
<th class='table-sortable:default'>Vorname</th>
|
||||
<th class='table-sortable:alphanumeric'>Nachname</th>
|
||||
<th class='table-sortable:default'>Orgform</th>";
|
||||
$htmlstr .= "<th class='table-sortable:default'>Typ</th>
|
||||
<th>Titel</th>
|
||||
<th class='table-sortable:alphanumeric'>1.Begutachter(in)</th>
|
||||
<th>1</th>
|
||||
<th>2</th>
|
||||
<th class='table-sortable:alphanumeric'>2.Begutachter(in)</th>";
|
||||
$htmlstr .= "</tr></thead><tbody>\n";
|
||||
$i = 0;
|
||||
$erstbegutachter='';
|
||||
$zweitbegutachter='';
|
||||
$muid='';
|
||||
$muid2='';
|
||||
$mituid='';
|
||||
$p2id='';
|
||||
while($row=$db->db_fetch_object($erg))
|
||||
{
|
||||
$erstbegutachter='';
|
||||
$zweitbegutachter='';
|
||||
$muid='';
|
||||
$muid2='';
|
||||
$mituid='';
|
||||
$p2id='';
|
||||
$stgbez=$row->stgbez;
|
||||
//Betreuer suchen
|
||||
$qry_betr="SELECT trim(COALESCE(nachname, '') || ', ' || COALESCE(titelpre, '') || ' ' || COALESCE(vorname, '') || ' ' || COALESCE(titelpost, '')) AS first,
|
||||
'' AS second,
|
||||
PUBLIC.tbl_mitarbeiter.mitarbeiter_uid,
|
||||
'' AS kontakt,
|
||||
PUBLIC.tbl_person.person_id
|
||||
FROM PUBLIC.tbl_person
|
||||
JOIN lehre.tbl_projektbetreuer ON (lehre.tbl_projektbetreuer.person_id = PUBLIC.tbl_person.person_id)
|
||||
LEFT JOIN PUBLIC.tbl_benutzer ON (PUBLIC.tbl_benutzer.person_id = PUBLIC.tbl_person.person_id)
|
||||
LEFT JOIN PUBLIC.tbl_mitarbeiter ON (PUBLIC.tbl_benutzer.uid = PUBLIC.tbl_mitarbeiter.mitarbeiter_uid)
|
||||
WHERE projektarbeit_id = ".$db->db_add_param($row->projektarbeit_id, FHC_INTEGER)."
|
||||
AND (
|
||||
tbl_projektbetreuer.betreuerart_kurzbz = 'Erstbegutachter'
|
||||
OR tbl_projektbetreuer.betreuerart_kurzbz = 'Betreuer'
|
||||
OR tbl_projektbetreuer.betreuerart_kurzbz = 'Begutachter'
|
||||
)
|
||||
|
||||
UNION
|
||||
|
||||
SELECT '' AS first,
|
||||
trim(COALESCE(nachname, '') || ', ' || COALESCE(titelpre, '') || ' ' || COALESCE(vorname, '') || ' ' || COALESCE(titelpost, '')) AS second,
|
||||
PUBLIC.tbl_mitarbeiter.mitarbeiter_uid,
|
||||
(
|
||||
SELECT kontakt
|
||||
FROM PUBLIC.tbl_kontakt
|
||||
WHERE person_id = tbl_person.person_id
|
||||
AND kontakttyp = 'email'
|
||||
AND zustellung LIMIT 1
|
||||
) AS kontakt,
|
||||
PUBLIC.tbl_person.person_id
|
||||
FROM PUBLIC.tbl_person
|
||||
JOIN lehre.tbl_projektbetreuer ON (lehre.tbl_projektbetreuer.person_id = PUBLIC.tbl_person.person_id)
|
||||
LEFT JOIN PUBLIC.tbl_benutzer ON (PUBLIC.tbl_benutzer.person_id = PUBLIC.tbl_person.person_id)
|
||||
LEFT JOIN PUBLIC.tbl_mitarbeiter ON (PUBLIC.tbl_benutzer.uid = PUBLIC.tbl_mitarbeiter.mitarbeiter_uid)
|
||||
WHERE projektarbeit_id = ".$db->db_add_param($row->projektarbeit_id, FHC_INTEGER)."
|
||||
AND tbl_projektbetreuer.betreuerart_kurzbz = 'Zweitbegutachter'
|
||||
";
|
||||
|
||||
if(!$betr=$db->db_query($qry_betr))
|
||||
{
|
||||
$errormsg='Fehler beim Laden der Betreuer';
|
||||
}
|
||||
else
|
||||
{
|
||||
while($row_betr=$db->db_fetch_object($betr))
|
||||
{
|
||||
if($row_betr->first!='' && $row_betr->mitarbeiter_uid!=NULL)
|
||||
{
|
||||
if(trim($erstbegutachter==''))
|
||||
{
|
||||
$erstbegutachter=$row_betr->first;
|
||||
$muid=$row_betr->mitarbeiter_uid."@".DOMAIN;
|
||||
$mituid=$row_betr->mitarbeiter_uid;
|
||||
}
|
||||
else
|
||||
{
|
||||
$erstbegutachter.=$trenner->variable->emailadressentrennzeichen." ".$row_betr->first;
|
||||
$muid.=$trenner->variable->emailadressentrennzeichen." ".$row_betr->mitarbeiter_uid."@".DOMAIN;
|
||||
}
|
||||
}
|
||||
if($row_betr->second!='')
|
||||
{
|
||||
$zweitbegutachter=$row_betr->second;
|
||||
$p2id=$row_betr->person_id;
|
||||
if($row_betr->mitarbeiter_uid!='' && $row_betr->mitarbeiter_uid!=NULL)
|
||||
{
|
||||
$muid2=$row_betr->mitarbeiter_uid."@".DOMAIN;
|
||||
}
|
||||
else
|
||||
{
|
||||
if($row_betr->kontakt!='' && $row_betr->kontakt!=NULL)
|
||||
{
|
||||
$muid2=$row_betr->kontakt;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
$htmlstr .= " <tr >\n";//class='liste".($i%2)."'
|
||||
$htmlstr .= " <td><input type='checkbox' id='mc_".$row->projektarbeit_id."' name='mc_".$row->projektarbeit_id."' ></td>";
|
||||
//Anzeige
|
||||
$qry_end="SELECT * FROM campus.tbl_paabgabe WHERE paabgabetyp_kurzbz='end' AND projektarbeit_id=".$db->db_add_param($row->projektarbeit_id, FHC_INTEGER)." ORDER BY datum DESC";
|
||||
if(!$result_end=$db->db_query($qry_end))
|
||||
{
|
||||
$htmlstr .= " <td><a href='abgabe_assistenz_details.php?uid=".$row->uid."&projektarbeit_id=".$row->projektarbeit_id."&erst=".$mituid."&p2id=".$p2id."' target='al_detail' title='Details anzeigen'>".$row->uid."</a></td>\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
if($db->db_num_rows($result_end)>0)
|
||||
{
|
||||
$bgcol='';
|
||||
if($row_end=$db->db_fetch_object($result_end))
|
||||
{
|
||||
if($row_end->abgabedatum==NULL)
|
||||
{
|
||||
if ($row_end->datum<date('Y-m-d'))
|
||||
{
|
||||
$bgcol='#FF0000';
|
||||
}
|
||||
elseif (($row_end->datum>=date('Y-m-d')) && ($row_end->datum<date('Y-m-d',mktime(0, 0, 0, date("m") , date("d")+11, date("Y")))))
|
||||
{
|
||||
$bgcol='#FFFF00';
|
||||
}
|
||||
else
|
||||
{
|
||||
$bgcol='#FFFFFF';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if($row_end->abgabedatum>$row_end->datum)
|
||||
{
|
||||
$bgcol='#EA7B7B';
|
||||
}
|
||||
else
|
||||
{
|
||||
$bgcol='#00FF00';
|
||||
}
|
||||
}
|
||||
if($bgcol!='')
|
||||
{
|
||||
$htmlstr .= " <td style='background-color:".$bgcol."'><a href='abgabe_assistenz_details.php?uid=".$row->uid."&projektarbeit_id=".$row->projektarbeit_id."&erst=".$mituid."&p2id=".$p2id."' target='al_detail' title='Details anzeigen'>".$row->uid."</a></td>\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
$htmlstr .= " <td><a href='abgabe_assistenz_details.php?uid=".$row->uid."&projektarbeit_id=".$row->projektarbeit_id."&erst=".$mituid."&p2id=".$p2id."' target='al_detail' title='Details anzeigen'>".$row->uid."</a></td>\n";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$htmlstr .= " <td><a href='abgabe_assistenz_details.php?uid=".$row->uid."&projektarbeit_id=".$row->projektarbeit_id."&erst=".$mituid."&p2id=".$p2id."' target='al_detail' title='Details anzeigen'>".$row->uid."</a></td>\n";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$htmlstr .= " <td><a href='abgabe_assistenz_details.php?uid=".$row->uid."&projektarbeit_id=".$row->projektarbeit_id."&erst=".$mituid."&p2id=".$p2id."' target='al_detail' title='Details anzeigen'>".$row->uid."</a></td>\n";
|
||||
}
|
||||
}
|
||||
$htmlstr .= " <td align= center><input type='hidden' name='st_".$row->projektarbeit_id."' value='$row->uid@".DOMAIN."'><a href='mailto:$row->uid@".DOMAIN."?subject=Betreuung ".$row->prjbez." bei Studiengang $row->stgbez'><img src='../../skin/images/email.png' alt='email' title='Email an StudentIn'></a></td>";
|
||||
$htmlstr .= " <td>".$db->convert_html_chars($row->studiensemester_kurzbz)."</td>\n";
|
||||
$htmlstr .= " <td>".$db->convert_html_chars($row->vorname)."</td>\n";
|
||||
$htmlstr .= " <td>".$db->convert_html_chars($row->nachname)."</td>\n";
|
||||
$htmlstr .= " <td>".$db->convert_html_chars($row->organisationsform)."</td>\n";
|
||||
$htmlstr .= " <td>".$db->convert_html_chars($row->prjbez)."</td>\n";
|
||||
$htmlstr .= " <td>".$db->convert_html_chars($row->titel)."</td>\n";
|
||||
|
||||
//$htmlstr.="<a href='mailto:$row->uid@".DOMAIN."?subject=".$row->projekttyp_kurzbz."arbeitsbetreuung%20von%20".$row->vorname."%20".$row->nachname."'>
|
||||
//<img src='../../../skin/images/email.png' alt='email' title='Email an Betreuer schreiben'></a>";
|
||||
|
||||
if($muid != NULL && $muid !='')
|
||||
{
|
||||
$htmlstr .= " <td><input type='hidden' name='b1_".$row->projektarbeit_id."' value='$muid'><a href='mailto:$muid?subject=Betreuung%20".$row->prjbez."%20von%20".$row->vorname."%20".$row->nachname." bei Studiengang $row->stgbez' title='Email an Erstbegutachter'>".$erstbegutachter."</a></td>\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
$htmlstr .= " <td>".$erstbegutachter."</td>\n";
|
||||
}
|
||||
$htmlstr .= " <td align='center'><input type='checkbox' id='m1_".$row->projektarbeit_id."' name='m1_".$row->projektarbeit_id."'></td>";
|
||||
$htmlstr .= " <td align='center'><input type='checkbox' id='m2_".$row->projektarbeit_id."' name='m2_".$row->projektarbeit_id."'></td>";
|
||||
if($muid2 != NULL && $muid2 !='')
|
||||
{
|
||||
$htmlstr .= " <td><input type='hidden' name='b2_".$row->projektarbeit_id."' value='$muid2'><a href='mailto:".$muid2."?subject=Betreuung%20".$row->prjbez."%20von%20".$row->vorname."%20".$row->nachname." bei Studiengang $row->stgbez' title='Email an Zweitbegutachter'>".$zweitbegutachter."</a></td>\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
$htmlstr .= " <td>".$zweitbegutachter."</td>\n";
|
||||
}
|
||||
$htmlstr .= " </tr>\n";
|
||||
$i++;
|
||||
}
|
||||
$htmlstr .= "</tbody></table>\n";
|
||||
$htmlstr .= '<input type="hidden" name="stg_kz" value="'.$db->convert_html_chars($stg_kz).'">';
|
||||
$htmlstr .= '<input type="hidden" name="p2id" value="'.$db->convert_html_chars($p2id).'">';
|
||||
$htmlstr .= "<table width='100%'><tr><td>";
|
||||
$htmlstr .= "<table><tr><td><input type='checkbox' name='alle' id='alle' onclick='markiere()'> alle markieren </td></tr><tr><td> </td></tr><tr>\n";
|
||||
$htmlstr .= "<td rowspan=2><input type='submit' name='multi' value='Terminserie anlegen' title='Termin für mehrere Personen anlegen.'></td>";
|
||||
$htmlstr .= "<td rowspan=2><input type='button' name='stmail' value='E-Mail Studierende' title='E-Mail an mehrere Studierende schicken' onclick='stserienmail(\"".$trenner->variable->emailadressentrennzeichen."\",\"".$stgbez."\")'></td>";
|
||||
$htmlstr .= "<td rowspan=2><input type='button' name='btmail' value='E-Mail Begutachter(innen)' title='E-Mail an mehrere BegutachterInnen schicken' onclick='btserienmail(\"".$trenner->variable->emailadressentrennzeichen."\",\"".$stgbez."\")'></td></tr></table>\n";
|
||||
$htmlstr .="</td><td align='right'>".showFarbcodes().'</td></tr></table>';
|
||||
$htmlstr .= "</form>";
|
||||
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
<html>
|
||||
<head>
|
||||
<title>Abgabesystem_Assistenzsicht</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
|
||||
<link rel="stylesheet" href="../../skin/tablesort.css" type="text/css"/>
|
||||
<link rel="stylesheet" type="text/css" href="../../skin/jquery-ui-1.9.2.custom.min.css">
|
||||
<script type="text/javascript" src="../../vendor/jquery/jqueryV1/jquery-1.12.4.min.js"></script>
|
||||
<script type="text/javascript" src="../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
|
||||
<script type="text/javascript" src="../../vendor/components/jqueryui/jquery-ui.min.js"></script>
|
||||
<script type="text/javascript" src="../../include/js/jquery.ui.datepicker.translation.js"></script>
|
||||
<script type="text/javascript" src="../../vendor/jquery/sizzle/sizzle.js"></script>
|
||||
<script language="JavaScript" type="text/javascript">
|
||||
|
||||
$(document).ready(function()
|
||||
{
|
||||
$("#t1").tablesorter(
|
||||
{
|
||||
sortList: [[5,0]],
|
||||
widgets: ['zebra']
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
function confdel()
|
||||
{
|
||||
if(confirm("Diesen Datensatz wirklick loeschen?"))
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
function markiere()
|
||||
{
|
||||
var items=document.getElementsByTagName('input');
|
||||
var alle=document.getElementById('alle');
|
||||
jQuery.each(items, function(index, item) {
|
||||
if(item.type == 'checkbox')
|
||||
{
|
||||
item.checked = alle.checked;
|
||||
}
|
||||
});
|
||||
}
|
||||
function stserienmail(trenner, stgbez)
|
||||
{
|
||||
//E-Mail an mehrere ausgewaehlte Studenten
|
||||
var studenten=document.getElementsByTagName('input');
|
||||
var adressen='';
|
||||
jQuery.each(studenten, function(index, students) {
|
||||
if(students.type=='hidden' && students.name.substr(0,3)=="st_")
|
||||
{
|
||||
var id = "mc_"+students.name.substr(3);
|
||||
if(document.getElementById(id).checked)
|
||||
{
|
||||
if(adressen=='')
|
||||
{
|
||||
adressen=students.value;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(adressen.search(students.value)==-1)
|
||||
{
|
||||
adressen=adressen+trenner+students.value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
window.location.href="mailto:"+adressen+"?subject=Betreuungen Bachelorarbeit bzw. Master Thesis bei Studiengang "+stgbez;
|
||||
}
|
||||
function btserienmail(trenner, stgbez)
|
||||
{
|
||||
//Mail an mehrere ausgewählte Betreuer
|
||||
var lektoren=document.getElementsByTagName('input');
|
||||
var adressen='';
|
||||
|
||||
jQuery.each(lektoren, function(index, personen) {
|
||||
if(personen.type=='hidden' && personen.name.substr(0,3)=="b1_" && personen.value!='')
|
||||
{
|
||||
var id = "m1_"+personen.name.substr(3);
|
||||
if(document.getElementById(id).checked)
|
||||
{
|
||||
temp=personen.value.split(trenner);
|
||||
for(i=0;i<temp.length;i++)
|
||||
{
|
||||
if(adressen=='')
|
||||
{
|
||||
adressen=temp[i];
|
||||
}
|
||||
else
|
||||
{
|
||||
if(adressen.search(temp[i])==-1)
|
||||
{
|
||||
adressen=adressen+trenner+temp[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(personen.type=='hidden' && personen.name.substr(0,3)=="b2_" && personen.value!='')
|
||||
{
|
||||
var id = "m2_"+personen.name.substr(3);
|
||||
if(document.getElementById(id).checked)
|
||||
{
|
||||
temp=personen.value.split(trenner);
|
||||
for(i=0;i<temp.length;i++)
|
||||
{
|
||||
if(adressen=='')
|
||||
{
|
||||
adressen=temp[i];
|
||||
}
|
||||
else
|
||||
{
|
||||
if(adressen.search(temp[i])==-1)
|
||||
{
|
||||
adressen=adressen+trenner+temp[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
window.location.href="mailto:"+adressen+"?subject=Betreuungen Bachelorarbeit bzw. Master Thesis bei Studiengang "+stgbez;
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body class="background_main">
|
||||
<?php
|
||||
echo "<h2><div style='float:left'>Bachelor-/Masterarbeitsbetreuungen (Studiengang $stg_kz, $stgbez)</div><div style='text-align: right;'><a href='../../cms/dms.php?id=".$p->t('dms_link/abgabetoolAssistenzHandbuch')."' target='_blank'><img src='../../skin/images/information.png' alt='Anleitung' title='Anleitung BaDa-Abgabe' border=0> Handbuch</a></div></h2>";
|
||||
|
||||
echo $htmlstr;
|
||||
?>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
<script type="text/javascript" src="../../vendor/jquery/sizzle/sizzle.js"></script>
|
||||
<script language="JavaScript" type="text/javascript">
|
||||
|
||||
$(document).ready(function()
|
||||
{
|
||||
$("#t1").tablesorter(
|
||||
{
|
||||
sortList: [[5,0]],
|
||||
widgets: ['zebra']
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
function confdel()
|
||||
{
|
||||
if(confirm("Diesen Datensatz wirklick loeschen?"))
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
function markiere()
|
||||
{
|
||||
var items=document.getElementsByTagName('input');
|
||||
var alle=document.getElementById('alle');
|
||||
jQuery.each(items, function(index, item) {
|
||||
if(item.type == 'checkbox')
|
||||
{
|
||||
item.checked = alle.checked;
|
||||
}
|
||||
});
|
||||
}
|
||||
function stserienmail(trenner, stgbez)
|
||||
{
|
||||
//E-Mail an mehrere ausgewaehlte Studenten
|
||||
var studenten=document.getElementsByTagName('input');
|
||||
var adressen='';
|
||||
jQuery.each(studenten, function(index, students) {
|
||||
if(students.type=='hidden' && students.name.substr(0,3)=="st_")
|
||||
{
|
||||
var id = "mc_"+students.name.substr(3);
|
||||
if(document.getElementById(id).checked)
|
||||
{
|
||||
if(adressen=='')
|
||||
{
|
||||
adressen=students.value;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(adressen.search(students.value)==-1)
|
||||
{
|
||||
adressen=adressen+trenner+students.value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
window.location.href="mailto:"+adressen+"?subject=Betreuungen Bachelorarbeit bzw. Master Thesis bei Studiengang "+stgbez;
|
||||
}
|
||||
function btserienmail(trenner, stgbez)
|
||||
{
|
||||
//Mail an mehrere ausgewählte Betreuer
|
||||
var lektoren=document.getElementsByTagName('input');
|
||||
var adressen='';
|
||||
|
||||
jQuery.each(lektoren, function(index, personen) {
|
||||
if(personen.type=='hidden' && personen.name.substr(0,3)=="b1_" && personen.value!='')
|
||||
{
|
||||
var id = "mc_"+personen.name.substr(3);
|
||||
if(document.getElementById(id).checked)
|
||||
{
|
||||
temp=personen.value.split(trenner);
|
||||
for(i=0;i<temp.length;i++)
|
||||
{
|
||||
if(adressen=='')
|
||||
{
|
||||
adressen=temp[i];
|
||||
}
|
||||
else
|
||||
{
|
||||
if(adressen.search(temp[i])==-1)
|
||||
{
|
||||
adressen=adressen+trenner+temp[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(personen.type=='hidden' && personen.name.substr(0,3)=="b2_" && personen.value!='')
|
||||
{
|
||||
var id = "mc_"+personen.name.substr(3);
|
||||
if(document.getElementById(id).checked)
|
||||
{
|
||||
temp=personen.value.split(trenner);
|
||||
for(i=0;i<temp.length;i++)
|
||||
{
|
||||
if(adressen=='')
|
||||
{
|
||||
adressen=temp[i];
|
||||
}
|
||||
else
|
||||
{
|
||||
if(adressen.search(temp[i])==-1)
|
||||
{
|
||||
adressen=adressen+trenner+temp[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
window.location.href="mailto:"+adressen+"?subject=Betreuungen Bachelorarbeit bzw. Master Thesis bei Studiengang "+stgbez;
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body class="background_main">
|
||||
<?php
|
||||
echo "<h2><div style='float:left'>Bachelor-/Masterarbeitsbetreuungen (Studiengang $stg_kz, $stgbez)</div><div style='text-align: right;'><a href='../../cms/dms.php?id=".$p->t('dms_link/abgabetoolAssistenzHandbuch')."' target='_blank'><img src='../../skin/images/information.png' alt='Anleitung' title='Anleitung BaDa-Abgabe' border=0> Handbuch</a></div></h2>";
|
||||
|
||||
echo $htmlstr;
|
||||
?>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -228,7 +228,7 @@ if(isset($_POST["schick"]) && $error=='')
|
||||
LEFT JOIN public.tbl_benutzer ON(public.tbl_benutzer.person_id=public.tbl_person.person_id)
|
||||
LEFT JOIN public.tbl_mitarbeiter ON(public.tbl_benutzer.uid=public.tbl_mitarbeiter.mitarbeiter_uid)
|
||||
WHERE projektarbeit_id=".$db->db_add_param($termine[$j])." AND (tbl_benutzer.aktiv OR tbl_benutzer.aktiv IS NULL)
|
||||
AND (tbl_projektbetreuer.betreuerart_kurzbz='Erstbegutachter' OR tbl_projektbetreuer.betreuerart_kurzbz='Betreuer')";
|
||||
AND (tbl_projektbetreuer.betreuerart_kurzbz='Erstbegutachter' OR tbl_projektbetreuer.betreuerart_kurzbz='Betreuer' OR tbl_projektbetreuer.betreuerart_kurzbz = 'Begutachter')";
|
||||
if(!$betr=$db->db_query($qry_betr))
|
||||
{
|
||||
echo "<font color=\"#FF0000\">Fehler beim Laden des Begutachters (Diplomand: $row->nachname)!</font><br> ";
|
||||
|
||||
@@ -31,6 +31,7 @@ require_once('../../include/lehreinheitmitarbeiter.class.php');
|
||||
require_once('../../include/lehreinheitgruppe.class.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../include/mitarbeiter.class.php');
|
||||
require_once('../../include/gruppe.class.php');
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
|
||||
@@ -39,7 +40,7 @@ $user = get_uid();
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
if(!$rechte->isBerechtigt('lehre/vorrueckung', null, 'suid'))
|
||||
if (!$rechte->isBerechtigt('lehre/vorrueckung', null, 'suid'))
|
||||
die($rechte->errormsg);
|
||||
|
||||
$stg_obj = new studiengang();
|
||||
@@ -56,34 +57,33 @@ $studiengang_kz = (isset($_GET['studiengang_kz'])?$_GET['studiengang_kz']:'');
|
||||
$semester = (isset($_GET['semester'])?$_GET['semester']:'');
|
||||
$stsem_von = (isset($_GET['stsem_von'])?$_GET['stsem_von']:'');
|
||||
$stsem_nach = (isset($_GET['stsem_nach'])?$_GET['stsem_nach']:'');
|
||||
$text='';
|
||||
$anzahl_lehreinheiten=0;
|
||||
$anzahl_lehreinheitmitarbeiter=0;
|
||||
$anzahl_lehreinheitgruppe=0;
|
||||
$error_lehreinheit=0;
|
||||
$error_lehreinheitmitarbeiter=0;
|
||||
$error_lehreinheitgruppe=0;
|
||||
$text = '';
|
||||
$anzahl_lehreinheiten = 0;
|
||||
$anzahl_lehreinheitmitarbeiter = 0;
|
||||
$anzahl_lehreinheitgruppe = 0;
|
||||
$error_lehreinheit = 0;
|
||||
$error_lehreinheitmitarbeiter = 0;
|
||||
$error_lehreinheitgruppe = 0;
|
||||
|
||||
if($stsem_von=='')
|
||||
if ($stsem_von == '')
|
||||
{
|
||||
$stsem_obj = new studiensemester();
|
||||
$stsem_von = $stsem_obj->getPrevious();
|
||||
}
|
||||
|
||||
if($stsem_nach=='')
|
||||
if ($stsem_nach == '')
|
||||
{
|
||||
$stsem_obj = new studiensemester();
|
||||
$stsem_obj->getNextStudiensemester();
|
||||
$stsem_nach = $stsem_obj->studiensemester_kurzbz;
|
||||
}
|
||||
|
||||
echo '
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
echo '<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<title>Lehreinheit Vorrueckung</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
|
||||
<title>Lehreinheit Vorrueckung</title>
|
||||
<meta charset="UTF-8">
|
||||
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
|
||||
</head>
|
||||
<body style="background-color:#eeeeee;">
|
||||
<h2>Lehreinheiten Vorrückung</h2>
|
||||
@@ -93,10 +93,10 @@ echo 'Studiengang: <SELECT name="studiengang_kz">';
|
||||
echo '<OPTION value="">---Stg auswählen---</OPTION>';
|
||||
foreach($stg_obj->result as $stg)
|
||||
{
|
||||
if($studiengang_kz==$stg->studiengang_kz)
|
||||
$selected='selected';
|
||||
if ($studiengang_kz == $stg->studiengang_kz)
|
||||
$selected = 'selected';
|
||||
else
|
||||
$selected='';
|
||||
$selected = '';
|
||||
|
||||
echo '<OPTION value="'.$stg->studiengang_kz.'" '.$selected.'>'.$stg->kuerzel.' ('.$stg->kurzbzlang.')</OPTION>';
|
||||
}
|
||||
@@ -104,12 +104,12 @@ echo '</SELECT>';
|
||||
|
||||
echo ' Semester: <SELECT name="semester">';
|
||||
echo '<OPTION value="">-- Alle --</OPTION>';
|
||||
for($i=1;$i<=8;$i++)
|
||||
for ($i = 1;$i <= 8;$i++)
|
||||
{
|
||||
if($semester==$i)
|
||||
$selected='selected';
|
||||
if ($semester == $i)
|
||||
$selected = 'selected';
|
||||
else
|
||||
$selected='';
|
||||
$selected = '';
|
||||
|
||||
echo '<OPTION value="'.$i.'" '.$selected.'>'.$i.'</OPTION>';
|
||||
}
|
||||
@@ -121,7 +121,7 @@ $stsem_obj->getAll();
|
||||
|
||||
foreach ($stsem_obj->studiensemester as $stsem)
|
||||
{
|
||||
if($stsem_von == $stsem->studiensemester_kurzbz)
|
||||
if ($stsem_von == $stsem->studiensemester_kurzbz)
|
||||
$selected = 'selected';
|
||||
else
|
||||
$selected = '';
|
||||
@@ -134,7 +134,7 @@ echo ' Nach: <SELECT name="stsem_nach">';
|
||||
|
||||
foreach ($stsem_obj->studiensemester as $stsem)
|
||||
{
|
||||
if($stsem_nach == $stsem->studiensemester_kurzbz)
|
||||
if ($stsem_nach == $stsem->studiensemester_kurzbz)
|
||||
$selected = 'selected';
|
||||
else
|
||||
$selected = '';
|
||||
@@ -146,22 +146,38 @@ echo '</SELECT>';
|
||||
|
||||
echo ' <input type="submit" value="Vorrücken"><br>';
|
||||
|
||||
if (defined('VILESCI_STUNDENSATZ_VORRUECKUNG') && VILESCI_STUNDENSATZ_VORRUECKUNG != '' && is_numeric(VILESCI_STUNDENSATZ_VORRUECKUNG))
|
||||
echo '<br><span style="color: blue">Alle Lehraufträge werden mit dem Stundensatz "'.VILESCI_STUNDENSATZ_VORRUECKUNG.'" vorgerückt</span>';
|
||||
elseif (defined('VILESCI_STUNDENSATZ_VORRUECKUNG') && VILESCI_STUNDENSATZ_VORRUECKUNG != '' && VILESCI_STUNDENSATZ_VORRUECKUNG == 'default')
|
||||
echo '<br><span style="color: blue">Alle Lehraufträge werden mit dem aktuell hinterlegten Standard-Stundensatz der/des Lehrenden vorgerückt</span>';
|
||||
if (defined('VILESCI_STUNDENSATZ_VORRUECKUNG')
|
||||
&& VILESCI_STUNDENSATZ_VORRUECKUNG != ''
|
||||
&& is_numeric(VILESCI_STUNDENSATZ_VORRUECKUNG))
|
||||
{
|
||||
echo '<br><span style="color: blue">
|
||||
Alle Lehraufträge werden mit dem Stundensatz "'.VILESCI_STUNDENSATZ_VORRUECKUNG.'" vorgerückt
|
||||
</span>';
|
||||
}
|
||||
elseif (defined('VILESCI_STUNDENSATZ_VORRUECKUNG')
|
||||
&& VILESCI_STUNDENSATZ_VORRUECKUNG != ''
|
||||
&& VILESCI_STUNDENSATZ_VORRUECKUNG == 'default')
|
||||
{
|
||||
echo '<br><span style="color: blue">
|
||||
Alle Lehraufträge werden mit dem aktuell hinterlegten Standard-Stundensatz der/des Lehrenden vorgerückt
|
||||
</span>';
|
||||
}
|
||||
else
|
||||
echo '<br><span style="color: blue">Alle Lehraufträge werden mit dem Stundensatz des Vorjahres vorgerückt</span>';
|
||||
{
|
||||
echo '<br><span style="color: blue">
|
||||
Alle Lehraufträge werden mit dem Stundensatz des Vorjahres vorgerückt
|
||||
</span>';
|
||||
}
|
||||
|
||||
echo '</form>';
|
||||
|
||||
if($studiengang_kz!='' && $stsem_von!='' && $stsem_nach!='')
|
||||
if ($studiengang_kz != '' && $stsem_von != '' && $stsem_nach != '')
|
||||
{
|
||||
$stg_obj = new studiengang();
|
||||
if(!$stg_obj->load($studiengang_kz))
|
||||
if (!$stg_obj->load($studiengang_kz))
|
||||
die('Studiengang kann nicht geladen werden');
|
||||
|
||||
if(!$rechte->isBerechtigt('lehre/vorrueckung', $stg_obj->oe_kurzbz, 'suid'))
|
||||
if (!$rechte->isBerechtigt('lehre/vorrueckung', $stg_obj->oe_kurzbz, 'suid'))
|
||||
die($rechte->errormsg);
|
||||
|
||||
echo '<br>Starte Vorrückung '.$stg_arr[$studiengang_kz]." $semester von $stsem_von nach $stsem_nach ...";
|
||||
@@ -172,10 +188,10 @@ if($studiengang_kz!='' && $stsem_von!='' && $stsem_nach!='')
|
||||
WHERE
|
||||
tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz)." AND
|
||||
tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stsem_von);
|
||||
if($semester!='')
|
||||
if ($semester != '')
|
||||
$qry .= " AND tbl_lehrveranstaltung.semester=".$db->db_add_param($semester);
|
||||
|
||||
if($result = $db->db_query($qry))
|
||||
if ($result = $db->db_query($qry))
|
||||
{
|
||||
$anzahl_von = $db->db_num_rows($result);
|
||||
}
|
||||
@@ -186,92 +202,114 @@ if($studiengang_kz!='' && $stsem_von!='' && $stsem_nach!='')
|
||||
WHERE
|
||||
tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz)." AND
|
||||
tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stsem_nach);
|
||||
if($semester!='')
|
||||
if ($semester != '')
|
||||
$qry_nach .= " AND tbl_lehrveranstaltung.semester=".$db->db_add_param($semester);
|
||||
|
||||
if($result = $db->db_query($qry_nach))
|
||||
if ($result = $db->db_query($qry_nach))
|
||||
{
|
||||
$anzahl_nach = $db->db_num_rows($result);
|
||||
$baseurl = basename($_SERVER['REQUEST_URI']);
|
||||
if ($anzahl_nach >= $anzahl_von && !isset($_GET['continue']))
|
||||
{
|
||||
echo '<br><br><span style="color:red">Es sind schon Lehreinheiten fuer das '.$stsem_nach.' in '.$stg_arr[$studiengang_kz].' '.$semester.' vorhanden. Trotzdem fortsetzen?</span><br><br>
|
||||
echo '<br><br><span style="color:red">Es sind schon Lehreinheiten fuer das
|
||||
'.$stsem_nach.' in '.$stg_arr[$studiengang_kz].' '.$semester.' vorhanden.
|
||||
Trotzdem fortsetzen?</span><br><br>
|
||||
<form action="'.$baseurl.'&continue" method="POST"><input type="submit" value="Fortsetzen"></form>';
|
||||
die ();
|
||||
}
|
||||
}
|
||||
|
||||
if($result = $db->db_query($qry))
|
||||
if ($result = $db->db_query($qry))
|
||||
{
|
||||
while($row = $db->db_fetch_object($result))
|
||||
{
|
||||
$text.="<br>Lehreinheit $row->lehreinheit_id wird vorgerueckt";
|
||||
$text .= "<br>Lehreinheit $row->lehreinheit_id wird vorgerueckt";
|
||||
$le_obj = new lehreinheit();
|
||||
//Lehreinheit Neu Anlegen
|
||||
if($le_obj->load($row->lehreinheit_id))
|
||||
if ($le_obj->load($row->lehreinheit_id))
|
||||
{
|
||||
$le_obj->new=true;
|
||||
$le_obj->studiensemester_kurzbz=$stsem_nach;
|
||||
$le_obj->insertamum=date('Y-m-d H:i:s');
|
||||
$le_obj->insertvon='Vorrueckung_'.$user;
|
||||
$le_obj->ext_id='';
|
||||
$le_obj->unr='';
|
||||
$le_obj->new = true;
|
||||
$le_obj->studiensemester_kurzbz = $stsem_nach;
|
||||
$le_obj->insertamum = date('Y-m-d H:i:s');
|
||||
$le_obj->insertvon = 'Vorrueckung_'.$user;
|
||||
$le_obj->ext_id = '';
|
||||
$le_obj->unr = '';
|
||||
|
||||
if($le_obj->save())
|
||||
if ($le_obj->save())
|
||||
{
|
||||
$anzahl_lehreinheiten++;
|
||||
|
||||
//LehreinheitMitarbeiter Eintrag neu Anlengen
|
||||
$qry_lem="SELECT mitarbeiter_uid FROM lehre.tbl_lehreinheitmitarbeiter
|
||||
$qry_lem = "SELECT mitarbeiter_uid FROM lehre.tbl_lehreinheitmitarbeiter
|
||||
WHERE lehreinheit_id=".$db->db_add_param($row->lehreinheit_id);
|
||||
if($result_lem = $db->db_query($qry_lem))
|
||||
|
||||
if ($result_lem = $db->db_query($qry_lem))
|
||||
{
|
||||
while($row_lem = $db->db_fetch_object($result_lem))
|
||||
while ($row_lem = $db->db_fetch_object($result_lem))
|
||||
{
|
||||
$lem_obj = new lehreinheitmitarbeiter();
|
||||
if($lem_obj->load($row->lehreinheit_id, $row_lem->mitarbeiter_uid))
|
||||
if ($lem_obj->load($row->lehreinheit_id, $row_lem->mitarbeiter_uid))
|
||||
{
|
||||
// Pruefen ob der Lektor ueber die im Config festgelegte Stundengrenze
|
||||
// kommt und Meldung ausgeben
|
||||
$qry_stundengrenze="SELECT mitarbeiter_uid,fixangestellt,SUM(semesterstunden) AS summe,
|
||||
aktiv FROM lehre.tbl_lehreinheitmitarbeiter
|
||||
JOIN lehre.tbl_lehreinheit USING (lehreinheit_id)
|
||||
JOIN public.tbl_mitarbeiter USING (mitarbeiter_uid)
|
||||
JOIN public.tbl_benutzer ON (uid=mitarbeiter_uid)
|
||||
WHERE mitarbeiter_uid=".$db->db_add_param($row_lem->mitarbeiter_uid)."
|
||||
AND studiensemester_kurzbz=".$db->db_add_param($stsem_von)."
|
||||
GROUP BY mitarbeiter_uid,fixangestellt,aktiv";
|
||||
//echo '<br>UNION<br>'.$qry_stundengrenze;
|
||||
if($result_stundengrenze = $db->db_query($qry_stundengrenze))
|
||||
$qry_stundengrenze="
|
||||
SELECT
|
||||
mitarbeiter_uid,fixangestellt,SUM(semesterstunden) AS summe, aktiv
|
||||
FROM
|
||||
lehre.tbl_lehreinheitmitarbeiter
|
||||
JOIN lehre.tbl_lehreinheit USING (lehreinheit_id)
|
||||
JOIN public.tbl_mitarbeiter USING (mitarbeiter_uid)
|
||||
JOIN public.tbl_benutzer ON (uid=mitarbeiter_uid)
|
||||
WHERE
|
||||
mitarbeiter_uid=".$db->db_add_param($row_lem->mitarbeiter_uid)."
|
||||
AND studiensemester_kurzbz=".$db->db_add_param($stsem_von)."
|
||||
GROUP BY
|
||||
mitarbeiter_uid, fixangestellt, aktiv";
|
||||
|
||||
if ($result_stundengrenze = $db->db_query($qry_stundengrenze))
|
||||
{
|
||||
if($row_stundengrenze = $db->db_fetch_object($result_stundengrenze))
|
||||
if ($row_stundengrenze = $db->db_fetch_object($result_stundengrenze))
|
||||
{
|
||||
if ($row_stundengrenze->fixangestellt=='f' && $row_stundengrenze->summe>WARN_SEMESTERSTD_FREI)
|
||||
if (!$db->db_parse_bool($row_stundengrenze->fixangestellt)
|
||||
&& $row_stundengrenze->summe > WARN_SEMESTERSTD_FREI)
|
||||
{
|
||||
$text.=" <span style='color:red'>Stundengrenze ".WARN_SEMESTERSTD_FREI." Stunden ueberschritten von $row_lem->mitarbeiter_uid</span>";
|
||||
$text .= " <span style='color:red'>
|
||||
Stundengrenze ".WARN_SEMESTERSTD_FREI." Stunden ueberschritten
|
||||
von $row_lem->mitarbeiter_uid</span>";
|
||||
}
|
||||
elseif ($row_stundengrenze->fixangestellt=='t' && $row_stundengrenze->summe>WARN_SEMESTERSTD_FIX)
|
||||
elseif ($db->db_parse_bool($row_stundengrenze->fixangestellt)
|
||||
&& $row_stundengrenze->summe > WARN_SEMESTERSTD_FIX)
|
||||
{
|
||||
$text.=" <span style='color:red'>Stundengrenze ".WARN_SEMESTERSTD_FIX." Stunden ueberschritten von $row_lem->mitarbeiter_uid</span>";
|
||||
$text .= " <span style='color:red'>
|
||||
Stundengrenze ".WARN_SEMESTERSTD_FIX." Stunden ueberschritten
|
||||
von $row_lem->mitarbeiter_uid</span>";
|
||||
}
|
||||
|
||||
// Meldung, wenn Benutzer inaktiv
|
||||
if ($row_stundengrenze->aktiv == 'f')
|
||||
if ($db->db_parse_bool($row_stundengrenze->aktiv) == false)
|
||||
{
|
||||
$text.="; <span style='color:orange'>Achtung! MitarbeiterIn <b>$row_lem->mitarbeiter_uid</b> ist nicht aktiv</span>";
|
||||
$text .= "; <span style='color:orange'>Achtung! MitarbeiterIn
|
||||
<b>$row_lem->mitarbeiter_uid</b> ist nicht aktiv</span>";
|
||||
}
|
||||
}
|
||||
}
|
||||
$lem_obj->lehreinheit_id=$le_obj->lehreinheit_id;
|
||||
$lem_obj->lehreinheit_id = $le_obj->lehreinheit_id;
|
||||
$lem_obj->new = true;
|
||||
// Wenn VILESCI_STUNDENSATZ_VORRUECKUNG definiert ist, wird nicht der Stundensatz des Vorjahres verwendet
|
||||
// Wenn VILESCI_STUNDENSATZ_VORRUECKUNG numerisch ist, wird dieser Wert fuer den Stundensatz verwendet
|
||||
if (defined('VILESCI_STUNDENSATZ_VORRUECKUNG') && VILESCI_STUNDENSATZ_VORRUECKUNG != '' && is_numeric(VILESCI_STUNDENSATZ_VORRUECKUNG))
|
||||
// Wenn VILESCI_STUNDENSATZ_VORRUECKUNG definiert ist,
|
||||
// wird nicht der Stundensatz des Vorjahres verwendet
|
||||
// Wenn VILESCI_STUNDENSATZ_VORRUECKUNG numerisch ist,
|
||||
// wird dieser Wert fuer den Stundensatz verwendet
|
||||
if (defined('VILESCI_STUNDENSATZ_VORRUECKUNG')
|
||||
&& VILESCI_STUNDENSATZ_VORRUECKUNG != ''
|
||||
&& is_numeric(VILESCI_STUNDENSATZ_VORRUECKUNG))
|
||||
{
|
||||
$lem_obj->stundensatz = VILESCI_STUNDENSATZ_VORRUECKUNG;
|
||||
}
|
||||
// Wenn VILESCI_STUNDENSATZ_VORRUECKUNG default ist, wird der Standard-Stundensatz des jeweiligen Lektors geladen und gespeichert
|
||||
elseif (defined('VILESCI_STUNDENSATZ_VORRUECKUNG') && VILESCI_STUNDENSATZ_VORRUECKUNG != '' && VILESCI_STUNDENSATZ_VORRUECKUNG == 'default')
|
||||
// Wenn VILESCI_STUNDENSATZ_VORRUECKUNG default ist,
|
||||
//wird der Standard-Stundensatz des jeweiligen Lektors geladen und gespeichert
|
||||
elseif (defined('VILESCI_STUNDENSATZ_VORRUECKUNG')
|
||||
&& VILESCI_STUNDENSATZ_VORRUECKUNG != ''
|
||||
&& VILESCI_STUNDENSATZ_VORRUECKUNG == 'default')
|
||||
{
|
||||
$stundensatz = new mitarbeiter($row_lem->mitarbeiter_uid);
|
||||
$lem_obj->stundensatz = $stundensatz->stundensatz;
|
||||
@@ -279,83 +317,99 @@ if($studiengang_kz!='' && $stsem_von!='' && $stsem_nach!='')
|
||||
$lem_obj->insertamum = date('Y-m-d H:i:s');
|
||||
$lem_obj->insertvon = 'Vorrueckung_'.$user;
|
||||
$lem_obj->ext_id = '';
|
||||
$lem_obj->vertrag_id='';
|
||||
$lem_obj->vertrag_id = '';
|
||||
|
||||
if(!$lem_obj->save())
|
||||
if (!$lem_obj->save())
|
||||
{
|
||||
$error_lehreinheitmitarbeiter++;
|
||||
$text.='Fehler beim Anlegen des Lehreinheitmitarbeiter Eintrages: '.$lem_obj->errormsg;
|
||||
$text .= 'Fehler beim Anlegen des Lehreinheitmitarbeiter
|
||||
Eintrages: '.$lem_obj->errormsg;
|
||||
}
|
||||
else
|
||||
$anzahl_lehreinheitmitarbeiter++;
|
||||
}
|
||||
else
|
||||
{
|
||||
$text.='Fehler beim Laden der Mitarbeiter';
|
||||
$text .= 'Fehler beim Laden der Mitarbeiter';
|
||||
$error_lehreinheitmitarbeiter++;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$text.='Fehler beim Laden der Mitarbeiter '.$db->db_last_error();
|
||||
$text .= 'Fehler beim Laden der Mitarbeiter '.$db->db_last_error();
|
||||
$error_lehreinheitmitarbeiter++;
|
||||
}
|
||||
|
||||
//LehreinheitGruppe Eintrag neu Anlegen
|
||||
$qry_leg="SELECT lehreinheitgruppe_id FROM lehre.tbl_lehreinheitgruppe
|
||||
WHERE lehreinheit_id=".$db->db_add_param($row->lehreinheit_id)."
|
||||
$qry_leg = "
|
||||
SELECT
|
||||
lehreinheitgruppe_id
|
||||
FROM
|
||||
lehre.tbl_lehreinheitgruppe
|
||||
WHERE
|
||||
lehreinheit_id=".$db->db_add_param($row->lehreinheit_id)."
|
||||
AND NOT (tbl_lehreinheitgruppe.semester='0' AND tbl_lehreinheitgruppe.verband='I')";
|
||||
if($result_leg = $db->db_query($qry_leg))
|
||||
|
||||
if ($result_leg = $db->db_query($qry_leg))
|
||||
{
|
||||
while($row_leg = $db->db_fetch_object($result_leg))
|
||||
{
|
||||
$leg_obj = new lehreinheitgruppe();
|
||||
if($leg_obj->load($row_leg->lehreinheitgruppe_id))
|
||||
if ($leg_obj->load($row_leg->lehreinheitgruppe_id))
|
||||
{
|
||||
$leg_obj->lehreinheit_id=$le_obj->lehreinheit_id;
|
||||
// Direktinskriptionsgruppen werden nicht vorgerückt
|
||||
if ($leg_obj->gruppe_kurzbz != '')
|
||||
{
|
||||
$grp = new gruppe();
|
||||
$grp->load($leg_obj->gruppe_kurzbz);
|
||||
if ($grp->direktinskription)
|
||||
continue;
|
||||
}
|
||||
|
||||
$leg_obj->lehreinheit_id = $le_obj->lehreinheit_id;
|
||||
$leg_obj->new = true;
|
||||
$leg_obj->insertamum = date('Y-m-d H:i:s');
|
||||
$leg_obj->insertvon = 'Vorrueckung_'.$user;
|
||||
$leg_obj->ext_id = '';
|
||||
|
||||
if(!$leg_obj->save())
|
||||
if (!$leg_obj->save())
|
||||
{
|
||||
$error_lehreinheitgruppe++;
|
||||
$text.='Fehler beim Anlegen des Lehreinheitgruppe Eintrages: '.$leg_obj->errormsg;
|
||||
$text .= 'Fehler beim Anlegen des Lehreinheitgruppe Eintrages: '.$leg_obj->errormsg;
|
||||
}
|
||||
else
|
||||
$anzahl_lehreinheitgruppe++;
|
||||
}
|
||||
else
|
||||
{
|
||||
$text.='Fehler beim Laden der Gruppe '.$leg_obj->errormsg.' '.$db->db_last_error();
|
||||
$text .= 'Fehler beim Laden der Gruppe '.$leg_obj->errormsg.' '.$db->db_last_error();
|
||||
$error_lehreinheitgruppe++;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$text.='Fehler beim Auslesen der Gruppen';
|
||||
$text .= 'Fehler beim Auslesen der Gruppen';
|
||||
$error_lehreinheitgruppe++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$error_lehreinheit++;
|
||||
$text.='Fehler beim Speichern der Lehreinheit '.$le_obj->errormsg;
|
||||
$text .= 'Fehler beim Speichern der Lehreinheit '.$le_obj->errormsg;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$error_lehreinheit++;
|
||||
$text.='Fehler beim Laden der Lehreinheit '.$le_obj->errormsg;
|
||||
$text .= 'Fehler beim Laden der Lehreinheit '.$le_obj->errormsg;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$text.='Fehler beim Laden der Lehreinheiten '.$db->db_last_error();
|
||||
$text .= 'Fehler beim Laden der Lehreinheiten '.$db->db_last_error();
|
||||
$error_lehreinheit++;
|
||||
}
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user