From 36507959acd1be8c9c21b333ec0d591603d50ca4 Mon Sep 17 00:00:00 2001 From: ma0048 Date: Wed, 30 Jun 2021 13:09:56 +0200 Subject: [PATCH] dokumentenpruefung im infocenter in eigenes js ausgelagert, reloaden der anzeige beim nachreichen eines doks --- .../system/infocenter/InfoCenter.php | 42 +++++++-- .../system/infocenter/dokNachzureichend.php | 32 +++++++ .../views/system/infocenter/dokpruefung.php | 34 +------ .../system/infocenter/infocenterDetails.php | 7 +- .../infocenter/infocenterZgvDetails.php | 3 + public/js/infocenter/docUeberpruefung.js | 91 +++++++++++++++++-- public/js/infocenter/infocenterDetails.js | 49 ---------- system/phrasesupdate.php | 60 ++++++++++++ 8 files changed, 218 insertions(+), 100 deletions(-) create mode 100644 application/views/system/infocenter/dokNachzureichend.php diff --git a/application/controllers/system/infocenter/InfoCenter.php b/application/controllers/system/infocenter/InfoCenter.php index 7dceb954c..deb388add 100644 --- a/application/controllers/system/infocenter/InfoCenter.php +++ b/application/controllers/system/infocenter/InfoCenter.php @@ -127,6 +127,7 @@ class InfoCenter extends Auth_Controller 'updateNotiz' => 'infocenter:rw', 'reloadZgvPruefungen' => 'infocenter:r', 'reloadMessages' => 'infocenter:r', + 'reloadDoks' => 'infocenter:r', 'reloadNotizen' => 'infocenter:r', 'reloadLogs' => 'infocenter:r', 'outputAkteContent' => 'infocenter:r', @@ -1023,6 +1024,13 @@ class InfoCenter extends Auth_Controller $this->load->view('system/infocenter/logs.php', array('logs' => $logs)); } + public function reloadDoks($person_id) + { + $dokumente_nachgereicht = $this->AkteModel->getAktenWithDokInfo($person_id, null, true); + + $this->load->view('system/infocenter/dokNachzureichend.php', array('dokumente_nachgereicht' => $dokumente_nachgereicht->retval)); + } + /** * Outputs content of an Akte, sends appropriate headers (so the document can be downloaded) * @param $akte_id @@ -1225,13 +1233,31 @@ class InfoCenter extends Auth_Controller ]; if (!in_array($typ, array_keys($allowedTypes))) - $this->terminateWithJsonError('Bei dem Dokument ist keine Nachreichung möglich'); + $this->terminateWithJsonError($this->p->t('ui', 'fehlerBeimSpeichern')); if (empty($nachreichungAm)) - $this->terminateWithJsonError('Ein Datum muss im folgenden Format angegeben werden: tt.mm.jjjj'); + $this->terminateWithJsonError($this->p->t('infocenter', 'datumUngueltig')); if (!preg_match('/^\d{2}\.\d{2}\.(\d{2}|\d{4})$/ ', $nachreichungAm)) - $this->terminateWithJsonError('Bitte das Datum im folgenden Format angeben: tt.mm.jjjj'); + { + $this->terminateWithJsonError($this->p->t('infocenter', 'datumUngueltig')); + } + else + { + $ds = explode('.', $nachreichungAm); + if (! checkdate($ds[1], $ds[0], $ds[2])) + { + $this->terminateWithJsonError($this->p->t('infocenter', 'datumUngueltig')); + } + } + + $nachreichungAm = (date_format(date_create($nachreichungAm), 'Y-m-d')); + + $today = date('Y-m-d H:i:s'); + + if($nachreichungAm < $today) + $this->terminateWithJsonError($this->p->t('infocenter', 'nachreichDatumNichtVergangenheit')); + $akte = $this->AkteModel->loadWhere(array('person_id' => $person_id, 'dokument_kurzbz' => $allowedTypes[$typ])); @@ -1241,10 +1267,10 @@ class InfoCenter extends Auth_Controller $akte->akte_id, array( 'anmerkung' => $nachreichungAnmerkung, - 'updateamum' => date('Y-m-d H:i:s'), + 'updateamum' => $today, 'updatevon' => get_uid(), 'nachgereicht' => true, - 'nachgereicht_am' => date_format(date_create($nachreichungAm), 'Y-m-d') + 'nachgereicht_am' => $nachreichungAm ) ); } @@ -1257,13 +1283,13 @@ class InfoCenter extends Auth_Controller 'erstelltam' => NULL, 'gedruckt' => false, 'anmerkung' => $nachreichungAnmerkung, - 'updateamum' => date('Y-m-d H:i:s'), + 'updateamum' => $today, 'updatevon' => get_uid(), - 'insertamum' => date('Y-m-d H:i:s'), + 'insertamum' => $today, 'insertvon' => get_uid(), 'uid' => NULL, 'nachgereicht' => true, - 'nachgereicht_am' => date_format(date_create($nachreichungAm), 'Y-m-d') + 'nachgereicht_am' => $nachreichungAm ) ); } diff --git a/application/views/system/infocenter/dokNachzureichend.php b/application/views/system/infocenter/dokNachzureichend.php new file mode 100644 index 000000000..7a3b3aa03 --- /dev/null +++ b/application/views/system/infocenter/dokNachzureichend.php @@ -0,0 +1,32 @@ + 0): ?> +
+

p->t('infocenter','nachzureichendeDokumente')) ?>

+ + + + + + + + + + + + + + + + + + + +
p->t('global','typ')) ?>p->t('infocenter','nachzureichenAm')) ?>p->t('infocenter','ausstellungsnation')) ?>p->t('global','anmerkung')) ?>
dokument_bezeichnung ?> + nachgereicht_am) ? date_format(date_create($dokument->nachgereicht_am), 'd.m.Y') : ''; ?> + + langtext ?> + + anmerkung; ?> +
+ \ No newline at end of file diff --git a/application/views/system/infocenter/dokpruefung.php b/application/views/system/infocenter/dokpruefung.php index 214f450b0..95e383569 100644 --- a/application/views/system/infocenter/dokpruefung.php +++ b/application/views/system/infocenter/dokpruefung.php @@ -76,36 +76,4 @@ - - 0): ?> -
-

p->t('infocenter','nachzureichendeDokumente')) ?>

- - - - - - - - - - - - - - - - - - - -
p->t('global','typ')) ?>p->t('infocenter','nachzureichenAm')) ?>p->t('infocenter','ausstellungsnation')) ?>p->t('global','anmerkung')) ?>
dokument_bezeichnung ?> - nachgereicht_am) ? date_format(date_create($dokument->nachgereicht_am), 'd.m.Y') : ''; ?> - - langtext ?> - - anmerkung; ?> -
- + \ No newline at end of file diff --git a/application/views/system/infocenter/infocenterDetails.php b/application/views/system/infocenter/infocenterDetails.php index dbfff7d08..30acb8617 100644 --- a/application/views/system/infocenter/infocenterDetails.php +++ b/application/views/system/infocenter/infocenterDetails.php @@ -49,7 +49,9 @@ 'zgvInPruefung', 'zgvErfuellt', 'zgvNichtErfuellt', - 'zgvErfuelltPruefung' + 'zgvErfuelltPruefung', + 'datumUngueltig', + 'nachreichDatumNichtVergangenheit' ), 'ui' => array( 'gespeichert', @@ -127,6 +129,9 @@
load->view('system/infocenter/dokpruefung.php'); ?> +
+ load->view('system/infocenter/dokNachzureichend.php'); ?> +
diff --git a/application/views/system/infocenter/infocenterZgvDetails.php b/application/views/system/infocenter/infocenterZgvDetails.php index a1362d2fa..1f50aa147 100644 --- a/application/views/system/infocenter/infocenterZgvDetails.php +++ b/application/views/system/infocenter/infocenterZgvDetails.php @@ -116,6 +116,9 @@
load->view('system/infocenter/dokpruefung.php', array('formalReadonly' => true)); ?> +
+ load->view('system/infocenter/dokNachzureichend.php'); ?> +
diff --git a/public/js/infocenter/docUeberpruefung.js b/public/js/infocenter/docUeberpruefung.js index ba45b8986..acb0ca60f 100644 --- a/public/js/infocenter/docUeberpruefung.js +++ b/public/js/infocenter/docUeberpruefung.js @@ -1,8 +1,20 @@ +const ALLOWED_DOC_TYPES = ['VorlSpB2', 'ZgvBaPre', 'ZgvMaPre']; + $(document).ready(function () { + DocUeberpruefung._formatDocTable(); + DocUeberpruefung.checkNachreichungButtons(); + var personid = $("#hiddenpersonid").val(); - DocUeberpruefung.checkNachreichungButtons(); + //add click events to "formal geprüft" checkboxes + $(".prchbox").click(function () + { + var boxid = this.id; + var akteid = InfocenterDetails._getPrestudentIdFromElementId(boxid); + var checked = this.checked; + DocUeberpruefung.saveFormalGeprueft(personid, akteid, checked) + }); $('select.aktenid').change(function() { @@ -33,14 +45,15 @@ $(document).ready(function () if(nachreichungAm === '') { - FHC_DialogLib.alertError('Ein Datum muss im folgenden Format angegeben werden: tt.mm.jjjj'); + FHC_DialogLib.alertError(FHC_PhrasesLib.t('infocenter', 'datumUngueltig')); 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') + FHC_DialogLib.alertError(FHC_PhrasesLib.t('infocenter', 'datumUngueltig')) return false; } @@ -50,10 +63,48 @@ $(document).ready(function () var DocUeberpruefung = { + saveFormalGeprueft: function(personid, akteid, checked) + { + FHC_AjaxClient.ajaxCallPost( + CALLED_PATH + '/saveFormalGeprueft/' + encodeURIComponent(personid), + { + akte_id: akteid, + formal_geprueft: checked + }, + { + successCallback: function(data, textStatus, jqXHR) { + if (FHC_AjaxClient.hasData(data)) + { + var timestamp = data.retval[0]; + if (timestamp === "") + { + $("#formalgeprueftam_" + akteid).text(""); + } + else + { + var fgdatum = $.datepicker.parseDate("yy-mm-dd", timestamp); + var gerfgdatum = $.datepicker.formatDate("dd.mm.yy", fgdatum); + $("#formalgeprueftam_" + akteid).text(gerfgdatum); + } + //refresh doctable tablesorter, formal geprueft changed! + $("#doctable").trigger("update"); + InfocenterDetails._refreshLog(); + } + else + { + InfocenterDetails._genericSaveError(); + } + }, + errorCallback: InfocenterDetails._genericSaveError, + veilTimeout: 0 + } + ); + }, + saveDocTyp: function(personid, akteid, typ) { FHC_AjaxClient.ajaxCallPost( - CALLED_PATH + "/saveDocTyp/"+encodeURIComponent(personid), + CALLED_PATH + "/saveDocTyp/" + encodeURIComponent(personid), { "akte_id": akteid, "typ" : typ @@ -81,7 +132,7 @@ var DocUeberpruefung = { saveNachreichung: function (personid, nachreichungAm, nachreichungAnmerkung, typ) { FHC_AjaxClient.ajaxCallPost( - CALLED_PATH + "/saveNachreichung/"+encodeURIComponent(personid), + CALLED_PATH + "/saveNachreichung/" + encodeURIComponent(personid), { "nachreichungAm": nachreichungAm, "nachreichungAnmerkung" : nachreichungAnmerkung, @@ -91,8 +142,9 @@ var DocUeberpruefung = { successCallback: function(data, textStatus, jqXHR) { if (FHC_AjaxClient.isSuccess(data)) { - FHC_DialogLib.alertSuccess("Done!"); + DocUeberpruefung._refreshNachzureichendeDoks(); InfocenterDetails._refreshLog(); + FHC_DialogLib.alertSuccess("Done!"); } else { @@ -132,14 +184,35 @@ var DocUeberpruefung = { checkNachreichungButton: function(akteid) { - var allowedTyps = ['VorlSpB2', 'ZgvBaPre', 'ZgvMaPre']; var typ = $('#aktenid_' + akteid).val(); var infos = $('#nachreichungInfos_' + akteid); - if ($.inArray(typ, allowedTyps) === -1) + if ($.inArray(typ, ALLOWED_DOC_TYPES) === -1) + { infos.addClass('hidden'); + } else + { infos.removeClass('hidden'); - } + } + }, + + _refreshNachzureichendeDoks: function() + { + var personid = $("#hiddenpersonid").val(); + + $("#nachzureichendeDoks").load( + CONTROLLER_URL + '/reloadDoks/' + personid + '?fhc_controller_id=' + FHC_AjaxClient.getUrlParameter('fhc_controller_id'), + function () { + DocUeberpruefung._formatDocTable(); + } + ); + }, + + _formatDocTable: function() + { + Tablesort.addTablesorter("doctable", [[2, 1], [1, 0]], ["zebra"]); + Tablesort.addTablesorter("nachgdoctable", [[2, 0], [1, 1]], ["zebra"]); + }, } \ No newline at end of file diff --git a/public/js/infocenter/infocenterDetails.js b/public/js/infocenter/infocenterDetails.js index 1e393fc28..871516935 100644 --- a/public/js/infocenter/infocenterDetails.js +++ b/public/js/infocenter/infocenterDetails.js @@ -21,9 +21,6 @@ const ONHOLDNAME = 'onhold'; */ $(document).ready(function () { - //initialise table sorter - Tablesort.addTablesorter("doctable", [[2, 1], [1, 0]], ["zebra"]); - Tablesort.addTablesorter("nachgdoctable", [[2, 0], [1, 1]], ["zebra"]); InfocenterDetails._formatMessageTable(); InfocenterDetails._formatNotizTable(); @@ -37,15 +34,6 @@ $(document).ready(function () $("#sendmsgform").submit(); }); - //add click events to "formal geprüft" checkboxes - $(".prchbox").click(function () - { - var boxid = this.id; - var akteid = InfocenterDetails._getPrestudentIdFromElementId(boxid); - var checked = this.checked; - InfocenterDetails.saveFormalGeprueft(personid, akteid, checked) - }); - //add click events to zgv Prüfung section InfocenterDetails._addZgvPruefungEvents(personid); @@ -133,43 +121,6 @@ var InfocenterDetails = { // ----------------------------------------------------------------------------------------------------------------- // ajax calls - saveFormalGeprueft: function(personid, akteid, checked) - { - FHC_AjaxClient.ajaxCallPost( - CALLED_PATH + '/saveFormalGeprueft/' + encodeURIComponent(personid), - { - akte_id: akteid, - formal_geprueft: checked - }, - { - successCallback: function(data, textStatus, jqXHR) { - if (FHC_AjaxClient.hasData(data)) - { - var timestamp = data.retval[0]; - if (timestamp === "") - { - $("#formalgeprueftam_" + akteid).text(""); - } - else - { - var fgdatum = $.datepicker.parseDate("yy-mm-dd", timestamp); - var gerfgdatum = $.datepicker.formatDate("dd.mm.yy", fgdatum); - $("#formalgeprueftam_" + akteid).text(gerfgdatum); - } - //refresh doctable tablesorter, formal geprueft changed! - $("#doctable").trigger("update"); - InfocenterDetails._refreshLog(); - } - else - { - InfocenterDetails._genericSaveError(); - } - }, - errorCallback: InfocenterDetails._genericSaveError, - veilTimeout: 0 - } - ); - }, saveBewPriorisierung: function(data) { FHC_AjaxClient.ajaxCallPost( diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php index 9559cb0c2..587308519 100644 --- a/system/phrasesupdate.php +++ b/system/phrasesupdate.php @@ -3506,6 +3506,66 @@ $phrases = array( ) ) ), + array( + 'app' => 'infocenter', + 'category' => 'infocenter', + 'phrase' => 'datumUngueltig', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Das Datumsformat ist ungültig oder liegt außerhalb des gültigen Bereichs. Bitte geben Sie ein gültiges Datum im Format tt.mm.jjjj ein.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Date is invalid or out of range. Please enter a valid date in the format dd.mm.yyyy.', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'infocenter', + 'category' => 'infocenter', + 'phrase' => 'dokUngueltig', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Bei dem Dokument ist keine Nachreichung möglich.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Date is invalid or out of range. Please enter a valid date in the format dd.mm.yyyy.', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'infocenter', + 'category' => 'infocenter', + 'phrase' => 'nachreichDatumNichtVergangenheit', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Das Datum der Nachreichung darf nicht in der Vergangenheit liegen.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'The date of submission may not be in the past.', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), array( 'app' => 'core', 'category' => 'global',