mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 12:19:28 +00:00
Merge branch 'master' into feature-70376/Lohnguide
This commit is contained in:
@@ -78,52 +78,32 @@ class Dokumente extends FHCAPI_Controller
|
|||||||
$this->terminateWithError($this->p->t('ui', 'errorMissingValue', ['value' => 'Studiengang_kz']), self::ERROR_TYPE_GENERAL);
|
$this->terminateWithError($this->p->t('ui', 'errorMissingValue', ['value' => 'Studiengang_kz']), self::ERROR_TYPE_GENERAL);
|
||||||
|
|
||||||
$resultPreDoc = $this->_getPrestudentDokumente($prestudent_id);
|
$resultPreDoc = $this->_getPrestudentDokumente($prestudent_id);
|
||||||
|
|
||||||
$arrayAccepted = [];
|
|
||||||
$person_id = $this->_getPersonId($prestudent_id);
|
$person_id = $this->_getPersonId($prestudent_id);
|
||||||
|
|
||||||
$docNames = array_map(function ($item) {
|
$mergedArray = [];
|
||||||
return $item->dokument_kurzbz;
|
|
||||||
}, $resultPreDoc);
|
|
||||||
|
|
||||||
foreach($docNames as $doc)
|
foreach ($resultPreDoc as $pre)
|
||||||
{
|
{
|
||||||
$result = $this->AkteModel->getAktenFAS($person_id, $doc, $studiengang_kz, $prestudent_id, true);
|
$result = $this->AkteModel->getAktenFAS($person_id, $pre->dokument_kurzbz, $studiengang_kz, $prestudent_id, true);
|
||||||
|
|
||||||
if (isError($result))
|
if (isError($result))
|
||||||
{
|
|
||||||
return $this->terminateWithError($result, self::ERROR_TYPE_GENERAL);
|
return $this->terminateWithError($result, self::ERROR_TYPE_GENERAL);
|
||||||
}
|
|
||||||
if (hasData($result))
|
if (hasData($result))
|
||||||
{
|
{
|
||||||
$data = getData($result);
|
foreach (getData($result) as $doc)
|
||||||
foreach ($data as $value)
|
|
||||||
{
|
{
|
||||||
array_push($arrayAccepted, $value);
|
$merged = clone $doc;
|
||||||
|
$merged->docdatum = $pre->docdatum;
|
||||||
|
$merged->insertvonma = $pre->insertvonma;
|
||||||
|
$merged->bezeichnung = $pre->bezeichnung;
|
||||||
|
$mergedArray[] = $merged;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
else
|
||||||
|
{
|
||||||
//Mapping with document_kurzbz
|
$mergedArray[] = $pre;
|
||||||
$preDocMap = [];
|
|
||||||
foreach ($resultPreDoc as $pre) {
|
|
||||||
$preDocMap[$pre->dokument_kurzbz] = $pre;
|
|
||||||
}
|
|
||||||
|
|
||||||
$mergedArray = [];
|
|
||||||
foreach ($arrayAccepted as $doc) {
|
|
||||||
$merged = clone $doc;
|
|
||||||
|
|
||||||
if (isset($preDocMap[$doc->dokument_kurzbz])) {
|
|
||||||
$merged->docdatum = $preDocMap[$doc->dokument_kurzbz]->docdatum;
|
|
||||||
$merged->insertvonma = $preDocMap[$doc->dokument_kurzbz]->insertvonma;
|
|
||||||
$merged->bezeichnung = $preDocMap[$doc->dokument_kurzbz]->bezeichnung;
|
|
||||||
} else {
|
|
||||||
$merged->akzeptiertdatum = null;
|
|
||||||
$merged->akzeptiertvon = null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$mergedArray[] = $merged;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->terminateWithSuccess($mergedArray);
|
$this->terminateWithSuccess($mergedArray);
|
||||||
|
|||||||
@@ -48,7 +48,8 @@ class Konto extends FHCAPI_Controller
|
|||||||
|
|
||||||
// Load language phrases
|
// Load language phrases
|
||||||
$this->loadPhrases([
|
$this->loadPhrases([
|
||||||
'konto'
|
'konto',
|
||||||
|
'lehre'
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -112,7 +113,7 @@ class Konto extends FHCAPI_Controller
|
|||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function getBuchungstypen()
|
public function getBuchungstypen($studiensemester_kurzbz = null)
|
||||||
{
|
{
|
||||||
$this->load->model('crm/Buchungstyp_model', 'BuchungstypModel');
|
$this->load->model('crm/Buchungstyp_model', 'BuchungstypModel');
|
||||||
|
|
||||||
@@ -122,6 +123,7 @@ class Konto extends FHCAPI_Controller
|
|||||||
|
|
||||||
$data = $this->getDataOrTerminateWithError($result);
|
$data = $this->getDataOrTerminateWithError($result);
|
||||||
|
|
||||||
|
$this->_getOEHBeitrag($data, $studiensemester_kurzbz);
|
||||||
$this->terminateWithSuccess($data);
|
$this->terminateWithSuccess($data);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -494,4 +496,43 @@ class Konto extends FHCAPI_Controller
|
|||||||
|
|
||||||
$this->terminateWithSuccess();
|
$this->terminateWithSuccess();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function _getOEHBeitrag(&$data, $studiensemester_kurzbz = null)
|
||||||
|
{
|
||||||
|
if (is_null($studiensemester_kurzbz))
|
||||||
|
{
|
||||||
|
$this->load->library('VariableLib', ['uid' => getAuthUID()]);
|
||||||
|
$studiensemester_akt = $this->variablelib->getVar('semester_aktuell');
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel');
|
||||||
|
if ($this->StudiensemesterModel->isValidStudiensemester($studiensemester_kurzbz))
|
||||||
|
$studiensemester_akt = $studiensemester_kurzbz;
|
||||||
|
else
|
||||||
|
$this->terminateWithError($this->p->t('lehre', 'error_noStudiensemester'));
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->load->model('codex/Oehbeitrag_model', 'OehbeitragModel');
|
||||||
|
$oehBeitrag = $this->OehbeitragModel->getByStudiensemester($studiensemester_akt);
|
||||||
|
|
||||||
|
$oehStandardbetrag = null;
|
||||||
|
if (hasData($oehBeitrag))
|
||||||
|
{
|
||||||
|
$oeh = getData($oehBeitrag)[0];
|
||||||
|
$summe = ($oeh->studierendenbeitrag + $oeh->versicherung) * -1;
|
||||||
|
$oehStandardbetrag = number_format((float)$summe, 2, '.', '');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($oehStandardbetrag !== null)
|
||||||
|
{
|
||||||
|
$data = array_map(function ($buchungstyp) use ($oehStandardbetrag) {
|
||||||
|
if (isset($buchungstyp->buchungstyp_kurzbz) && (strtolower($buchungstyp->buchungstyp_kurzbz) === 'oeh'))
|
||||||
|
{
|
||||||
|
$buchungstyp->standardbetrag = $oehStandardbetrag;
|
||||||
|
}
|
||||||
|
return $buchungstyp;
|
||||||
|
}, $data);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -417,6 +417,7 @@ abstract class Notiz_Controller extends FHCAPI_Controller
|
|||||||
$notiz_id = $this->input->post('notiz_id');
|
$notiz_id = $this->input->post('notiz_id');
|
||||||
|
|
||||||
$this->NotizModel->addSelect('campus.tbl_dms_version.*');
|
$this->NotizModel->addSelect('campus.tbl_dms_version.*');
|
||||||
|
$this->NotizModel->addSelect($this->NotizModel->escape(base_url('content/notizdokdownload.php?id=')) . ' || public.tbl_notiz_dokument.dms_id AS preview');
|
||||||
|
|
||||||
$this->NotizModel->addJoin('public.tbl_notiz_dokument', 'ON (public.tbl_notiz_dokument.notiz_id = public.tbl_notiz.notiz_id)');
|
$this->NotizModel->addJoin('public.tbl_notiz_dokument', 'ON (public.tbl_notiz_dokument.notiz_id = public.tbl_notiz.notiz_id)');
|
||||||
$this->NotizModel->addJoin('campus.tbl_dms_version', 'ON (public.tbl_notiz_dokument.dms_id = campus.tbl_dms_version.dms_id)');
|
$this->NotizModel->addJoin('campus.tbl_dms_version', 'ON (public.tbl_notiz_dokument.dms_id = campus.tbl_dms_version.dms_id)');
|
||||||
|
|||||||
@@ -3555,6 +3555,14 @@ function StudentZeugnisDokumentArchivieren()
|
|||||||
case 'microcredential_2':
|
case 'microcredential_2':
|
||||||
case 'microcredential_3':
|
case 'microcredential_3':
|
||||||
case 'microcredential_4':
|
case 'microcredential_4':
|
||||||
|
case 'microdegree_1':
|
||||||
|
case 'microdegree_2':
|
||||||
|
case 'microdegree_3':
|
||||||
|
case 'microdegree_4':
|
||||||
|
case 'microdegreeabschluss_1':
|
||||||
|
case 'microdegreeabschluss_2':
|
||||||
|
case 'microdegreeabschluss_3':
|
||||||
|
case 'microdegreeabschluss_4':
|
||||||
xml = 'microcredential.xml.php';
|
xml = 'microcredential.xml.php';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|||||||
+49
-1
@@ -25,6 +25,7 @@
|
|||||||
*/
|
*/
|
||||||
require_once(dirname(__FILE__).'/basis_db.class.php');
|
require_once(dirname(__FILE__).'/basis_db.class.php');
|
||||||
require_once(dirname(__FILE__).'/'.EXT_FKT_PATH.'/generateZahlungsreferenz.inc.php');
|
require_once(dirname(__FILE__).'/'.EXT_FKT_PATH.'/generateZahlungsreferenz.inc.php');
|
||||||
|
require_once(dirname(__FILE__).'/variable.class.php');
|
||||||
|
|
||||||
class konto extends basis_db
|
class konto extends basis_db
|
||||||
{
|
{
|
||||||
@@ -432,6 +433,8 @@ class konto extends basis_db
|
|||||||
|
|
||||||
$qry.=" ORDER BY beschreibung";
|
$qry.=" ORDER BY beschreibung";
|
||||||
|
|
||||||
|
$oehBeitrag = $this->_getOEHBeitrag();
|
||||||
|
|
||||||
if($this->db_query($qry))
|
if($this->db_query($qry))
|
||||||
{
|
{
|
||||||
while($row = $this->db_fetch_object())
|
while($row = $this->db_fetch_object())
|
||||||
@@ -440,7 +443,15 @@ class konto extends basis_db
|
|||||||
|
|
||||||
$typ->buchungstyp_kurzbz = $row->buchungstyp_kurzbz;
|
$typ->buchungstyp_kurzbz = $row->buchungstyp_kurzbz;
|
||||||
$typ->beschreibung = $row->beschreibung;
|
$typ->beschreibung = $row->beschreibung;
|
||||||
$typ->standardbetrag = $row->standardbetrag;
|
if (strtolower($typ->buchungstyp_kurzbz) === 'oeh' && $oehBeitrag)
|
||||||
|
{
|
||||||
|
$typ->standardbetrag = $oehBeitrag;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$typ->standardbetrag = $row->standardbetrag;
|
||||||
|
}
|
||||||
|
|
||||||
$typ->standardtext = $row->standardtext;
|
$typ->standardtext = $row->standardtext;
|
||||||
$typ->credit_points = $row->credit_points;
|
$typ->credit_points = $row->credit_points;
|
||||||
$typ->aktiv = $this->db_parse_bool($row->aktiv);
|
$typ->aktiv = $this->db_parse_bool($row->aktiv);
|
||||||
@@ -990,6 +1001,43 @@ class konto extends basis_db
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function _getOEHBeitrag()
|
||||||
|
{
|
||||||
|
if(!is_user_logged_in())
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$variablen_obj = new variable();
|
||||||
|
$variablen_obj->loadVariables(get_uid());
|
||||||
|
|
||||||
|
$qry = "WITH semstart AS (
|
||||||
|
SELECT start FROM public.tbl_studiensemester
|
||||||
|
WHERE studiensemester_kurzbz = '". $this->db_escape($variablen_obj->variable->semester_aktuell) . "'
|
||||||
|
)
|
||||||
|
SELECT * FROM bis.tbl_oehbeitrag oehb
|
||||||
|
JOIN public.tbl_studiensemester semvon ON oehb.von_studiensemester_kurzbz = semvon.studiensemester_kurzbz
|
||||||
|
LEFT JOIN public.tbl_studiensemester sembis ON oehb.bis_studiensemester_kurzbz = sembis.studiensemester_kurzbz
|
||||||
|
JOIN semstart ON semstart.start::date >= semvon.start::date AND (sembis.studiensemester_kurzbz IS NULL OR semstart.start::date <= sembis.start::date)
|
||||||
|
ORDER BY semvon.start
|
||||||
|
LIMIT 1";
|
||||||
|
|
||||||
|
if ($this->db_query($qry))
|
||||||
|
{
|
||||||
|
if($row = $this->db_fetch_object())
|
||||||
|
{
|
||||||
|
$summe = ($row->studierendenbeitrag + $row->versicherung) * -1;
|
||||||
|
return number_format((float)$summe, 2, '.', '');
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$this->errormsg = 'Fehler bei der Abfrage aufgetreten';
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|||||||
@@ -197,10 +197,6 @@ html.fs_huge {
|
|||||||
margin-bottom: -1px;
|
margin-bottom: -1px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tiny-90 div.tox.tox-tinymce {
|
|
||||||
height: 90% !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* slim begin */
|
/* slim begin */
|
||||||
.stv .form-label {
|
.stv .form-label {
|
||||||
margin-bottom: .15rem;
|
margin-bottom: .15rem;
|
||||||
|
|||||||
@@ -38,6 +38,10 @@ export default {
|
|||||||
};
|
};
|
||||||
},
|
},
|
||||||
insert(params) {
|
insert(params) {
|
||||||
|
if(params.betrag)
|
||||||
|
{
|
||||||
|
params.betrag = params.betrag.replace(',', '.');
|
||||||
|
}
|
||||||
return {
|
return {
|
||||||
method: 'post',
|
method: 'post',
|
||||||
url: 'api/frontend/v1/stv/konto/insert',
|
url: 'api/frontend/v1/stv/konto/insert',
|
||||||
@@ -52,6 +56,10 @@ export default {
|
|||||||
};
|
};
|
||||||
},
|
},
|
||||||
edit(params) {
|
edit(params) {
|
||||||
|
if(params.betrag)
|
||||||
|
{
|
||||||
|
params.betrag = params.betrag.replace(',', '.');
|
||||||
|
}
|
||||||
return {
|
return {
|
||||||
method: 'post',
|
method: 'post',
|
||||||
url: 'api/frontend/v1/stv/konto/update',
|
url: 'api/frontend/v1/stv/konto/update',
|
||||||
@@ -65,10 +73,14 @@ export default {
|
|||||||
params: { buchungsnr }
|
params: { buchungsnr }
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
getBuchungstypen() {
|
getBuchungstypen(studiensemester_kurzbz) {
|
||||||
|
let url = 'api/frontend/v1/stv/konto/getBuchungstypen'
|
||||||
|
if (!!studiensemester_kurzbz)
|
||||||
|
url = url + '/' + encodeURIComponent(studiensemester_kurzbz);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
method: 'get',
|
method: 'get',
|
||||||
url: 'api/frontend/v1/stv/konto/getBuchungstypen'
|
url: url
|
||||||
};
|
};
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
@@ -63,7 +63,7 @@ export default {
|
|||||||
const vm = this;
|
const vm = this;
|
||||||
tinymce.init({
|
tinymce.init({
|
||||||
target: this.$refs.editor.$refs.input, //Important: not selector: to enable multiple import of component
|
target: this.$refs.editor.$refs.input, //Important: not selector: to enable multiple import of component
|
||||||
//height: 800,
|
min_height: 300,
|
||||||
//plugins: ['lists'],
|
//plugins: ['lists'],
|
||||||
toolbar: 'styleselect | bold italic underline | alignleft aligncenter alignright alignjustify | link',
|
toolbar: 'styleselect | bold italic underline | alignleft aligncenter alignright alignjustify | link',
|
||||||
plugins: 'link',
|
plugins: 'link',
|
||||||
@@ -313,7 +313,7 @@ export default {
|
|||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-8">
|
<div class="col-sm-8">
|
||||||
<form-form class="row g-3 mt-2 h-100" ref="formMessage">
|
<form-form class="row g-3 mt-2 align-content-start" ref="formMessage">
|
||||||
|
|
||||||
<div class="row mb-3">
|
<div class="row mb-3">
|
||||||
|
|
||||||
@@ -338,7 +338,7 @@ export default {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!--Tiny MCE-->
|
<!--Tiny MCE-->
|
||||||
<div class="row mb-3 h-100 tiny-90">
|
<div class="row mb-3 tiny-90">
|
||||||
<form-input
|
<form-input
|
||||||
ref="editor"
|
ref="editor"
|
||||||
:label="$p.t('global','nachricht') + ' *'"
|
:label="$p.t('global','nachricht') + ' *'"
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ export default {
|
|||||||
const vm = this;
|
const vm = this;
|
||||||
tinymce.init({
|
tinymce.init({
|
||||||
target: this.$refs.editor.$refs.input, //Important: not selector: to enable multiple import of component
|
target: this.$refs.editor.$refs.input, //Important: not selector: to enable multiple import of component
|
||||||
//height: 800,
|
min_height: 300,
|
||||||
//plugins: ['lists'],
|
//plugins: ['lists'],
|
||||||
toolbar: 'styleselect | bold italic underline | alignleft aligncenter alignright alignjustify | link',
|
toolbar: 'styleselect | bold italic underline | alignleft aligncenter alignright alignjustify | link',
|
||||||
plugins: 'link',
|
plugins: 'link',
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ export default {
|
|||||||
personId: null,
|
personId: null,
|
||||||
layoutColumnsOnNewData: false,
|
layoutColumnsOnNewData: false,
|
||||||
height: '400',
|
height: '400',
|
||||||
|
arePhrasesLoaded: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@@ -195,7 +196,7 @@ export default {
|
|||||||
],
|
],
|
||||||
formatter: (cell, formatterParams) => {
|
formatter: (cell, formatterParams) => {
|
||||||
const key = formatterParams[cell.getValue()];
|
const key = formatterParams[cell.getValue()];
|
||||||
return this.$p.t('messages', key);
|
return this.$p?.t?.('messages', key) || key;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -305,8 +306,6 @@ export default {
|
|||||||
{
|
{
|
||||||
event: 'tableBuilt',
|
event: 'tableBuilt',
|
||||||
handler: async() => {
|
handler: async() => {
|
||||||
await this.$p.loadCategory(['global', 'person', 'stv', 'messages', 'ui', 'notiz']);
|
|
||||||
|
|
||||||
const setHeader = (field, text) => {
|
const setHeader = (field, text) => {
|
||||||
const col = this.$refs.table.tabulator.getColumn(field);
|
const col = this.$refs.table.tabulator.getColumn(field);
|
||||||
if (!col) return;
|
if (!col) return;
|
||||||
@@ -357,6 +356,12 @@ export default {
|
|||||||
});*/
|
});*/
|
||||||
},
|
},
|
||||||
created(){
|
created(){
|
||||||
|
this.$p
|
||||||
|
.loadCategory(['global', 'person', 'stv', 'messages', 'ui', 'notiz'])
|
||||||
|
.then(() => {
|
||||||
|
this.arePhrasesLoaded = true;
|
||||||
|
});
|
||||||
|
|
||||||
if(this.typeId != 'person_id' && Array.isArray(this.id) && this.id.length === 1) {
|
if(this.typeId != 'person_id' && Array.isArray(this.id) && this.id.length === 1) {
|
||||||
const params = {
|
const params = {
|
||||||
id: this.id,
|
id: this.id,
|
||||||
@@ -381,6 +386,7 @@ export default {
|
|||||||
<!--table-->
|
<!--table-->
|
||||||
<div class="col-sm-6 pt-1">
|
<div class="col-sm-6 pt-1">
|
||||||
<core-filter-cmpt
|
<core-filter-cmpt
|
||||||
|
v-if="arePhrasesLoaded"
|
||||||
ref="table"
|
ref="table"
|
||||||
:tabulator-options="tabulatorOptions"
|
:tabulator-options="tabulatorOptions"
|
||||||
:tabulator-events="tabulatorEvents"
|
:tabulator-events="tabulatorEvents"
|
||||||
@@ -413,6 +419,7 @@ export default {
|
|||||||
<div class="col-sm-12 pt-6">
|
<div class="col-sm-12 pt-6">
|
||||||
<core-filter-cmpt
|
<core-filter-cmpt
|
||||||
ref="table"
|
ref="table"
|
||||||
|
v-if="arePhrasesLoaded"
|
||||||
:tabulator-options="tabulatorOptions"
|
:tabulator-options="tabulatorOptions"
|
||||||
:tabulator-events="tabulatorEvents"
|
:tabulator-events="tabulatorEvents"
|
||||||
table-only
|
table-only
|
||||||
|
|||||||
@@ -84,6 +84,14 @@ export default {
|
|||||||
'microcredential_2',
|
'microcredential_2',
|
||||||
'microcredential_3',
|
'microcredential_3',
|
||||||
'microcredential_4',
|
'microcredential_4',
|
||||||
|
'microdegree_1',
|
||||||
|
'microdegree_2',
|
||||||
|
'microdegree_3',
|
||||||
|
'microdegree_4',
|
||||||
|
'microdegreeabschluss_1',
|
||||||
|
'microdegreeabschluss_2',
|
||||||
|
'microdegreeabschluss_3',
|
||||||
|
'microdegreeabschluss_4',
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
documentDropdownObject: {}
|
documentDropdownObject: {}
|
||||||
|
|||||||
@@ -83,6 +83,8 @@ export default {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
open() {
|
open() {
|
||||||
|
|
||||||
|
this.getBuchungstypen(this.currentSemester);
|
||||||
this.data = {
|
this.data = {
|
||||||
buchungstyp_kurzbz: '',
|
buchungstyp_kurzbz: '',
|
||||||
betrag: '-0.00',
|
betrag: '-0.00',
|
||||||
@@ -105,7 +107,7 @@ export default {
|
|||||||
const text = typ.standardtext || '';
|
const text = typ.standardtext || '';
|
||||||
const creditpoints = typ.credit_points || '';
|
const creditpoints = typ.credit_points || '';
|
||||||
|
|
||||||
if (!this.data.betrag || this.data.betrag == '-0.00')
|
if (!this.data.betrag || this.data.betrag == '-0.00' || this.data.betrag !== amount)
|
||||||
this.data.betrag = amount;
|
this.data.betrag = amount;
|
||||||
|
|
||||||
if (!this.data.buchungstext)
|
if (!this.data.buchungstext)
|
||||||
@@ -113,7 +115,18 @@ export default {
|
|||||||
|
|
||||||
if (this.config.showCreditpoints && (this.data.credit_points == '0.00' || this.data.credit_points === null))
|
if (this.config.showCreditpoints && (this.data.credit_points == '0.00' || this.data.credit_points === null))
|
||||||
this.data.credit_points = creditpoints;
|
this.data.credit_points = creditpoints;
|
||||||
}
|
},
|
||||||
|
getBuchungstypen(studiensemester_kurzbz)
|
||||||
|
{
|
||||||
|
this.$api
|
||||||
|
.call(ApiKonto.getBuchungstypen(studiensemester_kurzbz))
|
||||||
|
.then(result => {
|
||||||
|
this.lists.buchungstypen = result.data;
|
||||||
|
if (this.data.buchungstyp_kurzbz)
|
||||||
|
this.checkDefaultBetrag(this.data.buchungstyp_kurzbz);
|
||||||
|
})
|
||||||
|
.catch(this.$fhcAlert.handleSystemError);
|
||||||
|
},
|
||||||
},
|
},
|
||||||
template: `
|
template: `
|
||||||
<core-form ref="form" class="stv-details-konto-edit" @submit.prevent="save">
|
<core-form ref="form" class="stv-details-konto-edit" @submit.prevent="save">
|
||||||
@@ -166,6 +179,7 @@ export default {
|
|||||||
<form-input
|
<form-input
|
||||||
type="select"
|
type="select"
|
||||||
v-model="data.studiensemester_kurzbz"
|
v-model="data.studiensemester_kurzbz"
|
||||||
|
@change="getBuchungstypen(data.studiensemester_kurzbz)"
|
||||||
name="studiensemester_kurzbz"
|
name="studiensemester_kurzbz"
|
||||||
:label="$p.t('lehre/studiensemester')"
|
:label="$p.t('lehre/studiensemester')"
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -41,8 +41,8 @@ export default {
|
|||||||
),
|
),
|
||||||
ajaxResponse: (url, params, response) => response.data,
|
ajaxResponse: (url, params, response) => response.data,
|
||||||
columns: [
|
columns: [
|
||||||
{title: "Typ", field: "type"},
|
{title: "Typ", field: "type", headerFilter: "list", headerFilterParams: {valuesLookup:true, listOnEmpty:true, autocomplete:true, sort:"asc"}},
|
||||||
{title: "Betrag", field: "betrag",
|
{title: "Betrag", field: "betrag", headerFilter: true,
|
||||||
formatter: function(cell) {
|
formatter: function(cell) {
|
||||||
let value = cell.getValue();
|
let value = cell.getValue();
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
@@ -51,14 +51,14 @@ export default {
|
|||||||
return parseFloat(value).toFixed(2);
|
return parseFloat(value).toFixed(2);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{title: "Bezeichnung", field: "bezeichnung"},
|
{title: "Bezeichnung", field: "bezeichnung", headerFilter: true},
|
||||||
{title: "Studiensemester", field: "studiensemester_kurzbz"},
|
{title: "Studiensemester", field: "studiensemester_kurzbz", headerFilter: "list", headerFilterParams: {valuesLookup:true, listOnEmpty:true, autocomplete:true, sort:"asc"}},
|
||||||
{title: "Pruefung_id", field: "pruefung_id", visible: false},
|
{title: "Pruefung_id", field: "pruefung_id", visible: false, headerFilter: true},
|
||||||
{title: "mitarbeiter_uid", field: "mitarbeiter_uid", visible: false},
|
{title: "mitarbeiter_uid", field: "mitarbeiter_uid", visible: false, headerFilter: true},
|
||||||
{title: "projektarbeit_id", field: "projektarbeit_id", visible: false},
|
{title: "projektarbeit_id", field: "projektarbeit_id", visible: false, headerFilter: true},
|
||||||
{title: "lehreinheit_id", field: "lehreinheit_id", visible: true},
|
{title: "lehreinheit_id", field: "lehreinheit_id", visible: true, headerFilter: true},
|
||||||
{title: "betreuerart_kurzbz", field: "betreuerart_kurzbz", visible: false},
|
{title: "betreuerart_kurzbz", field: "betreuerart_kurzbz", visible: false, headerFilter: true},
|
||||||
{title: "vertrag_id", field: "vertrag_id", visible: false}, //just for testing
|
{title: "vertrag_id", field: "vertrag_id", visible: false, headerFilter: true}, //just for testing
|
||||||
{
|
{
|
||||||
title: 'Aktionen', field: 'actions',
|
title: 'Aktionen', field: 'actions',
|
||||||
minWidth: 50,
|
minWidth: 50,
|
||||||
@@ -110,10 +110,10 @@ export default {
|
|||||||
],
|
],
|
||||||
layout: 'fitColumns',
|
layout: 'fitColumns',
|
||||||
layoutColumnsOnNewData: false,
|
layoutColumnsOnNewData: false,
|
||||||
height: '200',
|
height: '250',
|
||||||
selectableRowsRangeMode: 'click',
|
selectableRowsRangeMode: 'click',
|
||||||
selectableRows: true,
|
selectableRows: true,
|
||||||
persistenceID: 'core-contracts-details-2026021701'
|
persistenceID: 'core-contracts-details-2026050501'
|
||||||
},
|
},
|
||||||
tabulatorEvents: [
|
tabulatorEvents: [
|
||||||
{
|
{
|
||||||
@@ -137,7 +137,7 @@ export default {
|
|||||||
|
|
||||||
setHeader('type', this.$p.t('global', 'typ'));
|
setHeader('type', this.$p.t('global', 'typ'));
|
||||||
setHeader('bezeichnung', this.$p.t('ui', 'bezeichnung'));
|
setHeader('bezeichnung', this.$p.t('ui', 'bezeichnung'));
|
||||||
setHeader('lehreinheit_id', this.$p.t('ui', 'lehreinheit_id'));
|
setHeader('lehreinheit_id', this.$p.t('lehre', 'lehreinheit_id'));
|
||||||
setHeader('betrag', this.$p.t('ui', 'betrag'));
|
setHeader('betrag', this.$p.t('ui', 'betrag'));
|
||||||
setHeader('studiensemester_kurzbz', this.$p.t('lehre', 'studiensemester'));
|
setHeader('studiensemester_kurzbz', this.$p.t('lehre', 'studiensemester'));
|
||||||
setHeader('mitarbeiter_uid', this.$p.t('ui', 'mitarbeiter_uid'));
|
setHeader('mitarbeiter_uid', this.$p.t('ui', 'mitarbeiter_uid'));
|
||||||
|
|||||||
@@ -47,12 +47,13 @@ export default {
|
|||||||
this.endpoint.getStatiOfContract(this.person_id, this.vertrag_id)
|
this.endpoint.getStatiOfContract(this.person_id, this.vertrag_id)
|
||||||
),
|
),
|
||||||
ajaxResponse: (url, params, response) => response.data,
|
ajaxResponse: (url, params, response) => response.data,
|
||||||
persistenceID: 'core-contracts-status-2026021701',
|
persistenceID: 'core-contracts-status-2026050501',
|
||||||
columns: [
|
columns: [
|
||||||
{title: "Status", field: "bezeichnung"},
|
{title: "Status", field: "bezeichnung", headerFilter: "list", headerFilterParams: {valuesLookup:true, listOnEmpty:true, autocomplete:true, sort:"asc"}},
|
||||||
{
|
{
|
||||||
title: "Datum",
|
title: "Datum",
|
||||||
field: "datum",
|
field: "datum",
|
||||||
|
headerFilter: true,
|
||||||
formatter: function (cell) {
|
formatter: function (cell) {
|
||||||
const dateStr = cell.getValue();
|
const dateStr = cell.getValue();
|
||||||
const date = new Date(dateStr); // Convert to Date object
|
const date = new Date(dateStr); // Convert to Date object
|
||||||
@@ -66,14 +67,15 @@ export default {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{title: "vertrag_id", field: "vertrag_id", visible: false},
|
{title: "vertrag_id", field: "vertrag_id", visible: false, headerFilter: true},
|
||||||
{title: "Vertragsstatus", field: "vertragsstatus_kurzbz", visible: false},
|
{title: "Vertragsstatus", field: "vertragsstatus_kurzbz", visible: false, headerFilter: true},
|
||||||
{title: "User", field: "mitarbeiter_uid", visible: false},
|
{title: "User", field: "mitarbeiter_uid", visible: false, headerFilter: true},
|
||||||
{title: "insertvon", field: "insertvon", visible: false},
|
{title: "insertvon", field: "insertvon", visible: false, headerFilter: true},
|
||||||
{
|
{
|
||||||
title: "insertamum",
|
title: "insertamum",
|
||||||
field: "insertamum",
|
field: "insertamum",
|
||||||
visible: false,
|
visible: false,
|
||||||
|
headerFilter: true,
|
||||||
formatter: function (cell) {
|
formatter: function (cell) {
|
||||||
const dateStr = cell.getValue();
|
const dateStr = cell.getValue();
|
||||||
const date = new Date(dateStr);
|
const date = new Date(dateStr);
|
||||||
@@ -87,11 +89,12 @@ export default {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{title: "updatevon", field: "updatevon", visible: false},
|
{title: "updatevon", field: "updatevon", visible: false, headerFilter: true},
|
||||||
{
|
{
|
||||||
title: "updateamum",
|
title: "updateamum",
|
||||||
field: "updateamum",
|
field: "updateamum",
|
||||||
visible: false,
|
visible: false,
|
||||||
|
headerFilter: true,
|
||||||
formatter: function (cell) {
|
formatter: function (cell) {
|
||||||
const dateStr = cell.getValue();
|
const dateStr = cell.getValue();
|
||||||
const date = new Date(dateStr);
|
const date = new Date(dateStr);
|
||||||
@@ -148,7 +151,7 @@ export default {
|
|||||||
],
|
],
|
||||||
layout: 'fitColumns',
|
layout: 'fitColumns',
|
||||||
layoutColumnsOnNewData: false,
|
layoutColumnsOnNewData: false,
|
||||||
height: '200',
|
height: '250',
|
||||||
selectableRowsRangeMode: 'click',
|
selectableRowsRangeMode: 'click',
|
||||||
selectableRows: true,
|
selectableRows: true,
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -30,10 +30,11 @@ export default {
|
|||||||
),
|
),
|
||||||
ajaxResponse: (url, params, response) => response.data,
|
ajaxResponse: (url, params, response) => response.data,
|
||||||
columns: [
|
columns: [
|
||||||
{title: "Typ", field: "type", width: 100},
|
{title: "Typ", field: "type", width: 100, headerFilter: "list", headerFilterParams: {valuesLookup:true, listOnEmpty:true, autocomplete:true, sort:"asc"}},
|
||||||
{
|
{
|
||||||
title: "Betrag",
|
title: "Betrag",
|
||||||
field: "betrag1",
|
field: "betrag1",
|
||||||
|
headerFilter: true,
|
||||||
formatter: function(cell) {
|
formatter: function(cell) {
|
||||||
let value = cell.getValue();
|
let value = cell.getValue();
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
@@ -41,28 +42,29 @@ export default {
|
|||||||
}
|
}
|
||||||
return parseFloat(value).toFixed(2);
|
return parseFloat(value).toFixed(2);
|
||||||
}},
|
}},
|
||||||
{title: "Bezeichnung", field: "bezeichnung", width: 150},
|
{title: "Bezeichnung", field: "bezeichnung", width: 150, headerFilter: true},
|
||||||
{title: "Studiensemester", field: "studiensemester_kurzbz", width: 160},
|
{title: "Studiensemester", field: "studiensemester_kurzbz", width: 160, headerFilter: "list", headerFilterParams: {valuesLookup:true, listOnEmpty:true, autocomplete:true, sort:"asc"}},
|
||||||
{title: "mitarbeiter_uid", field: "mitarbeiter_uid", visible: false},
|
{title: "mitarbeiter_uid", field: "mitarbeiter_uid", visible: false, headerFilter: true},
|
||||||
{title: "projektarbeit_id", field: "projektarbeit_id", visible: false},
|
{title: "projektarbeit_id", field: "projektarbeit_id", visible: false, headerFilter: true},
|
||||||
{title: "lehreinheit_id", field: "lehreinheit_id", visible: true},
|
{title: "lehreinheit_id", field: "lehreinheit_id", visible: true, headerFilter: true},
|
||||||
{title: "betreuerart_kurzbz", field: "betreuerart_kurzbz", visible: false},
|
{title: "betreuerart_kurzbz", field: "betreuerart_kurzbz", visible: false, headerFilter: true},
|
||||||
{title: "Vertragsstunden", field: "vertragsstunden", visible: false},
|
{title: "Vertragsstunden", field: "vertragsstunden", visible: false, headerFilter: true},
|
||||||
{title: "vertrag_id", field: "vertrag_id", visible: false}, //just for testing
|
{title: "vertrag_id", field: "vertrag_id", visible: false, headerFilter: true}, //just for testing
|
||||||
{
|
{
|
||||||
title: "VertragsstundenStudiensemester",
|
title: "VertragsstundenStudiensemester",
|
||||||
field: "vertragsstunden_studiensemester_kurzbz",
|
field: "vertragsstunden_studiensemester_kurzbz",
|
||||||
visible: false
|
visible: false,
|
||||||
|
headerFilter: true
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
layout: 'fitColumns',
|
layout: 'fitColumns',
|
||||||
layoutColumnsOnNewData: false,
|
layoutColumnsOnNewData: false,
|
||||||
height: 150,
|
height: 250,
|
||||||
selectableRowsRangeMode: 'click',
|
selectableRowsRangeMode: 'click',
|
||||||
selectableRows: true,
|
selectableRows: true,
|
||||||
selectableRowsRollingSelection: false, //only allow multiselect with STRG
|
selectableRowsRollingSelection: false, //only allow multiselect with STRG
|
||||||
index: "lehreinheit_id",
|
index: "lehreinheit_id",
|
||||||
persistenceID: 'core-contracts-unassigned-2026021701'
|
persistenceID: 'core-contracts-unassigned-2026050501'
|
||||||
},
|
},
|
||||||
tabulatorEvents: [
|
tabulatorEvents: [
|
||||||
{
|
{
|
||||||
@@ -100,7 +102,7 @@ export default {
|
|||||||
|
|
||||||
setHeader('type', this.$p.t('global', 'typ'));
|
setHeader('type', this.$p.t('global', 'typ'));
|
||||||
setHeader('bezeichnung', this.$p.t('ui', 'bezeichnung'));
|
setHeader('bezeichnung', this.$p.t('ui', 'bezeichnung'));
|
||||||
setHeader('lehreinheit_id', this.$p.t('ui', 'lehreinheit_id'));
|
setHeader('lehreinheit_id', this.$p.t('lehre', 'lehreinheit_id'));
|
||||||
setHeader('betrag1', this.$p.t('ui', 'betrag'));
|
setHeader('betrag1', this.$p.t('ui', 'betrag'));
|
||||||
setHeader('studiensemester_kurzbz', this.$p.t('lehre', 'studiensemester'));
|
setHeader('studiensemester_kurzbz', this.$p.t('lehre', 'studiensemester'));
|
||||||
setHeader('mitarbeiter_uid', this.$p.t('ui', 'mitarbeiter_uid'));
|
setHeader('mitarbeiter_uid', this.$p.t('ui', 'mitarbeiter_uid'));
|
||||||
|
|||||||
@@ -20,9 +20,6 @@ export default {
|
|||||||
ContractStati
|
ContractStati
|
||||||
},
|
},
|
||||||
inject: {
|
inject: {
|
||||||
/* cisRoot: {
|
|
||||||
from: 'cisRoot'
|
|
||||||
},*/
|
|
||||||
hasSchreibrechte: {
|
hasSchreibrechte: {
|
||||||
from: 'hasSchreibrechte',
|
from: 'hasSchreibrechte',
|
||||||
default: false
|
default: false
|
||||||
@@ -54,9 +51,9 @@ export default {
|
|||||||
),
|
),
|
||||||
ajaxResponse: (url, params, response) => response.data,
|
ajaxResponse: (url, params, response) => response.data,
|
||||||
columns: [
|
columns: [
|
||||||
{title: "Bezeichnung", field: "bezeichnung", width: 300},
|
{title: "Bezeichnung", field: "bezeichnung", width: 300, headerFilter: true},
|
||||||
{
|
{
|
||||||
title: "Betrag", field: "betrag", width: 100,
|
title: "Betrag", field: "betrag", width: 100, headerFilter: true,
|
||||||
formatter: function (cell) {
|
formatter: function (cell) {
|
||||||
let value = cell.getValue();
|
let value = cell.getValue();
|
||||||
|
|
||||||
@@ -66,12 +63,13 @@ export default {
|
|||||||
return parseFloat(value).toFixed(2);
|
return parseFloat(value).toFixed(2);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{title: "Vertragstyp", field: "vertragstyp_bezeichnung", width: 125},
|
{title: "Vertragstyp", field: "vertragstyp_bezeichnung", width: 125, headerFilter: "list", headerFilterParams: {valuesLookup:true, listOnEmpty:true, autocomplete:true, sort:"asc"}},
|
||||||
{title: "Status", field: "status", width: 100},
|
{title: "Status", field: "status", width: 100, headerFilter: "list", headerFilterParams: {valuesLookup:true, listOnEmpty:true, autocomplete:true, sort:"asc"}},
|
||||||
{
|
{
|
||||||
title: "Vertragsdatum",
|
title: "Vertragsdatum",
|
||||||
field: "vertragsdatum",
|
field: "vertragsdatum",
|
||||||
width: 128,
|
width: 128,
|
||||||
|
headerFilter: true,
|
||||||
formatter: function (cell) {
|
formatter: function (cell) {
|
||||||
const dateStr = cell.getValue();
|
const dateStr = cell.getValue();
|
||||||
const date = new Date(dateStr);
|
const date = new Date(dateStr);
|
||||||
@@ -82,11 +80,11 @@ export default {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{title: "VertragId", field: "vertrag_id", visible: false},
|
{title: "VertragId", field: "vertrag_id", visible: false, headerFilter: true},
|
||||||
{title: "Vertragsstunden", field: "vertragsstunden", visible: false},
|
{title: "Vertragsstunden", field: "vertragsstunden", visible: false, headerFilter: true},
|
||||||
{title: "VertragsstundenStudiensemester", field: "vertragsstunden_studiensemester_kurzbz", visible: false},
|
{title: "VertragsstundenStudiensemester", field: "vertragsstunden_studiensemester_kurzbz", visible: false, headerFilter: true},
|
||||||
{title: "Anmerkung", field: "anmerkung", visible: false},
|
{title: "Anmerkung", field: "anmerkung", visible: false, headerFilter: true},
|
||||||
{title: "isAbgerechnet", field: "isabgerechnet", visible: false},
|
{title: "isAbgerechnet", field: "isabgerechnet", visible: false, headerFilter: true},
|
||||||
{
|
{
|
||||||
title: 'Aktionen', field: 'actions',
|
title: 'Aktionen', field: 'actions',
|
||||||
minWidth: 150,
|
minWidth: 150,
|
||||||
@@ -140,11 +138,13 @@ export default {
|
|||||||
columns: true,
|
columns: true,
|
||||||
filter: false //to avoids js errors
|
filter: false //to avoids js errors
|
||||||
},
|
},
|
||||||
persistenceID: 'core-contracts-2026021701',
|
persistenceID: 'core-contracts-2026050501',
|
||||||
};
|
};
|
||||||
return options;
|
return options;
|
||||||
},
|
},
|
||||||
tabulatorEvents() {
|
tabulatorEvents() {
|
||||||
|
const vm = this;
|
||||||
|
|
||||||
const events = [
|
const events = [
|
||||||
{
|
{
|
||||||
event: 'tableBuilt',
|
event: 'tableBuilt',
|
||||||
@@ -177,28 +177,11 @@ export default {
|
|||||||
setHeader('actions', this.$p.t('global', 'aktionen'));
|
setHeader('actions', this.$p.t('global', 'aktionen'));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
/* {
|
|
||||||
//is just enabled for ADDON Injection KU: MultiprintHonorarvertrag
|
|
||||||
//(maybe enable also for ADDON FH Burgenland: MultiAccept later)
|
|
||||||
event: 'rowClick',
|
|
||||||
handler: (e, row) => {
|
|
||||||
if (this.dataPrintHonorar != null && this.dataPrintHonorar.multiselect != null) {
|
|
||||||
const selectedContract = row.getData().vertrag_id;
|
|
||||||
const status = row.getData().status;
|
|
||||||
const bezeichnung = row.getData().bezeichnung;
|
|
||||||
|
|
||||||
this.toggleRowClick(selectedContract, status, bezeichnung);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},*/
|
|
||||||
{
|
{
|
||||||
event: 'rowClick',
|
event: 'rowClick',
|
||||||
handler: (e, row) => {
|
handler: function (e, row) {
|
||||||
if (!this.dataPrintHonorar?.multiselect) return;
|
|
||||||
|
|
||||||
const { vertrag_id, status, bezeichnung, vertragstyp_bezeichnung } = row.getData();
|
const { vertrag_id, status, bezeichnung, vertragstyp_bezeichnung } = row.getData();
|
||||||
|
vm.toggleRowClick(e, vertrag_id, status, bezeichnung, vertragstyp_bezeichnung);
|
||||||
this.toggleRowClick(e, vertrag_id, status, bezeichnung, vertragstyp_bezeichnung);
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -242,8 +225,6 @@ export default {
|
|||||||
person_id() {
|
person_id() {
|
||||||
this.$refs.table.reloadTable();
|
this.$refs.table.reloadTable();
|
||||||
this.arraySelectedContracts = [];
|
this.arraySelectedContracts = [];
|
||||||
/* if(this.dataPrintHonorar?.multiselect)
|
|
||||||
this.dataPrintHonorar.multiselect = [];*/
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@@ -270,7 +251,6 @@ export default {
|
|||||||
)
|
)
|
||||||
.then(result => {
|
.then(result => {
|
||||||
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successDelete'));
|
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successDelete'));
|
||||||
//window.scrollTo(0, 0);
|
|
||||||
this.reload();
|
this.reload();
|
||||||
this.contractSelected.vertrag_id = null;
|
this.contractSelected.vertrag_id = null;
|
||||||
})
|
})
|
||||||
@@ -518,19 +498,9 @@ export default {
|
|||||||
'content/pdfExport.php?xml=' + this.dataPrintHonorar.xml + '&xsl=' + this.dataPrintHonorar.xsl + '&mitarbeiter_uid=' + this.mitarbeiter_uid + vertragString + '&output=pdf&uid=' + this.mitarbeiter_uid;
|
'content/pdfExport.php?xml=' + this.dataPrintHonorar.xml + '&xsl=' + this.dataPrintHonorar.xsl + '&mitarbeiter_uid=' + this.mitarbeiter_uid + vertragString + '&output=pdf&uid=' + this.mitarbeiter_uid;
|
||||||
window.open(linkToPdf, '_blank');
|
window.open(linkToPdf, '_blank');
|
||||||
},
|
},
|
||||||
/* toggleRowClick(contractId, status, bezeichnung) {
|
|
||||||
const index = this.arraySelectedContracts.findIndex(
|
|
||||||
([id]) => id === contractId
|
|
||||||
);
|
|
||||||
if (index !== -1) {
|
|
||||||
this.arraySelectedContracts.splice(index, 1);
|
|
||||||
} else {
|
|
||||||
this.arraySelectedContracts.push([contractId, status, bezeichnung]);
|
|
||||||
}
|
|
||||||
},*/
|
|
||||||
toggleRowClick(event, vertrag_id, status, bezeichnung, vertragstyp_bezeichnung) {
|
toggleRowClick(event, vertrag_id, status, bezeichnung, vertragstyp_bezeichnung) {
|
||||||
if (!this.dataPrintHonorar?.multiselect) return;
|
|
||||||
|
|
||||||
|
const isMulti = this.dataPrintHonorar?.multiselect === true;
|
||||||
const isCtrl = event.ctrlKey || event.metaKey;
|
const isCtrl = event.ctrlKey || event.metaKey;
|
||||||
|
|
||||||
const entry = {
|
const entry = {
|
||||||
@@ -540,28 +510,29 @@ export default {
|
|||||||
vertragstyp_bezeichnung
|
vertragstyp_bezeichnung
|
||||||
};
|
};
|
||||||
|
|
||||||
// Single click
|
// allow MultiSelect just in case event multiActionPrintHonorarvertrag
|
||||||
if (!isCtrl) {
|
const allowMultiClick = isMulti && isCtrl;
|
||||||
|
|
||||||
|
if (!allowMultiClick) {
|
||||||
this.arraySelectedContracts = [entry];
|
this.arraySelectedContracts = [entry];
|
||||||
|
|
||||||
|
//just mark last selected row as selected
|
||||||
|
this.$refs.table.tabulator.deselectRow();
|
||||||
|
this.$refs.table.tabulator.selectRow(vertrag_id);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// CTRL / CMD → toggle
|
|
||||||
const index = this.arraySelectedContracts.findIndex(
|
const index = this.arraySelectedContracts.findIndex(
|
||||||
e => e.vertrag_id === vertrag_id
|
e => e.vertrag_id === vertrag_id
|
||||||
);
|
);
|
||||||
|
|
||||||
if (index === -1) {
|
if (index === -1) {
|
||||||
this.arraySelectedContracts.push(entry);
|
this.arraySelectedContracts.push(entry);
|
||||||
//this.arraySelectedContracts.push([entry.vertrag_id, entry.status, entry.bezeichnung, entry.vertragstyp_bezeichnung]);
|
|
||||||
} else {
|
} else {
|
||||||
this.arraySelectedContracts.splice(index, 1);
|
this.arraySelectedContracts.splice(index, 1);
|
||||||
}
|
}
|
||||||
},
|
|
||||||
/* clearSelection(){
|
}
|
||||||
this.arraySelectedContracts = [];
|
|
||||||
this.$refs.table.tabulator.deselectRow();
|
|
||||||
}*/
|
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
Promise.all([
|
Promise.all([
|
||||||
@@ -587,88 +558,6 @@ export default {
|
|||||||
});
|
});
|
||||||
this.getFormattedDate();
|
this.getFormattedDate();
|
||||||
},
|
},
|
||||||
/*
|
|
||||||
TODO(Manu) delete after check
|
|
||||||
|
|
||||||
<div class="row mb-3">
|
|
||||||
<form-input
|
|
||||||
type="DatePicker"
|
|
||||||
:label="$p.t('vertrag/datum_vertrag')"
|
|
||||||
name="vertragsdatum"
|
|
||||||
v-model="formData.vertragsdatum"
|
|
||||||
auto-apply
|
|
||||||
:enable-time-picker="false"
|
|
||||||
format="dd.MM.yyyy"
|
|
||||||
preview-format="dd.MM.yyyy"
|
|
||||||
:teleport="true"
|
|
||||||
>
|
|
||||||
</form-input>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row mb-3">
|
|
||||||
<form-input
|
|
||||||
type="text"
|
|
||||||
:label="$p.t('ui/bezeichnung')"
|
|
||||||
name="bezeichnung"
|
|
||||||
v-model="formData.bezeichnung"
|
|
||||||
>
|
|
||||||
</form-input>
|
|
||||||
</div>
|
|
||||||
<div class="row mb-3">
|
|
||||||
<form-input
|
|
||||||
type="select"
|
|
||||||
:label="$p.t('global/typ')"
|
|
||||||
v-model="formData.vertragstyp_kurzbz"
|
|
||||||
name="vertragstyp_kurzbz"
|
|
||||||
>
|
|
||||||
<option :value="null">-- {{$p.t('fehlermonitoring', 'keineAuswahl')}} --</option>
|
|
||||||
<option
|
|
||||||
v-for="entry in listContractTypes"
|
|
||||||
:key="entry.vertragstyp_kurzbz"
|
|
||||||
:value="entry.vertragstyp_kurzbz"
|
|
||||||
>
|
|
||||||
{{entry.bezeichnung}}
|
|
||||||
</option>
|
|
||||||
</form-input>
|
|
||||||
</div>
|
|
||||||
<div class="row mb-3">
|
|
||||||
<form-input
|
|
||||||
:label="$p.t('ui/betrag')"
|
|
||||||
name="betrag"
|
|
||||||
v-model="formData.betrag"
|
|
||||||
>
|
|
||||||
</form-input>
|
|
||||||
</div>
|
|
||||||
<div class="row mb-3" v-if="!statusNew">
|
|
||||||
<form-input
|
|
||||||
type="text"
|
|
||||||
:label="$p.t('ui/stunden') + ' (' + $p.t('vertrag/vertrag_urfassung')+ ')'"
|
|
||||||
name="vertragsstunden"
|
|
||||||
v-model="formData.vertragsstunden"
|
|
||||||
disabled
|
|
||||||
>
|
|
||||||
</form-input>
|
|
||||||
</div>
|
|
||||||
<div class="row mb-3" v-if="!statusNew">
|
|
||||||
<form-input
|
|
||||||
type="text"
|
|
||||||
:label="$p.t('lehre/studiensemester') + ' (' + $p.t('vertrag/vertrag_urfassung')+ ')'"
|
|
||||||
name="vertragsstunden_studiensemester_kurzbz"
|
|
||||||
v-model="formData.vertragsstunden_studiensemester_kurzbz"
|
|
||||||
disabled
|
|
||||||
>
|
|
||||||
</form-input>
|
|
||||||
</div>
|
|
||||||
<div class="row mb-3">
|
|
||||||
<form-input
|
|
||||||
type="textarea"
|
|
||||||
:label="$p.t('global/anmerkung')"
|
|
||||||
name="anmerkung"
|
|
||||||
v-model="formData.anmerkung"
|
|
||||||
>
|
|
||||||
</form-input>
|
|
||||||
</div>
|
|
||||||
*/
|
|
||||||
template: `
|
template: `
|
||||||
<div class="core-contracts h-100 d-flex flex-column">
|
<div class="core-contracts h-100 d-flex flex-column">
|
||||||
|
|
||||||
|
|||||||
@@ -41761,7 +41761,7 @@ array(
|
|||||||
array(
|
array(
|
||||||
'app' => 'core',
|
'app' => 'core',
|
||||||
'category' => 'abgabetool',
|
'category' => 'abgabetool',
|
||||||
'phrase' => 'c4fehlerAktualitaetProjektarbeit ',
|
'phrase' => 'c4fehlerAktualitaetProjektarbeit',
|
||||||
'insertvon' => 'system',
|
'insertvon' => 'system',
|
||||||
'phrases' => array(
|
'phrases' => array(
|
||||||
array(
|
array(
|
||||||
|
|||||||
Reference in New Issue
Block a user