mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-12 01:29:28 +00:00
Add Logic Permission and Phrases
This commit is contained in:
@@ -4,12 +4,13 @@ if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
class Vertragsverwaltung extends Auth_Controller
|
||||
{
|
||||
|
||||
//TODO(Manu) Permissions
|
||||
public function __construct()
|
||||
{
|
||||
$permissions = [];
|
||||
$router = load_class('Router');
|
||||
$permissions[$router->method] = ['admin:r', 'assistenz:r'];
|
||||
$permissions[$router->method] = ['vertrag/mitarbeiter:r'];
|
||||
parent::__construct($permissions);
|
||||
|
||||
// Load Libraries
|
||||
@@ -23,9 +24,7 @@ class Vertragsverwaltung extends Auth_Controller
|
||||
{
|
||||
$this->load->view('Vertragsverwaltung', [
|
||||
'permissions' => [
|
||||
'assistenz_stgs' => $this->permissionlib->getSTG_isEntitledFor('assistenz'),
|
||||
'admin' => $this->permissionlib->isBerechtigt('admin'),
|
||||
'assistenz_schreibrechte' => $this->permissionlib->isBerechtigt('assistenz','suid'),
|
||||
'vertragsverwaltung_schreibrechte' => $this->permissionlib->isBerechtigt('vertrag/mitarbeiter','suid')
|
||||
]
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -29,16 +29,8 @@ class Config extends FHCAPI_Controller
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
// TODO(Manu): permissions
|
||||
parent::__construct([
|
||||
'printDocument' => ['admin:r', 'assistenz:r'],
|
||||
]);
|
||||
|
||||
|
||||
// Load Phrases
|
||||
$this->loadPhrases([
|
||||
'global',
|
||||
'person',
|
||||
'printDocument' => ['vertrag/mitarbeiter:r'],
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
@@ -9,28 +9,27 @@ class Vertraege extends FHCAPI_Controller
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct([
|
||||
'getAllVertraege' => ['admin:r', 'assistenz:r'],
|
||||
'getAllContractsNotAssigned' => ['admin:r', 'assistenz:r'],
|
||||
'getAllContractsAssigned' => ['admin:r', 'assistenz:r'],
|
||||
'getAllContractTypes' => ['admin:r', 'assistenz:r'],
|
||||
'getAllContractStati' => ['admin:r', 'assistenz:r'],
|
||||
'getStatiOfContract' => ['admin:r', 'assistenz:r'],
|
||||
'loadContract' => ['admin:r', 'assistenz:r'],
|
||||
'loadContractStatus' => ['admin:r', 'assistenz:r'],
|
||||
'updateContract' => self::PERM_LOGGED,
|
||||
'addNewContract' => self::PERM_LOGGED,
|
||||
'deleteContract' => self::PERM_LOGGED,
|
||||
'insertContractStatus' => self::PERM_LOGGED,
|
||||
'deleteContractStatus' => self::PERM_LOGGED,
|
||||
'updateContractStatus' => self::PERM_LOGGED,
|
||||
'deleteLehrauftrag' => self::PERM_LOGGED,
|
||||
'deleteBetreuung' => self::PERM_LOGGED,
|
||||
//TODO(Manu) Berechtigungen
|
||||
'getMitarbeiter' => self::PERM_LOGGED,
|
||||
'getHeader' => self::PERM_LOGGED,
|
||||
'getPersonAbteilung' => self::PERM_LOGGED,
|
||||
'getLeitungOrg' => self::PERM_LOGGED,
|
||||
'getMitarbeiter_uid' => self::PERM_LOGGED,
|
||||
'getAllVertraege' => ['vertrag/mitarbeiter:r'],
|
||||
'getAllContractsNotAssigned' => ['vertrag/mitarbeiter:r'],
|
||||
'getAllContractsAssigned' => ['vertrag/mitarbeiter:r'],
|
||||
'getAllContractTypes' => ['vertrag/mitarbeiter:r'],
|
||||
'getAllContractStati' => ['vertrag/mitarbeiter:r'],
|
||||
'getStatiOfContract' => ['vertrag/mitarbeiter:r'],
|
||||
'loadContract' => ['vertrag/mitarbeiter:r'],
|
||||
'loadContractStatus' => ['vertrag/mitarbeiter:r'],
|
||||
'updateContract' =>['vertrag/mitarbeiter:w'],
|
||||
'addNewContract' =>['vertrag/mitarbeiter:w'],
|
||||
'deleteContract' =>['vertrag/mitarbeiter:w'],
|
||||
'insertContractStatus' =>['vertrag/mitarbeiter:w'],
|
||||
'deleteContractStatus' =>['vertrag/mitarbeiter:w'],
|
||||
'updateContractStatus' =>['vertrag/mitarbeiter:w'],
|
||||
'deleteLehrauftrag' =>['vertrag/mitarbeiter:w'],
|
||||
'deleteBetreuung' =>['vertrag/mitarbeiter:w'],
|
||||
'getMitarbeiter' => ['vertrag/mitarbeiter:r'],
|
||||
'getHeader' => ['vertrag/mitarbeiter:r'],
|
||||
'getPersonAbteilung' => ['vertrag/mitarbeiter:r'],
|
||||
'getLeitungOrg' => ['vertrag/mitarbeiter:r'],
|
||||
'getMitarbeiter_uid' => ['vertrag/mitarbeiter:r'],
|
||||
]);
|
||||
|
||||
//Load Models and Libraries
|
||||
|
||||
@@ -32,9 +32,7 @@ $this->load->view('templates/FHC-Header', $includesArray);
|
||||
|
||||
<?php
|
||||
$configArray = [
|
||||
'generateAlias' => !defined('GENERATE_ALIAS_STUDENT') ? 'notDefined' : GENERATE_ALIAS_STUDENT,
|
||||
'domain' => !defined('DOMAIN') ? 'notDefined' : DOMAIN,
|
||||
'chooseLayout' => !defined('CHOOSE_LAYOUT') ? 'notDefined' : CHOOSE_LAYOUT,
|
||||
];
|
||||
?>
|
||||
|
||||
|
||||
@@ -11,6 +11,12 @@ export default {
|
||||
CoreForm,
|
||||
FormInput
|
||||
},
|
||||
inject: {
|
||||
hasSchreibrechte: {
|
||||
from: 'hasSchreibrechte',
|
||||
default: false
|
||||
},
|
||||
},
|
||||
props: {
|
||||
person_id: {
|
||||
type: [Number],
|
||||
@@ -69,20 +75,30 @@ export default {
|
||||
let type = cell.getData().type;
|
||||
if (type == 'Lehrauftrag')
|
||||
{
|
||||
button.addEventListener(
|
||||
'click',
|
||||
() =>
|
||||
this.actionDeleteLehrauftrag(cell.getData().vertrag_id, cell.getData().lehreinheit_id, cell.getData().mitarbeiter_uid)
|
||||
);
|
||||
if (!this.hasSchreibrechte) {
|
||||
button.disabled = true;
|
||||
button.classList.add('disabled');
|
||||
} else {
|
||||
button.addEventListener(
|
||||
'click',
|
||||
() =>
|
||||
this.actionDeleteLehrauftrag(cell.getData().vertrag_id, cell.getData().lehreinheit_id, cell.getData().mitarbeiter_uid)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
if (type == 'Betreuung')
|
||||
{
|
||||
button.addEventListener(
|
||||
'click',
|
||||
() =>
|
||||
this.actionDeleteBetreuung(cell.getData().vertrag_id, cell.getData().projektarbeit_id, cell.getData().betreuerart_kurzbz)
|
||||
);
|
||||
if (!this.hasSchreibrechte) {
|
||||
button.disabled = true;
|
||||
button.classList.add('disabled');
|
||||
} else {
|
||||
button.addEventListener(
|
||||
'click',
|
||||
() =>
|
||||
this.actionDeleteBetreuung(cell.getData().vertrag_id, cell.getData().projektarbeit_id, cell.getData().betreuerart_kurzbz)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
container.append(button);
|
||||
|
||||
@@ -11,6 +11,12 @@ export default {
|
||||
CoreForm,
|
||||
FormInput
|
||||
},
|
||||
inject: {
|
||||
hasSchreibrechte: {
|
||||
from: 'hasSchreibrechte',
|
||||
default: false
|
||||
},
|
||||
},
|
||||
props: {
|
||||
vertrag_id: {
|
||||
type: [Number],
|
||||
@@ -69,11 +75,16 @@ export default {
|
||||
button.className = 'btn btn-outline-secondary btn-action';
|
||||
button.innerHTML = '<i class="fa fa-xmark"></i>';
|
||||
button.title = this.$p.t('vertrag', 'deleteStatus');
|
||||
button.addEventListener(
|
||||
'click',
|
||||
() =>
|
||||
this.actionDeleteStatus(cell.getData().vertrag_id, cell.getData().vertragsstatus_kurzbz)
|
||||
);
|
||||
if (!this.hasSchreibrechte) {
|
||||
button.disabled = true;
|
||||
button.classList.add('disabled');
|
||||
} else {
|
||||
button.addEventListener(
|
||||
'click',
|
||||
() =>
|
||||
this.actionDeleteStatus(cell.getData().vertrag_id, cell.getData().vertragsstatus_kurzbz)
|
||||
);
|
||||
}
|
||||
|
||||
container.append(button);
|
||||
|
||||
@@ -263,7 +274,7 @@ export default {
|
||||
</core-form>
|
||||
|
||||
<template #footer>
|
||||
<button type="button" class="btn btn-primary" @click="statusNew ? handleSubmit('new') : handleSubmit('edit')">{{$p.t('ui', 'speichern')}}</button>
|
||||
<button type="button" class="btn btn-primary" :disabled="!this.hasSchreibrechte" @click="statusNew ? handleSubmit('new') : handleSubmit('edit')">{{$p.t('ui', 'speichern')}}</button>
|
||||
</template>
|
||||
|
||||
</bs-modal>
|
||||
|
||||
@@ -93,12 +93,12 @@ export default {
|
||||
<p>
|
||||
<strong class="text-muted">Email </strong>
|
||||
<span v-if="!headerData?.alias">
|
||||
<a :href="'mailto:'+headerData?.uid+'@'+domain">{{ headerData.uid }}@{{ domain }}</a>
|
||||
<a :href="'mailto:'+headerData?.uid+'@'+domain">{{headerData.uid}}@{{domain}}</a>
|
||||
</span>
|
||||
<span v-if="headerData?.alias">
|
||||
<a :href="'mailto:'+headerData?.alias+'@'+domain">{{ headerData.alias }}@{{ domain }}</a>
|
||||
<a :href="'mailto:'+headerData?.alias+'@'+domain">{{headerData.alias}}@{{domain}}</a>
|
||||
</span>
|
||||
<span v-if="headerData?.telefonklappe" class="mb-2"> | <strong class="text-muted">DW</strong> {{ headerData?.telefonklappe }}</span>
|
||||
<span v-if="headerData?.telefonklappe" class="mb-2"> | <strong class="text-muted">DW </strong>{{headerData?.telefonklappe}}</span>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -78,53 +78,39 @@ export default {
|
||||
handler: this.rowSelectionChanged
|
||||
},
|
||||
{
|
||||
/* event: 'tableBuilt',
|
||||
event: 'tableBuilt',
|
||||
handler: async() => {
|
||||
|
||||
await this.$p.loadCategory(['ui', 'global', 'vertrag']);
|
||||
await this.$p.loadCategory(['person', 'global', 'vertrag']);
|
||||
|
||||
let cm = this.$refs.table.tabulator.columnManager;
|
||||
|
||||
cm.getColumnByField('bezeichnung').component.updateDefinition({
|
||||
title: this.$p.t('ui', 'bezeichnung')
|
||||
cm.getColumnByField('person_id').component.updateDefinition({
|
||||
title: this.$p.t('person', 'person_id')
|
||||
});
|
||||
cm.getColumnByField('lehreinheit_id').component.updateDefinition({
|
||||
title: this.$p.t('ui', 'lehreinheit_id')
|
||||
|
||||
cm.getColumnByField('nachname').component.updateDefinition({
|
||||
title: this.$p.t('person', 'nachname')
|
||||
});
|
||||
cm.getColumnByField('betrag').component.updateDefinition({
|
||||
title: this.$p.t('ui', 'betrag')
|
||||
cm.getColumnByField('vorname').component.updateDefinition({
|
||||
title: this.$p.t('person', 'vorname')
|
||||
});
|
||||
cm.getColumnByField('status').component.updateDefinition({
|
||||
title: this.$p.t('global', 'status')
|
||||
cm.getColumnByField('aktiv').component.updateDefinition({
|
||||
title: this.$p.t('global', 'aktiv')
|
||||
});
|
||||
cm.getColumnByField('vertragstyp_bezeichnung').component.updateDefinition({
|
||||
title: this.$p.t('vertrag', 'vertragstyp')
|
||||
cm.getColumnByField('format_gebdatum').component.updateDefinition({
|
||||
title: this.$p.t('person', 'geburtsdatum')
|
||||
});
|
||||
cm.getColumnByField('format_vertragsdatum').component.updateDefinition({
|
||||
title: this.$p.t('vertrag', 'vertragsdatum')
|
||||
cm.getColumnByField('unternehmen').component.updateDefinition({
|
||||
title: this.$p.t('person', 'firma')
|
||||
});
|
||||
cm.getColumnByField('vertragsdatum').component.updateDefinition({
|
||||
title: this.$p.t('vertrag', 'vertragsdatum_iso')
|
||||
cm.getColumnByField('vertragsarten').component.updateDefinition({
|
||||
title: this.$p.t('vertrag', 'vertragsarten')
|
||||
});
|
||||
cm.getColumnByField('vertragsstunden').component.updateDefinition({
|
||||
title: this.$p.t('vertrag', 'vertragsstunden')
|
||||
cm.getColumnByField('ids').component.updateDefinition({
|
||||
title: this.$p.t('vertrag', 'idsDienstverhaeltnisse')
|
||||
});
|
||||
cm.getColumnByField('vertragsstunden_studiensemester_kurzbz').component.updateDefinition({
|
||||
title: this.$p.t('vertrag', 'vertragsstunden_studiensemester')
|
||||
});
|
||||
cm.getColumnByField('vertrag_id').component.updateDefinition({
|
||||
title: this.$p.t('ui', 'vertrag_id')
|
||||
});
|
||||
cm.getColumnByField('anmerkung').component.updateDefinition({
|
||||
title: this.$p.t('global', 'anmerkung')
|
||||
});
|
||||
cm.getColumnByField('isabgerechnet').component.updateDefinition({
|
||||
title: this.$p.t('vertrag', 'abgerechnet')
|
||||
});
|
||||
cm.getColumnByField('actions').component.updateDefinition({
|
||||
title: this.$p.t('global', 'aktionen')
|
||||
});
|
||||
} */
|
||||
}
|
||||
}
|
||||
],
|
||||
selectedPerson: null,
|
||||
@@ -147,14 +133,14 @@ export default {
|
||||
},
|
||||
template: `
|
||||
<div class="core-mitarbeiter h-100 d-flex flex-column">
|
||||
<h4>Vertragsverwaltung</h4>
|
||||
<h4>{{$p.t('vertrag', 'vertragsverwaltung')}}</h4>
|
||||
|
||||
<!-- filter: show only active employees-->
|
||||
<div class="justify-content-end py-3">
|
||||
<form-input
|
||||
container-class="form-switch"
|
||||
type="checkbox"
|
||||
label="nur aktive Mitarbeiter:innen anzeigen"
|
||||
:label="$p.t('vertrag/nurAktiveMaAnzeigen')"
|
||||
v-model="isFilterSet"
|
||||
@change="onSwitchChange"
|
||||
>
|
||||
|
||||
@@ -21,6 +21,10 @@ export default {
|
||||
cisRoot: {
|
||||
from: 'cisRoot'
|
||||
},
|
||||
hasSchreibrechte: {
|
||||
from: 'hasSchreibrechte',
|
||||
default: false
|
||||
},
|
||||
},
|
||||
props: {
|
||||
endpoint: {
|
||||
@@ -94,11 +98,17 @@ export default {
|
||||
button.className = 'btn btn-outline-secondary btn-action';
|
||||
button.innerHTML = '<i class="fa fa-xmark"></i>';
|
||||
button.title = this.$p.t('vertrag', 'deleteVertrag');
|
||||
button.addEventListener(
|
||||
'click',
|
||||
() =>
|
||||
this.actionDeleteContract(cell.getData().vertrag_id)
|
||||
);
|
||||
|
||||
if (!this.hasSchreibrechte) {
|
||||
button.disabled = true;
|
||||
button.classList.add('disabled');
|
||||
} else {
|
||||
button.addEventListener(
|
||||
'click',
|
||||
() =>
|
||||
this.actionDeleteContract(cell.getData().vertrag_id)
|
||||
);
|
||||
}
|
||||
container.append(button);
|
||||
|
||||
return container;
|
||||
@@ -443,17 +453,16 @@ export default {
|
||||
//methods for functionality ADDON KU
|
||||
printContract(){
|
||||
this.getMitarbeiter_uid().then(()=> {
|
||||
|
||||
//check if at least 2 contracts chosen
|
||||
if(this.arraySelectedContracts.length < 2) {
|
||||
this.$fhcAlert.alertError('Bitte mindestens 2 Verträge auswählen');
|
||||
this.$fhcAlert.alertError(this.$p.t('vertrag', 'alertMindestensZweiVertraege'));
|
||||
return;
|
||||
}
|
||||
|
||||
//check if status=="Genehmigt"
|
||||
const statusNotGenehmigtExists = this.arraySelectedContracts.some(([_, status]) => status !== 'Genehmigt');
|
||||
if(statusNotGenehmigtExists) {
|
||||
this.$fhcAlert.alertError('Alle Verträge müssen genehmigt sein');
|
||||
this.$fhcAlert.alertError(this.$p.t('vertrag', 'alertOnlyApprovedContracts'));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -507,42 +516,38 @@ export default {
|
||||
.catch(this.$fhcAlert.handleSystemError);
|
||||
},
|
||||
mounted() {
|
||||
//TODO(Manu) check if necessary
|
||||
/* this.$nextTick(() => {
|
||||
//necessary for reloading components Status and Details
|
||||
this.$nextTick(() => {
|
||||
this.$refs.table.tabulator.on("rowClick", (e, row) => {
|
||||
this.contractSelected = row.getData();
|
||||
console.log("selected Row ", this.contractSelected);
|
||||
});
|
||||
});*/
|
||||
});
|
||||
this.getFormattedDate();
|
||||
|
||||
},
|
||||
template: `
|
||||
<div class="core-contracts h-100 d-flex flex-column">
|
||||
|
||||
<!-- injected print functionality for KU Linz (printHonorarvertrag) -->
|
||||
<div v-if="arraySelectedContracts.length >= 2" class="container mt-2">
|
||||
<!-- injected print functionality for KU Linz (printHonorarvertrag) -->
|
||||
<template v-if="arraySelectedContracts.length >= 2" class="container mt-2">
|
||||
|
||||
<div v-for="item in arraySelectedContracts" :key="item[0]" class="row">
|
||||
<div class="col-md-6">
|
||||
<input
|
||||
class="form-control"
|
||||
type="text"
|
||||
:value="item[2] + ' | ' + item[1] + ' (ID: ' + item[0] + ')'"
|
||||
aria-label="readonly input example"
|
||||
readonly
|
||||
>
|
||||
</div>
|
||||
<div v-for="item in arraySelectedContracts" :key="item[0]">
|
||||
<input
|
||||
class="form-control"
|
||||
type="text"
|
||||
:value="item[2] + ' | ' + item[1] + ' (ID: ' + item[0] + ')'"
|
||||
aria-label="readonly input example"
|
||||
readonly
|
||||
>
|
||||
</div>
|
||||
|
||||
<div class="d-flex">
|
||||
<div class="ms-auto">
|
||||
</template>
|
||||
|
||||
<template v-if="arraySelectedContracts.length >= 2" class="d-flex">
|
||||
<div class="ms-auto mt-2">
|
||||
<button type="button" class="btn btn-secondary mx-1" @click="clearSelection()"><i class="fa fa-trash"></i></button>
|
||||
<button type="button" class="btn btn-primary o" @click="printContract()">Honorarvertrag drucken</button>
|
||||
<button :disabled="!this.hasSchreibrechte" type="button" class="btn btn-primary" @click="printContract()">{{$p.t('vertrag', 'printHonorarvertrag')}}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
<hr>
|
||||
|
||||
<!-- filter: open means no status abgerechnet yet-->
|
||||
@@ -698,7 +703,7 @@ export default {
|
||||
|
||||
<template #footer>
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal" @click="reload()">{{$p.t('ui', 'abbrechen')}}</button>
|
||||
<button type="button" class="btn btn-primary" @click="statusNew ? addNewContract() : updateContract(formData.vertrag_id)">{{$p.t('vertrag', 'vertragErstellen')}}</button>
|
||||
<button type="button" class="btn btn-primary" :disabled="!this.hasSchreibrechte" @click="statusNew ? addNewContract() : updateContract(formData.vertrag_id)">{{$p.t('vertrag', 'vertragErstellen')}}</button>
|
||||
</template>
|
||||
</bs-modal>
|
||||
</core-form>
|
||||
|
||||
@@ -16,13 +16,8 @@ export default {
|
||||
},
|
||||
provide() {
|
||||
return {
|
||||
// activeAddonBewerbung: this.activeAddons.split(';').includes('bewerbung'),
|
||||
// configGenerateAlias: this.config.generateAlias,
|
||||
// configChooseLayout: this.config.chooseLayout,
|
||||
configDomain: this.config.domain,
|
||||
//TODO(Manu) check permissions
|
||||
hasSchreibrechtAss: this.permissions['assistenz_schreibrechte'],
|
||||
hasAdminPermission: this.permissions['admin'],
|
||||
hasSchreibrechte: this.permissions['vertragsverwaltung_schreibrechte'],
|
||||
}
|
||||
},
|
||||
data() {
|
||||
@@ -45,10 +40,8 @@ export default {
|
||||
template: `
|
||||
<div>
|
||||
<div class="container-fluid overflow-hidden">
|
||||
<!-- DOM: {{configDomain}} alias {{configAlias}} layout {{configChooseLayout}}-->
|
||||
<div class="row h-100">
|
||||
<main class="col-md-8 ms-sm-auto col-lg-9 col-xl-10">
|
||||
<!--<div class="col-md-12">-->
|
||||
<vertical-split>
|
||||
<template #top>
|
||||
<MitarbeiterHeader :filterMa="filterMa" :vertragsarten="vertragsarten" @selectedPerson="selectPerson" />
|
||||
@@ -57,7 +50,7 @@ export default {
|
||||
<div class="col" v-if="person_id!=null">
|
||||
<mitarbeiter-details :person_id="person_id"></mitarbeiter-details>
|
||||
<h5>Verträge</h5>
|
||||
<Vertraege :endpoint="$fhcApi.factory.vertraege.person" :person_id="this.person_id" />
|
||||
<Vertraege :endpoint="$fhcApi.factory.vertraege.person" :person_id="this.person_id"/>
|
||||
</div>
|
||||
<template>
|
||||
</vertical-split>
|
||||
|
||||
@@ -31767,6 +31767,146 @@ array(
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'vertrag',
|
||||
'phrase' => 'vertragsverwaltung',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Vertragsverwaltung',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'Contract management',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'vertrag',
|
||||
'phrase' => 'nurAktiveMaAnzeigen',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Nur aktive Mitarbeiter:innen anzeigen',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'Show only active employees',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'vertrag',
|
||||
'phrase' => 'printHonorarvertrag',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Honorarvertrag drucken',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'Print fee agreement',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'vertrag',
|
||||
'phrase' => 'alertMindestensZweiVertraege',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Bitte mindestens 2 Verträge auswählen!',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'Please select at least 2 contracts!',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'vertrag',
|
||||
'phrase' => 'alertOnlyApprovedContracts',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Alle Verträge müssen genehmigt sein.',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'All contracts must be approved.',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'vertrag',
|
||||
'phrase' => 'vertragsarten',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Vertragsarten',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'Types of Contracts',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'vertrag',
|
||||
'phrase' => 'idsDienstverhaeltnisse',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'IDs Dienstverhältnis',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'IDs employment relationship',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
|
||||
);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user