- added UDF prestudent dropdown to infocenterDetails

- crm/Prestudent_model: improved code, e.g. replaced ->retval
This commit is contained in:
alex
2020-01-28 17:21:47 +01:00
parent 87aa482234
commit 2e30841b0d
6 changed files with 108 additions and 59 deletions
@@ -1271,7 +1271,7 @@ class InfoCenter extends Auth_Controller
show_error(getError($prestudentWithZgv));
}
$zgvpruefung = $prestudentWithZgv->retval[0];
$zgvpruefung = getData($prestudentWithZgv);
if (isset($zgvpruefung->prestudentstatus))
{
@@ -1296,11 +1296,15 @@ class InfoCenter extends Auth_Controller
$zgvpruefung->isRtFreigegeben = false;
$zgvpruefung->isStgFreigegeben = false;
$zgvpruefung->sendStgFreigabeMsg = true;//wether Stgudiengangfreigabemessage can be sent (for "exceptions", Studiengänge with no message sending)
$this->PrestudentstatusModel->addSelect('bestaetigtam, statusgrund_id, tbl_status_grund.bezeichnung_mehrsprachig AS bezeichnung_statusgrund');
$this->PrestudentstatusModel->addJoin('public.tbl_status_grund', 'statusgrund_id', 'LEFT');
$isFreigegeben = $this->PrestudentstatusModel->loadWhere(array('studiensemester_kurzbz' => $zgvpruefung->prestudentstatus->studiensemester_kurzbz,
'tbl_prestudentstatus.status_kurzbz' => self::INTERESSENTSTATUS, 'prestudent_id' => $prestudent->prestudent_id));
$isFreigegeben = null;
if (isset($zgvpruefung->prestudentstatus->studiensemester_kurzbz))
{
$this->PrestudentstatusModel->addSelect('bestaetigtam, statusgrund_id, tbl_status_grund.bezeichnung_mehrsprachig AS bezeichnung_statusgrund');
$this->PrestudentstatusModel->addJoin('public.tbl_status_grund', 'statusgrund_id', 'LEFT');
$isFreigegeben = $this->PrestudentstatusModel->loadWhere(array('studiensemester_kurzbz' => $zgvpruefung->prestudentstatus->studiensemester_kurzbz,
'tbl_prestudentstatus.status_kurzbz' => self::INTERESSENTSTATUS, 'prestudent_id' => $prestudent->prestudent_id));
}
if (hasData($isFreigegeben))
{
@@ -1457,9 +1461,10 @@ class InfoCenter extends Auth_Controller
show_error(getError($prestudent));
}
$person_id = $prestudent->retval[0]->person_id;
$studiengang_kurzbz = $prestudent->retval[0]->studiengang;
$studiengang_bezeichnung = $prestudent->retval[0]->studiengangbezeichnung;
$prestudentdata = getData($prestudent);
$person_id = $prestudentdata->person_id;
$studiengang_kurzbz = $prestudentdata->studiengang;
$studiengang_bezeichnung = $prestudentdata->studiengangbezeichnung;
return array('person_id' => $person_id, 'studiengang_kurzbz' => $studiengang_kurzbz, 'studiengang_bezeichnung' => $studiengang_bezeichnung);
}
@@ -1502,7 +1507,8 @@ class InfoCenter extends Auth_Controller
private function _sendFreigabeMail($prestudent_id)
{
//get data
$prestudent = $this->PrestudentModel->getPrestudentWithZgv($prestudent_id)->retval[0];
$prestudent = $this->PrestudentModel->getPrestudentWithZgv($prestudent_id);
$prestudent = getData($prestudent);
$prestudentstatus = $prestudent->prestudentstatus;
$person_id = $prestudent->person_id;
$person = $this->PersonModel->getPersonStammdaten($person_id, true)->retval;
+38 -18
View File
@@ -209,6 +209,9 @@ class Prestudent_model extends DB_Model
if (!hasData($prestudent))
return error('prestudent could not be loaded');
$prestudentdata = getData($prestudent);
$prestudentdata = $prestudentdata[0];
//Prestudentstatus
$lastStatus = $this->PrestudentstatusModel->getLastStatus($prestudent_id);
@@ -217,32 +220,41 @@ class Prestudent_model extends DB_Model
return $lastStatus;
}
if (count($lastStatus->retval) > 0)
if (hasData($lastStatus))
{
$lastStatusData = getData($lastStatus);
$lastStatusData = $lastStatusData[0];
//get Studiengangname from Studienplan and -ordnung
$studienordnung = $this->PrestudentstatusModel->getStudienordnungFromPrestudent($prestudent_id);
if ($studienordnung->error)
return $studienordnung;
if (count($studienordnung->retval) > 0)
if (hasData($studienordnung))
{
$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;
$lastStatus->retval[0]->regelstudiendauer = $studienordnung->retval[0]->regelstudiendauer;
$studienordnungdata = getData($studienordnung);
$studienordnungdata = $studienordnungdata[0];
$lastStatusData->studiengang_kz = $studienordnungdata->studiengang_kz;
$lastStatusData->studiengangkurzbzlang = $studienordnungdata->studiengangkurzbzlang;
$lastStatusData->studiengangbezeichnung = $studienordnungdata->studiengangbezeichnung;
$lastStatusData->studiengangbezeichnung_englisch = $studienordnungdata->studiengangbezeichnung_englisch;
$lastStatusData->regelstudiendauer = $studienordnungdata->regelstudiendauer;
}
//get Sprache
$this->load->model('system/sprache_model', 'SpracheModel');
$this->SpracheModel->addSelect('sprache, locale, bezeichnung');
$language = $this->SpracheModel->load($lastStatus->retval[0]->sprache);
$language = $this->SpracheModel->load($lastStatusData->sprache);
if ($language->error)
return $language;
if (count($language->retval) > 0)
$lastStatus->retval[0]->sprachedetails = $language->retval[0];
if (hasData($language))
{
$languagedata = getData($language);
$languagedata = $languagedata[0];
$lastStatusData->sprachedetails = $languagedata;
}
//get Bewerbungsfrist
$this->load->model('crm/bewerbungstermine_model', 'BewerbungstermineModel');
@@ -251,24 +263,32 @@ class Prestudent_model extends DB_Model
$this->BewerbungstermineModel->addLimit(1);
$bewerbungstermin = $this->BewerbungstermineModel->loadWhere(
array(
'studienplan_id' => $lastStatus->retval[0]->studienplan_id,
'studiensemester_kurzbz' => $lastStatus->retval[0]->studiensemester_kurzbz,
'studiengang_kz' => $prestudent->retval[0]->studiengang_kz
'studienplan_id' => $lastStatusData->studienplan_id,
'studiensemester_kurzbz' => $lastStatusData->studiensemester_kurzbz,
'studiengang_kz' => $prestudentdata->studiengang_kz
)
);
if ($bewerbungstermin->error)
return $bewerbungstermin;
if (count($bewerbungstermin->retval) > 0)
if (hasData($bewerbungstermin))
{
$lastStatus->retval[0]->bewerbungstermin = $bewerbungstermin->retval[0]->ende;
$lastStatus->retval[0]->bewerbungsnachfrist = $bewerbungstermin->retval[0]->nachfrist_ende;
$bewerbungstermindata = getData($bewerbungstermin);
$bewerbungstermindata = $bewerbungstermindata[0];
$lastStatusData->bewerbungstermin = $bewerbungstermindata->ende;
$lastStatusData->bewerbungsnachfrist = $bewerbungstermindata->nachfrist_ende;
}
$prestudent->retval[0]->prestudentstatus = $lastStatus->retval[0];
$prestudentdata->prestudentstatus = $lastStatusData;
if ($this->hasUDF())
{
$prestudentdata->prestudentUdfs = $this->getUDFs($prestudent_id);
}
}
return success($prestudent->retval);
return success($prestudentdata);
}
/**
@@ -14,7 +14,7 @@ class Studienjahr_model extends DB_Model
}
/**
* Gets current Studienjahr, as determined by its start and enddate
* Gets current Studienjahr, as determined by start and enddate of current semester
* @return array|null
*/
public function getCurrStudienjahr()
@@ -14,6 +14,7 @@
'sbadmintemplate' => true,
'addons' => true,
'navigationwidget' => true,
'udfs' => true,
'customCSSs' => array(
'public/css/sbadmin2/admintemplate.css',
'public/css/sbadmin2/tablesort_bootstrap.css',
@@ -118,8 +118,7 @@
<div id="collapse<?php echo $zgvpruefung->prestudent_id ?>"
class="panel-collapse collapse<?php echo $infoonly ? '' : ' in' ?>">
<div class="panel-body">
<form method="post"
action="#" class="zgvform">
<form action="javascript:void(0);" class="zgvform" id="zgvform_<?php echo $zgvpruefung->prestudent_id ?>">
<input type="hidden" name="prestudentid" value="<?php echo $zgvpruefung->prestudent_id ?>" class="prestudentidinput">
<div class="row">
<div class="col-lg-<?php echo $columns[0] ?>">
@@ -302,21 +301,38 @@
</div>
<!-- show only master zgv if master studiengang - end -->
<?php endif; ?>
<?php if (!$infoonly): ?>
<div class="row">
<div class="col-xs-6 text-left">
<button type="button" class="btn btn-default zgvUebernehmen" id="zgvUebernehmen_<?php echo $zgvpruefung->prestudent_id ?>">
<?php echo $this->p->t('infocenter', 'letzteZgvUebernehmen') ?>
</button>
</div>
<div class="col-xs-6 text-right">
<button type="submit" class="btn btn-default saveZgv" id="zgvSpeichern_<?php echo $zgvpruefung->prestudent_id ?>">
<?php echo $this->p->t('ui', 'speichern') ?>
</button>
</div>
</div>
<?php endif; ?>
</form>
<?php if (!$infoonly): ?>
<div class="row">
<div class="col-xs-6 text-left">
<button type="button" class="btn btn-default zgvUebernehmen" id="zgvUebernehmen_<?php echo $zgvpruefung->prestudent_id ?>">
<?php echo $this->p->t('infocenter', 'letzteZgvUebernehmen') ?>
</button>
</div>
<div class="col-xs-6 text-right">
<button type="submit" class="btn btn-default saveZgv" id="zgvSpeichern_<?php echo $zgvpruefung->prestudent_id ?>">
<?php echo $this->p->t('ui', 'speichern') ?>
</button>
</div>
</div>
<?php endif; ?>
<br />
<?php
if (isset($zgvpruefung->prestudentUdfs))
{
echo $this->udflib->UDFWidget(
array(
UDFLib::UDF_UNIQUE_ID => 'infocenterPrestudentUDFs_'.$zgvpruefung->prestudent_id,
UDFLib::REQUIRED_PERMISSIONS_PARAMETER => 'infocenter',
UDFLib::SCHEMA_ARG_NAME => 'public',
UDFLib::TABLE_ARG_NAME => 'tbl_prestudent',
UDFLib::PRIMARY_KEY_NAME => 'prestudent_id',
UDFLib::PRIMARY_KEY_VALUE => $zgvpruefung->prestudent_id,
UDFLib::UDFS_ARG_NAME => $zgvpruefung->prestudentUdfs
)
);
}
?>
</div>
<?php
+21 -15
View File
@@ -38,7 +38,7 @@ $(document).ready(function ()
$(".prchbox").click(function ()
{
var boxid = this.id;
var akteid = boxid.substr(boxid.indexOf("_") + 1);
var akteid = InfocenterDetails._getPrestudentIdFromElementId(boxid);
var checked = this.checked;
InfocenterDetails.saveFormalGeprueft(personid, akteid, checked)
});
@@ -717,7 +717,7 @@ var InfocenterDetails = {
//up/down prioritize Bewerbungen
$(".prioup").click(function ()
{
var prestudentid = this.id.substr(this.id.indexOf("_") + 1);
var prestudentid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
var data = {
"prestudentid": prestudentid,
"change": -1
@@ -726,7 +726,7 @@ var InfocenterDetails = {
});
$(".priodown").click(function ()
{
var prestudentid = this.id.substr(this.id.indexOf("_") + 1);
var prestudentid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
var data = {
"prestudentid": prestudentid,
"change": 1
@@ -738,16 +738,16 @@ var InfocenterDetails = {
$(".zgvUebernehmen").click(function ()
{
var btn = $(this);
var prestudentid = this.id.substr(this.id.indexOf("_") + 1);
var prestudentid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
$('#zgvUebernehmenNotice').remove();
InfocenterDetails.zgvUebernehmen(personid, prestudentid, btn);
});
//zgv speichern
$(".zgvform").on('submit', function (e)
$(".saveZgv").click(function ()
{
e.preventDefault();
var formdata = $(this).serializeArray();
var prestudentid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
var formdata = $("#zgvform_" + prestudentid).serializeArray();
var data = {};
@@ -763,14 +763,14 @@ var InfocenterDetails = {
//show popup with zgvinfo
$(".zgvinfo").click(function ()
{
var prestudentid = this.id.substr(this.id.indexOf("_") + 1);
var prestudentid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
InfocenterDetails.openZgvInfoForPrestudent(prestudentid);
}
);
$(".freigabebtn").click(function()
{
var prestudentid = this.id.substr(this.id.indexOf("_") + 1);
var prestudentid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
//true - Reihungstestfreigabe
InfocenterDetails._toggleFreigabeDialog(prestudentid, true);
}
@@ -778,7 +778,7 @@ var InfocenterDetails = {
$(".freigabebtnstg").click(function()
{
var prestudentid = this.id.substr(this.id.indexOf("_") + 1);
var prestudentid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
var statusgrel = $("#frgstatusgrselect_"+prestudentid+" select[name=frgstatusgrund]");
var statusgrund_id = statusgrel.val();
var statusgrund = statusgrel.find("option:selected").text();
@@ -797,7 +797,7 @@ var InfocenterDetails = {
$(".absageBtn").click(function()
{
var prestudentid = this.id.substr(this.id.indexOf("_") + 1);
var prestudentid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
var statusgrund = $("#absgstatusgrselect_" + prestudentid + " select[name=absgstatusgrund]").val();
if (statusgrund === "null")
$("#absgstatusgrselect_" + prestudentid).addClass("has-error");
@@ -817,7 +817,7 @@ var InfocenterDetails = {
$(".saveAbsage").click(function()
{
$(".absageModal").modal("hide");
var prestudent_id = this.id.substr(this.id.indexOf("_") + 1);
var prestudent_id = InfocenterDetails._getPrestudentIdFromElementId(this.id);
var statusgrund_id = $("#absgstatusgrselect_" + prestudent_id + " select[name=absgstatusgrund]").val();
var data = {"prestudent_id": prestudent_id , "statusgrund": statusgrund_id};
InfocenterDetails.saveAbsage(data);
@@ -827,7 +827,7 @@ var InfocenterDetails = {
$(".saveFreigabe").click(function()
{
$(".freigabeModal").modal("hide");
var prestudent_id = this.id.substr(this.id.indexOf("_") + 1);
var prestudent_id = InfocenterDetails._getPrestudentIdFromElementId(this.id);
var data = {"prestudent_id": prestudent_id, "statusgrund_id": null};
InfocenterDetails.saveFreigabe(data);//Reihungstestfreigabe
}
@@ -836,14 +836,14 @@ var InfocenterDetails = {
$(".saveStgFreigabe").click(function()
{
$(".freigabeModal").modal("hide");
var prestudent_id = this.id.substr(this.id.indexOf("_") + 1);
var prestudent_id = InfocenterDetails._getPrestudentIdFromElementId(this.id);
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
}
)
);
},
_refreshZgv: function(preserveCollapseState)
{
@@ -867,6 +867,8 @@ var InfocenterDetails = {
CONTROLLER_URL + '/reloadZgvPruefungen/' + personid + '?fhc_controller_id=' + FHC_AjaxClient.getUrlParameter('fhc_controller_id'),
function()
{
// call to UDFWidget again to add events and other JS functionality (before _addZgvPruefungEvents because it adds bootstrap format)
FHC_UDFWidget.display();
InfocenterDetails._addZgvPruefungEvents(personid);
if (preserveCollapseState)
{
@@ -1058,5 +1060,9 @@ var InfocenterDetails = {
},
_genericSaveError: function() {
FHC_DialogLib.alertError("error when saving!");
},
_getPrestudentIdFromElementId(elementid)
{
return elementid.substr(elementid.indexOf("_") + 1);
}
};