mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-22 09:22:22 +00:00
Merge branch 'master' into feature-10762/MailAnMitarbeiterBeiUrlaubsfreigabe
This commit is contained in:
@@ -56,7 +56,7 @@
|
||||
]
|
||||
},
|
||||
"devDependencies": {
|
||||
"grunt": "^0.4.5",
|
||||
"grunt": "^1.3.0",
|
||||
"grunt-cli": "~0.1.13",
|
||||
"grunt-contrib-clean": "^0.7.0",
|
||||
"grunt-contrib-concat": "^0.5.1",
|
||||
|
||||
@@ -383,8 +383,8 @@ class LehrauftragJob extends JOB_Controller
|
||||
} // Else if UID exists
|
||||
else
|
||||
{
|
||||
// Search if studiensemester exists
|
||||
$ss_index = array_search($data['studiensemester_kurzbz'], array_column($mail_data_arr, 'studiensemester_kurzbz'));
|
||||
// Search if studiensemester exists inside the existing UID array
|
||||
$ss_index = array_search($data['studiensemester_kurzbz'], array_column($mail_data_arr[$uid_index], 'studiensemester_kurzbz'));
|
||||
|
||||
// If studiensemester is new, add studiensemester to existing UID
|
||||
if ($ss_index === false)
|
||||
@@ -394,13 +394,6 @@ class LehrauftragJob extends JOB_Controller
|
||||
$data[$i]
|
||||
);
|
||||
}
|
||||
// Else if studiensemester exists
|
||||
else
|
||||
{
|
||||
// Add corresponding data to existing studiensemester of UID
|
||||
$mail_data_arr[$uid_index]['studiensemester_kurbz'][] = $data[$i];
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -70,6 +70,7 @@ class InfoCenter extends Auth_Controller
|
||||
const INTERESSENTSTATUS = 'Interessent';
|
||||
const ABGEWIESENERSTATUS = 'Abgewiesener';
|
||||
const BEWERBERSTATUS = 'Bewerber';
|
||||
const WARTENDER = 'Wartender';
|
||||
|
||||
// Statusgruende for which no Studiengangsfreigabemessage should be sent
|
||||
private $_statusgruendeNoStgFreigabeMessage = array('FIT Programm', 'FIT program', 'FIT programme');
|
||||
@@ -108,7 +109,9 @@ class InfoCenter extends Auth_Controller
|
||||
'setOnHold' => 'infocenter:rw',
|
||||
'removeOnHold' => 'infocenter:rw',
|
||||
'getStudienjahrEnd' => 'infocenter:r',
|
||||
'setNavigationMenuArrayJson' => 'infocenter:r'
|
||||
'setNavigationMenuArrayJson' => 'infocenter:r',
|
||||
'getAbsageData' => 'infocenter:r',
|
||||
'saveAbsageForAll' => 'infocenter:rw'
|
||||
)
|
||||
);
|
||||
|
||||
@@ -433,11 +436,14 @@ class InfoCenter extends Auth_Controller
|
||||
* Saves Absage for Prestudent including the reason for the Absage (statusgrund).
|
||||
* inserts Studiensemester and Ausbildungssemester for the new Absage of (chronologically) last status.
|
||||
*/
|
||||
public function saveAbsage()
|
||||
public function saveAbsage($prestudent_id = null, $statusgrund = null)
|
||||
{
|
||||
$json = null;
|
||||
$prestudent_id = $this->input->post('prestudent_id');
|
||||
$statusgrund = $this->input->post('statusgrund');
|
||||
if (is_null($prestudent_id))
|
||||
$prestudent_id = $this->input->post('prestudent_id');
|
||||
|
||||
if (is_null($statusgrund))
|
||||
$statusgrund = $this->input->post('statusgrund');
|
||||
|
||||
$lastStatus = $this->PrestudentstatusModel->getLastStatus($prestudent_id);
|
||||
|
||||
@@ -446,8 +452,10 @@ class InfoCenter extends Auth_Controller
|
||||
|
||||
if (hasData($lastStatus) && hasData($statusgrresult))
|
||||
{
|
||||
//check if still Interessent and not freigegeben yet
|
||||
if ($lastStatus->retval[0]->status_kurzbz === self::INTERESSENTSTATUS && !isset($lastStatus->retval[0]->bestaetigtam))
|
||||
//check if still Interessent
|
||||
if ($lastStatus->retval[0]->status_kurzbz === self::INTERESSENTSTATUS
|
||||
|| $lastStatus->retval[0]->status_kurzbz === self::BEWERBERSTATUS
|
||||
|| $lastStatus->retval[0]->status_kurzbz === self::WARTENDER)
|
||||
{
|
||||
$result = $this->PrestudentstatusModel->insert(
|
||||
array(
|
||||
@@ -1358,6 +1366,8 @@ class InfoCenter extends Auth_Controller
|
||||
|| isset($zgvpruefung->prestudentstatus->bestaetigtam)
|
||||
|| $zgvpruefung->prestudentstatus->status_kurzbz != self::INTERESSENTSTATUS;
|
||||
|
||||
$zgvpruefung->abgewiesener = $zgvpruefung->prestudentstatus->status_kurzbz === self::ABGEWIESENERSTATUS;
|
||||
|
||||
//wether prestudent was freigegeben for RT/Stg
|
||||
$zgvpruefung->isRtFreigegeben = false;
|
||||
$zgvpruefung->isStgFreigegeben = false;
|
||||
@@ -1427,8 +1437,8 @@ class InfoCenter extends Auth_Controller
|
||||
|
||||
$this->_sortPrestudents($zgvpruefungen);
|
||||
|
||||
$abwstatusgruende = $this->StatusgrundModel->loadWhere(array('status_kurzbz' => self::ABGEWIESENERSTATUS))->retval;
|
||||
$intstatusgruende = $this->StatusgrundModel->loadWhere(array('status_kurzbz' => self::INTERESSENTSTATUS))->retval;
|
||||
$abwstatusgruende = $this->StatusgrundModel->getStatus(self::ABGEWIESENERSTATUS, true)->retval;
|
||||
$intstatusgruende = $this->StatusgrundModel->getStatus(self::INTERESSENTSTATUS)->retval;
|
||||
|
||||
$data = array (
|
||||
'zgvpruefungen' => $zgvpruefungen,
|
||||
@@ -1687,4 +1697,45 @@ class InfoCenter extends Auth_Controller
|
||||
$this->loglib->logError('Studiengang has no mail for sending Freigabe mail');
|
||||
}
|
||||
}
|
||||
|
||||
public function getAbsageData()
|
||||
{
|
||||
$this->load->model('organisation/Studiengang_model', 'StudiengangModel');
|
||||
|
||||
$statusgruende = $this->StatusgrundModel->getStatus(self::ABGEWIESENERSTATUS, true)->retval;
|
||||
$studienSemester = $this->variablelib->getVar('infocenter_studiensemester');
|
||||
$studiengaenge = $this->StudiengangModel->getStudiengaengeWithOrgForm(['b', 'm'], $studienSemester);
|
||||
|
||||
$data = array (
|
||||
'statusgruende' => $statusgruende,
|
||||
'studiengaenge' => $studiengaenge->retval
|
||||
);
|
||||
|
||||
$this->outputJsonSuccess($data);
|
||||
}
|
||||
|
||||
public function saveAbsageForAll()
|
||||
{
|
||||
$statusgrund = $this->input->post('statusgrund');
|
||||
$studiengang = $this->input->post('studiengang');
|
||||
$personen = $this->input->post('personen');
|
||||
$studienSemester = $this->variablelib->getVar('infocenter_studiensemester');
|
||||
|
||||
if ($statusgrund === 'null' || $studiengang === 'null' || empty($personen))
|
||||
$this->terminateWithJsonError("Bitte Statusgrund, Studiengang und Personen auswählen.");
|
||||
|
||||
foreach($personen as $person)
|
||||
{
|
||||
$prestudent = $this->PrestudentModel->getPrestudentByStudiengangAndPerson($studiengang, $person, $studienSemester);
|
||||
|
||||
if(!hasData($prestudent))
|
||||
continue;
|
||||
|
||||
$prestudentData = getData($prestudent);
|
||||
|
||||
$this->saveAbsage($prestudentData[0]->prestudent_id, $statusgrund);
|
||||
}
|
||||
|
||||
$this->outputJsonSuccess("Success");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -612,9 +612,9 @@ class Messages_model extends CI_Model
|
||||
if (!isEmptyString($vorlage_kurzbz))
|
||||
{
|
||||
$this->load->model('system/Vorlagestudiengang_model', 'VorlagestudiengangModel');
|
||||
$this->VorlagestudiengangModel->addOrder('version','DESC');
|
||||
$this->VorlagestudiengangModel->addOrder('version', 'DESC');
|
||||
|
||||
$getVorlage = $this->VorlagestudiengangModel->loadWhere(array('vorlage_kurzbz' => $vorlage_kurzbz));
|
||||
$getVorlage = $this->VorlagestudiengangModel->loadWhere(array('vorlage_kurzbz' => $vorlage_kurzbz, 'aktiv' => true));
|
||||
}
|
||||
|
||||
return $getVorlage;
|
||||
|
||||
@@ -581,4 +581,19 @@ class Prestudent_model extends DB_Model
|
||||
|
||||
return $this->execQuery($query, array($person_id));
|
||||
}
|
||||
|
||||
public function getPrestudentByStudiengangAndPerson($studiengang, $person, $studienSemester)
|
||||
{
|
||||
$query = "SELECT ps.prestudent_id
|
||||
FROM public.tbl_prestudentstatus pss
|
||||
JOIN public.tbl_prestudent ps USING(prestudent_id)
|
||||
JOIN public.tbl_studiengang sg USING(studiengang_kz)
|
||||
JOIN lehre.tbl_studienplan sp USING(studienplan_id)
|
||||
WHERE ps.person_id = ?
|
||||
AND UPPER((sg.typ || sg.kurzbz) || ':' || sp.orgform_kurzbz) = ?
|
||||
AND pss.studiensemester_kurzbz = ?
|
||||
";
|
||||
|
||||
return $this->execQuery($query, array($person, $studiengang, $studienSemester));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,4 +11,18 @@ class Statusgrund_model extends DB_Model
|
||||
$this->dbTable = "public.tbl_status_grund";
|
||||
$this->pk = "statusgrund_id";
|
||||
}
|
||||
|
||||
public function getStatus($status_kurzbz = null, $aktiv = null)
|
||||
{
|
||||
$this->addOrder('bezeichnung_mehrsprachig');
|
||||
$where = array();
|
||||
if (!is_null($status_kurzbz))
|
||||
$where['status_kurzbz'] = $status_kurzbz;
|
||||
if (!is_null($aktiv))
|
||||
$where['aktiv'] = $aktiv;
|
||||
|
||||
$status = $this->loadWhere($where);
|
||||
|
||||
return success($status->retval);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -481,4 +481,18 @@ class Studiengang_model extends DB_Model
|
||||
|
||||
return $this->loadWhere($condition);
|
||||
}
|
||||
|
||||
public function getStudiengaengeWithOrgForm($typ, $semester)
|
||||
{
|
||||
$query = "SELECT DISTINCT (UPPER(sg.typ || sg.kurzbz || ':' || sp.orgform_kurzbz)) AS Studiengang
|
||||
FROM public.tbl_studiengang sg
|
||||
JOIN lehre.tbl_studienordnung USING (studiengang_kz)
|
||||
JOIN lehre.tbl_studienplan sp USING (studienordnung_id)
|
||||
JOIN lehre.tbl_studienplan_semester spsem USING (studienplan_id)
|
||||
WHERE sp.aktiv = TRUE AND sg.aktiv = TRUE AND sg.typ IN ?
|
||||
AND spsem.studiensemester_kurzbz = ?
|
||||
ORDER BY Studiengang";
|
||||
|
||||
return $this->execQuery($query, array($typ, $semester));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -189,7 +189,7 @@ $this->load->view(
|
||||
|
||||
<div class="col-xs-4 col-md-offset-0 col-md-4">
|
||||
<div class="input-group">
|
||||
<input id="username" type="hidden" autocomplete="username" value=""><!-- this is to prevent Chrome autofilling a random input field with the username-->
|
||||
<input id="username" autocomplete="username" style="position: absolute; opacity: 0;"><!-- this is to prevent Chrome autofilling a random input field with the username-->
|
||||
<input id="password" type="password" autocomplete="new-password" class="form-control" placeholder="CIS-<?php echo ucfirst($this->p->t('password', 'password')); ?>">
|
||||
<span class="input-group-btn">
|
||||
<button id="accept-lehrauftraege" class="btn btn-primary pull-right"><?php echo ucfirst($this->p->t('global', 'lehrauftraegeAnnehmen')); ?></button>
|
||||
|
||||
@@ -48,6 +48,8 @@
|
||||
name="period" value="today"><?php echo $this->p->t('ui','heute'); ?></button>
|
||||
<button type="submit" class="btn btn-default <?php echo $period == 'lastWeek' ? 'active' : ''?>"
|
||||
name="period" value="lastWeek"><?php echo $this->p->t('ui','letzteWoche'); ?></button>
|
||||
<button type="submit" class="btn btn-default <?php echo $period == 'upcoming' ? 'active' : ''?>"
|
||||
name="period" value="upcoming"><?php echo $this->p->t('ui','zukuenftige'); ?></button>
|
||||
<button type="submit" class="btn btn-default <?php echo $period == 'all' ? 'active' : ''?>"
|
||||
name="period" value="all"><?php echo $this->p->t('ui','alle'); ?></button>
|
||||
</div>
|
||||
|
||||
@@ -19,9 +19,10 @@ FROM
|
||||
WHERE
|
||||
vorsitz='".$UID."'
|
||||
AND (
|
||||
'". $PERIOD. "' = 'today' AND datum = NOW()::date OR
|
||||
'". $PERIOD. "' = 'lastWeek' AND datum = (NOW() - interval '1 week')::date OR
|
||||
'". $PERIOD. "' = 'all' AND datum >= '2020-05-27'
|
||||
('". $PERIOD. "' = 'today' AND datum = NOW()::date) OR
|
||||
('". $PERIOD. "' = 'lastWeek' AND datum >= (NOW() - interval '1 week')::date AND datum < NOW()::date) OR
|
||||
('". $PERIOD. "' = 'upcoming' AND datum > NOW()::date) OR
|
||||
('". $PERIOD. "' = 'all' AND datum >= '2020-05-27')
|
||||
)
|
||||
ORDER BY datum, nachname, vorname
|
||||
";
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
<div class="modal fade absageModalForAll"
|
||||
tabindex="-1"
|
||||
role="dialog"
|
||||
aria-labelledby="absageModalLabel"
|
||||
aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button"
|
||||
class="close"
|
||||
data-dismiss="modal"
|
||||
aria-hidden="true">
|
||||
×
|
||||
</button>
|
||||
<h4 class="modal-title"
|
||||
id="absageModalLabel"><?php echo $this->p->t('infocenter', 'absageBestaetigen') ?></h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<?php echo $this->p->t('infocenter', 'absageBestaetigenTxt') ?>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button"
|
||||
class="btn btn-default"
|
||||
data-dismiss="modal">
|
||||
<?php echo $this->p->t('ui', 'abbrechen') ?>
|
||||
</button>
|
||||
<button class="btn btn-primary saveAbsage" id="saveAbsageForAll">
|
||||
<?php echo $this->p->t('infocenter', 'interessentAbweisen') ?>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.modal-content -->
|
||||
</div>
|
||||
<!-- /.modal-dialog -->
|
||||
</div>
|
||||
@@ -13,6 +13,7 @@
|
||||
'ajaxlib' => true,
|
||||
'filterwidget' => true,
|
||||
'navigationwidget' => true,
|
||||
'dialoglib' => true,
|
||||
'phrases' => array(
|
||||
'person' => array('vorname', 'nachname'),
|
||||
'global' => array('mailAnXversandt'),
|
||||
@@ -40,6 +41,7 @@
|
||||
</div>
|
||||
<div>
|
||||
<?php $this->load->view('system/infocenter/infocenterData.php'); ?>
|
||||
<?php $this->load->view('system/infocenter/absageModal.php'); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
'ajaxlib' => true,
|
||||
'filterwidget' => true,
|
||||
'navigationwidget' => true,
|
||||
'dialoglib' => true,
|
||||
'phrases' => array(
|
||||
'person' => array('vorname', 'nachname'),
|
||||
'global' => array('mailAnXversandt'),
|
||||
@@ -40,6 +41,7 @@
|
||||
</div>
|
||||
<div>
|
||||
<?php $this->load->view('system/infocenter/infocenterFreigegebenData.php'); ?>
|
||||
<?php $this->load->view('system/infocenter/absageModal.php'); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -114,6 +114,12 @@
|
||||
sg.studiengang_kz in('.$ADDITIONAL_STG.')
|
||||
)
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM tbl_prestudentstatus spss
|
||||
WHERE spss.prestudent_id = ps.prestudent_id
|
||||
AND spss.status_kurzbz = '.$REJECTED_STATUS.'
|
||||
)
|
||||
LIMIT 1
|
||||
) AS "StgAbgeschickt",
|
||||
(
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
'ajaxlib' => true,
|
||||
'filterwidget' => true,
|
||||
'navigationwidget' => true,
|
||||
'dialoglib' => true,
|
||||
'phrases' => array(
|
||||
'person' => array('vorname', 'nachname'),
|
||||
'global' => array('mailAnXversandt'),
|
||||
@@ -40,6 +41,7 @@
|
||||
</div>
|
||||
<div>
|
||||
<?php $this->load->view('system/infocenter/infocenterReihungstestAbsolviertData.php'); ?>
|
||||
<?php $this->load->view('system/infocenter/absageModal.php'); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -83,10 +83,11 @@
|
||||
LIMIT 1
|
||||
) AS "AnzahlAbgeschickt",
|
||||
(
|
||||
SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT UPPER(sg.typ || sg.kurzbz || \':\' || sg.orgform_kurzbz)), \', \')
|
||||
SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT UPPER(sg.typ || sg.kurzbz || \':\' || sp.orgform_kurzbz)), \', \')
|
||||
FROM public.tbl_prestudentstatus pss
|
||||
JOIN public.tbl_prestudent ps USING(prestudent_id)
|
||||
JOIN public.tbl_studiengang sg USING(studiengang_kz)
|
||||
JOIN lehre.tbl_studienplan sp USING(studienplan_id)
|
||||
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
|
||||
AND pss.bewerbung_abgeschicktamum IS NOT NULL
|
||||
AND ps.person_id = p.person_id
|
||||
|
||||
@@ -344,7 +344,7 @@
|
||||
|
||||
<?php
|
||||
//Prestudenten cannot be abgewiesen or freigegeben if already done
|
||||
if (!$infoonly) :
|
||||
if (!$infoonly || (isset($zgvpruefung->prestudentstatus->status_kurzbz) && in_array($zgvpruefung->prestudentstatus->status_kurzbz, ['Bewerber', 'Wartender']))) :
|
||||
?>
|
||||
<div class="panel-footer solidtop">
|
||||
<div class="row">
|
||||
@@ -368,130 +368,97 @@
|
||||
</button>
|
||||
</span>
|
||||
</div>
|
||||
<div class="modal fade absageModal" id="absageModal_<?php echo $zgvpruefung->prestudent_id ?>"
|
||||
tabindex="-1"
|
||||
role="dialog"
|
||||
aria-labelledby="absageModalLabel"
|
||||
aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button"
|
||||
class="close"
|
||||
data-dismiss="modal"
|
||||
aria-hidden="true">
|
||||
×
|
||||
</button>
|
||||
<h4 class="modal-title"
|
||||
id="absageModalLabel"><?php echo $this->p->t('infocenter', 'absageBestaetigen') ?></h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<?php echo $this->p->t('infocenter', 'absageBestaetigenTxt') ?>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button"
|
||||
class="btn btn-default"
|
||||
data-dismiss="modal">
|
||||
<?php echo $this->p->t('ui', 'abbrechen') ?>
|
||||
</button>
|
||||
<button class="btn btn-primary saveAbsage" id="saveAbsage_<?php echo $zgvpruefung->prestudent_id ?>">
|
||||
<?php echo $this->p->t('infocenter', 'interessentAbweisen') ?>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.modal-content -->
|
||||
</div>
|
||||
<!-- /.modal-dialog -->
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- /.column-absage -->
|
||||
<?php
|
||||
$disabled = $disabledStg = $disabledTxt = $disabledStgTxt = '';
|
||||
if (isEmptyString($zgvpruefung->prestudentstatus->bewerbung_abgeschicktamum))
|
||||
{
|
||||
$disabled = $disabledStg = 'disabled';
|
||||
$disabledTxt = $disabledStgTxt = $this->p->t('infocenter', 'bewerbungMussAbgeschickt');
|
||||
}
|
||||
<?php
|
||||
$disabled = $disabledStg = $disabledTxt = $disabledStgTxt = '';
|
||||
if (isEmptyString($zgvpruefung->prestudentstatus->bewerbung_abgeschicktamum))
|
||||
{
|
||||
$disabled = $disabledStg = 'disabled';
|
||||
$disabledTxt = $disabledStgTxt = $this->p->t('infocenter', 'bewerbungMussAbgeschickt');
|
||||
}
|
||||
|
||||
if ($studiengangtyp !== 'b')
|
||||
{
|
||||
$disabled = 'disabled';
|
||||
$disabledTxt = $this->p->t('infocenter', 'nurBachelorFreigeben');
|
||||
if ($studiengangtyp !== 'b')
|
||||
{
|
||||
$disabled = 'disabled';
|
||||
$disabledTxt = $this->p->t('infocenter', 'nurBachelorFreigeben');
|
||||
|
||||
// FIT-Lehrgänge: exceptions, can be freigegeben in Infocenter
|
||||
if (!in_array($studiengang_kz, $fit_programme_studiengaenge))
|
||||
{
|
||||
$disabledStg = 'disabled';
|
||||
$disabledStgTxt = $this->p->t('infocenter', 'nurBachelorFreigeben');
|
||||
}
|
||||
// FIT-Lehrgänge: exceptions, can be freigegeben in Infocenter
|
||||
if (!in_array($studiengang_kz, $fit_programme_studiengaenge))
|
||||
{
|
||||
$disabledStg = 'disabled';
|
||||
$disabledStgTxt = $this->p->t('infocenter', 'nurBachelorFreigeben');
|
||||
}
|
||||
?>
|
||||
<div class="col-lg-8 text-right">
|
||||
<div class="form-inline">
|
||||
<div class="input-group frgstatusgrselect" id="frgstatusgrselect_<?php echo $zgvpruefung->prestudent_id ?>">
|
||||
<select name="frgstatusgrund"
|
||||
class="d-inline float-right"
|
||||
<?php echo $disabledStg ?>
|
||||
required>
|
||||
<option value="null"
|
||||
selected="selected"><?php echo ucfirst($this->p->t('ui', 'freigabeart')) . '...' ?>
|
||||
</option>
|
||||
<?php foreach ($intstatusgruende as $statusgrund): ?>
|
||||
<option value="<?php echo $statusgrund->statusgrund_id ?>"><?php echo $statusgrund->bezeichnung_mehrsprachig[0] ?></option>
|
||||
<?php endforeach ?>
|
||||
</select>
|
||||
<span class="input-group-btn">
|
||||
<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') ?>
|
||||
}
|
||||
if (!$infoonly) :
|
||||
?>
|
||||
<div class="col-lg-8 text-right">
|
||||
<div class="form-inline">
|
||||
<div class="input-group frgstatusgrselect" id="frgstatusgrselect_<?php echo $zgvpruefung->prestudent_id ?>">
|
||||
<select name="frgstatusgrund"
|
||||
class="d-inline float-right"
|
||||
<?php echo $disabledStg ?>
|
||||
required>
|
||||
<option value="null"
|
||||
selected="selected"><?php echo ucfirst($this->p->t('ui', 'freigabeart')) . '...' ?>
|
||||
</option>
|
||||
<?php foreach ($intstatusgruende as $statusgrund): ?>
|
||||
<option value="<?php echo $statusgrund->statusgrund_id ?>"><?php echo $statusgrund->bezeichnung_mehrsprachig[0] ?></option>
|
||||
<?php endforeach ?>
|
||||
</select>
|
||||
<span class="input-group-btn">
|
||||
<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>
|
||||
</div>
|
||||
<div class="input-group" id="igrfrgbtn">
|
||||
<button type="button" id="freigabebtn_<?php echo $zgvpruefung->prestudent_id ?>" class="btn btn-default freigabebtn" <?php echo $disabled ?>
|
||||
data-toggle="tooltip" title="<?php echo $disabledTxt ?>">
|
||||
<?php echo $this->p->t('ui', 'freigabeZumReihungstest') ?>
|
||||
</button>
|
||||
</span>
|
||||
</div>
|
||||
<div class="input-group" id="igrfrgbtn">
|
||||
<button type="button" id="freigabebtn_<?php echo $zgvpruefung->prestudent_id ?>" class="btn btn-default freigabebtn" <?php echo $disabled ?>
|
||||
data-toggle="tooltip" title="<?php echo $disabledTxt ?>">
|
||||
<?php echo $this->p->t('ui', 'freigabeZumReihungstest') ?>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal fade freigabeModal" id="freigabeModal_<?php echo $zgvpruefung->prestudent_id ?>" tabindex="-1"
|
||||
role="dialog"
|
||||
aria-labelledby="freigabeModalLabel"
|
||||
aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close"
|
||||
data-dismiss="modal"
|
||||
aria-hidden="true">×
|
||||
</button>
|
||||
<h4 class="modal-title"
|
||||
id="freigabeModalLabel">
|
||||
<?php echo $this->p->t('infocenter', 'freigabeBestaetigen') ?>
|
||||
<span id="freigabeModalStgr_<?php echo $zgvpruefung->prestudent_id ?>"></span>
|
||||
</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<?php echo $this->p->t('infocenter', 'interessentFreigebenTxt') ?>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button"
|
||||
class="btn btn-default"
|
||||
data-dismiss="modal"><?php echo $this->p->t('ui', 'abbrechen') ?>
|
||||
</button>
|
||||
<button type="button"
|
||||
class="btn btn-primary saveFreigabe" id="saveFreigabe_<?php echo $zgvpruefung->prestudent_id ?>">
|
||||
<?php echo $this->p->t('infocenter', 'interessentFreigeben') ?>
|
||||
</button>
|
||||
<button type="button"
|
||||
class="btn btn-primary saveStgFreigabe" id="saveStgFreigabe_<?php echo $zgvpruefung->prestudent_id ?>">
|
||||
<?php echo $this->p->t('infocenter', 'interessentFreigeben') ?>
|
||||
</button>
|
||||
</div>
|
||||
</div><!-- /.modal-content -->
|
||||
</div><!-- /.modal-dialog -->
|
||||
</div><!-- /.modal-fade -->
|
||||
<div class="modal fade freigabeModal" id="freigabeModal_<?php echo $zgvpruefung->prestudent_id ?>" tabindex="-1"
|
||||
role="dialog"
|
||||
aria-labelledby="freigabeModalLabel"
|
||||
aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close"
|
||||
data-dismiss="modal"
|
||||
aria-hidden="true">×
|
||||
</button>
|
||||
<h4 class="modal-title"
|
||||
id="freigabeModalLabel">
|
||||
<?php echo $this->p->t('infocenter', 'freigabeBestaetigen') ?>
|
||||
<span id="freigabeModalStgr_<?php echo $zgvpruefung->prestudent_id ?>"></span>
|
||||
</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<?php echo $this->p->t('infocenter', 'interessentFreigebenTxt') ?>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button"
|
||||
class="btn btn-default"
|
||||
data-dismiss="modal"><?php echo $this->p->t('ui', 'abbrechen') ?>
|
||||
</button>
|
||||
<button type="button"
|
||||
class="btn btn-primary saveFreigabe" id="saveFreigabe_<?php echo $zgvpruefung->prestudent_id ?>">
|
||||
<?php echo $this->p->t('infocenter', 'interessentFreigeben') ?>
|
||||
</button>
|
||||
<button type="button"
|
||||
class="btn btn-primary saveStgFreigabe" id="saveStgFreigabe_<?php echo $zgvpruefung->prestudent_id ?>">
|
||||
<?php echo $this->p->t('infocenter', 'interessentFreigeben') ?>
|
||||
</button>
|
||||
</div>
|
||||
</div><!-- /.modal-content -->
|
||||
</div><!-- /.modal-dialog -->
|
||||
</div><!-- /.modal-fade -->
|
||||
<?php endif; ?>
|
||||
</div><!-- /.row -->
|
||||
</div><!-- /.panel-footer -->
|
||||
<?php elseif (isset($zgvpruefung->prestudentstatus->status_kurzbz) && $zgvpruefung->prestudentstatus->status_kurzbz === 'Interessent'): ?>
|
||||
@@ -508,9 +475,69 @@
|
||||
</label>
|
||||
</div>
|
||||
</div><!-- /.row -->
|
||||
<div class="row">
|
||||
<div class="col-lg-4 text-left">
|
||||
<div class="input-group" id="absgstatusgrselect_<?php echo $zgvpruefung->prestudent_id ?>">
|
||||
<select name="absgstatusgrund"
|
||||
class="d-inline float-right"
|
||||
required>
|
||||
<option value="null"
|
||||
selected="selected"><?php echo ucfirst($this->p->t('infocenter', 'absagegrund')) . '...' ?>
|
||||
</option>
|
||||
<?php foreach ($abwstatusgruende as $statusgrund): ?>
|
||||
<option value="<?php echo $statusgrund->statusgrund_id ?>"><?php echo $statusgrund->bezeichnung_mehrsprachig[0] ?></option>
|
||||
<?php endforeach ?>
|
||||
</select>
|
||||
<span class="input-group-btn">
|
||||
<button type="button"
|
||||
class="btn btn-default absageBtn" id="absagebtn_<?php echo $zgvpruefung->prestudent_id ?>">
|
||||
<?php echo $this->p->t('ui', 'absagen') ?>
|
||||
</button>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- /.panel-footer -->
|
||||
<?php endif; //end if infoonly
|
||||
?>
|
||||
|
||||
<?php
|
||||
endif;
|
||||
?>
|
||||
|
||||
<div class="modal fade absageModal" id="absageModal_<?php echo $zgvpruefung->prestudent_id ?>"
|
||||
tabindex="-1"
|
||||
role="dialog"
|
||||
aria-labelledby="absageModalLabel"
|
||||
aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button"
|
||||
class="close"
|
||||
data-dismiss="modal"
|
||||
aria-hidden="true">
|
||||
×
|
||||
</button>
|
||||
<h4 class="modal-title"
|
||||
id="absageModalLabel"><?php echo $this->p->t('infocenter', 'absageBestaetigen') ?></h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<?php echo $this->p->t('infocenter', 'absageBestaetigenTxt') ?>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button"
|
||||
class="btn btn-default"
|
||||
data-dismiss="modal">
|
||||
<?php echo $this->p->t('ui', 'abbrechen') ?>
|
||||
</button>
|
||||
<button class="btn btn-primary saveAbsage" id="saveAbsage_<?php echo $zgvpruefung->prestudent_id ?>">
|
||||
<?php echo $this->p->t('infocenter', 'interessentAbweisen') ?>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.modal-content -->
|
||||
</div>
|
||||
<!-- /.modal-dialog -->
|
||||
</div>
|
||||
</div><!-- /.div collapse -->
|
||||
</div><!-- /.panel -->
|
||||
<?php
|
||||
|
||||
+1
-1
@@ -25,7 +25,7 @@
|
||||
</tr>
|
||||
<tr style="height:10%;" >
|
||||
<td align="center" valign="bottom">
|
||||
<div style="color:grey">Powered by <a href="http://www.fhcomplete.org" target="blank">FH Complete</a></div>
|
||||
<div style="color:grey">Powered by <a href="http://www.fhcomplete.info" target="blank">FH Complete</a></div>
|
||||
<br><br>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
+1
-1
@@ -69,7 +69,7 @@ if(isset($_GET['login']))
|
||||
</tr>
|
||||
<tr style="height:10%;" >
|
||||
<td align="center" valign="bottom">
|
||||
<div style="color:grey">Powered by <a href="http://www.fhcomplete.org" target="blank">FH Complete</a></div>
|
||||
<div style="color:grey">Powered by <a href="http://www.fhcomplete.info" target="blank">FH Complete</a></div>
|
||||
<br><br>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -44,6 +44,7 @@ require_once('../../../include/addon.class.php');
|
||||
require_once('../../../include/gruppe.class.php');
|
||||
require_once('../../../include/adresse.class.php');
|
||||
require_once('../../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../../include/bisverwendung.class.php');
|
||||
|
||||
$sprache = getSprache();
|
||||
$p = new phrasen($sprache);
|
||||
@@ -271,6 +272,22 @@ if (!$ansicht)
|
||||
|
||||
}
|
||||
|
||||
if (!$ansicht)
|
||||
{
|
||||
if ($is_employee)
|
||||
{
|
||||
$verwendung = new bisverwendung();
|
||||
if($verwendung->getLastVerwendung($uid))
|
||||
{
|
||||
if (!$verwendung->hauptberuflich)
|
||||
{
|
||||
echo 'Hauptberuf: '. $verwendung->hauptberuf;
|
||||
}
|
||||
}
|
||||
echo "<br><br>";
|
||||
}
|
||||
}
|
||||
|
||||
if (!$ansicht)
|
||||
{
|
||||
$adresse = new adresse();
|
||||
|
||||
+23
-21
@@ -19,7 +19,7 @@
|
||||
*/
|
||||
/**
|
||||
* Dieses File enthaelt Hilfsklassen zur Anzeige des CMS-Menues
|
||||
*
|
||||
*
|
||||
* mit drawSubmenu($id) wird das enstprechende Menue gezeichnet.
|
||||
*/
|
||||
require_once(dirname(__FILE__).'/../include/functions.inc.php');
|
||||
@@ -30,13 +30,14 @@ $params = array();
|
||||
foreach($_REQUEST as $key=>$value)
|
||||
$params[$key]=$value;
|
||||
|
||||
$user = null;
|
||||
//Parameter fuer Include Addons
|
||||
$includeparams = array();
|
||||
$contentobjects=array();
|
||||
$chldsobject = array();
|
||||
/**
|
||||
* Zeichnet einen Menueeintrag aus dem CMS System
|
||||
*
|
||||
*
|
||||
* @param $content_id
|
||||
*/
|
||||
function drawSubmenu($content_id)
|
||||
@@ -47,16 +48,16 @@ function drawSubmenu($content_id)
|
||||
global $contentobjects;
|
||||
$content = new content();
|
||||
$sprache = getSprache();
|
||||
|
||||
|
||||
// Daten Laden
|
||||
|
||||
|
||||
// Alle Kindelemente des Contents holen
|
||||
$ids = $content->getAllChilds($content_id);
|
||||
|
||||
// Alle vorkommenden Contenteintraege laden
|
||||
// Alle vorkommenden Contenteintraege laden
|
||||
$content->loadArray($ids, $sprache, true);
|
||||
$contentobjects = $content->result;
|
||||
|
||||
|
||||
// Baumstruktur laden
|
||||
$childsobject = $content->getChildArray($content_id);
|
||||
|
||||
@@ -91,7 +92,7 @@ function drawSubmenu1($content_id)
|
||||
drawEntry($contentobj);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -101,12 +102,13 @@ function drawSubmenu1($content_id)
|
||||
*/
|
||||
function drawEntry($item)
|
||||
{
|
||||
global $childsobject;
|
||||
global $childsobject, $user;
|
||||
|
||||
//pruefen ob der Content eine Berechtigung erfordert
|
||||
if($item->locked)
|
||||
{
|
||||
$user = get_uid();
|
||||
if(is_null($user))
|
||||
$user = get_uid();
|
||||
$content = new content();
|
||||
//wenn der User nicht berechtigt ist, dann wird der Eintrag nicht angezeigt
|
||||
if(!$content->berechtigt($item->content_id, $user))
|
||||
@@ -139,7 +141,7 @@ function drawEntry($item)
|
||||
Redirect($item);
|
||||
else
|
||||
DrawLink(APP_ROOT.'cms/content.php?content_id='.$item->content_id,'content',$item->titel);
|
||||
|
||||
|
||||
echo "</li>";
|
||||
}
|
||||
}
|
||||
@@ -155,7 +157,7 @@ function DrawLink($link, $target, $name, $content_id=null, $open=null)
|
||||
{
|
||||
if($target=='')
|
||||
$target='content';
|
||||
|
||||
|
||||
if($open)
|
||||
$class='class="selected"';
|
||||
else
|
||||
@@ -167,7 +169,7 @@ function DrawLink($link, $target, $name, $content_id=null, $open=null)
|
||||
* Redirects sind Links Seiten ausserhalb des CMS
|
||||
* die URL kann Variablen enthalten. Diese werden hier ersetzt.
|
||||
* Danach wird der Link angezeigt.
|
||||
*
|
||||
*
|
||||
* @param $content_id ContentID des Redirects
|
||||
* @param $name Anzeigename des Links
|
||||
* @param $content_id_Submenu ID des Submenues das geoeffnet werden soll (optional)
|
||||
@@ -175,42 +177,42 @@ function DrawLink($link, $target, $name, $content_id=null, $open=null)
|
||||
function Redirect($content, $content_id_Submenu=null)
|
||||
{
|
||||
global $sprache, $params;
|
||||
|
||||
|
||||
$xml = new DOMDocument();
|
||||
if($content->content!='')
|
||||
{
|
||||
$xml->loadXML($content->content);
|
||||
}
|
||||
|
||||
|
||||
if($xml->getElementsByTagName('url')->item(0))
|
||||
$url = $xml->getElementsByTagName('url')->item(0)->nodeValue;
|
||||
else
|
||||
$url='';
|
||||
|
||||
|
||||
//Variablen Ersetzen
|
||||
foreach($params as $key=>$value)
|
||||
{
|
||||
$url = str_replace('$'.$key,addslashes($value),$url);
|
||||
}
|
||||
|
||||
|
||||
if($xml->getElementsByTagName('target')->item(0))
|
||||
$target = $xml->getElementsByTagName('target')->item(0)->nodeValue;
|
||||
else
|
||||
$target='';
|
||||
|
||||
|
||||
DrawLink($url, $target, $content->titel, $content_id_Submenu, $content->menu_open);
|
||||
}
|
||||
|
||||
/**
|
||||
* Bei Content mit Include Templates wird
|
||||
* Bei Content mit Include Templates wird
|
||||
* das entsprechende Menu-Addon geladen und inkludiert
|
||||
*
|
||||
*
|
||||
* @param $content_id
|
||||
*/
|
||||
function IncludeMenuAddon($content)
|
||||
{
|
||||
global $sprache, $includeparams;
|
||||
|
||||
|
||||
$xml = new DOMDocument();
|
||||
if($content->content!='')
|
||||
{
|
||||
@@ -223,6 +225,6 @@ function IncludeMenuAddon($content)
|
||||
if($url!='')
|
||||
{
|
||||
$includeparams['content']=$content;
|
||||
include(dirname(__FILE__).'/menu/'.$url);
|
||||
include(dirname(__FILE__).'/menu/'.$url);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1539,7 +1539,7 @@ function OpenAboutDialog()
|
||||
// ****
|
||||
function OpenManual()
|
||||
{
|
||||
window.open('https://wiki.fhcomplete.org/doku.php?','_blank');
|
||||
window.open('https://wiki.fhcomplete.info/','_blank');
|
||||
}
|
||||
|
||||
// ****
|
||||
|
||||
@@ -473,7 +473,7 @@ function SyncLVPlan()
|
||||
// ****
|
||||
function OpenManualTempus()
|
||||
{
|
||||
window.open('https://wiki.fhcomplete.org/doku.php?id=tempus:allgemeines','Manual');
|
||||
window.open('https://wiki.fhcomplete.info/doku.php?id=tempus:allgemeines','Manual');
|
||||
}
|
||||
|
||||
// ****
|
||||
|
||||
@@ -524,12 +524,13 @@ class bisverwendung extends basis_db
|
||||
{
|
||||
//laden des Datensatzes
|
||||
$qry = "SELECT
|
||||
*
|
||||
*, tbl_hauptberuf.bezeichnung as hauptberuf
|
||||
FROM
|
||||
bis.tbl_bisverwendung
|
||||
LEFT JOIN bis.tbl_hauptberuf USING(hauptberufcode)
|
||||
WHERE
|
||||
mitarbeiter_uid=".$this->db_add_param($uid)."
|
||||
ORDER BY ende DESC NULLS LAST,beginn DESC NULLS LAST LIMIT 1;";
|
||||
ORDER BY ende DESC NULLS FIRST,beginn DESC NULLS LAST LIMIT 1;";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
@@ -543,6 +544,7 @@ class bisverwendung extends basis_db
|
||||
$this->mitarbeiter_uid = $row->mitarbeiter_uid;
|
||||
$this->hauptberufcode = $row->hauptberufcode;
|
||||
$this->hauptberuflich = $this->db_parse_bool($row->hauptberuflich);
|
||||
$this->hauptberuf = $row->hauptberuf;
|
||||
$this->habilitation = $this->db_parse_bool($row->habilitation);
|
||||
$this->beginn = $row->beginn;
|
||||
$this->ende = $row->ende;
|
||||
@@ -582,7 +584,7 @@ class bisverwendung extends basis_db
|
||||
(beginn<=now() OR beginn IS NULL)
|
||||
AND
|
||||
(ende>=now() OR ende IS NULL)
|
||||
ORDER BY ende DESC NULLS LAST,beginn DESC NULLS LAST LIMIT 1;";
|
||||
ORDER BY ende DESC NULLS FIRST,beginn DESC NULLS LAST LIMIT 1;";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
|
||||
+619
-618
File diff suppressed because it is too large
Load Diff
@@ -31,6 +31,20 @@ var InfocenterPersonDataset = {
|
||||
var formHtml = '<form id="sendMsgsForm" method="post" action="'+ url +'" target="_blank"></form>';
|
||||
$("#datasetActionsTop").before(formHtml);
|
||||
|
||||
var auswahlAbsageToggle =
|
||||
'<a class="absageToggle">Erweiterte Einstellungen</a>';
|
||||
|
||||
var auswahlAbsage =
|
||||
'<select class="form-control absgstatusgrund" style="width:auto; float:left;">' +
|
||||
'<option value="null" selected="selected"> Absagegrund </option>' +
|
||||
'</select>' +
|
||||
'<select class="form-control auswahlAbsageStg" style="width:auto; float:left;">' +
|
||||
'<option value="null" selected="selected"> Studiengang </option>' +
|
||||
'</select>' +
|
||||
'<button class="btn btn-default auswahlAbsageBtn" style="float:left"> Absage </button>';
|
||||
|
||||
InfocenterPersonDataset.getAbsageData();
|
||||
|
||||
var studienSemesterHtml = '<button class="btn btn-default btn-xs decStudiensemester">' +
|
||||
'<i class="fa fa-chevron-left"></i>' +
|
||||
'</button> ' +
|
||||
@@ -60,6 +74,14 @@ var InfocenterPersonDataset = {
|
||||
"<div class='col-xs-12 text-center'>"+studienSemesterHtml+"</div>"+
|
||||
"</div><div class='h-divider'></div><hr class='studiensemesterline'>");
|
||||
|
||||
$("#datasetActionsBottom").append(
|
||||
"<div class='row'>"+
|
||||
"<div class='col-xs-12'>"+auswahlAbsageToggle+"</div>"+
|
||||
"<div class='col-xs-12' id='absagePunkte' style='display:none'>"+auswahlAbsage+"</div>"+
|
||||
"</div>" +
|
||||
"<div class='h-divider'></div>" +
|
||||
"<hr class='studiensemesterline'>"
|
||||
)
|
||||
$("button.incStudiensemester").click(function() {
|
||||
InfocenterPersonDataset.changeStudiensemesterUservar(1);
|
||||
});
|
||||
@@ -68,6 +90,29 @@ var InfocenterPersonDataset = {
|
||||
InfocenterPersonDataset.changeStudiensemesterUservar(-1);
|
||||
});
|
||||
|
||||
$('button.auswahlAbsageBtn').click(function()
|
||||
{
|
||||
var idsel = $("#filterTableDataset input:checked[name=PersonId\\[\\]]");
|
||||
|
||||
if(idsel.length <= 0)
|
||||
return FHC_DialogLib.alertInfo("Bitte wählen Sie die Personen aus.");
|
||||
|
||||
if($('.absgstatusgrund').val() === 'null' || $('.auswahlAbsageStg').val() === 'null')
|
||||
return FHC_DialogLib.alertInfo("Bitte den Absagegrund und Studiengang auswählen.");
|
||||
|
||||
$(".absageModalForAll").modal("show");
|
||||
});
|
||||
|
||||
$('#saveAbsageForAll').click(function()
|
||||
{
|
||||
InfocenterPersonDataset.saveAbsageForAll();
|
||||
});
|
||||
|
||||
$('a.absageToggle').click(function()
|
||||
{
|
||||
$('#absagePunkte').toggle();
|
||||
})
|
||||
|
||||
var personcount = 0;
|
||||
|
||||
FHC_AjaxClient.ajaxCallGet(
|
||||
@@ -203,6 +248,75 @@ var InfocenterPersonDataset = {
|
||||
);
|
||||
},
|
||||
|
||||
saveAbsageForAll: function()
|
||||
{
|
||||
var idsel = $("#filterTableDataset input:checked[name=PersonId\\[\\]]");
|
||||
|
||||
var statusgrund = $('.absgstatusgrund').val();
|
||||
var studiengang = $('.auswahlAbsageStg').val();
|
||||
|
||||
var personen = [];
|
||||
|
||||
for (var i = 0; i < idsel.length; i++)
|
||||
{
|
||||
personen.push($(idsel[i]).val());
|
||||
}
|
||||
|
||||
FHC_AjaxClient.ajaxCallPost(
|
||||
'system/infocenter/InfoCenter/saveAbsageForAll',
|
||||
{
|
||||
'statusgrund': statusgrund,
|
||||
'studiengang': studiengang,
|
||||
'personen' : personen
|
||||
},
|
||||
{
|
||||
successCallback: function(data, textStatus, jqXHR) {
|
||||
if (FHC_AjaxClient.isError(data))
|
||||
FHC_DialogLib.alertError(FHC_AjaxClient.getError(data));
|
||||
|
||||
if (FHC_AjaxClient.hasData(data))
|
||||
FHC_DialogLib.alertSuccess("Erfolgreich gespeichert.")
|
||||
|
||||
$(".absageModalForAll").modal("hide");
|
||||
},
|
||||
errorCallback: function(jqXHR, textStatus, errorThrown) {
|
||||
FHC_DialogLib.alertError(textStatus);
|
||||
}
|
||||
}
|
||||
);
|
||||
},
|
||||
|
||||
getAbsageData: function()
|
||||
{
|
||||
FHC_AjaxClient.ajaxCallGet(
|
||||
'system/infocenter/InfoCenter/getAbsageData',
|
||||
{},
|
||||
{
|
||||
successCallback: function(data, textStatus, jqXHR) {
|
||||
if (FHC_AjaxClient.hasData(data))
|
||||
{
|
||||
data = FHC_AjaxClient.getData(data);
|
||||
$.each(data.statusgruende, function(key, value){
|
||||
$('.absgstatusgrund').append($("<option/>", {
|
||||
value: value.statusgrund_id,
|
||||
text: value.bezeichnung_mehrsprachig[0]
|
||||
}))
|
||||
})
|
||||
$.each(data.studiengaenge, function(key, value){
|
||||
$('.auswahlAbsageStg').append($("<option/>", {
|
||||
value: value.studiengang,
|
||||
text: value.studiengang
|
||||
}))
|
||||
})
|
||||
|
||||
}
|
||||
},
|
||||
errorCallback: function(jqXHR, textStatus, errorThrown) {
|
||||
FHC_DialogLib.alertError(textStatus);
|
||||
}
|
||||
}
|
||||
);
|
||||
},
|
||||
/**
|
||||
* initializes call to get the Studiensemester user variable
|
||||
*/
|
||||
|
||||
@@ -275,29 +275,29 @@ function drawLehrauftrag($uid)
|
||||
FROM
|
||||
campus.vw_lehreinheit
|
||||
JOIN lehre.tbl_lehreinheitmitarbeiter lema USING (lehreinheit_id, mitarbeiter_uid)
|
||||
JOIN lehre.tbl_vertrag_vertragsstatus vvst USING (vertrag_id)
|
||||
JOIN lehre.tbl_vertrag_vertragsstatus vvst USING (vertrag_id)
|
||||
WHERE
|
||||
mitarbeiter_uid=".$db->db_add_param($uid)."
|
||||
AND studiensemester_kurzbz=".$db->db_add_param($ss). "
|
||||
AND lema.vertrag_id IS NOT NULL
|
||||
AND vertragsstatus_kurzbz = 'akzeptiert'";
|
||||
AND lema.vertrag_id IS NOT NULL
|
||||
AND vertragsstatus_kurzbz = 'akzeptiert'";
|
||||
|
||||
if ($studiengang_kz != '') //$studiengang_kz!='0' &&
|
||||
{
|
||||
$qry .= " AND lv_studiengang_kz=".$db->db_add_param($studiengang_kz);
|
||||
}
|
||||
{
|
||||
$qry .= " AND lv_studiengang_kz=".$db->db_add_param($studiengang_kz);
|
||||
}
|
||||
elseif (!empty($xsl_oe_kurzbz))
|
||||
{
|
||||
if ($xsl_oe_kurzbz == 'etw')
|
||||
{
|
||||
$qry .= " AND lv_studiengang_kz > 0";
|
||||
}
|
||||
{
|
||||
if ($xsl_oe_kurzbz == 'etw')
|
||||
{
|
||||
$qry .= " AND lv_studiengang_kz > 0";
|
||||
}
|
||||
|
||||
if ($xsl_oe_kurzbz == 'lehrgang')
|
||||
{
|
||||
$qry .= " AND lv_studiengang_kz <= 0";
|
||||
}
|
||||
}
|
||||
if ($xsl_oe_kurzbz == 'lehrgang')
|
||||
{
|
||||
$qry .= " AND lv_studiengang_kz <= 0";
|
||||
}
|
||||
}
|
||||
|
||||
$qry .= " ORDER BY lv_orgform_kurzbz, lv_bezeichnung, lehreinheit_id";
|
||||
$lv = array();
|
||||
@@ -390,8 +390,8 @@ function drawLehrauftrag($uid)
|
||||
$gesamtstunden = $gesamtstunden + $stunden;
|
||||
}
|
||||
}
|
||||
$qry = 'SELECT
|
||||
pa.projektarbeit_id,
|
||||
$qry = 'SELECT
|
||||
pa.projektarbeit_id,
|
||||
pb.faktor,
|
||||
pb.stunden,
|
||||
pb.stundensatz,
|
||||
@@ -401,37 +401,37 @@ function drawLehrauftrag($uid)
|
||||
student.studiengang_kz,
|
||||
projekttyp_kurzbz,
|
||||
lv.oe_kurzbz,
|
||||
vertragsstatus_kurzbz
|
||||
vertragsstatus_kurzbz
|
||||
FROM lehre.tbl_projektbetreuer pb
|
||||
JOIN lehre.tbl_projektarbeit pa USING (projektarbeit_id)
|
||||
JOIN lehre.tbl_lehreinheit le USING (lehreinheit_id)
|
||||
JOIN lehre.tbl_lehrveranstaltung lv USING (lehrveranstaltung_id)
|
||||
JOIN PUBLIC.tbl_organisationseinheit oe USING (oe_kurzbz)
|
||||
JOIN public.tbl_benutzer benutzer ON pb.person_id = benutzer.person_id
|
||||
JOIN campus.vw_student student ON pa.student_uid = student.uid
|
||||
LEFT JOIN lehre.tbl_vertrag vertrag USING (vertrag_id)
|
||||
LEFT JOIN lehre.tbl_vertrag_vertragsstatus vvst USING (vertrag_id)
|
||||
JOIN lehre.tbl_projektarbeit pa USING (projektarbeit_id)
|
||||
JOIN lehre.tbl_lehreinheit le USING (lehreinheit_id)
|
||||
JOIN lehre.tbl_lehrveranstaltung lv USING (lehrveranstaltung_id)
|
||||
JOIN PUBLIC.tbl_organisationseinheit oe USING (oe_kurzbz)
|
||||
JOIN public.tbl_benutzer benutzer ON pb.person_id = benutzer.person_id
|
||||
JOIN campus.vw_student student ON pa.student_uid = student.uid
|
||||
LEFT JOIN lehre.tbl_vertrag vertrag USING (vertrag_id)
|
||||
LEFT JOIN lehre.tbl_vertrag_vertragsstatus vvst USING (vertrag_id)
|
||||
WHERE pb.vertrag_id IS NOT NULL
|
||||
AND vvst.vertragsstatus_kurzbz = \'akzeptiert\'
|
||||
AND benutzer.uid = '.$db->db_add_param($uid).'
|
||||
AND le.studiensemester_kurzbz = '.$db->db_add_param($ss);
|
||||
AND vvst.vertragsstatus_kurzbz = \'akzeptiert\'
|
||||
AND benutzer.uid = '.$db->db_add_param($uid).'
|
||||
AND le.studiensemester_kurzbz = '.$db->db_add_param($ss);
|
||||
|
||||
if ($studiengang_kz != '')
|
||||
{
|
||||
$qry .= " AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
|
||||
}
|
||||
elseif (!empty($xsl_oe_kurzbz))
|
||||
{
|
||||
if ($xsl_oe_kurzbz == 'etw')
|
||||
{
|
||||
$qry .= " AND lv.studiengang_kz > 0";
|
||||
}
|
||||
{
|
||||
$qry .= " AND lv.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
|
||||
}
|
||||
elseif (!empty($xsl_oe_kurzbz))
|
||||
{
|
||||
if ($xsl_oe_kurzbz == 'etw')
|
||||
{
|
||||
$qry .= " AND lv.studiengang_kz > 0";
|
||||
}
|
||||
|
||||
if ($xsl_oe_kurzbz == 'lehrgang')
|
||||
{
|
||||
$qry .= " AND lv.studiengang_kz <= 0";
|
||||
}
|
||||
}
|
||||
if ($xsl_oe_kurzbz == 'lehrgang')
|
||||
{
|
||||
$qry .= " AND lv.studiengang_kz <= 0";
|
||||
}
|
||||
}
|
||||
|
||||
if ($result = $db->db_query($qry))
|
||||
{
|
||||
@@ -471,8 +471,6 @@ function drawLehrauftrag($uid)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
foreach ($lv as $lv_row)
|
||||
{
|
||||
$xml .= '
|
||||
|
||||
@@ -7949,6 +7949,26 @@ Any unusual occurrences
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'ui',
|
||||
'phrase' => 'zukuenftige',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Zukünftige',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'upcoming',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'ui',
|
||||
|
||||
@@ -135,6 +135,99 @@ if (isset($personToDelete) && isset($personToKeep) && $personToDelete >= 0 && $p
|
||||
}
|
||||
else
|
||||
{
|
||||
// Prüfen, ob tbl_alma existiert (also ob ALMA extension installiert ist)
|
||||
if($result = @$db->db_query("SELECT 1 FROM sync.tbl_alma LIMIT 1"))
|
||||
{
|
||||
// Wenn Person in ALMA Bibliothek vorkommt, ggf. die Person dort übernehmen
|
||||
$alma_has_personToKeep = false;
|
||||
$alma_has_personToDelete = false;
|
||||
$alma_update_obj = new StdClass();
|
||||
$alma_query_upd = '';
|
||||
|
||||
$alma_query = "
|
||||
SELECT *
|
||||
FROM sync.tbl_alma
|
||||
WHERE (
|
||||
person_id = " . $db->db_add_param($personToKeep, FHC_INTEGER) . " OR
|
||||
person_id = " . $db->db_add_param($personToDelete, FHC_INTEGER) . "
|
||||
)";
|
||||
|
||||
if ($result = $db->db_query($alma_query))
|
||||
{
|
||||
while ($row = $db->db_fetch_object($result))
|
||||
{
|
||||
if ($row->person_id == $personToKeep)
|
||||
{
|
||||
$alma_has_personToKeep = true;
|
||||
}
|
||||
if ($row->person_id == $personToDelete)
|
||||
{
|
||||
$alma_has_personToDelete = true;
|
||||
$alma_update_obj = $row;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Falls nur die zu löschende Person in ALMA vorhanden ist, mit der zu behaltenden Person ersetzen
|
||||
if ($alma_has_personToDelete && !$alma_has_personToKeep)
|
||||
{
|
||||
$alma_query_upd = "
|
||||
UPDATE sync.tbl_alma
|
||||
SET person_id = " . $db->db_add_param($personToKeep, FHC_INTEGER) . "
|
||||
WHERE alma_match_id = " . $alma_update_obj->alma_match_id . "
|
||||
AND person_id = " . $alma_update_obj->person_id . ";";
|
||||
}
|
||||
// Falls bereits doppelte Einträge in ALMA vorhanden sind (zu löschende und zu behaltende), manuell lösen
|
||||
elseif ($alma_has_personToDelete && $alma_has_personToKeep)
|
||||
{
|
||||
die('Es sind bereits beide Personen in ALMA vorhanden. Bitte zuerst direkt im ALMA Bibliotheksystem und in der tbl_alma lösen.');
|
||||
}
|
||||
}
|
||||
|
||||
// Prüfen, ob tbl_sap_students exisitiert
|
||||
if($result = @$db->db_query("SELECT 1 FROM sync.tbl_sap_students LIMIT 1"))
|
||||
{
|
||||
// Wenn Person in SAP students vorkommt, ggf. die Person dort übernehmen
|
||||
$sap_students_has_personToKeep = false;
|
||||
$sap_students_has_personToDelete = false;
|
||||
$sap_students_update_obj = new StdClass();
|
||||
$sap_students_query_upd = '';
|
||||
|
||||
$sap_students_query = "
|
||||
SELECT *
|
||||
FROM sync.tbl_sap_students
|
||||
WHERE (
|
||||
person_id = " . $db->db_add_param($personToKeep, FHC_INTEGER) . " OR
|
||||
person_id = " . $db->db_add_param($personToDelete, FHC_INTEGER) . "
|
||||
)";
|
||||
|
||||
if ($result = $db->db_query($sap_students_query)) {
|
||||
while ($row = $db->db_fetch_object($result)) {
|
||||
if ($row->person_id == $personToKeep) {
|
||||
$sap_students_has_personToKeep = true;
|
||||
}
|
||||
if ($row->person_id == $personToDelete) {
|
||||
$sap_students_has_personToDelete = true;
|
||||
$sap_students_update_obj = $row;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Wenn die zu löschende Person in SAP students eingetragen ist, dann mit der zu behaltenden Person überschreiben
|
||||
if ($sap_students_has_personToDelete && !$sap_students_has_personToKeep) {
|
||||
$sap_students_query_upd = "
|
||||
UPDATE sync.tbl_sap_students
|
||||
SET person_id = " . $db->db_add_param($personToKeep, FHC_INTEGER) . "
|
||||
WHERE sap_user_id = " . $db->db_add_param($sap_students_update_obj->sap_user_id, FHC_STRING) . "
|
||||
AND person_id = " . $sap_students_update_obj->person_id . ";";
|
||||
}
|
||||
// Wenn doppelte Personeneinträge in SAP students vorhanden sind (zu löschende UND zu behaltende Person),
|
||||
// dann manuell lösen
|
||||
elseif ($sap_students_has_personToDelete && $sap_students_has_personToKeep) {
|
||||
die('Es sind bereits beide Personen in SAP vorhanden. Bitte zuerst direkt in der tbl_sap_students lösen.');
|
||||
}
|
||||
}
|
||||
|
||||
$personToDelete_obj = new person();
|
||||
if ($personToDelete_obj->load($personToDelete))
|
||||
{
|
||||
@@ -346,6 +439,8 @@ if (isset($personToDelete) && isset($personToKeep) && $personToDelete >= 0 && $p
|
||||
$sql_query_upd1 .= "UPDATE system.tbl_person_lock SET person_id=" . $db->db_add_param($personToKeep, FHC_INTEGER) . " WHERE person_id=" . $db->db_add_param($personToDelete, FHC_INTEGER) . ";";
|
||||
$sql_query_upd1 .= "UPDATE wawi.tbl_betriebsmittelperson SET person_id=" . $db->db_add_param($personToKeep, FHC_INTEGER) . " WHERE person_id=" . $db->db_add_param($personToDelete, FHC_INTEGER) . ";";
|
||||
$sql_query_upd1 .= "UPDATE wawi.tbl_konto SET person_id=" . $db->db_add_param($personToKeep, FHC_INTEGER) . " WHERE person_id=" . $db->db_add_param($personToDelete, FHC_INTEGER) . ";";
|
||||
$sql_query_upd1 .= $alma_query_upd;
|
||||
$sql_query_upd1 .= $sap_students_query_upd;
|
||||
|
||||
$sql_query_upd1 .= "DELETE FROM public.tbl_person WHERE person_id=" . $db->db_add_param($personToDelete, FHC_INTEGER) . ";";
|
||||
|
||||
|
||||
Reference in New Issue
Block a user