mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-19 16:02:15 +00:00
enabled updating of oehbeitrag values
This commit is contained in:
@@ -13,6 +13,7 @@ class Oehbeitrag extends Auth_Controller
|
||||
'index' => 'admin:r',// TODO which Berechtigung?
|
||||
'getValidStudiensemester' => 'admin:r',
|
||||
'addOehbeitrag' => 'admin:rw',
|
||||
'updateOehbeitrag' => 'admin:rw',
|
||||
'deleteOehbeitrag' => 'admin:rw'
|
||||
)
|
||||
);
|
||||
@@ -38,14 +39,16 @@ class Oehbeitrag extends Auth_Controller
|
||||
|
||||
public function getValidStudiensemester()
|
||||
{
|
||||
$oehbeitrag_id = $this->input->get('oehbeitrag_id');
|
||||
$oehbeitrag_id_arr = isset($oehbeitrag_id) ? array($oehbeitrag_id) : null;
|
||||
|
||||
$studiensemester = array();
|
||||
|
||||
$studiensemesterres = $this->OehbeitragModel->getUnassignedStudiensemester(self::STUDIENSEMESTER_START);
|
||||
|
||||
$studiensemesterres = $this->OehbeitragModel->getUnassignedStudiensemester(self::STUDIENSEMESTER_START, $oehbeitrag_id_arr);
|
||||
if (isError($studiensemesterres))
|
||||
{
|
||||
$this->outputJsonError(getError($studiensemesterres));
|
||||
die();
|
||||
return;
|
||||
}
|
||||
|
||||
if (hasData($studiensemesterres))
|
||||
@@ -63,9 +66,9 @@ class Oehbeitrag extends Auth_Controller
|
||||
if ($bis_studiensemester_kurzbz == 'null')
|
||||
$bis_studiensemester_kurzbz = null;
|
||||
|
||||
if (!is_numeric($studierendenbeitrag))
|
||||
if (!$this->_checkAmount($studierendenbeitrag))
|
||||
$this->outputJsonError('Ungültiger Studierendenbeitrag');
|
||||
elseif (!is_numeric($versicherung))
|
||||
elseif (!$this->_checkAmount($versicherung))
|
||||
$this->outputJsonError('Ungültige Versicherung');
|
||||
else
|
||||
{
|
||||
@@ -82,13 +85,65 @@ class Oehbeitrag extends Auth_Controller
|
||||
'bis_studiensemester_kurzbz' => $bis_studiensemester_kurzbz
|
||||
);
|
||||
|
||||
$insertRes = $this->OehbeitragModel->insert($data);
|
||||
|
||||
$this->outputJson($insertRes);
|
||||
$this->outputJson($this->OehbeitragModel->insert($data));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function updateOehbeitrag()
|
||||
{
|
||||
$oehbeitrag_id = $this->input->post("oehbeitrag_id");
|
||||
$data = $this->input->post("data");
|
||||
|
||||
if (!is_numeric($oehbeitrag_id) || isEmptyArray($data))
|
||||
{
|
||||
$this->outputJsonError("Ungültige Parameter");
|
||||
return;
|
||||
}
|
||||
|
||||
foreach ($data as $idx => $value)
|
||||
{
|
||||
if ($idx == 'studierendenbeitrag' || $idx == 'versicherung')
|
||||
{
|
||||
if (!$this->_checkAmount($value))
|
||||
{
|
||||
$this->outputJsonError("Ungültiger $idx");
|
||||
return;
|
||||
}
|
||||
}
|
||||
elseif ($idx == 'von_studiensemester_kurzbz' || $idx == 'bis_studiensemester_kurzbz')
|
||||
{
|
||||
$this->OehbeitragModel->addSelect('von_studiensemester_kurzbz, bis_studiensemester_kurzbz');
|
||||
$vonBisStudiensemesterRes = $this->OehbeitragModel->load($oehbeitrag_id);
|
||||
|
||||
if (!hasData($vonBisStudiensemesterRes))
|
||||
{
|
||||
$this->outputJsonError("Fehler beim Holen des Öhbeitrags");
|
||||
return;
|
||||
}
|
||||
|
||||
$vonBisStudiensemester = getData($vonBisStudiensemesterRes);
|
||||
|
||||
$von_studiensemester_kurzbz = $idx == 'von_studiensemester_kurzbz' ? $value : $vonBisStudiensemester[0]->von_studiensemester_kurzbz;
|
||||
|
||||
if ($idx == 'bis_studiensemester_kurzbz')
|
||||
$bis_studiensemester_kurzbz = $data[$idx] = $value == 'null' ? null : $value;
|
||||
else
|
||||
$bis_studiensemester_kurzbz = $vonBisStudiensemester[0]->bis_studiensemester_kurzbz;
|
||||
|
||||
$checkStudiensemester = $this->_checkVonBisStudiensemester($von_studiensemester_kurzbz, $bis_studiensemester_kurzbz, $oehbeitrag_id);
|
||||
|
||||
if (isError($checkStudiensemester))
|
||||
{
|
||||
$this->outputJsonError(getError($checkStudiensemester));
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$this->outputJson($this->OehbeitragModel->update($oehbeitrag_id, $data));
|
||||
}
|
||||
|
||||
public function deleteOehbeitrag()
|
||||
{
|
||||
$oehbeitrag_id = $this->input->post("oehbeitrag_id");
|
||||
@@ -98,12 +153,19 @@ class Oehbeitrag extends Auth_Controller
|
||||
|
||||
private function _loadOehbeitraege()
|
||||
{
|
||||
$this->OehbeitragModel->addJoin('public.tbl_studiensemester', 'tbl_oehbeitrag.von_studiensemester_kurzbz = tbl_studiensemester.studiensemester_kurzbz');
|
||||
$this->OehbeitragModel->addOrder('public.tbl_studiensemester.start', 'DESC');
|
||||
$this->OehbeitragModel->addSelect('oehbeitrag_id, von_studiensemester_kurzbz, bis_studiensemester_kurzbz, studierendenbeitrag, versicherung, sem_von.start as von_datum, sem_bis.ende as bis_datum');
|
||||
$this->OehbeitragModel->addJoin('public.tbl_studiensemester sem_von', 'tbl_oehbeitrag.von_studiensemester_kurzbz = sem_von.studiensemester_kurzbz');
|
||||
$this->OehbeitragModel->addJoin('public.tbl_studiensemester sem_bis', 'tbl_oehbeitrag.bis_studiensemester_kurzbz = sem_bis.studiensemester_kurzbz', 'LEFT');
|
||||
$this->OehbeitragModel->addOrder('sem_von.start', 'DESC');
|
||||
return $this->OehbeitragModel->load();
|
||||
}
|
||||
|
||||
private function _checkVonBisStudiensemester($von_studiensemester_kurzbz, $bis_studiensemester_kurzbz)
|
||||
private function _checkAmount($amount)
|
||||
{
|
||||
return is_numeric($amount) && $amount <= 99999.99;
|
||||
}
|
||||
|
||||
private function _checkVonBisStudiensemester($von_studiensemester_kurzbz, $bis_studiensemester_kurzbz, $oehbeitrag_id = null)
|
||||
{
|
||||
$regex = "/^(WS|SS)\d{4}$/";
|
||||
if (!preg_match($regex, $von_studiensemester_kurzbz))
|
||||
@@ -130,7 +192,13 @@ class Oehbeitrag extends Auth_Controller
|
||||
if ($bis_studiensemester_kurzbz != null && new DateTime($vonStudiensemester) > new DateTime($bisStudiensemester))
|
||||
return error("Von-Studiensemester größer als Bis-Studiensemester");
|
||||
|
||||
$assignableRes = $this->OehbeitragModel->checkIfStudiensemesterAssignable($von_studiensemester_kurzbz, $bis_studiensemester_kurzbz);
|
||||
$oehbeitrag_id_arr = isset($oehbeitrag_id) ? array($oehbeitrag_id) : null;
|
||||
|
||||
$assignableRes = $this->OehbeitragModel->checkIfStudiensemesterAssignable(
|
||||
$von_studiensemester_kurzbz,
|
||||
$bis_studiensemester_kurzbz,
|
||||
$oehbeitrag_id_arr
|
||||
);
|
||||
|
||||
if (isError($assignableRes))
|
||||
return $assignableRes;
|
||||
|
||||
@@ -34,30 +34,40 @@ class Oehbeitrag_model extends DB_Model
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets all Studiensemester for which no Oehbeitrag value assignment.
|
||||
* Gets all Studiensemester for which no Oehbeitrag value assignment exists.
|
||||
* @param string $start_studiensemester_kurzbz semester before the given semester are ignored
|
||||
* @return object
|
||||
*/
|
||||
public function getUnassignedStudiensemester($start_studiensemester_kurzbz)
|
||||
public function getUnassignedStudiensemester($start_studiensemester_kurzbz, $excluded_oehbeitrag_id = array())
|
||||
{
|
||||
$params = array($start_studiensemester_kurzbz);
|
||||
|
||||
$qry = "SELECT * FROM public.tbl_studiensemester sem
|
||||
WHERE sem.start >= (SELECT start FROM public.tbl_studiensemester WHERE studiensemester_kurzbz = ?)
|
||||
AND NOT EXISTS (SELECT 1 FROM bis.tbl_oehbeitrag oeh
|
||||
JOIN public.tbl_studiensemester oeh_von ON oeh.von_studiensemester_kurzbz = oeh_von.studiensemester_kurzbz
|
||||
LEFT JOIN public.tbl_studiensemester oeh_bis ON oeh.bis_studiensemester_kurzbz = oeh_bis.studiensemester_kurzbz
|
||||
WHERE sem.start::date >= oeh_von.start::date AND (sem.start::date <= oeh_bis.start::date OR oeh_bis.studiensemester_kurzbz IS NULL))
|
||||
ORDER BY sem.start";
|
||||
WHERE sem.start::date >= oeh_von.start::date AND (sem.start::date <= oeh_bis.start::date OR oeh_bis.studiensemester_kurzbz IS NULL)";
|
||||
|
||||
return $this->execQuery($qry, array($start_studiensemester_kurzbz));
|
||||
if (!isEmptyArray($excluded_oehbeitrag_id))
|
||||
{
|
||||
$qry .= " AND oehbeitrag_id NOT IN ?";
|
||||
$params[] = $excluded_oehbeitrag_id;
|
||||
}
|
||||
|
||||
$qry .= ") ORDER BY sem.start";
|
||||
|
||||
return $this->execQuery($qry, $params);
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if a Öhbeitrag can be assigned for a Studiensemester range.
|
||||
* @param string $von_studiensemester_kurzbz
|
||||
* @param string $bis_studiensemester_kurzbz
|
||||
* @return object
|
||||
* @param array $excluded_oehbeitrag_id
|
||||
* @return object array with true if assignable, with false if not
|
||||
*/
|
||||
public function checkIfStudiensemesterAssignable($von_studiensemester_kurzbz, $bis_studiensemester_kurzbz = null)
|
||||
public function checkIfStudiensemesterAssignable($von_studiensemester_kurzbz, $bis_studiensemester_kurzbz = null, $excluded_oehbeitrag_id = array())
|
||||
{
|
||||
$params = array($von_studiensemester_kurzbz);
|
||||
|
||||
@@ -73,7 +83,15 @@ class Oehbeitrag_model extends DB_Model
|
||||
$allStdSemSpanQry .= " AND EXISTS (SELECT 1 FROM bis.tbl_oehbeitrag
|
||||
JOIN public.tbl_studiensemester sem_von ON tbl_oehbeitrag.von_studiensemester_kurzbz = sem_von.studiensemester_kurzbz
|
||||
LEFT JOIN public.tbl_studiensemester sem_bis ON tbl_oehbeitrag.bis_studiensemester_kurzbz = sem_bis.studiensemester_kurzbz
|
||||
WHERE sem.start >= sem_von.start AND (sem.start <= sem_bis.start OR sem_bis.studiensemester_kurzbz IS NULL))";
|
||||
WHERE sem.start >= sem_von.start AND (sem.start <= sem_bis.start OR sem_bis.studiensemester_kurzbz IS NULL)";
|
||||
|
||||
if (!isEmptyArray($excluded_oehbeitrag_id))
|
||||
{
|
||||
$allStdSemSpanQry .= " AND oehbeitrag_id NOT IN ?";
|
||||
$params[] = $excluded_oehbeitrag_id;
|
||||
}
|
||||
|
||||
$allStdSemSpanQry .= ")";
|
||||
|
||||
$nrAssigned = $this->execQuery($allStdSemSpanQry, $params);
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ $this->load->view(
|
||||
'dialoglib' => true,
|
||||
'ajaxlib' => true,
|
||||
'navigationwidget' => true,
|
||||
'customCSSs' => array('public/css/sbadmin2/tablesort_bootstrap.css'/*, 'public/css/codex/oehbeitrag.css'*/),
|
||||
'customCSSs' => array('public/css/sbadmin2/tablesort_bootstrap.css', 'public/css/codex/oehbeitrag.css'),
|
||||
'customJSs' => array('public/js/tablesort/tablesort.js', 'public/js/codex/oehbeitrag.js')
|
||||
)
|
||||
);
|
||||
@@ -41,7 +41,7 @@ $this->load->view(
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Gültig von</th>
|
||||
<th>Gültig bis (inkl.)</th>
|
||||
<th>Gültig bis</th>
|
||||
<th>Studierendenbetrag</th>
|
||||
<th>Versicherungsbetrag</th>
|
||||
<th id="actionHeading">Aktion</th>
|
||||
@@ -50,10 +50,18 @@ $this->load->view(
|
||||
<tbody>
|
||||
<?php foreach ($oehbeitraege as $oehbeitrag): ?>
|
||||
<tr>
|
||||
<td><?php echo $oehbeitrag->von_studiensemester_kurzbz ?></td>
|
||||
<td><?php echo $oehbeitrag->bis_studiensemester_kurzbz == null ? 'unbeschränkt' : $oehbeitrag->bis_studiensemester_kurzbz ?></td>
|
||||
<td><?php echo number_format($oehbeitrag->studierendenbeitrag, 2, ',', '.') ?></td>
|
||||
<td><?php echo number_format($oehbeitrag->versicherung, 2, ',', '.') ?></td>
|
||||
<td><?php echo date_format(date_create($oehbeitrag->von_datum), 'd.m.Y') . '/' . $oehbeitrag->von_studiensemester_kurzbz ?>
|
||||
<i class="fa fa-edit editVonStudiensemester" id="edit_von_studiensemester_<?php echo $oehbeitrag->oehbeitrag_id ?>"></i>
|
||||
</td>
|
||||
<td><?php echo $oehbeitrag->bis_studiensemester_kurzbz == null ? 'unbeschränkt' : (date_format(date_create($oehbeitrag->bis_datum), 'd.m.Y') . '/' . $oehbeitrag->bis_studiensemester_kurzbz) ?>
|
||||
<i class="fa fa-edit editBisStudiensemester" id="edit_bis_studiensemester_<?php echo $oehbeitrag->oehbeitrag_id ?>"></i>
|
||||
</td>
|
||||
<td><?php echo number_format($oehbeitrag->studierendenbeitrag, 2, ',', '.') ?>
|
||||
<i class="fa fa-edit editStudierendenbeitrag" id="edit_studierendenbeitrag_<?php echo $oehbeitrag->oehbeitrag_id ?>"></i>
|
||||
</td>
|
||||
<td><?php echo number_format($oehbeitrag->versicherung, 2, ',', '.') ?>
|
||||
<i class="fa fa-edit editVersicherung" id="edit_versicherung_<?php echo $oehbeitrag->oehbeitrag_id ?>"></i>
|
||||
</td>
|
||||
<td><button class="btn btn-default deleteBtn" id="delete_<?php echo $oehbeitrag->oehbeitrag_id ?>">Löschen</button></td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
.inline-inputfield {
|
||||
width: auto;
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.fa-edit, .fa-check {
|
||||
cursor: pointer;
|
||||
font-size: 1.2em;
|
||||
}
|
||||
+220
-38
@@ -8,8 +8,9 @@ const CONTROLLER_URL = BASE_URL + "/"+CALLED_PATH;
|
||||
$(document).ready(function ()
|
||||
{
|
||||
//initialise table sorter
|
||||
//Tablesort.addTablesorter("oehbeitraegeTbl", [], ["zebra"]);
|
||||
Oehbeitrag._addTablesorter();
|
||||
|
||||
// set trigger for adding new Oehhbeitrag
|
||||
$("#addNewOeh").click(
|
||||
function()
|
||||
{
|
||||
@@ -22,18 +23,14 @@ $(document).ready(function ()
|
||||
|
||||
let newRowHtml = "<tr>"+
|
||||
"<td>";
|
||||
newRowHtml += "<select name='von_studiensemester_kurzbz' id='von_studiensemester_kurzbz_"+Oehbeitrag.newBeitragId+"' class='form-control'>";
|
||||
newRowHtml += Oehbeitrag._printStudiensemesterDropdown('von_studiensemester_kurzbz', studiensemester);
|
||||
newRowHtml += "</select>";
|
||||
newRowHtml += Oehbeitrag._getStudiensemesterDropdown(Oehbeitrag.newBeitragId, 'von_studiensemester_kurzbz', studiensemester);
|
||||
newRowHtml += "</td><td>";
|
||||
newRowHtml += "<select name='bis_studiensemester_kurzbz' id='bis_studiensemester_kurzbz_"+Oehbeitrag.newBeitragId+"' class='form-control'>";
|
||||
newRowHtml += "<option value='null'>unbeschränkt</option>";
|
||||
newRowHtml += Oehbeitrag._printStudiensemesterDropdown('bis_studiensemester_kurzbz', studiensemester);
|
||||
newRowHtml += "</select>";
|
||||
newRowHtml += Oehbeitrag._getStudiensemesterDropdown(Oehbeitrag.newBeitragId, 'bis_studiensemester_kurzbz', studiensemester);
|
||||
newRowHtml += "</td>";
|
||||
newRowHtml += "<td><input type='text' name='studierendenbeitrag' id='studierendenbeitrag_"+nextOehbeitragId+"' class='form-control' placeholder='0,00'></td>"+
|
||||
"<td><input type='text' name='versicherung' id='versicherung_"+nextOehbeitragId+"' class='form-control' placeholder='0,00'></td>"+
|
||||
"<td><button class='btn btn-default' id='addOeh_"+nextOehbeitragId+"'>Speichern</button></td>"+
|
||||
newRowHtml += "<td><input type='text' name='studierendenbeitrag' id='input_studierendenbeitrag_"+nextOehbeitragId+"' class='form-control' placeholder='0,00'></td>"+
|
||||
"<td><input type='text' name='versicherung' id='input_versicherung_"+nextOehbeitragId+"' class='form-control' placeholder='0,00'></td>"+
|
||||
"<td><button class='btn btn-default' id='addOeh_"+nextOehbeitragId+"'>Speichern</button> " +
|
||||
" <button class='btn btn-default' id='delete_"+nextOehbeitragId+"'>Entfernen</button></td>"+
|
||||
"</tr>";
|
||||
|
||||
/* $("#saveHeading, .saveCell").show();*/
|
||||
@@ -43,13 +40,25 @@ $(document).ready(function ()
|
||||
{
|
||||
// get form data into object
|
||||
let oehbeitrag = {
|
||||
"von_studiensemester_kurzbz": $("#von_studiensemester_kurzbz_"+nextOehbeitragId).val(),
|
||||
"bis_studiensemester_kurzbz": $("#bis_studiensemester_kurzbz_"+nextOehbeitragId).val(),
|
||||
"studierendenbeitrag": $("#studierendenbeitrag_"+nextOehbeitragId).val().replace(",", "."),
|
||||
"versicherung": $("#versicherung_"+nextOehbeitragId).val().replace(",", ".")
|
||||
"von_studiensemester_kurzbz": $("#input_von_studiensemester_kurzbz_"+nextOehbeitragId).val(),
|
||||
"bis_studiensemester_kurzbz": $("#input_bis_studiensemester_kurzbz_"+nextOehbeitragId).val(),
|
||||
"studierendenbeitrag": $("#input_studierendenbeitrag_"+nextOehbeitragId).val().replace(",", "."),
|
||||
"versicherung": $("#input_versicherung_"+nextOehbeitragId).val().replace(",", ".")
|
||||
}
|
||||
|
||||
Oehbeitrag.addOehbeitrag(oehbeitrag, nextOehbeitragId);
|
||||
let studiensemester_von_bis = {
|
||||
"von_semester_with_date": $("#input_von_studiensemester_kurzbz_"+nextOehbeitragId+" option:selected").text(),
|
||||
"bis_semester_with_date": $("#input_bis_studiensemester_kurzbz_"+nextOehbeitragId+" option:selected").text()
|
||||
}
|
||||
|
||||
Oehbeitrag.addOehbeitrag(oehbeitrag, studiensemester_von_bis, nextOehbeitragId);
|
||||
}
|
||||
);
|
||||
|
||||
$("#delete_"+nextOehbeitragId).click(
|
||||
function()
|
||||
{
|
||||
$(this).parent('td').parent('tr').remove();
|
||||
}
|
||||
);
|
||||
|
||||
@@ -64,26 +73,32 @@ $(document).ready(function ()
|
||||
}
|
||||
)
|
||||
|
||||
// set trigger for deleting Oehhbeitrag
|
||||
$(".deleteBtn").click(
|
||||
function()
|
||||
{
|
||||
let oehbeitrag_id_prefixed = $(this).prop("id");
|
||||
let oehbeitrag_id = oehbeitrag_id_prefixed.substr(oehbeitrag_id_prefixed.indexOf('_')+1);
|
||||
let oehbeitrag_id = oehbeitrag_id_prefixed.substr(oehbeitrag_id_prefixed.lastIndexOf('_')+1);
|
||||
|
||||
Oehbeitrag.deleteOehbeitrag(oehbeitrag_id);
|
||||
}
|
||||
)
|
||||
);
|
||||
|
||||
// set trigger for updating Oehhbeitrag
|
||||
Oehbeitrag._setUpdateEvents();
|
||||
});
|
||||
|
||||
var Oehbeitrag = {
|
||||
newBeitragId: 0,
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
// ajax calls
|
||||
getValidStudiensemester: function(callback)
|
||||
getValidStudiensemester: function(callback, oehbeitrag_id)
|
||||
{
|
||||
let params = oehbeitrag_id ? {"oehbeitrag_id": oehbeitrag_id} : null;
|
||||
|
||||
FHC_AjaxClient.ajaxCallGet(
|
||||
CALLED_PATH + "/getValidStudiensemester",
|
||||
null,
|
||||
params,
|
||||
{
|
||||
successCallback: callback,
|
||||
errorCallback: function()
|
||||
@@ -93,33 +108,42 @@ var Oehbeitrag = {
|
||||
}
|
||||
);
|
||||
},
|
||||
addOehbeitrag: function(oehbeitrag, nextOehbeitragId)
|
||||
addOehbeitrag: function(oehbeitrag, studiensemester_von_bis, nextOehbeitragId)
|
||||
{
|
||||
FHC_AjaxClient.ajaxCallPost(
|
||||
CALLED_PATH + '/addOehbeitrag',
|
||||
oehbeitrag,
|
||||
{
|
||||
successCallback: function(data, textStatus, jqXHR) {
|
||||
console.log(data);
|
||||
if (FHC_AjaxClient.isError(data))
|
||||
{
|
||||
FHC_DialogLib.alertError(FHC_AjaxClient.getError(data));
|
||||
}
|
||||
else if (FHC_AjaxClient.hasData(data))
|
||||
{
|
||||
console.log(data);
|
||||
let inserted_id = FHC_AjaxClient.getData(data);
|
||||
|
||||
// refresh table row in GUI
|
||||
let bis_studiensemester_kurzbz = oehbeitrag.bis_studiensemester_kurzbz == 'null' ? 'unbeschränkt' : oehbeitrag.bis_studiensemester_kurzbz;
|
||||
let bis_studiensemester_kurzbz = oehbeitrag.bis_studiensemester_kurzbz == 'null' ? 'unbeschränkt' : studiensemester_von_bis.bis_semester_with_date;
|
||||
|
||||
$("#studierendenbeitrag_"+nextOehbeitragId).parent().html(Oehbeitrag._formatDecimalGerman(oehbeitrag.studierendenbeitrag));
|
||||
$("#versicherung_"+nextOehbeitragId).parent().html(Oehbeitrag._formatDecimalGerman(oehbeitrag.versicherung));
|
||||
$("#von_studiensemester_kurzbz_"+nextOehbeitragId).parent().html(oehbeitrag.von_studiensemester_kurzbz);
|
||||
$("#bis_studiensemester_kurzbz_"+nextOehbeitragId).parent().html(bis_studiensemester_kurzbz);
|
||||
$("#input_studierendenbeitrag_"+nextOehbeitragId).parent('td').html(
|
||||
Oehbeitrag._formatDecimalGerman(oehbeitrag.studierendenbeitrag)+" <i class='fa fa-edit editStudierendenbeitrag' id='edit_studierendenbeitrag_"+inserted_id+"'></i>"
|
||||
);
|
||||
$("#input_versicherung_"+nextOehbeitragId).parent('td').html(
|
||||
Oehbeitrag._formatDecimalGerman(oehbeitrag.versicherung)+" <i class='fa fa-edit editVersicherung' id='edit_versicherung_"+inserted_id+"'></i>"
|
||||
);
|
||||
$("#input_von_studiensemester_kurzbz_"+nextOehbeitragId).parent('td').html(
|
||||
studiensemester_von_bis.von_semester_with_date+" <i class='fa fa-edit editVonStudiensemester' id='edit_von_studiensemester_kurzbz_"+inserted_id+"'></i>"
|
||||
);
|
||||
$("#input_bis_studiensemester_kurzbz_"+nextOehbeitragId).parent('td').html(
|
||||
bis_studiensemester_kurzbz+" <i class='fa fa-edit editBisStudiensemester' id='edit_bis_studiensemester_kurzbz_"+inserted_id+"'></i>"
|
||||
);
|
||||
|
||||
// add delete button instead of save btn
|
||||
$("#addOeh_"+nextOehbeitragId).parent().html("<button class='btn btn-default deleteBtn' id='delete_"+inserted_id+"'>Löschen</button>");
|
||||
$("#addOeh_"+nextOehbeitragId).parent('td').html("<button class='btn btn-default deleteBtn' id='delete_"+inserted_id+"'>Löschen</button>");
|
||||
|
||||
// add update and delete events
|
||||
Oehbeitrag._setUpdateEvents();
|
||||
|
||||
$("#delete_"+inserted_id).click(
|
||||
function()
|
||||
@@ -143,6 +167,52 @@ var Oehbeitrag = {
|
||||
}
|
||||
);
|
||||
},
|
||||
updateOehbeitrag(oehbeitrag_id, fieldname, fieldelement, inputtype)
|
||||
{
|
||||
let oehbeitragdata = {};
|
||||
let fieldvalue = fieldelement.val();
|
||||
oehbeitragdata[fieldname] = fieldvalue;
|
||||
|
||||
FHC_AjaxClient.ajaxCallPost(
|
||||
CALLED_PATH + '/updateOehbeitrag',
|
||||
{
|
||||
"oehbeitrag_id": oehbeitrag_id,
|
||||
"data": oehbeitragdata
|
||||
},
|
||||
{
|
||||
successCallback: function(data, textStatus, jqXHR) {
|
||||
if (FHC_AjaxClient.isError(data))
|
||||
{
|
||||
FHC_DialogLib.alertError(FHC_AjaxClient.getError(data));
|
||||
}
|
||||
else if (FHC_AjaxClient.hasData(data))
|
||||
{
|
||||
if (inputtype == 'semester')
|
||||
fieldvalue = $(fieldelement).find("option:selected").text();
|
||||
else
|
||||
fieldvalue = Oehbeitrag._formatDecimalGerman(fieldvalue);
|
||||
$("#confirm_"+fieldname+"_"+oehbeitrag_id).parent('td').html(
|
||||
fieldvalue+" <i class='fa fa-edit' id='edit_"+fieldname+"_"+oehbeitrag_id+"'></i>"
|
||||
);
|
||||
$("#edit_"+fieldname+"_"+oehbeitrag_id).click(
|
||||
function()
|
||||
{
|
||||
Oehbeitrag._setUpdateEvent($(this).prop("id"), fieldname, inputtype);
|
||||
}
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
FHC_DialogLib.alertError('Fehler beim Hinzufügen des Öhbeitrags');
|
||||
}
|
||||
},
|
||||
errorCallback: function()
|
||||
{
|
||||
FHC_DialogLib.alertError('Fehler beim Hinzufügen des Öhbeitrags');
|
||||
}
|
||||
}
|
||||
);
|
||||
},
|
||||
deleteOehbeitrag: function(oehbeitrag_id)
|
||||
{
|
||||
FHC_AjaxClient.ajaxCallPost(
|
||||
@@ -152,8 +222,8 @@ var Oehbeitrag = {
|
||||
successCallback: function(data, textStatus, jqXHR) {
|
||||
if (FHC_AjaxClient.hasData(data))
|
||||
{
|
||||
console.log(data);
|
||||
$("#delete_"+oehbeitrag_id).closest("tr").remove();
|
||||
Oehbeitrag._addTablesorter();
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -170,20 +240,128 @@ var Oehbeitrag = {
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
// (private) methods
|
||||
_printStudiensemesterDropdown(name, studiensemester)
|
||||
_renderOehbeitragTable(oehbeitraege)
|
||||
{
|
||||
let rowHtml = "";
|
||||
let first = true;
|
||||
for (let idx in studiensemester)
|
||||
for (let oehbeitragidx in oehbeitraege)
|
||||
{
|
||||
let selected = first ? ' selected' : '';
|
||||
let studiensemester_kurzbz = studiensemester[idx].studiensemester_kurzbz;
|
||||
rowHtml += "<option value='" + studiensemester_kurzbz + "'"+selected+">" + studiensemester_kurzbz + "</option>";
|
||||
first = false;
|
||||
let oehbeitrag = oehbeitraege[oehbeitragidx];
|
||||
|
||||
|
||||
}
|
||||
},
|
||||
_setUpdateEvents()
|
||||
{
|
||||
$(".editStudierendenbeitrag").off('click').click(
|
||||
function()
|
||||
{
|
||||
Oehbeitrag._setUpdateEvent($(this).prop("id"), 'studierendenbeitrag');
|
||||
}
|
||||
);
|
||||
|
||||
$(".editVersicherung").off('click').click(
|
||||
function()
|
||||
{
|
||||
Oehbeitrag._setUpdateEvent($(this).prop("id"), 'versicherung');
|
||||
}
|
||||
);
|
||||
|
||||
$(".editBisStudiensemester").off('click').click(
|
||||
function()
|
||||
{
|
||||
Oehbeitrag._setUpdateEvent($(this).prop("id"), 'bis_studiensemester_kurzbz', 'semester');
|
||||
}
|
||||
);
|
||||
|
||||
$(".editVonStudiensemester").off('click').click(
|
||||
function()
|
||||
{
|
||||
Oehbeitrag._setUpdateEvent($(this).prop("id"), 'von_studiensemester_kurzbz', 'semester');
|
||||
}
|
||||
);
|
||||
|
||||
},
|
||||
_setUpdateEvent(oehbeitrag_id_prefixed, fieldname, inputtype)
|
||||
{
|
||||
let initElement = $("#"+oehbeitrag_id_prefixed); // clicked element triggering event
|
||||
let oehbeitrag_id = oehbeitrag_id_prefixed.substr(oehbeitrag_id_prefixed.lastIndexOf('_')+1);
|
||||
let currFieldvalue = initElement.parent('td').text().trim();
|
||||
|
||||
let callback = function(validSemesterData)
|
||||
{
|
||||
let inputHtml = "";
|
||||
|
||||
// if semester dropdown, retrieve valid semester
|
||||
if (inputtype === 'semester')
|
||||
{
|
||||
if (FHC_AjaxClient.hasData(validSemesterData))
|
||||
{
|
||||
let studiensemester = FHC_AjaxClient.getData(validSemesterData);
|
||||
|
||||
inputHtml = Oehbeitrag._getStudiensemesterDropdown(oehbeitrag_id, fieldname, studiensemester, currFieldvalue, 'inline-inputfield');
|
||||
}
|
||||
}
|
||||
else // otherwise display textfield
|
||||
{
|
||||
inputHtml = "<input type='text' class='form-control inline-inputfield' id='input_" + fieldname + "_" + oehbeitrag_id+"'" +
|
||||
" value='"+currFieldvalue+"' placeholder='0,00'>";
|
||||
}
|
||||
|
||||
inputHtml += " <i class='fa fa-check text-success' id='confirm_"+fieldname+"_"+oehbeitrag_id+"' ></i>";
|
||||
|
||||
initElement.parent('td').html(inputHtml);
|
||||
|
||||
// set the update event
|
||||
$("#confirm_"+fieldname+"_"+oehbeitrag_id).click(
|
||||
function()
|
||||
{
|
||||
Oehbeitrag.updateOehbeitrag(oehbeitrag_id, fieldname, $("#input_" + fieldname + "_" + oehbeitrag_id), inputtype);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
if (inputtype == 'semester')
|
||||
{
|
||||
Oehbeitrag.getValidStudiensemester(callback, oehbeitrag_id);
|
||||
}
|
||||
else
|
||||
callback(null);
|
||||
},
|
||||
_getStudiensemesterDropdown(oehbeitrag_id, name, studiensemester, selectedDateSemester, formatclass)
|
||||
{
|
||||
let selectedDateSemesterArr = null;
|
||||
if (selectedDateSemester)
|
||||
{
|
||||
selectedDateSemesterArr = selectedDateSemester.split('/');
|
||||
}
|
||||
|
||||
let rowHtml = "";
|
||||
let inlineClass = formatclass != null ? ' '+formatclass : '';
|
||||
|
||||
rowHtml += "<select name='"+name+"' id='input_"+name+"_"+oehbeitrag_id+"' class='form-control"+inlineClass+"'>";
|
||||
if (name === 'bis_studiensemester_kurzbz')
|
||||
rowHtml += "<option value='null'>unbeschränkt</option>";
|
||||
for (let idx in studiensemester)
|
||||
{
|
||||
let date = name === 'bis_studiensemester_kurzbz' ? studiensemester[idx].ende : studiensemester[idx].start;
|
||||
let studiensemester_kurzbz = studiensemester[idx].studiensemester_kurzbz;
|
||||
let dateSemester = Oehbeitrag._formatDateToGerman(date) + "/" + studiensemester_kurzbz;
|
||||
let selected = dateSemester === selectedDateSemester ? ' selected' : '';
|
||||
|
||||
rowHtml += "<option value='" + studiensemester_kurzbz + "' "+selected+">" + dateSemester +"</option>";
|
||||
}
|
||||
rowHtml += "</select>";
|
||||
|
||||
return rowHtml;
|
||||
},
|
||||
_compareGermanDates: function(datea, dateb)
|
||||
{
|
||||
return datea.split(".").reverse().join("") < dateb.split(".").reverse().join("");
|
||||
},
|
||||
_addTablesorter: function()
|
||||
{
|
||||
let headers = {headers: { 0: { sorter: false}, 1: { sorter: false}, 4: { sorter: false}}};
|
||||
Tablesort.addTablesorter("oehbeitraegeTbl", [[0,0],[1,0]], ["zebra"], 8, headers);
|
||||
},
|
||||
/**
|
||||
* Formats a numeric value as a float with two decimals
|
||||
* @param sum
|
||||
@@ -213,5 +391,9 @@ var Oehbeitrag = {
|
||||
dec = dec1 + dec2;
|
||||
}
|
||||
return dec;
|
||||
},
|
||||
_formatDateToGerman: function(date)
|
||||
{
|
||||
return date.substring(8, 10) + "." + date.substring(5, 7) + "." + date.substring(0, 4);
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user