Component Status: Tabelle

This commit is contained in:
ma0068
2024-02-13 10:45:00 +01:00
parent f4197f090b
commit 7ec24bfc7b
4 changed files with 236 additions and 10 deletions
@@ -157,9 +157,19 @@ class Prestudent extends FHC_Controller
{
$this->output->set_status_header(REST_Controller::HTTP_INTERNAL_SERVER_ERROR);
}
$this->outputJson(getData($result) ?: []);
}
public function getHistoryPrestudent($prestudent_id)
{
$this->load->model('crm/Prestudent_model', 'PrestudentModel');
$result = $this->PrestudentModel->getHistoryPrestudent($prestudent_id);
if (isError($result))
{
$this->output->set_status_header(REST_Controller::HTTP_INTERNAL_SERVER_ERROR);
}
$this->outputJson(getData($result) ?: []);
}
public function getBezeichnungZgv()
+45 -1
View File
@@ -701,7 +701,7 @@ class Prestudent_model extends DB_Model
}
/**
* Gets history of all prestudents, person given
* Gets history of all prestudents, person_id given
* @param int $person_id
* @return object
*/
@@ -726,4 +726,48 @@ class Prestudent_model extends DB_Model
return $this->execQuery($query, array($person_id));
}
/**
* Gets history of prestudent, prestudent_id given
* @param int $prestudent_id
* @return object
*/
public function getHistoryPrestudent($prestudent_id)
{
$query = "
SELECT
ps.status_kurzbz,
ps.studiensemester_kurzbz,
ps.ausbildungssemester,
CASE WHEN ps.status_kurzbz = 'Student' THEN CONCAT(lv.semester, lv.verband, lv.gruppe) END AS lehrverband,
ps.datum,
TO_CHAR(ps.datum::timestamp, 'DD.MM.YYYY') AS format_datum,
sp.bezeichnung,
ps.bestaetigtam,
TO_CHAR(ps.bestaetigtam::timestamp, 'DD.MM.YYYY') AS format_bestaetigtam,
ps.bewerbung_abgeschicktamum,
TO_CHAR(ps.bewerbung_abgeschicktamum::timestamp, 'DD.MM.YYYY HH24:MI:SS') AS format_bewerbung_abgeschicktamum,
stg.statusgrund_kurzbz,
ps.orgform_kurzbz,
ps.prestudent_id,
sp.studienplan_id,
ps.anmerkung,
ps.bestaetigtvon,
ps.insertamum,
ps.insertvon,
ps.updateamum,
ps.updatevon
FROM public.tbl_prestudentstatus ps
JOIN public.tbl_student st USING (prestudent_id)
JOIN public.tbl_studentlehrverband lv ON (st.student_uid = lv.student_uid)
JOIN public.tbl_studiengang sg ON (lv.studiengang_kz = sg.studiengang_kz)
LEFT JOIN lehre.tbl_studienplan sp USING (studienplan_id)
LEFT JOIN public.tbl_status_grund stg USING (statusgrund_id)
WHERE prestudent_id = ?
and lv.studiensemester_kurzbz = ps.studiensemester_kurzbz
ORDER BY datum DESC
";
return $this->execQuery($query, array($prestudent_id));
}
}
@@ -2,7 +2,7 @@ import {CoreRESTClient} from '../../../../RESTClient.js';
import FormForm from '../../../Form/Form.js';
import FormInput from '../../../Form/Input.js';
import TblHistory from "./Prestudent/History.js";
/*import TblStatus from "./Prestudent/Status.js";*/
import TblStatus from "./Prestudent/Status.js";
export default {
components: {
@@ -10,7 +10,7 @@ export default {
FormForm,
FormInput,
TblHistory,
/* TblStatus*/
TblStatus
},
inject: {
lists: {
@@ -541,18 +541,26 @@ export default {
</form-form>
<br>
<div class="row mb-3">
<div class="col-6">
<div class="col-12 pb-3">
<legend>Status</legend>
<TblStatus :prestudent_id="modelValue.prestudent_id"></TblStatus>
</div>
<hr>
<!-- <div class="row mb-3">
<div class="col-8">
<legend>Status</legend>
<!-- <TblStatus :prestudent_id="modelValue.prestudent_id"></TblStatus> -->
</div>
<TblStatus :prestudent_id="modelValue.prestudent_id"></TblStatus>
</div>-->
<div class="col-6">
<div class="col-8">
<legend>Gesamthistorie</legend>
<TblHistory :person_id="modelValue.person_id"></TblHistory>
</div>
</div>
<!-- </div>-->
@@ -0,0 +1,164 @@
import {CoreFilterCmpt} from "../../../../filter/Filter.js";
import {CoreRESTClient} from "../../../../../RESTClient";
export default{
components: {
CoreFilterCmpt
},
props: {
prestudent_id: String
},
data() {
return {
tabulatorOptions: {
ajaxURL: CoreRESTClient._generateRouterURI('components/stv/Prestudent/getHistoryPrestudent/' + this.prestudent_id),
//autoColumns: true,
columns:[
{title:"Kurzbz", field:"status_kurzbz"},
{title:"StSem", field:"studiensemester_kurzbz"},
{title:"Sem", field:"ausbildungssemester"},
{title:"Lehrverband", field:"lehrverband"},
{title:"Datum", field:"format_datum"},
{title:"Studienplan", field:"bezeichnung"},
{title:"BestätigtAm", field:"format_bestaetigtam"},
{title:"AbgeschicktAm", field:"format_bewerbung_abgeschicktamum"},
{title:"Statusgrund", field:"statusgrund_kurzbz"},
{title:"Organisationsform", field:"ps.orgform_kurzbz"},
{title:"PrestudentInId", field:"prestudent_id"},
{title:"StudienplanId", field:"studienplan_id"},
{title:"Anmerkung", field:"anmerkung"},
{title:"BestätigtVon", field:"bestaetigtvon"},
{title:"InsertAmUm", field:"insertamum"},
{title:"InsertVon", field:"insertvon"},
{title:"UpdateAmUm", field:"updateamum"},
{title:"UpdateVon", field:"updatevon"},
],
layout: 'fitDataFill',
layoutColumnsOnNewData: false,
height: 'auto',
selectable: false,
rowClickMenu:[
{
label:"Bearbeiten",
action:function(e, row){
console.log("bearbeiten: " + row.getData().status_kurzbz + ' ' + row.getData().prestudent_id);
}
},
{
separator:true,
},
{
disabled:true,
label:"Status bestätigen",
action:function(e, column){
column.move("col");
}
},
{
separator:true,
},
{
disabled:true,
label:"Neuen Status hinzufügen",
action:function(e, column){
column.move("col");
}
},
{
separator:true,
},
{
disabled:true,
label:"Entfernen",
action:function(e, column){
column.move("col");
}
},
{
separator:true,
},
{
disabled:true,
label:"Status vorrücken",
action:function(e, column){
column.move("col");
}
},
{
separator:true,
},
{
label:"<i class='fas fa-check-square'></i> Select Row",
action:function(e, row){
row.select();
}
},
],
/* rowContextMenu:[
{
label:"Bearbeiten",
action:function(e, column){
console.log("bearbeiten" + column);
column.hide();
}
},
{
separator:true,
},
{
disabled:true,
label:"Status bestätigen",
action:function(e, column){
column.move("col");
}
},
{
separator:true,
},
{
disabled:true,
label:"Neuen Status hinzufügen",
action:function(e, column){
column.move("col");
}
},
{
separator:true,
},
{
disabled:true,
label:"Entfernen",
action:function(e, column){
column.move("col");
}
},
{
separator:true,
},
{
disabled:true,
label:"Status vorrücken",
action:function(e, column){
column.move("col");
}
},
]*/
},
}
},
template: `
<div class="stv-list h-100 pt-3">
<core-filter-cmpt
ref="table"
:tabulator-options="tabulatorOptions"
:tabulator-events="tabulatorEvents"
table-only
:side-menu="false"
reload
new-btn-show
new-btn-label="Neu"
@click:new="actionNewAdress"
>
</core-filter-cmpt>
</div>`
}