Nachreichdatum kann nun auch ueber das Infocenter gesetzt werden

This commit is contained in:
ma0048
2021-06-29 14:43:19 +02:00
parent 8b3df55719
commit d4d84a93ba
7 changed files with 267 additions and 33 deletions
@@ -112,6 +112,7 @@ class InfoCenter extends Auth_Controller
'unlockPerson' => 'infocenter:rw',
'saveFormalGeprueft' => 'infocenter:rw',
'saveDocTyp' => 'infocenter:rw',
'saveNachreichung' => 'infocenter:rw',
'getPrestudentData' => 'infocenter:r',
'getLastPrestudentWithZgvJson' => 'infocenter:r',
'getZgvInfoForPrestudent' => 'infocenter:r',
@@ -1211,6 +1212,64 @@ class InfoCenter extends Auth_Controller
$this->outputJsonSuccess('success');
}
public function saveNachreichung($person_id)
{
$nachreichungAm = $this->input->post('nachreichungAm');
$nachreichungAnmerkung = empty($this->input->post('nachreichungAnmerkung')) ? NULL : $this->input->post('nachreichungAnmerkung');
$typ = $this->input->post('typ');
$allowedTypes = [
'VorlSpB2' => 'SprachB2',
'ZgvBaPre' => 'zgv_bakk',
'ZgvMaPre' => 'zgv_mast'
];
if (!in_array($typ, array_keys($allowedTypes)))
$this->terminateWithJsonError('Bei dem Dokument ist keine Nachreichung möglich');
if (empty($nachreichungAm))
$this->terminateWithJsonError('Ein Datum muss im folgenden Format angegeben werden: tt.mm.jjjj');
if (!preg_match('/^\d{2}\.\d{2}\.(\d{2}|\d{4})$/ ', $nachreichungAm))
$this->terminateWithJsonError('Bitte das Datum im folgenden Format angeben: tt.mm.jjjj');
$akte = $this->AkteModel->loadWhere(array('person_id' => $person_id, 'dokument_kurzbz' => $allowedTypes[$typ]));
if (hasData($akte)) {
$akte = getData($akte)[0];
$this->AkteModel->update(
$akte->akte_id,
array(
'anmerkung' => $nachreichungAnmerkung,
'updateamum' => date('Y-m-d H:i:s'),
'updatevon' => get_uid(),
'nachgereicht' => true,
'nachgereicht_am' => date_format(date_create($nachreichungAm), 'Y-m-d')
)
);
}
else
{
$this->AkteModel->insert(
array(
'dokument_kurzbz' => $allowedTypes[$typ],
'person_id' => $person_id,
'erstelltam' => NULL,
'gedruckt' => false,
'anmerkung' => $nachreichungAnmerkung,
'updateamum' => date('Y-m-d H:i:s'),
'updatevon' => get_uid(),
'insertamum' => date('Y-m-d H:i:s'),
'insertvon' => get_uid(),
'uid' => NULL,
'nachgereicht' => true,
'nachgereicht_am' => date_format(date_create($nachreichungAm), 'Y-m-d')
)
);
}
$this->outputJsonSuccess("Done!");
}
// -----------------------------------------------------------------------------------------------------------------
// Private methods
@@ -28,6 +28,36 @@
echo "<option " . ($dokumenttyp->bezeichnung === $dokument->dokument_bezeichnung ? 'selected' : '') . " value = " . $dokumenttyp->dokument_kurzbz . ">" . $dokumenttyp->bezeichnung . "</option>"
?>
</select>
<div class="row">
<button class="nachreichungInfos hidden" id="nachreichungInfos_<?php echo $dokument->akte_id?>"><?php echo ucfirst($this->p->t('infocenter','dokumentWirdNachgereicht')) ?></button>
</div>
<div class="nachreichungInputs hidden" id="nachreichungInputs_<?php echo $dokument->akte_id?>">
<div class="row">
<div class="col-sm-8">
<div class="input-group">
<input type="text" class="form-control nachreichungAnmerkung" id="nachreichungAnmerkung_<?php echo $dokument->akte_id?>" maxlength="128" placeholder="Institution des Ausstellers (zB: TGM Wien)">
<span class="input-group-addon" style="color: grey;">128</span>
</div>
</div>
<div class="col-sm-4">
<input type="text" class="form-control nachreichungAm" id="nachreichungAm_<?php echo $dokument->akte_id?>" autofocus="autofocus" placeholder="tt.mm.jjjj">
</div>
</div>
<div class="row">
<div class="col-sm-12">
<div class="btn-group pull-right">
<input type="button" value="OK" class="btn btn-primary nachreichungSpeichern" id="nachreichungSpeichern_<?php echo $dokument->akte_id?>">
<input type="button" value="Abbrechen" class="btn btn-default nachreichungAbbrechen" id="nachreichungAbbrechen_<?php echo $dokument->akte_id?>">
</div>
</div>
</div>
</div>
</td>
<td><?php echo date_format(date_create($dokument->erstelltam), 'd.m.Y') ?></td>
<td><?php echo $dokument->langtext ?></td>
@@ -26,7 +26,8 @@
'public/js/tablesort/tablesort.js',
'public/js/infocenter/messageList.js',
'public/js/infocenter/infocenterDetails.js',
'public/js/infocenter/zgvUeberpruefung.js'
'public/js/infocenter/zgvUeberpruefung.js',
'public/js/infocenter/docUeberpruefung.js'
),
'phrases' => array(
'infocenter' => array(
@@ -76,6 +76,17 @@
font-weight: normal;
}
.nachreichungInfos
{
float: right;
margin: 5px 15px 0 0;
}
.nachreichungInputs .row
{
margin-top: 5px;
}
@media screen and (max-width: 1510px)
{
#postponing{
+145
View File
@@ -0,0 +1,145 @@
$(document).ready(function ()
{
var personid = $("#hiddenpersonid").val();
DocUeberpruefung.checkNachreichungButtons();
$('select.aktenid').change(function()
{
var akteid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
var typ = $(this).val();
DocUeberpruefung.saveDocTyp(personid, akteid, typ);
});
$('.nachreichungInfos').click(function()
{
var akteid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
DocUeberpruefung.checkNachreichungInputs(akteid);
});
$('.nachreichungAbbrechen').click(function()
{
var akteid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
DocUeberpruefung.checkNachreichungInputs(akteid);
});
$('.nachreichungSpeichern').click(function()
{
var akteid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
var typ = $('#aktenid_' + akteid).val();
var nachreichungAm = $('#nachreichungAm_' + akteid).val();
var nachreichungAnmerkung = $('#nachreichungAnmerkung_' + akteid).val();
if(nachreichungAm === '')
{
FHC_DialogLib.alertError('Ein Datum muss im folgenden Format angegeben werden: tt.mm.jjjj');
return false;
}
var regEx = /^\d{2}\.\d{2}\.(\d{2}|\d{4})$/;
if(nachreichungAm.match(regEx) === null)
{
FHC_DialogLib.alertError('Bitte das Datum im folgenden Format angeben: tt.mm.jjjj')
return false;
}
DocUeberpruefung.saveNachreichung(personid, nachreichungAm, nachreichungAnmerkung, typ);
})
});
var DocUeberpruefung = {
saveDocTyp: function(personid, akteid, typ)
{
FHC_AjaxClient.ajaxCallPost(
CALLED_PATH + "/saveDocTyp/"+encodeURIComponent(personid),
{
"akte_id": akteid,
"typ" : typ
},
{
successCallback: function(data, textStatus, jqXHR) {
if (FHC_AjaxClient.isSuccess(data))
{
FHC_DialogLib.alertSuccess("Done!");
InfocenterDetails._refreshLog();
DocUeberpruefung.checkNachreichungButton(akteid);
}
else
{
FHC_DialogLib.alertError(data);
}
},
errorCallback: function() {
FHC_DialogLib.alertWarning("Fehler beim Speichern!");
}
}
);
},
saveNachreichung: function (personid, nachreichungAm, nachreichungAnmerkung, typ)
{
FHC_AjaxClient.ajaxCallPost(
CALLED_PATH + "/saveNachreichung/"+encodeURIComponent(personid),
{
"nachreichungAm": nachreichungAm,
"nachreichungAnmerkung" : nachreichungAnmerkung,
"typ" : typ
},
{
successCallback: function(data, textStatus, jqXHR) {
if (FHC_AjaxClient.isSuccess(data))
{
FHC_DialogLib.alertSuccess("Done!");
InfocenterDetails._refreshLog();
}
else
{
FHC_DialogLib.alertError(data);
}
},
errorCallback: function() {
FHC_DialogLib.alertWarning("Fehler beim Speichern!");
}
}
);
},
checkNachreichungInputs: function(akteid)
{
var inputs = $('#nachreichungInputs_' + akteid);
if (inputs.hasClass('hidden'))
{
inputs.removeClass('hidden');
}
else
{
inputs.addClass('hidden');
$('#nachreichungAnmerkung_' + akteid).val("");
$('#nachreichungAm_' + akteid).val("");
}
},
checkNachreichungButtons: function()
{
$('select.aktenid').each(function () {
var akteid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
DocUeberpruefung.checkNachreichungButton(akteid);
});
},
checkNachreichungButton: function(akteid)
{
var allowedTyps = ['VorlSpB2', 'ZgvBaPre', 'ZgvMaPre'];
var typ = $('#aktenid_' + akteid).val();
var infos = $('#nachreichungInfos_' + akteid);
if ($.inArray(typ, allowedTyps) === -1)
infos.addClass('hidden');
else
infos.removeClass('hidden');
}
}
-32
View File
@@ -119,11 +119,6 @@ $(document).ready(function ()
}
);
$('.aktenid').change(function(){
var akteid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
var typ = $(this).val();
InfocenterDetails.saveDocTyp(personid, akteid, typ);
});
});
var InfocenterDetails = {
@@ -751,33 +746,6 @@ var InfocenterDetails = {
);
},
saveDocTyp: function(personid, akteid, typ)
{
FHC_AjaxClient.ajaxCallPost(
CALLED_PATH + "/saveDocTyp/"+encodeURIComponent(personid),
{
"akte_id": akteid,
"typ" : typ
},
{
successCallback: function(data, textStatus, jqXHR) {
if (FHC_AjaxClient.isSuccess(data))
{
FHC_DialogLib.alertSuccess("Done!");
InfocenterDetails._refreshLog();
}
else
{
FHC_DialogLib.alertError("Fehler beim Speichern des Dokumententypes!");
}
},
errorCallback: function() {
FHC_DialogLib.alertWarning("Document type could not be updated");
}
}
);
},
// -----------------------------------------------------------------------------------------------------------------
// (private) methods executed after ajax (refreshers)
+20
View File
@@ -3486,6 +3486,26 @@ $phrases = array(
)
)
),
array(
'app' => 'infocenter',
'category' => 'infocenter',
'phrase' => 'dokumentWirdNachgereicht',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Dokument wird nachgereicht',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Document will be submitted later',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'global',