mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-18 23:42:17 +00:00
Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -8,6 +8,10 @@ class InfoCenter extends VileSci_Controller
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
//
|
||||
$this->load->model('system/Filters_model', 'FiltersModel');
|
||||
|
||||
//
|
||||
$this->load->library('WidgetLib');
|
||||
}
|
||||
|
||||
@@ -16,17 +20,12 @@ class InfoCenter extends VileSci_Controller
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$listFiltersSent = array(
|
||||
'Sent 1' => 100,
|
||||
'Sent 2' => 200,
|
||||
'Sent 3' => 300
|
||||
);
|
||||
$listFiltersSent = array();
|
||||
$listFiltersNotSent = array();
|
||||
|
||||
$listFiltersNotSent = array(
|
||||
'Not Sent 1' => 400,
|
||||
'Not Sent 2' => 500,
|
||||
'Not Sent 3' => 600
|
||||
);
|
||||
$listFiltersSent = $this->_getFilterList('%InfoCenterSentApplication%');
|
||||
|
||||
$listFiltersNotSent = $this->_getFilterList('%InfoCenterNotSentApplication%');
|
||||
|
||||
$this->load->view(
|
||||
'system/infocenter/infocenter.php',
|
||||
@@ -36,4 +35,38 @@ class InfoCenter extends VileSci_Controller
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private function _getFilterList($filter_kurzbz)
|
||||
{
|
||||
$listFilters = array();
|
||||
|
||||
$personActionsArray = array(
|
||||
'app' => 'aufnahme',
|
||||
'dataset_name' => 'PersonActions',
|
||||
'person_id' => null,
|
||||
'default_filter' => false,
|
||||
'array_length(description, 1) >' => 0
|
||||
);
|
||||
|
||||
$this->FiltersModel->resetQuery();
|
||||
$this->FiltersModel->addSelect('filter_id, description');
|
||||
$this->FiltersModel->addOrder('sort', 'ASC');
|
||||
|
||||
$personActionsArray['filter_kurzbz ILIKE'] = $filter_kurzbz;
|
||||
$filters = $this->FiltersModel->loadWhere($personActionsArray);
|
||||
if (hasData($filters))
|
||||
{
|
||||
for ($filtersCounter = 0; $filtersCounter < count($filters->retval); $filtersCounter++)
|
||||
{
|
||||
$filter = $filters->retval[$filtersCounter];
|
||||
|
||||
$listFilters[$filter->filter_id] = $filter->description[0];
|
||||
}
|
||||
}
|
||||
|
||||
return $listFilters;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,8 +2,15 @@
|
||||
|
||||
if (! defined("BASEPATH")) exit("No direct script access allowed");
|
||||
|
||||
/**
|
||||
* Class InfocenterDetails
|
||||
* shows aufnahme-related data for a person and its prestudents, enables document and zgv checks,
|
||||
* displays and saves Notizen for a person, logs aufnahme-related actions for a person
|
||||
*/
|
||||
class InfocenterDetails extends VileSci_Controller
|
||||
{
|
||||
//app name for logging
|
||||
const APP = 'aufnahme';
|
||||
|
||||
/**
|
||||
* constructor
|
||||
@@ -11,20 +18,13 @@ class InfocenterDetails extends VileSci_Controller
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
// Load models
|
||||
|
||||
$this->load->model('person/person_model', 'PersonModel');
|
||||
$this->load->model('person/kontakt_model', 'KontaktModel');
|
||||
$this->load->model('person/adresse_model', 'AdresseModel');
|
||||
$this->load->model('person/notiz_model', 'NotizModel');
|
||||
$this->load->model('person/notizzuordnung_model', 'NotizzuordnungModel');
|
||||
$this->load->model('crm/prestudent_model', 'PrestudentModel');
|
||||
$this->load->model('crm/prestudentstatus_model', 'PrestudentstatusModel');
|
||||
$this->load->model('crm/akte_model', 'AkteModel');
|
||||
$this->load->model('crm/statusgrund_model', 'StatusgrundModel');
|
||||
$this->load->model('codex/nation_model', 'NationModel');
|
||||
$this->load->model('codex/zgv_model', 'ZgvModel');
|
||||
$this->load->model('codex/zgvmaster_model', 'ZgvmasterModel');
|
||||
$this->load->model('organisation/studiengang_model', 'StudiengangModel');
|
||||
|
||||
$this->load->library('DmsLib');
|
||||
$this->load->library('WidgetLib');
|
||||
@@ -33,53 +33,27 @@ class InfocenterDetails extends VileSci_Controller
|
||||
$this->load->helper('fhcauth');
|
||||
$this->load->helper('url');
|
||||
|
||||
$this->app = 'aufnahme';
|
||||
$this->uid = getAuthUID();
|
||||
if(!$this->uid)
|
||||
show_error('user authentification failed');
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
//TODO error page
|
||||
}
|
||||
|
||||
/**
|
||||
* loads all necessary Person data: Stammdaten (name, svnr, contact, ...), Dokumente, Logs and Notizen
|
||||
* @param $person_id
|
||||
* @return array
|
||||
*/
|
||||
private function __loadPersonData($person_id)
|
||||
{
|
||||
$person = $this->PersonModel->load($person_id);
|
||||
$stammdaten = $this->PersonModel->getPersonStammdaten($person_id);
|
||||
|
||||
if ($person->error)
|
||||
if ($stammdaten->error)
|
||||
{
|
||||
show_error($person->retval);
|
||||
show_error($stammdaten->retval);
|
||||
}
|
||||
|
||||
$staatsbuergerschaft = $this->NationModel->load($person->retval[0]->staatsbuergerschaft);
|
||||
if ($staatsbuergerschaft->error)
|
||||
{
|
||||
show_error($staatsbuergerschaft->retval);
|
||||
}
|
||||
|
||||
$geburtsnation = $this->NationModel->load($person->retval[0]->geburtsnation);
|
||||
if ($geburtsnation->error)
|
||||
{
|
||||
show_error($geburtsnation->retval);
|
||||
}
|
||||
|
||||
$this->KontaktModel->addDistinct();
|
||||
$this->KontaktModel->addSelect('kontakttyp, kontakt');
|
||||
$kontakte = $this->KontaktModel->loadWhere(array('person_id' => $person_id));
|
||||
|
||||
if ($kontakte->error)
|
||||
{
|
||||
show_error($kontakte->retval);
|
||||
}
|
||||
|
||||
$adresse = $this->AdresseModel->loadWhere(array('person_id' => $person_id));
|
||||
|
||||
if ($adresse->error)
|
||||
{
|
||||
show_error($adresse->retval);
|
||||
}
|
||||
if(!isset($stammdaten->retval))
|
||||
return null;
|
||||
|
||||
$dokumente = $this->AkteModel->loadWhere(array('person_id' => $person_id));
|
||||
|
||||
@@ -88,41 +62,30 @@ class InfocenterDetails extends VileSci_Controller
|
||||
show_error($dokumente->retval);
|
||||
}
|
||||
|
||||
$logs = $this->personloglib->getLogs($person_id, $this->app);
|
||||
$logs = $this->personloglib->getLogs($person_id, $this::APP);
|
||||
|
||||
foreach($logs as $log)
|
||||
$log->logdata = json_decode($log->logdata);
|
||||
$notizen = $this->NotizModel->getNotiz($person_id);
|
||||
|
||||
$this->NotizzuordnungModel->addSelect('notiz_id');
|
||||
$notizzuordnung = $this->NotizzuordnungModel->loadWhere(array('person_id' => $person_id));
|
||||
|
||||
if ($notizzuordnung->error)
|
||||
if ($notizen->error)
|
||||
{
|
||||
show_error($notizzuordnung->retval);
|
||||
}
|
||||
|
||||
$notizen = array();
|
||||
|
||||
foreach ($notizzuordnung->retval as $notiz_id)
|
||||
{
|
||||
$notiz = $this->NotizModel->load($notiz_id->notiz_id);
|
||||
$notizen[] = $notiz->retval[0];
|
||||
show_error($notizen->retval);
|
||||
}
|
||||
|
||||
$data = array (
|
||||
'person' => $person->retval[0],
|
||||
'staatsbuergerschaft' => $staatsbuergerschaft->retval[0],
|
||||
'geburtsnation' => $geburtsnation->retval[0],
|
||||
'kontakte' => $kontakte->retval,
|
||||
'adresse' => isset($adresse->retval[0]) ? $adresse->retval[0] : null,
|
||||
'stammdaten' => $stammdaten->retval,
|
||||
'dokumente' => $dokumente->retval,
|
||||
'logs' => $logs,
|
||||
'notizen' => $notizen
|
||||
'notizen' => $notizen->retval
|
||||
);
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* loads all necessary Prestudent data: Zgv data, Statusgruende
|
||||
* @param $person_id
|
||||
* @return array
|
||||
*/
|
||||
private function __loadPrestudentData($person_id)
|
||||
{
|
||||
$zgvpruefungen = [];
|
||||
@@ -136,117 +99,14 @@ class InfocenterDetails extends VileSci_Controller
|
||||
|
||||
foreach ($prestudenten->retval as $prestudent)
|
||||
{
|
||||
$zgvpruefung = new stdClass();
|
||||
$zgvpruefung->prestudent_id = $prestudent->prestudent_id;
|
||||
$prestudent = $this->PrestudentModel->getPrestudentWithZgv($prestudent->prestudent_id);
|
||||
|
||||
//Prestudentstatus
|
||||
$lastStatus = $this->PrestudentstatusModel->getLastStatus($prestudent->prestudent_id);
|
||||
|
||||
if ($lastStatus->error)
|
||||
if ($prestudent->error)
|
||||
{
|
||||
show_error($lastStatus->retval);
|
||||
show_error($prestudent->retval);
|
||||
}
|
||||
|
||||
$zgvpruefung->prestudentstatus = $lastStatus->retval[0];
|
||||
|
||||
// Studiengang
|
||||
$this->StudiengangModel->addSelect('kurzbzlang, bezeichnung, typ');//TODO need bezeichnung?
|
||||
$studiengang = $this->StudiengangModel->load($prestudent->studiengang_kz);
|
||||
|
||||
if ($studiengang->error)
|
||||
{
|
||||
show_error($studiengang->retval);
|
||||
}
|
||||
|
||||
$zgvpruefung->studiengang = $studiengang->retval[0]->kurzbzlang;
|
||||
$zgvpruefung->studiengangtyp = $studiengang->retval[0]->typ;
|
||||
|
||||
// Zgv
|
||||
if (isset($prestudent->zgv_code))
|
||||
{
|
||||
$this->ZgvModel->addSelect('zgv_code, zgv_bez');
|
||||
$zgv = $this->ZgvModel->load($prestudent->zgv_code);
|
||||
|
||||
if ($zgv->error)
|
||||
{
|
||||
show_error($zgv->retval);
|
||||
}
|
||||
|
||||
$zgvpruefung->zgv_code = $zgv->retval[0]->zgv_code;
|
||||
$zgvpruefung->zgv_bez = $zgv->retval[0]->zgv_bez;
|
||||
}
|
||||
else
|
||||
{
|
||||
$zgvpruefung->zgv_code = null;
|
||||
$zgvpruefung->zgv_bez = null;
|
||||
}
|
||||
$zgvpruefung->zgvort = $prestudent->zgvort;
|
||||
$zgvpruefung->zgvdatum = $prestudent->zgvdatum;
|
||||
|
||||
// Zgv Nation
|
||||
if (isset($prestudent->zgvnation))
|
||||
{
|
||||
$this->NationModel->addSelect('nation_code, kurztext');
|
||||
$zgvnation = $this->NationModel->load($prestudent->zgvnation);
|
||||
|
||||
if ($zgvnation->error)
|
||||
{
|
||||
show_error($zgvnation->retval);
|
||||
}
|
||||
|
||||
$zgvpruefung->zgvnation_code = $zgvnation->retval[0]->nation_code;
|
||||
$zgvpruefung->zgvnation_bez = $zgvnation->retval[0]->kurztext;
|
||||
}
|
||||
else
|
||||
{
|
||||
$zgvnation = null;
|
||||
$zgvpruefung->zgvnation_code = null;
|
||||
$zgvpruefung->zgvnation_bez = null;
|
||||
}
|
||||
|
||||
// Zgv Master
|
||||
if (isset($prestudent->zgvmas_code))
|
||||
{
|
||||
$this->ZgvmasterModel->addSelect('zgvmas_code, zgvmas_bez');
|
||||
$zgvmas = $this->ZgvmasterModel->load($prestudent->zgvmas_code);
|
||||
|
||||
if ($zgvmas->error)
|
||||
{
|
||||
show_error($zgvmas->retval);
|
||||
}
|
||||
$zgvpruefung->zgvmas_code = $zgvmas->retval[0]->zgvmas_code;
|
||||
$zgvpruefung->zgvmas_bez = $zgvmas->retval[0]->zgvmas_bez;
|
||||
}
|
||||
else
|
||||
{
|
||||
$zgvpruefung->zgvmas_code = null;
|
||||
$zgvpruefung->zgvmas_bez = null;
|
||||
}
|
||||
$zgvpruefung->zgvmaort = $prestudent->zgvmaort;
|
||||
$zgvpruefung->zgvmadatum = $prestudent->zgvmadatum;
|
||||
|
||||
// Zgv Master Nation
|
||||
if (isset($prestudent->zgvmanation))
|
||||
{
|
||||
$this->NationModel->addSelect('nation_code, kurztext');
|
||||
$zgvmanation = $this->NationModel->load($prestudent->zgvmanation);
|
||||
|
||||
if ($zgvmanation->error)
|
||||
{
|
||||
show_error($zgvmanation->retval);
|
||||
}
|
||||
|
||||
$zgvpruefung->zgvmanation_code = $zgvmanation->retval[0]->nation_code;
|
||||
$zgvpruefung->zgvmanation_bez = $zgvmanation->retval[0]->kurztext;
|
||||
}
|
||||
else
|
||||
{
|
||||
$zgvmanation = null;
|
||||
$zgvpruefung->zgvmanation_code = null;
|
||||
$zgvpruefung->zgvmanation_bez = null;
|
||||
}
|
||||
|
||||
$zgvpruefungen[] = $zgvpruefung;
|
||||
$zgvpruefungen[] = $prestudent->retval[0];
|
||||
}
|
||||
|
||||
//TODO replace with widget
|
||||
@@ -260,19 +120,33 @@ class InfocenterDetails extends VileSci_Controller
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* initialization function, gets person and prestudent data and loads the view with the data
|
||||
* @param $person_id
|
||||
*/
|
||||
public function showDetails($person_id)
|
||||
{
|
||||
if(!is_numeric($person_id))
|
||||
show_error('person id is not numeric!');
|
||||
$persondata = $this->__loadPersonData($person_id);
|
||||
if(!isset($persondata))
|
||||
show_error('person does not exist!');
|
||||
$prestudentdata = $this->__loadPrestudentData($person_id);
|
||||
$this->load->view('system/infocenter/infocenterDetails.php', array_merge($persondata, $prestudentdata));
|
||||
}
|
||||
|
||||
/**
|
||||
* saves if a document has been formal geprueft. saves current timestamp if checked as geprueft, or null if not.
|
||||
*/
|
||||
public function saveFormalGeprueft()
|
||||
{
|
||||
$akte_id = $this->input->get('akte_id');
|
||||
$formalgeprueft = $this->input->get('formal_geprueft');
|
||||
$person_id = $this->input->get('person_id');
|
||||
|
||||
if(!isset($akte_id) || !isset($formalgeprueft) || !isset($person_id))
|
||||
show_error('Parameters not set!');
|
||||
|
||||
$akte = $this->AkteModel->load($akte_id);
|
||||
|
||||
if ($akte->error)
|
||||
@@ -280,23 +154,28 @@ class InfocenterDetails extends VileSci_Controller
|
||||
show_error($akte->retval);
|
||||
}
|
||||
|
||||
$timestamp = (isset($formalgeprueft) && $formalgeprueft === 'true')? date('Y-m-d H:i:s') : null;
|
||||
$this->AkteModel->update($akte_id, array('formal_geprueft_amum' => $timestamp));
|
||||
$timestamp = ($formalgeprueft === 'true') ? date('Y-m-d H:i:s') : null;
|
||||
$result = $this->AkteModel->update($akte_id, array('formal_geprueft_amum' => $timestamp));
|
||||
|
||||
if ($result->error)
|
||||
{
|
||||
show_error($result->retval);
|
||||
}
|
||||
|
||||
//write person log
|
||||
$this->personloglib->log($person_id, 'Action', array('name' => 'Dokument formal geprüft', 'message' => 'Dokument'.$akte->titel.' formal geprüft, gesetzt auf '.(is_null($timestamp) ? 'NULL' : $timestamp), 'success' => 'true'), $this->app, null, $this->uid);
|
||||
|
||||
redirect('/system/infocenter/InfocenterDetails/showDetails/'.$person_id);
|
||||
$this->personloglib->log($person_id, 'Action', array('name' => 'Dokument formal geprüft', 'message' => 'Dokument '.$akte->titel.' formal geprüft, gesetzt auf '.(is_null($timestamp) ? 'NULL' : $timestamp), 'success' => 'true'), $this::APP, null, $this->uid);
|
||||
//redirect to start page
|
||||
redirect('/system/infocenter/InfocenterDetails/showDetails/'.$person_id.'#DokPruef');
|
||||
}
|
||||
|
||||
/**
|
||||
* saves a zgv for a prestudent. includes Ort, Datum, Nation for bachelor and master.
|
||||
* @param $prestudent_id
|
||||
*/
|
||||
public function saveZgvPruefung($prestudent_id)
|
||||
{
|
||||
// prestudentdata
|
||||
$studiensemester = $this->input->post('studiensemester') === 'null' ? null : $this->input->post('studiensemester');
|
||||
$ausbildungssemester = $this->input->post('ausbildungssemester');
|
||||
|
||||
// zgvdata
|
||||
$zgv_code = $this->input->post('zgv') === 'null' ? null : $this->input->post('zgv');
|
||||
$zgv_code = $this->input->post('zgv') === 'null' ? null : $this->input->post('zgv');//check for string null, in case dropdown changed to default value
|
||||
$zgvort = $this->input->post('zgvort');
|
||||
$zgvdatum = $this->input->post('zgvdatum');
|
||||
$zgvdatum = empty($zgvdatum) ? null : date_format(date_create($zgvdatum), 'Y-m-d');
|
||||
@@ -309,20 +188,6 @@ class InfocenterDetails extends VileSci_Controller
|
||||
$zgvmadatum = empty($zgvmadatum) ? null : date_format(date_create($zgvmadatum), 'Y-m-d');
|
||||
$zgvmanation_code = $this->input->post('zgvmanation') === 'null' ? null : $this->input->post('zgvmanation');
|
||||
|
||||
$lastStatus = $this->PrestudentstatusModel->getLastStatus($prestudent_id);
|
||||
|
||||
if ($lastStatus->error)
|
||||
{
|
||||
show_error($lastStatus->retval);
|
||||
}
|
||||
|
||||
$result = $this->PrestudentstatusModel->update(array('prestudent_id' => $prestudent_id, 'studiensemester_kurzbz' => $lastStatus->retval[0]->studiensemester_kurzbz, 'ausbildungssemester' => $lastStatus->retval[0]->ausbildungssemester), array('studiensemester_kurzbz' => $studiensemester, 'ausbildungssemester' => $ausbildungssemester));
|
||||
|
||||
if ($result->error)
|
||||
{
|
||||
show_error($result->retval);
|
||||
}
|
||||
|
||||
$result = $this->PrestudentModel->update($prestudent_id, array('zgv_code' => $zgv_code, 'zgvort' => $zgvort, 'zgvdatum' => $zgvdatum, 'zgvnation' => $zgvnation_code,
|
||||
'zgvmas_code' => $zgvmas_code, 'zgvmaort' => $zgvmaort, 'zgvmadatum' => $zgvmadatum, 'zgvmanation' => $zgvmanation_code));
|
||||
|
||||
@@ -331,15 +196,22 @@ class InfocenterDetails extends VileSci_Controller
|
||||
show_error($result->retval);
|
||||
}
|
||||
|
||||
//get extended Prestudent data for logging
|
||||
$logdata = $this->__getPersonAndStudiengangFromPrestudent($prestudent_id);
|
||||
|
||||
$this->personloglib->log($logdata['person_id'], 'Action', array('name' => 'Zgv gespeichert', 'message' => 'Zgv für Studiengang '.$logdata['studiengang_kurzbz'].' wurde gespeichert ', 'success' => 'true'), $this->app, null, $this->uid);
|
||||
$this->personloglib->log($logdata['person_id'], 'Action', array('name' => 'Zgv gespeichert', 'message' => 'Zgv für Studiengang '.$logdata['studiengang_kurzbz'].' wurde gespeichert', 'success' => 'true'), $this::APP, null, $this->uid);
|
||||
|
||||
$this->__redirectToStart($prestudent_id);
|
||||
$this->__redirectToStart($prestudent_id, 'ZgvPruef');
|
||||
}
|
||||
|
||||
/**
|
||||
* saves Absage for Prestudent including the reason for the Absage (statusgrund).
|
||||
* inserts Studiensemester and Ausbildungssemester for the new Absage of (chronologically) last status.
|
||||
* @param $prestudent_id
|
||||
*/
|
||||
public function saveAbsage($prestudent_id)
|
||||
{
|
||||
//TODO email messaging
|
||||
$statusgrund = $this->input->post('statusgrund');
|
||||
|
||||
$lastStatus = $this->PrestudentstatusModel->getLastStatus($prestudent_id);
|
||||
@@ -358,11 +230,16 @@ class InfocenterDetails extends VileSci_Controller
|
||||
|
||||
$logdata = $this->__getPersonAndStudiengangFromPrestudent($prestudent_id);
|
||||
|
||||
$this->personloglib->log($logdata['person_id'], 'Processstate', array('name' => 'Interessent abgewiesen', 'message' => 'Interessent wurde für Studiengang '.$logdata['studiengang_kurzbz'].' abgewiesen', 'success' => 'true'), $this->app, null, $this->uid);
|
||||
$this->personloglib->log($logdata['person_id'], 'Processstate', array('name' => 'Interessent abgewiesen', 'message' => 'Interessent wurde für Studiengang '.$logdata['studiengang_kurzbz'].' abgewiesen', 'success' => 'true'), $this::APP, null, $this->uid);
|
||||
|
||||
$this->__redirectToStart($prestudent_id);
|
||||
$this->__redirectToStart($prestudent_id, 'ZgvPruef');
|
||||
}
|
||||
|
||||
/**
|
||||
* saves Freigabe of a Prestudent to the Studiengang.
|
||||
* updates bestaetigtam and bestaetigtvon fields of the last status
|
||||
* @param $prestudent_id
|
||||
*/
|
||||
public function saveFreigabe($prestudent_id)
|
||||
{
|
||||
$lastStatus = $this->PrestudentstatusModel->getLastStatus($prestudent_id);
|
||||
@@ -382,11 +259,15 @@ class InfocenterDetails extends VileSci_Controller
|
||||
|
||||
$logdata = $this->__getPersonAndStudiengangFromPrestudent($prestudent_id);
|
||||
|
||||
$this->personloglib->log($logdata['person_id'], 'Processstate', array('name' => 'Interessent freigegeben', 'message' => 'Interessent wurde für Studiengang '.$logdata['studiengang_kurzbz'].' freigegeben', 'success' => 'true'), $this->app, null, $this->uid);
|
||||
$this->personloglib->log($logdata['person_id'], 'Processstate', array('name' => 'Interessent freigegeben', 'message' => 'Interessent wurde für Studiengang '.$logdata['studiengang_kurzbz'].' freigegeben', 'success' => 'true'), $this::APP, null, $this->uid);
|
||||
|
||||
$this->__redirectToStart($prestudent_id);
|
||||
$this->__redirectToStart($prestudent_id, 'ZgvPruef');
|
||||
}
|
||||
|
||||
/**
|
||||
* saves a new Notiz for a person
|
||||
* @param $person_id
|
||||
*/
|
||||
public function saveNotiz($person_id)
|
||||
{
|
||||
$titel = $this->input->post('notiztitel');
|
||||
@@ -395,11 +276,15 @@ class InfocenterDetails extends VileSci_Controller
|
||||
|
||||
$this->NotizModel->addNotizForPerson($person_id, $titel, $text, $erledigt, $this->uid);
|
||||
|
||||
$this->personloglib->log($person_id, 'Action', array('name' => 'Notiz hinzugefügt', 'message' => 'Notiz mit Titel '.$titel.' wurde hinzugefügt', 'success' => 'true'), $this->app, null, $this->uid);
|
||||
$this->personloglib->log($person_id, 'Action', array('name' => 'Notiz hinzugefügt', 'message' => 'Notiz mit Titel '.$titel.' wurde hinzugefügt', 'success' => 'true'), $this::APP, null, $this->uid);
|
||||
|
||||
redirect('/system/infocenter/InfocenterDetails/showDetails/'.$person_id);
|
||||
redirect('/system/infocenter/InfocenterDetails/showDetails/'.$person_id.'#NotizAkt');
|
||||
}
|
||||
|
||||
/**
|
||||
* Outputs content of an Akte, sends appropriate headers (so the document can be downloaded)
|
||||
* @param $akte_id
|
||||
*/
|
||||
public function outputAkteContent($akte_id)
|
||||
{
|
||||
$akte = $this->AkteModel->load($akte_id);
|
||||
@@ -416,22 +301,34 @@ class InfocenterDetails extends VileSci_Controller
|
||||
show_error($aktecontent->retval);
|
||||
}
|
||||
|
||||
header("Content-type: ".$akte->retval[0]->mimetype);
|
||||
header('Content-Disposition: attachment; filename="'.$akte->retval[0]->titel.'"');
|
||||
echo $aktecontent->retval;
|
||||
$this->output
|
||||
->set_status_header(200)
|
||||
->set_content_type($akte->retval[0]->mimetype, 'utf-8')
|
||||
->set_header('Content-Disposition: attachment; filename="'.$akte->retval[0]->titel.'"')
|
||||
->set_output($aktecontent->retval)
|
||||
->_display();
|
||||
}
|
||||
|
||||
private function __redirectToStart($prestudent_id)
|
||||
/**
|
||||
* helper function for redirecting to initial page for person from a prestudent-specific page
|
||||
* @param $prestudent_id
|
||||
* @param $section optional section of the page to go to
|
||||
*/
|
||||
private function __redirectToStart($prestudent_id, $section = '')
|
||||
{
|
||||
$this->PrestudentModel->addSelect('person_id');
|
||||
$person_id = $this->PrestudentModel->load($prestudent_id)->retval[0]->person_id;
|
||||
redirect('/system/infocenter/InfocenterDetails/showDetails/'.$person_id);
|
||||
redirect('/system/infocenter/InfocenterDetails/showDetails/'.$person_id.'#'.$section);
|
||||
}
|
||||
|
||||
/**
|
||||
* helper function retrieves personid and studiengang kurzbz from a prestudent id
|
||||
* @param $prestudent_id
|
||||
* @return array
|
||||
*/
|
||||
private function __getPersonAndStudiengangFromPrestudent($prestudent_id)
|
||||
{
|
||||
$this->PrestudentModel->addSelect('person_id, studiengang_kz');
|
||||
$prestudent = $this->PrestudentModel->load($prestudent_id);
|
||||
$prestudent = $this->PrestudentModel->getPrestudentWithZgv($prestudent_id);
|
||||
|
||||
if ($prestudent->error)
|
||||
{
|
||||
@@ -439,16 +336,7 @@ class InfocenterDetails extends VileSci_Controller
|
||||
}
|
||||
|
||||
$person_id = $prestudent->retval[0]->person_id;
|
||||
|
||||
$this->StudiengangModel->addSelect('kurzbzlang');//TODO need bezeichnung?
|
||||
$studiengang = $this->StudiengangModel->load($prestudent->retval[0]->studiengang_kz);
|
||||
|
||||
if ($studiengang->error)
|
||||
{
|
||||
show_error($studiengang->retval);
|
||||
}
|
||||
|
||||
$studiengang_kurzbz = $studiengang->retval[0]->kurzbzlang;
|
||||
$studiengang_kurzbz = $prestudent->retval[0]->studiengang;
|
||||
|
||||
return array('person_id' => $person_id, 'studiengang_kurzbz' => $studiengang_kurzbz);
|
||||
}
|
||||
|
||||
@@ -46,7 +46,8 @@ class PersonLogLib
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets Logs for a Person, filtered by Parameters
|
||||
* Gets Logs for a Person, filtered by parameters.
|
||||
* Requirements for retrieving log: name is set
|
||||
* @param int $person_id ID of the Person.
|
||||
* @param string $app Name of the App.
|
||||
* @param string $oe_kurzbz Organisations Unit.
|
||||
@@ -55,8 +56,23 @@ class PersonLogLib
|
||||
public function getLogs($person_id, $app = null, $oe_kurzbz = null)
|
||||
{
|
||||
$result = $this->ci->PersonLogModel->filterLog($person_id, $app, $oe_kurzbz);
|
||||
|
||||
if (isSuccess($result))
|
||||
return $result->retval;
|
||||
{
|
||||
$decoded_logs = array();
|
||||
//decode logs
|
||||
foreach ($result->retval as $log)
|
||||
{
|
||||
$log->logdata = json_decode($log->logdata);
|
||||
//requirement - logname not null
|
||||
if (isset($log->logdata->name))
|
||||
{
|
||||
$decoded_logs[] = $log;
|
||||
}
|
||||
}
|
||||
|
||||
return $decoded_logs;
|
||||
}
|
||||
else
|
||||
show_error($result->retval);
|
||||
}
|
||||
|
||||
@@ -192,4 +192,38 @@ class Prestudent_model extends DB_Model
|
||||
|
||||
return $this->execQuery(sprintf($query, is_array($prestudent_id) ? 'IN' : '='), array($prestudent_id));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* gets extended zgv data (with bezeichnung) for a prestudent
|
||||
* includes last status, Studiengang, zgv, zgv master
|
||||
* @param $prestudent_id
|
||||
*/
|
||||
public function getPrestudentWithZgv($prestudent_id)
|
||||
{
|
||||
$this->addSelect('tbl_prestudent.*, tbl_studiengang.kurzbzlang as studiengang, tbl_studiengang.typ as studiengangtyp, tbl_zgv.zgv_code, tbl_zgv.zgv_bez,
|
||||
tbl_prestudent.zgvort, tbl_prestudent.zgvdatum, tbl_prestudent.zgvnation as zgvnation_code,
|
||||
tbl_zgvmaster.zgvmas_code, tbl_zgvmaster.zgvmas_bez, tbl_prestudent.zgvmaort, tbl_prestudent.zgvmadatum, tbl_prestudent.zgvmanation as zgvmanation_code');
|
||||
$this->addJoin('public.tbl_studiengang', 'studiengang_kz', 'LEFT');
|
||||
$this->addJoin('bis.tbl_zgv', 'zgv_code', 'LEFT');
|
||||
$this->addJoin('bis.tbl_zgvmaster', 'zgvmas_code', 'LEFT');
|
||||
|
||||
$prestudent = $this->load($prestudent_id);
|
||||
if($prestudent->error)
|
||||
return error($prestudent->retval);
|
||||
|
||||
//Prestudentstatus
|
||||
$this->load->model('crm/prestudentstatus_model', 'PrestudentstatusModel');
|
||||
$lastStatus = $this->PrestudentstatusModel->getLastStatus($prestudent_id);
|
||||
|
||||
if ($lastStatus->error)
|
||||
{
|
||||
return error($lastStatus->retval);
|
||||
}
|
||||
|
||||
$prestudent->retval[0]->prestudentstatus = $lastStatus->retval[0];
|
||||
|
||||
return success($prestudent->retval);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -131,5 +131,18 @@ class Notiz_model extends DB_Model
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* gets all Notizen for a person
|
||||
* @param $person_id
|
||||
*/
|
||||
public function getNotiz($person_id)
|
||||
{
|
||||
// Join with the table public.tbl_notizzuordnung using notiz_id
|
||||
$this->addJoin('public.tbl_notizzuordnung', 'notiz_id');
|
||||
|
||||
return $this->loadWhere(array('person_id' => $person_id));
|
||||
}
|
||||
// ------------------------------------------------------------------------------------------------------
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -152,4 +152,46 @@ class Person_model extends DB_Model
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* gets Stammdaten for a person, including contactdata in textform from other tables
|
||||
* nation, kontakt, adresse
|
||||
* @param $person_id
|
||||
* @return array
|
||||
*/
|
||||
public function getPersonStammdaten($person_id)
|
||||
{
|
||||
$this->addSelect('tbl_person.*, s.kurztext as staatsbuergerschaft, g.kurztext as geburtsnation');
|
||||
$this->addJoin('bis.tbl_nation s', 'tbl_person.staatsbuergerschaft = s.nation_code', 'LEFT');
|
||||
$this->addJoin('bis.tbl_nation g', 'tbl_person.geburtsnation = g.nation_code', 'LEFT');
|
||||
|
||||
$person = $this->load($person_id);
|
||||
|
||||
if($person->error)
|
||||
return error($person->retval);
|
||||
|
||||
//return null if not found
|
||||
if(count($person->retval) < 1)
|
||||
return success(null);
|
||||
|
||||
$this->load->model('person/kontakt_model', 'KontaktModel');
|
||||
$this->load->model('person/adresse_model', 'AdresseModel');
|
||||
|
||||
$this->KontaktModel->addDistinct();
|
||||
$this->KontaktModel->addSelect('kontakttyp, anmerkung, kontakt, zustellung');
|
||||
$this->KontaktModel->addOrder('kontakttyp');
|
||||
$kontakte = $this->KontaktModel->loadWhere(array('person_id' => $person_id));
|
||||
if($kontakte->error)
|
||||
return error($kontakte->retval);
|
||||
|
||||
$adressen = $this->AdresseModel->loadWhere(array('person_id' => $person_id));
|
||||
if($adressen->error)
|
||||
return error($adressen->retval);
|
||||
|
||||
$stammdaten = $person->retval[0];
|
||||
$stammdaten->kontakte = $kontakte->retval;
|
||||
$stammdaten->adressen = $adressen->retval;
|
||||
|
||||
return success($stammdaten);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,27 +1,71 @@
|
||||
<?php
|
||||
|
||||
$filterWidgetArray = array(
|
||||
'query' => '
|
||||
SELECT *
|
||||
FROM (
|
||||
SELECT p.person_id AS "PersonId",
|
||||
p.nachname AS "Nachname",
|
||||
p.vorname AS "Vorname",
|
||||
k.kontakt AS "Email",
|
||||
p.aktiv AS "Aktiv",
|
||||
k.updateamum AS "UpdateDate"
|
||||
FROM public.tbl_person p INNER JOIN public.tbl_kontakt k USING(person_id)
|
||||
p.nachname AS "Nachname",
|
||||
p.gebdatum AS "Gebdatum",
|
||||
(SELECT zeitpunkt
|
||||
FROM system.tbl_log
|
||||
WHERE app = \'aufnahme\'
|
||||
AND person_id = p.person_id
|
||||
ORDER BY zeitpunkt DESC
|
||||
LIMIT 1) AS "LastAction",
|
||||
(SELECT insertvon
|
||||
FROM system.tbl_log
|
||||
WHERE app = \'aufnahme\'
|
||||
AND person_id = p.person_id
|
||||
ORDER BY zeitpunkt DESC
|
||||
LIMIT 1) AS "User/Operator",
|
||||
(SELECT pss.studiensemester_kurzbz
|
||||
FROM public.tbl_prestudentstatus pss
|
||||
INNER JOIN public.tbl_prestudent ps USING(prestudent_id)
|
||||
WHERE pss.status_kurzbz = \'Interessent\'
|
||||
AND pss.bestaetigtam IS NULL
|
||||
AND pss.bestaetigtvon IS NULL
|
||||
AND ps.person_id = p.person_id
|
||||
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
|
||||
LIMIT 1) AS "Studiensemester",
|
||||
(SELECT pss.bewerbung_abgeschicktamum
|
||||
FROM public.tbl_prestudentstatus pss
|
||||
INNER JOIN public.tbl_prestudent ps USING(prestudent_id)
|
||||
WHERE pss.status_kurzbz = \'Interessent\'
|
||||
AND pss.bestaetigtam IS NULL
|
||||
AND pss.bestaetigtvon IS NULL
|
||||
AND ps.person_id = p.person_id
|
||||
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
|
||||
LIMIT 1) AS "SendDate"
|
||||
FROM public.tbl_person p
|
||||
WHERE p.aktiv = TRUE
|
||||
AND p.person_id = k.person_id
|
||||
AND k.kontakttyp = \'email\'
|
||||
AND p.person_id < 1000
|
||||
AND p.person_id IN (
|
||||
SELECT person_id
|
||||
FROM public.tbl_prestudent
|
||||
INNER JOIN public.tbl_prestudentstatus USING(prestudent_id)
|
||||
WHERE status_kurzbz = \'Interessent\'
|
||||
AND bestaetigtam IS NULL
|
||||
AND bestaetigtvon IS NULL)
|
||||
GROUP BY 1, 2, 4, 5, 6, 7
|
||||
ORDER BY "LastAction" DESC
|
||||
) tbl_infocenter
|
||||
WHERE "Studiensemester" IN (
|
||||
SELECT studiensemester_kurzbz
|
||||
FROM public.tbl_studiensemester
|
||||
WHERE (NOW() >= start AND NOW() <= ende)
|
||||
OR start > NOW()
|
||||
)
|
||||
',
|
||||
'hideHeader' => true,
|
||||
'hideSave' => true,
|
||||
'hideHeader' => false,
|
||||
'hideSave' => false,
|
||||
'additionalColumns' => array('Details'),
|
||||
'formatRaw' => function($fieldName, $fieldValue, $datasetRaw) {
|
||||
|
||||
$link = '<a href="%s%s" target="_blank">Details</a>';
|
||||
|
||||
if ($fieldName == 'Details')
|
||||
{
|
||||
$link = '<a href="%s%s" target="_blank">Details</a>';
|
||||
|
||||
$datasetRaw->{$fieldName} = sprintf(
|
||||
$link,
|
||||
base_url('index.ci.php/system/infocenter/infocenterDetails/showDetails/'),
|
||||
@@ -29,6 +73,30 @@
|
||||
);
|
||||
}
|
||||
|
||||
if ($fieldName == 'SendDate')
|
||||
{
|
||||
if ($datasetRaw->{$fieldName} == '1970.01.01 01:00:00')
|
||||
{
|
||||
$datasetRaw->{$fieldName} = 'Not sent';
|
||||
}
|
||||
}
|
||||
|
||||
if ($fieldName == 'LastAction')
|
||||
{
|
||||
if ($datasetRaw->{$fieldName} == '1970.01.01 01:00:00')
|
||||
{
|
||||
$datasetRaw->{$fieldName} = 'Not logged';
|
||||
}
|
||||
}
|
||||
|
||||
if ($fieldName == 'User/Operator')
|
||||
{
|
||||
if ($datasetRaw->{$fieldName} == '')
|
||||
{
|
||||
$datasetRaw->{$fieldName} = 'NA';
|
||||
}
|
||||
}
|
||||
|
||||
return $datasetRaw;
|
||||
}
|
||||
);
|
||||
@@ -41,9 +109,9 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
$filterWidgetArray['app'] = 'core';
|
||||
$filterWidgetArray['datasetName'] = 'kontakts';
|
||||
$filterWidgetArray['filterKurzbz'] = 'This filter filters';
|
||||
$filterWidgetArray['app'] = 'aufnahme';
|
||||
$filterWidgetArray['datasetName'] = 'PersonActions';
|
||||
$filterWidgetArray['filterKurzbz'] = 'InfoCenterNotSentApplicationAll';
|
||||
}
|
||||
|
||||
echo $this->widgetlib->widget('FilterWidget', $filterWidgetArray);
|
||||
|
||||
@@ -1,269 +1,499 @@
|
||||
<?php
|
||||
$this->load->view('templates/header', array('title' => 'InfocenterDetails', 'datepicker' => true, 'datepickerclass' => 'dateinput'/*, 'tablesort' => true, 'tableid' => 't1'*/));
|
||||
$this->load->view('templates/FHC-Header', array('title' => 'InfocenterDetails', 'jquery3' => true, 'jqueryui' => true, 'bootstrap' => true, 'fontawesome' => true, 'datatables' => true, 'customCSSs' => 'vendor/BlackrockDigital/startbootstrap-sb-admin-2/dist/css/sb-admin-2.min.css'/*, 'datepickerclass' => 'dateinput'*/));
|
||||
?>
|
||||
<body>
|
||||
<h2>Infocenter - Person Details</h2>
|
||||
|
||||
<fieldset>
|
||||
<legend>Stammdaten</legend>
|
||||
<table>
|
||||
<tr>
|
||||
<td>Vorname: <?php echo $person->vorname ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Nachname: <?php echo $person->nachname ?></td>
|
||||
</tr>
|
||||
<div id="page-wrapper">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<h3 class="page-header">Infocenter - Person Details</h3>
|
||||
</div>
|
||||
</div>
|
||||
<section>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading text-center"><h4>Stammdaten</h4></div>
|
||||
<div class="panel-body">
|
||||
<!-- </div>
|
||||
<div class="row">-->
|
||||
<div class="col-md-6">
|
||||
<table class="table">
|
||||
<tr>
|
||||
<td><strong>Vorname</strong></td>
|
||||
<td><?php echo $stammdaten->vorname ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Nachname</strong></td>
|
||||
<td>
|
||||
<?php echo $stammdaten->nachname ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Geburtsdatum</strong></td>
|
||||
<td>
|
||||
<?php echo date_format(date_create($stammdaten->gebdatum), 'd.m.Y') ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Sozialversicherungsnr</strong></td>
|
||||
<td>
|
||||
<?php echo $stammdaten->svnr ?></td>
|
||||
<tr>
|
||||
<td><strong>Staatsbürgerschaft</strong></td>
|
||||
<td>
|
||||
<?php echo $stammdaten->staatsbuergerschaft ?></td>
|
||||
<tr>
|
||||
<td><strong>Geschlecht</strong></td>
|
||||
<td>
|
||||
<?php echo $stammdaten->geschlecht ?></td>
|
||||
<tr>
|
||||
<td><strong>Geburtsnation</strong></td>
|
||||
<td>
|
||||
<?php echo $stammdaten->geburtsnation ?></td>
|
||||
<tr>
|
||||
<td><strong>Geburtsort</strong></td>
|
||||
<td><?php echo $stammdaten->gebort ?></td>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<tr>
|
||||
<td>Geburtsdatum: <?php echo date_format(date_create($person->gebdatum), 'd.m.Y') ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Sozialversicherungsnr: <?php echo $person->svnr ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Staatsbürgerschaft: <?php echo $staatsbuergerschaft->kurztext ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Geschlecht: <?php echo $person->geschlecht ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Geburtsnation: <?php echo $geburtsnation->kurztext ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Geburtsort: <?php echo $person->gebort ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center">Kontaktdaten</td>
|
||||
</tr>
|
||||
<?php
|
||||
foreach ($kontakte as $kontakt):
|
||||
?>
|
||||
<tr>
|
||||
<td><?php
|
||||
echo ucfirst($kontakt->kontakttyp).': ';
|
||||
if ($kontakt->kontakttyp == 'email'):
|
||||
?>
|
||||
<a href="mailto:<?php echo $kontakt->kontakt; ?>" target="_top">
|
||||
<?php
|
||||
endif;
|
||||
echo $kontakt->kontakt;
|
||||
if ($kontakt->kontakttyp == 'email'):
|
||||
?>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php
|
||||
endforeach
|
||||
?>
|
||||
<tr>
|
||||
<td>
|
||||
Adresse: <?php echo isset($adresse) ? $adresse->strasse.", ".$adresse->plz." ".$adresse->ort : "" ?>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>Dokumentenprüfung</legend>
|
||||
<table border="1"><!-- id="t1" class = "tablesorter"-->
|
||||
<thead>
|
||||
<th>Name</th>
|
||||
<th>Typ</th>
|
||||
<th>Uploaddatum</th>
|
||||
<th>formal geprüft</th>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php
|
||||
foreach ($dokumente as $dokument):
|
||||
$geprueft = (isset($dokument->formal_geprueft_amum)) ? "checked" : "";
|
||||
?>
|
||||
<tr>
|
||||
<td><a href="../outputAkteContent/<?php echo $dokument->akte_id ?>"><?php echo $dokument->titel ?></a>
|
||||
</td>
|
||||
<td><?php echo $dokument->dokument_kurzbz ?></td>
|
||||
<td><?php echo date_format(date_create($dokument->erstelltam), 'd.m.Y') ?></td>
|
||||
<td>
|
||||
<input type="checkbox" <?php echo $geprueft ?>
|
||||
onclick="onFormalGeprueftChange(this.checked, <?php echo $dokument->akte_id ?>, <?php echo $person->person_id ?>)"/>
|
||||
<?php
|
||||
echo $dokument->formal_geprueft_amum;
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</fieldset>
|
||||
<?php foreach ($zgvpruefungen as $zgvpruefung): ?>
|
||||
<form method="post" action="../saveZgvPruefung/<?php echo $zgvpruefung->prestudent_id ?>">
|
||||
<fieldset>
|
||||
<legend>ZGV Prüfung - Studiengang <?php echo $zgvpruefung->studiengang ?></legend>
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<label>Letzter Status: </label>
|
||||
<?php echo $zgvpruefung->prestudentstatus->status_kurzbz?>
|
||||
</td>
|
||||
<td>
|
||||
<label>Freigegeben an Studiengang: </label>
|
||||
<?php echo isset($zgvpruefung->prestudentstatus->bestaetigtam) ? "ja" : "nein" ?>
|
||||
</td>
|
||||
<td>
|
||||
<label>Studiensemester: </label>
|
||||
<?php echo $this->widgetlib->widget(
|
||||
'Studiensemester_widget',
|
||||
array(DropdownWidget::SELECTED_ELEMENT => $zgvpruefung->prestudentstatus->studiensemester_kurzbz),
|
||||
array('name' => 'studiensemester', 'id' => 'studiensemester')
|
||||
); ?>
|
||||
</td>
|
||||
<td>
|
||||
<label>Ausbildungssemester: </label>
|
||||
<input type="text" name="ausbildungssemester" value="<?php echo $zgvpruefung->prestudentstatus->ausbildungssemester ?>"
|
||||
<?php echo $zgvpruefung->prestudentstatus->ausbildungssemester ?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<label>ZGV: </label>
|
||||
<?php echo $this->widgetlib->widget(
|
||||
'Zgv_widget',
|
||||
array(DropdownWidget::SELECTED_ELEMENT => $zgvpruefung->zgv_code),
|
||||
array('name' => 'zgv', 'id' => 'zgv')
|
||||
); ?>
|
||||
</td>
|
||||
<td>
|
||||
<label>ZGV Ort: </label>
|
||||
<input type="text" value="<?php echo $zgvpruefung->zgvort ?>" name="zgvort">
|
||||
</td>
|
||||
<td>
|
||||
<label>ZGV Datum: </label>
|
||||
<input type="text" class="dateinput"
|
||||
value="<?php echo empty($zgvpruefung->zgvdatum) ? "" : date_format(date_create($zgvpruefung->zgvdatum), 'd.m.Y') ?>"
|
||||
name="zgvdatum">
|
||||
</td>
|
||||
<td>
|
||||
<label>ZGV Nation: </label>
|
||||
<?php echo $this->widgetlib->widget(
|
||||
'Nation_widget',
|
||||
array(DropdownWidget::SELECTED_ELEMENT => $zgvpruefung->zgvnation_code),
|
||||
array('name' => 'zgvnation', 'id' => 'zgvnation')
|
||||
); ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php if($zgvpruefung->studiengangtyp === 'm') :?>
|
||||
<tr>
|
||||
<td>
|
||||
<label>ZGV Master: </label>
|
||||
<?php echo $this->widgetlib->widget(
|
||||
'Zgvmaster_widget',
|
||||
array(DropdownWidget::SELECTED_ELEMENT => $zgvpruefung->zgvmas_code),
|
||||
array('name' => 'zgvmas', 'id' => 'zgvmas')
|
||||
); ?>
|
||||
</td>
|
||||
<td>
|
||||
<label>ZGV Master Ort: </label>
|
||||
<input type="text" value="<?php echo $zgvpruefung->zgvmaort ?>" name="zgvmaort">
|
||||
</td>
|
||||
<td>
|
||||
<label>ZGV Master Datum: </label>
|
||||
<input type="text" class="dateinput"
|
||||
value="<?php echo empty($zgvpruefung->zgvmadatum) ? "" : date_format(date_create($zgvpruefung->zgvmadatum), 'd.m.Y') ?>"
|
||||
name="zgvmadatum">
|
||||
</td>
|
||||
<td>
|
||||
<label>ZGV Master Nation: </label>
|
||||
<?php echo $this->widgetlib->widget(
|
||||
'Nation_widget',
|
||||
array(DropdownWidget::SELECTED_ELEMENT => $zgvpruefung->zgvmanation_code),
|
||||
array('name' => 'zgvmanation', 'id' => 'zgvmanation')
|
||||
); ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endif; ?>
|
||||
<tr>
|
||||
<td>
|
||||
<input type="submit" value="Speichern"/>
|
||||
</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</fieldset>
|
||||
</form>
|
||||
<!--<br />
|
||||
Berufstätigkeit:-->
|
||||
<div class="col-md-6">
|
||||
<table class="table table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan="4" class="text-center">Kontakte</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="text-center">Typ</th>
|
||||
<th class="text-center">Kontakt</th>
|
||||
<th class="text-center">Zustellung</th>
|
||||
<th class="text-center">Anmerkung</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach ($stammdaten->kontakte as $kontakt): ?>
|
||||
|
||||
<?php /*echo $this->widgetlib->widget(
|
||||
'Statusgrund_widget',
|
||||
array(),
|
||||
array('name' => 'absage', 'id' => 'absage')
|
||||
); */
|
||||
//Prestudenten cannot be abgewiesen or freigegeben if already done
|
||||
if(!isset($zgvpruefung->prestudentstatus->bestaetigtam) && $zgvpruefung->prestudentstatus->status_kurzbz != 'Abgewiesener') :
|
||||
?>
|
||||
<form method="post" action="../saveAbsage/<?php echo $zgvpruefung->prestudent_id ?>">
|
||||
<label>Absagegrund:</label>
|
||||
<select name="statusgrund">
|
||||
<?php foreach ($statusgruende as $statusgrund): ?>
|
||||
<option value="<?php echo $statusgrund->statusgrund_id ?>"><?php echo $statusgrund->bezeichnung_mehrsprachig[0] ?></option>
|
||||
<?php endforeach ?>
|
||||
</select>
|
||||
<button type="submit">Absage</button>
|
||||
</form>
|
||||
<a href="../saveFreigabe/<?php echo $zgvpruefung->prestudent_id ?>">
|
||||
<button>Freigabe an Studiengang</button>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
<?php endforeach ?>
|
||||
<table border="1">
|
||||
<thead>
|
||||
<th>Datum</th>
|
||||
<th>Aktivität</th>
|
||||
<th>User</th>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach ($logs as $log): ?>
|
||||
<tr>
|
||||
<td><?php echo date_format(date_create($log->zeitpunkt), 'd.m.Y H:i:s') ?></td>
|
||||
<td><?php echo $log->logdata->name ?></td>
|
||||
<td><?php echo $log->insertvon ?></td>
|
||||
</tr>
|
||||
<?php endforeach ?>
|
||||
</tbody>
|
||||
</table>
|
||||
<tr>
|
||||
<td><?php echo ucfirst($kontakt->kontakttyp); ?></td>
|
||||
<td>
|
||||
<?php if ($kontakt->kontakttyp === 'email'): ?>
|
||||
<a href="mailto:<?php echo $kontakt->kontakt; ?>" target="_top">
|
||||
<?php
|
||||
endif;
|
||||
echo $kontakt->kontakt;
|
||||
if ($kontakt->kontakttyp === 'email'):
|
||||
?>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
</td>
|
||||
<td class="text-center"><?php echo $kontakt->zustellung === true ? 'X' : ''; ?></td>
|
||||
<td><?php echo $kontakt->anmerkung; ?></td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
<?php foreach ($stammdaten->adressen as $adresse): ?>
|
||||
<tr>
|
||||
<td>
|
||||
Adresse
|
||||
</td>
|
||||
<td>
|
||||
<?php echo isset($adresse) ? $adresse->strasse.', '.$adresse->plz.' '.$adresse->ort : '' ?>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<?php echo $adresse->zustelladresse === true ? 'X' : '' ?>
|
||||
</td>
|
||||
<td>
|
||||
<?php echo ($adresse->heimatadresse === true ? 'Heimatadresse' : '').($adresse->heimatadresse === true && $adresse->rechnungsadresse === true ? ', ' : '').($adresse->rechnungsadresse === true ? 'Rechnungsadresse' : ''); ?>
|
||||
</td>
|
||||
<tr/>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="panel panel-default">
|
||||
|
||||
<table border="1">
|
||||
<thead>
|
||||
<th>Datum</th>
|
||||
<th>Notiz</th>
|
||||
<th>User</th>
|
||||
</thead>
|
||||
<tbody>
|
||||
<a name="DokPruef"></a>
|
||||
<div class="panel-heading text-center"><h4>Dokumentenprüfung</h4></div>
|
||||
<div class="panel-body">
|
||||
<div class="col-md-12">
|
||||
<table id="doctable" class="table table-striped table-bordered">
|
||||
<thead>
|
||||
<th>Name</th>
|
||||
<th>Typ</th>
|
||||
<th>Uploaddatum</th>
|
||||
<th>formal geprüft</th>
|
||||
<th>nachzureichen</th>
|
||||
<th>nachgereicht am</th>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php
|
||||
foreach ($dokumente as $dokument):
|
||||
$geprueft = isset($dokument->formal_geprueft_amum) ? "checked" : "";
|
||||
?>
|
||||
<tr>
|
||||
<td>
|
||||
<a href="../outputAkteContent/<?php echo $dokument->akte_id ?>"><?php echo empty($dokument->titel) ? $dokument->bezeichnung : $dokument->titel ?></a>
|
||||
</td>
|
||||
<td><?php echo $dokument->dokument_kurzbz ?></td>
|
||||
<td><?php echo date_format(date_create($dokument->erstelltam), 'd.m.Y') ?></td>
|
||||
<td>
|
||||
<input type="checkbox"
|
||||
id="prchkbx<?php echo $dokument->akte_id ?>" <?php echo $geprueft ?> />
|
||||
<?php echo isset($dokument->formal_geprueft_amum) ? date_format(date_create($dokument->formal_geprueft_amum), 'd.m.Y') : ''; ?>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<?php echo $dokument->nachgereicht === true ? 'X' : ''; ?>
|
||||
</td>
|
||||
<td>
|
||||
<?php echo isset($dokument->nachgereicht_am) ? date_format(date_create($dokument->nachgereicht_am), 'd.m.Y') : ''; ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading text-center">
|
||||
<a name="ZgvPruef"></a>
|
||||
<h4>ZGV-Prüfung</h4>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div class="panel-group">
|
||||
<?php
|
||||
foreach ($zgvpruefungen as $zgvpruefung): ?>
|
||||
|
||||
<?php foreach ($notizen as $notiz): ?>
|
||||
<tr>
|
||||
<td><?php echo date_format(date_create($notiz->insertamum), 'd.m.Y H:i:s') ?></td>
|
||||
<td><?php echo $notiz->titel ?></td>
|
||||
<td><?php echo $notiz->verfasser_uid ?></td>
|
||||
</tr>
|
||||
<?php endforeach ?>
|
||||
</tbody>
|
||||
</table>
|
||||
<form method="post" action="../saveNotiz/<?php echo $person->person_id ?>">
|
||||
<label>Notiz:</label>
|
||||
<br />
|
||||
Titel: <input type="text" name="notiztitel" />
|
||||
<br />
|
||||
Text: <textarea name="notiz" rows="10" cols="32"></textarea>
|
||||
<button type="submit">Speichern</button>
|
||||
</form>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
Studiengang <?php echo $zgvpruefung->studiengang ?>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<form method="post"
|
||||
action="../saveZgvPruefung/<?php echo $zgvpruefung->prestudent_id ?>">
|
||||
<div class="row">
|
||||
<div class="col-md-5">
|
||||
<div class="form-group">
|
||||
<label>Freigegeben an Studiengang: </label>
|
||||
<?php echo isset($zgvpruefung->prestudentstatus->bestaetigtam) ? "ja" : "nein" ?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<div class="form-group">
|
||||
<label>Letzter Status: </label>
|
||||
<?php echo $zgvpruefung->prestudentstatus->status_kurzbz ?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<div class="form-group">
|
||||
<label>Studiensemester: </label>
|
||||
<?php echo $zgvpruefung->prestudentstatus->studiensemester_kurzbz ?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<div class="form-group">
|
||||
<label>Ausbildungssemester: </label>
|
||||
<?php echo $zgvpruefung->prestudentstatus->ausbildungssemester ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-5">
|
||||
<div class="form-group">
|
||||
<label>ZGV: </label>
|
||||
<?php echo $this->widgetlib->widget(
|
||||
'Zgv_widget',
|
||||
array(DropdownWidget::SELECTED_ELEMENT => $zgvpruefung->zgv_code),
|
||||
array('name' => 'zgv', 'id' => 'zgv', 'class' => 'form-control')
|
||||
); ?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<div class="form-group">
|
||||
<label>ZGV Ort: </label>
|
||||
<input type="text" class="form-control"
|
||||
value="<?php echo $zgvpruefung->zgvort ?>"
|
||||
name="zgvort">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<div class="form-group">
|
||||
<label>ZGV Datum: </label>
|
||||
<input type="text" class="dateinput form-control"
|
||||
value="<?php echo empty($zgvpruefung->zgvdatum) ? "" : date_format(date_create($zgvpruefung->zgvdatum), 'd.m.Y') ?>"
|
||||
name="zgvdatum">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<div class="form-group">
|
||||
<label>ZGV Nation: </label>
|
||||
<?php echo $this->widgetlib->widget(
|
||||
'Nation_widget',
|
||||
array(DropdownWidget::SELECTED_ELEMENT => $zgvpruefung->zgvnation_code),
|
||||
array('name' => 'zgvnation', 'id' => 'zgvnation')
|
||||
); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- show only master zgv if master studiengang - start -->
|
||||
<?php if ($zgvpruefung->studiengangtyp === 'm') : ?>
|
||||
<div class="row">
|
||||
<div class="col-md-5">
|
||||
<div class="form-group"><label>ZGV Master: </label>
|
||||
<?php echo $this->widgetlib->widget(
|
||||
'Zgvmaster_widget',
|
||||
array(DropdownWidget::SELECTED_ELEMENT => $zgvpruefung->zgvmas_code),
|
||||
array('name' => 'zgvmas', 'id' => 'zgvmas')
|
||||
); ?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<div class="form-group"><label>ZGV Master Ort: </label>
|
||||
<input type="text" class="form-control"
|
||||
value="<?php echo $zgvpruefung->zgvmaort ?>"
|
||||
name="zgvmaort">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<div class="form-group"><label>ZGV Master Datum: </label>
|
||||
<input type="text" class="dateinput form-control"
|
||||
value="<?php echo empty($zgvpruefung->zgvmadatum) ? "" : date_format(date_create($zgvpruefung->zgvmadatum), 'd.m.Y') ?>"
|
||||
name="zgvmadatum">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<div class="form-group"><label>ZGV Master Nation: </label>
|
||||
<?php echo $this->widgetlib->widget(
|
||||
'Nation_widget',
|
||||
array(DropdownWidget::SELECTED_ELEMENT => $zgvpruefung->zgvmanation_code),
|
||||
array('name' => 'zgvmanation', 'id' => 'zgvmanation')
|
||||
); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- show only master zgv if master studiengang - end -->
|
||||
<?php endif; ?>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<button type="submit" class="btn btn-default">Speichern</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</body>
|
||||
<?php
|
||||
//Prestudenten cannot be abgewiesen or freigegeben if already done
|
||||
if (!isset($zgvpruefung->prestudentstatus->bestaetigtam) && $zgvpruefung->prestudentstatus->status_kurzbz != 'Abgewiesener') :
|
||||
?>
|
||||
<br/>
|
||||
<div class="row">
|
||||
<form method="post"
|
||||
action="../saveAbsage/<?php echo $zgvpruefung->prestudent_id ?>">
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="d-inline float-left">Absagegrund:</label>
|
||||
<select name="statusgrund" class="d-inline float-right">
|
||||
<?php foreach ($statusgruende as $statusgrund): ?>
|
||||
<option value="<?php echo $statusgrund->statusgrund_id ?>"><?php echo $statusgrund->bezeichnung_mehrsprachig[0] ?></option>
|
||||
<?php endforeach ?>
|
||||
</select>
|
||||
</div>
|
||||
<button class="d-inline btn btn-default" type="submit">
|
||||
Absage
|
||||
</button>
|
||||
<a href="../saveFreigabe/<?php echo $zgvpruefung->prestudent_id ?>">
|
||||
<button class="btn btn-default">Freigabe an
|
||||
Studiengang
|
||||
</button>
|
||||
</a>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php endforeach // end foreach zgvpruefungen?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section>
|
||||
<a name="NotizAkt"></a>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading text-center">
|
||||
<h4 class="text-center">Notizen & Aktivitäten</h4>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div class="col-md-6">
|
||||
<form method="post" action="../saveNotiz/<?php echo $stammdaten->person_id ?>">
|
||||
<div class="form-group">
|
||||
<div class="text-center">
|
||||
<label>Notiz hinzufügen</label>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Titel: </label><input type="text" class="form-control"
|
||||
name="notiztitel"/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Text: </label><textarea name="notiz" class="form-control" rows="10"
|
||||
cols="32"></textarea>
|
||||
</div>
|
||||
<button type="submit" class="btn btn-default">Speichern</button>
|
||||
</div>
|
||||
</form>
|
||||
<table id="notiztable" class="table table-bordered table-hover">
|
||||
<thead>
|
||||
<th>Datum</th>
|
||||
<th>Notiz</th>
|
||||
<th>User</th>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
<?php foreach ($notizen as $notiz): ?>
|
||||
<tr>
|
||||
<td><?php echo date_format(date_create($notiz->insertamum), 'd.m.Y H:i:s') ?></td>
|
||||
<td><?php echo $notiz->titel ?></td>
|
||||
<td><?php echo $notiz->verfasser_uid ?></td>
|
||||
</tr>
|
||||
<?php endforeach ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<table id="logtable" class="table table-bordered table-hover">
|
||||
<thead>
|
||||
<th>Datum</th>
|
||||
<th>Aktivität</th>
|
||||
<th>User</th>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach ($logs as $log): ?>
|
||||
<tr>
|
||||
<td><?php echo date_format(date_create($log->zeitpunkt), 'd.m.Y H:i:s') ?></td>
|
||||
<td><?php echo isset($log->logdata->name) ? $log->logdata->name : '' ?></td>
|
||||
<td><?php echo $log->insertvon ?></td>
|
||||
</tr>
|
||||
<?php endforeach ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<script>
|
||||
function onFormalGeprueftChange(formal_geprueft, akte_id, person_id)
|
||||
{
|
||||
window.location = "../saveFormalGeprueft?akte_id=" + akte_id + "&formal_geprueft=" + formal_geprueft + "&person_id=" + person_id;
|
||||
}
|
||||
|
||||
$(document).ready(function ()
|
||||
{
|
||||
//language for datatables
|
||||
/* var german =
|
||||
{
|
||||
"sEmptyTable": "Keine Daten in der Tabelle vorhanden",
|
||||
"sInfo": "_START_ bis _END_ von _TOTAL_ Einträgen",
|
||||
"sInfoEmpty": "0 bis 0 von 0 Einträgen",
|
||||
"sInfoFiltered": "(gefiltert von _MAX_ Einträgen)",
|
||||
"sInfoPostFix": "",
|
||||
"sInfoThousands": ".",
|
||||
"sLengthMenu": "_MENU_ Einträge anzeigen",
|
||||
"sLoadingRecords": "Wird geladen...",
|
||||
"sProcessing": "Bitte warten...",
|
||||
"sSearch": "Suchen",
|
||||
"sZeroRecords": "Keine Einträge vorhanden.",
|
||||
"oPaginate": {
|
||||
"sFirst": "Erste",
|
||||
"sPrevious": "Zurück",
|
||||
"sNext": "Nächste",
|
||||
"sLast": "Letzte"
|
||||
},
|
||||
"oAria": {
|
||||
"sSortAscending": ": aktivieren, um Spalte aufsteigend zu sortieren",
|
||||
"sSortDescending": ": aktivieren, um Spalte absteigend zu sortieren"
|
||||
},
|
||||
select: {
|
||||
rows: {
|
||||
_: '%d Zeilen ausgewählt',
|
||||
0: 'Zum Auswählen auf eine Zeile klicken',
|
||||
1: '1 Zeile ausgewählt'
|
||||
}
|
||||
}
|
||||
};*/
|
||||
var german = "//cdn.datatables.net/plug-ins/9dcbecd42ad/i18n/German.json";
|
||||
//hack for disabling table pagination if only one page
|
||||
var drawCallback = function (settings)
|
||||
{
|
||||
var pagination = $(this).closest('.dataTables_wrapper').find('.dataTables_paginate');
|
||||
pagination.toggle(this.api().page.info().pages > 1);
|
||||
};
|
||||
|
||||
//format for sorting dates in tables
|
||||
$.fn.dataTable.moment("DD.MM.YYYY");
|
||||
$.fn.dataTable.moment("DD.MM.YYYY HH:mm:ss");
|
||||
|
||||
//initialise datatables and datepicker
|
||||
$("#doctable").DataTable({
|
||||
"language": {"url": german},
|
||||
"responsive": true,
|
||||
"paging": false,
|
||||
"searching": false,
|
||||
"info": false,
|
||||
"order": [[2, "desc"]]
|
||||
});
|
||||
$("#logtable").DataTable({
|
||||
"language": {"url": german},
|
||||
"responsive": true,
|
||||
"lengthChange": false,
|
||||
"info": false,
|
||||
"pageLength": 25,
|
||||
"order": [[0, "desc"]],
|
||||
"drawCallback": drawCallback
|
||||
});
|
||||
$("#notiztable").DataTable({
|
||||
"language": {"url": german},
|
||||
"responsive": true,
|
||||
"lengthChange": false,
|
||||
"info": false,
|
||||
"pageLength": 13,
|
||||
"order": [[0, "desc"], [2, "asc"]],
|
||||
"drawCallback": drawCallback
|
||||
});
|
||||
$(".dateinput").datepicker({
|
||||
"dateFormat": "dd.mm.yy"
|
||||
});
|
||||
//javascript hack - not nice!
|
||||
$("select").addClass('form-control');
|
||||
|
||||
//add click events to "formal geprüft" checkboxes
|
||||
<?php foreach($dokumente as $dokument): ?>
|
||||
|
||||
if ($("#prchkbx<?php echo $dokument->akte_id; ?>"))
|
||||
{
|
||||
$("#prchkbx<?php echo $dokument->akte_id; ?>").click(function ()
|
||||
{
|
||||
window.location = "../saveFormalGeprueft?akte_id=<?php echo $dokument->akte_id; ?>&formal_geprueft=" + this.checked + "&person_id=<?php echo $stammdaten->person_id ?>";
|
||||
});
|
||||
}
|
||||
<?php endforeach ?>
|
||||
}
|
||||
);
|
||||
</script>
|
||||
</body>
|
||||
<?php $this->load->view('templates/FHC-Footer'); ?>
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<?php
|
||||
function _printLists($listFilters)
|
||||
{
|
||||
foreach ($listFilters as $name => $filterId)
|
||||
foreach ($listFilters as $filterId => $description)
|
||||
{
|
||||
$toPrint = '<div><a href="%s=%s">%s</a></div>';
|
||||
|
||||
echo sprintf($toPrint, base_url('index.ci.php/system/infocenter/InfoCenter?filterId'), $filterId, $name).PHP_EOL;
|
||||
echo sprintf($toPrint, base_url('index.ci.php/system/infocenter/InfoCenter?filterId'), $filterId, $description).PHP_EOL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -9,6 +9,10 @@ $customJSs = isset($customJSs) ? $customJSs : null;
|
||||
|
||||
// By default set the parameters to false
|
||||
$jquery3 = isset($jquery3) ? $jquery3 : false;
|
||||
$jqueryui = isset($jqueryui) ? $jqueryui : false;
|
||||
$bootstrap = isset($bootstrap) ? $bootstrap : false;
|
||||
$fontawesome = isset($fontawesome) ? $fontawesome : false;
|
||||
$datatables = isset($datatables) ? $datatables : false;
|
||||
$tablesorter = isset($tablesorter) ? $tablesorter : false;
|
||||
|
||||
/**
|
||||
@@ -80,24 +84,44 @@ function _generateJSsInclude($JSs)
|
||||
|
||||
<meta charset="UTF-8">
|
||||
|
||||
<link rel="shortcut icon" type="image/x-icon" href="<?php echo base_url('skin/images/Vilesci.ico'); ?>" />
|
||||
<link rel="stylesheet" type="text/css" href="<?php echo base_url('skin/vilesci.css'); ?>" />
|
||||
|
||||
<?php
|
||||
// --------------------------------------------------------------------------------------------------------
|
||||
// CSS
|
||||
|
||||
// Eventually required CSS
|
||||
_generateCSSsInclude($customCSSs); // Eventually required CSS
|
||||
|
||||
// jQuery UI CSS
|
||||
if ($jqueryui === true) _generateCSSsInclude('vendor/components/jqueryui/themes/base/jquery-ui.min.css');
|
||||
// bootstrap CSS
|
||||
if ($bootstrap === true) _generateCSSsInclude('vendor/components/bootstrap/css/bootstrap.min.css');
|
||||
// font awesome CSS
|
||||
if ($fontawesome === true) _generateCSSsInclude('vendor/components/font-awesome/css/font-awesome.min.css');
|
||||
// datatables CSS
|
||||
if ($datatables === true)
|
||||
{
|
||||
_generateCSSsInclude('vendor/datatables/datatables/media/css/dataTables.bootstrap.min.css');
|
||||
}
|
||||
// Table sorter CSS
|
||||
if ($tablesorter === true) _generateCSSsInclude('skin/tablesort.css');
|
||||
|
||||
// Eventually required CSS
|
||||
_generateCSSsInclude($customCSSs); // Eventually required CSS
|
||||
|
||||
// --------------------------------------------------------------------------------------------------------
|
||||
// Javascripts
|
||||
|
||||
// JQuery V3
|
||||
if ($jquery3 === true) _generateJSsInclude('vendor/components/jquery/jquery.min.js');
|
||||
// JQuery UI
|
||||
if ($jqueryui === true) _generateJSsInclude('vendor/components/jqueryui/jquery-ui.min.js');
|
||||
// bootstrap JS
|
||||
if ($bootstrap === true) _generateJSsInclude('vendor/components/bootstrap/js/bootstrap.min.js');
|
||||
// datatables JS
|
||||
if ($datatables === true)
|
||||
{
|
||||
_generateJSsInclude('vendor/datatables/datatables/media/js/jquery.dataTables.js');
|
||||
_generateJSsInclude('vendor/datatables/datatables/media/js/dataTables.bootstrap.min.js');
|
||||
_generateJSsInclude('vendor/moment/moment/min/moment.min.js');
|
||||
_generateJSsInclude('vendor/datatables/plugins/sorting/datetime-moment.js');
|
||||
}
|
||||
// Table sorter JS
|
||||
if ($tablesorter === true) _generateJSsInclude('vendor/christianbach/tablesorter/jquery.tablesorter.min.js');
|
||||
|
||||
|
||||
@@ -51,6 +51,8 @@ class FilterWidget extends Widget
|
||||
const OP_IS_FALSE = 'false';
|
||||
const OP_CONTAINS = 'contains';
|
||||
const OP_NOT_CONTAINS = 'ncontains';
|
||||
const OP_SET = 'set';
|
||||
const OP_NOT_SET = 'nset';
|
||||
|
||||
const OPT_DAYS = 'days';
|
||||
const OPT_MONTHS = 'months';
|
||||
@@ -96,7 +98,20 @@ class FilterWidget extends Widget
|
||||
public function display($widgetData)
|
||||
{
|
||||
//
|
||||
$this->_loadFilter();
|
||||
$filterSessionArray = $this->session->userdata(self::SESSION_NAME);
|
||||
|
||||
//
|
||||
if ($this->filterId == null && isset($filterSessionArray[self::FILTER_ID]))
|
||||
{
|
||||
$this->filterId = $filterSessionArray[self::FILTER_ID];
|
||||
}
|
||||
|
||||
//
|
||||
if ($filterSessionArray[self::FILTER_ID] != $this->filterId)
|
||||
{
|
||||
//
|
||||
$this->_loadFilter();
|
||||
}
|
||||
|
||||
//
|
||||
$this->_setSessionFilterData();
|
||||
@@ -276,6 +291,8 @@ class FilterWidget extends Widget
|
||||
<span>
|
||||
<select name="%s" class="select-filter-operation">
|
||||
<option value="'.self::OP_LESS_THAN.'" '.($activeFilterOperationValue == self::OP_LESS_THAN ? 'selected' : '').'>less than</option>
|
||||
<option value="'.self::OP_SET.'" '.($activeFilterOperationValue == self::OP_SET ? 'selected' : '').'>is set</option>
|
||||
<option value="'.self::OP_NOT_SET.'" '.($activeFilterOperationValue == self::OP_NOT_SET ? 'selected' : '').'>is not set</option>
|
||||
</select>
|
||||
</span>
|
||||
<span>
|
||||
@@ -487,6 +504,11 @@ class FilterWidget extends Widget
|
||||
$filterSessionArray[self::ADDITIONAL_COLUMNS] = array();
|
||||
}
|
||||
|
||||
if (!isset($filterSessionArray[self::FILTER_ID]))
|
||||
{
|
||||
$filterSessionArray[self::FILTER_ID] = -1;
|
||||
}
|
||||
|
||||
$this->session->set_userdata(self::SESSION_NAME, $filterSessionArray);
|
||||
}
|
||||
|
||||
@@ -957,6 +979,8 @@ class FilterWidget extends Widget
|
||||
$filterSessionArray[self::ACTIVE_FILTERS_OPTION]
|
||||
);
|
||||
|
||||
$filterSessionArray[self::FILTER_ID] = $this->filterId;
|
||||
|
||||
$this->session->set_userdata(self::SESSION_NAME, $filterSessionArray);
|
||||
}
|
||||
|
||||
@@ -996,61 +1020,68 @@ class FilterWidget extends Widget
|
||||
|
||||
foreach ($activeFilters as $field => $activeFilterValue)
|
||||
{
|
||||
if (trim($activeFilterValue) != '')
|
||||
if ($first)
|
||||
{
|
||||
if ($first)
|
||||
$first = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
$where .= ' AND ';
|
||||
}
|
||||
|
||||
if (isset($activeFiltersOperation[$field]))
|
||||
{
|
||||
$where .= '"'.$field.'"';
|
||||
$condition = '';
|
||||
|
||||
switch ($activeFiltersOperation[$field])
|
||||
{
|
||||
$first = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
$where .= ' AND ';
|
||||
case self::OP_EQUAL:
|
||||
if (!is_numeric($activeFilterValue)) $activeFilterValue = 0;
|
||||
$condition = ' = '.$activeFilterValue;
|
||||
break;
|
||||
case self::OP_NOT_EQUAL:
|
||||
if (!is_numeric($activeFilterValue)) $activeFilterValue = 0;
|
||||
$condition = ' != '.$activeFilterValue;
|
||||
break;
|
||||
case self::OP_GREATER_THAN:
|
||||
if (!is_numeric($activeFilterValue)) $activeFilterValue = 0;
|
||||
$condition = ' > '.$activeFilterValue;
|
||||
break;
|
||||
case self::OP_LESS_THAN:
|
||||
if (!is_numeric($activeFilterValue)) $activeFilterValue = 0;
|
||||
if (isset($activeFiltersOption[$field])
|
||||
&& ($activeFiltersOption[$field] == self::OPT_DAYS
|
||||
|| $activeFiltersOption[$field] == self::OPT_MONTHS))
|
||||
{
|
||||
$condition = ' < (NOW() - \''.$activeFilterValue.' '.$activeFiltersOption[$field].'\'::interval)';
|
||||
}
|
||||
else
|
||||
{
|
||||
$condition = ' < '.$activeFilterValue;
|
||||
}
|
||||
break;
|
||||
case self::OP_CONTAINS:
|
||||
$condition = ' ILIKE \'%'.$activeFilterValue.'%\'';
|
||||
break;
|
||||
case self::OP_NOT_CONTAINS:
|
||||
$condition = ' NOT ILIKE \'%'.$activeFilterValue.'%\'';
|
||||
break;
|
||||
case self::OP_IS_TRUE:
|
||||
$condition = ' IS TRUE';
|
||||
break;
|
||||
case self::OP_IS_FALSE:
|
||||
$condition = ' IS FALSE';
|
||||
break;
|
||||
case self::OP_SET:
|
||||
$condition = ' IS NOT NULL';
|
||||
break;
|
||||
case self::OP_NOT_SET:
|
||||
$condition = ' IS NULL';
|
||||
break;
|
||||
}
|
||||
|
||||
if (isset($activeFiltersOperation[$field]))
|
||||
{
|
||||
$where .= '"'.$field.'"';
|
||||
$condition = '';
|
||||
|
||||
switch ($activeFiltersOperation[$field])
|
||||
{
|
||||
case self::OP_EQUAL:
|
||||
$condition = ' = '.$activeFilterValue;
|
||||
break;
|
||||
case self::OP_NOT_EQUAL:
|
||||
$condition = ' != '.$activeFilterValue;
|
||||
break;
|
||||
case self::OP_GREATER_THAN:
|
||||
$condition = ' > '.$activeFilterValue;
|
||||
break;
|
||||
case self::OP_LESS_THAN:
|
||||
if (isset($activeFiltersOption[$field])
|
||||
&& ($activeFiltersOption[$field] == self::OPT_DAYS
|
||||
|| $activeFiltersOption[$field] == self::OPT_MONTHS))
|
||||
{
|
||||
$condition = ' < (NOW() - \''.$activeFilterValue.' '.$activeFiltersOption[$field].'\'::interval)';
|
||||
}
|
||||
else
|
||||
{
|
||||
$condition = ' < '.$activeFilterValue;
|
||||
}
|
||||
break;
|
||||
case self::OP_CONTAINS:
|
||||
$condition = ' ILIKE \'%'.$activeFilterValue.'%\'';
|
||||
break;
|
||||
case self::OP_NOT_CONTAINS:
|
||||
$condition = ' NOT ILIKE \'%'.$activeFilterValue.'%\'';
|
||||
break;
|
||||
case self::OP_IS_TRUE:
|
||||
$condition = ' IS TRUE';
|
||||
break;
|
||||
case self::OP_IS_FALSE:
|
||||
$condition = ' IS FALSE';
|
||||
break;
|
||||
}
|
||||
|
||||
$where .= $condition;
|
||||
}
|
||||
$where .= $condition;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -13,8 +13,8 @@ class Nation_widget extends DropdownWidget
|
||||
$this->setElementsArray(
|
||||
$this->NationModel->load(),
|
||||
true,
|
||||
'Select a nation...',
|
||||
'No nation found'
|
||||
'Nation wählen...',
|
||||
'keine Nation gefunden'
|
||||
);
|
||||
|
||||
$this->loadDropDownView($widgetData);
|
||||
|
||||
@@ -13,8 +13,8 @@ class Zgv_widget extends DropdownWidget
|
||||
$this->setElementsArray(
|
||||
$this->ZgvModel->load(),
|
||||
true,
|
||||
'Select a zgv...',
|
||||
'No zgv found'
|
||||
'Zgv wählen...',
|
||||
'keine Zgv gefunden'
|
||||
);
|
||||
|
||||
$this->loadDropDownView($widgetData);
|
||||
|
||||
@@ -13,8 +13,8 @@ class Zgvmaster_widget extends DropdownWidget
|
||||
$this->setElementsArray(
|
||||
$this->ZgvmasterModel->load(),
|
||||
true,
|
||||
'Select a zgv...',
|
||||
'No zgv found'
|
||||
'Zgv wählen...',
|
||||
'keine Zgv gefunden'
|
||||
);
|
||||
|
||||
$this->loadDropDownView($widgetData);
|
||||
|
||||
@@ -45,6 +45,9 @@ require_once('../../../include/benutzerberechtigung.class.php');
|
||||
|
||||
$sprache = getSprache();
|
||||
$p=new phrasen($sprache);
|
||||
$sprache_obj = new sprache();
|
||||
$sprache_obj->load($sprache);
|
||||
$sprache_index=$sprache_obj->index;
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die($p->t("global/fehlerBeimOeffnenDerDatenbankverbindung"));
|
||||
@@ -726,7 +729,7 @@ if($projekt->getProjekteMitarbeiter($user, true))
|
||||
|
||||
<a href='".$_SERVER['PHP_SELF']."?csvexport=1' style='font-size: larger;'>CSV Export</a>";
|
||||
if($anzprojekte > 0)
|
||||
echo "<a style='font-size: larger; text-decoration: none; cursor: default'> | </a><a href='".$_SERVER['PHP_SELF']."?projektexport=1' style='font-size: larger;'>Projektexport</a>";
|
||||
echo "<a style='font-size: larger; text-decoration: none; cursor: default'> | </a><a href='".$_SERVER['PHP_SELF']."?projektexport=1' style='font-size: larger;'>".$p->t("zeitaufzeichnung/projektexport")."</a>";
|
||||
echo "</td>
|
||||
<td class='menubox' height='10px'>";
|
||||
if ($p->t("dms_link/handbuchZeitaufzeichnung")!='')
|
||||
@@ -753,15 +756,15 @@ if($projekt->getProjekteMitarbeiter($user, true))
|
||||
$jahreanz = 3;
|
||||
echo '<form action="'.$projektexpurl.'" method="GET">';
|
||||
echo '<tr><td colspan="4"><hr></td></tr>';
|
||||
echo '<tr><td>Projektexport</td>';
|
||||
echo '<td align="center">Monat: <select id="projexpmonat" name="projexpmonat">';
|
||||
echo '<tr><td>'.$p->t('zeitaufzeichnung/projektexport').'</td>';
|
||||
echo '<td align="center">'.$p->t('zeitaufzeichnung/monat').' <select id="projexpmonat" name="projexpmonat">';
|
||||
for($i=1;$i<13;$i++)
|
||||
{
|
||||
$selected = ($i == $aktmonat)?'selected = "selected"':'';
|
||||
echo '<option value="'.$i.'" '.$selected.'>'.$monatsname[1][$i - 1].'</option>';
|
||||
echo '<option value="'.$i.'" '.$selected.'>'.$monatsname[$sprache_index][$i - 1].'</option>';
|
||||
}
|
||||
echo '</select></td>';
|
||||
echo '<td align="center">Jahr: <select id="projexpjahr" name="projexpjahr">';
|
||||
echo '<td align="center">'.$p->t('zeitaufzeichnung/jahr').' <select id="projexpjahr" name="projexpjahr">';
|
||||
for(;$jahreanz>0;$jahreanz--)
|
||||
{
|
||||
echo '<option value="'.$aktjahr.'">'.$aktjahr.'</option>';
|
||||
@@ -795,8 +798,8 @@ if($projekt->getProjekteMitarbeiter($user, true))
|
||||
echo '<form action="'.$_SERVER['PHP_SELF'].'" method="POST" onsubmit="return checkdatumCSVExp(\'exp_von_datum\', \'exp_bis_datum\')">';
|
||||
echo '<tr><td colspan="4"><hr></td></tr>';
|
||||
echo '<tr><td>CSV-Export</td>';
|
||||
echo '<td>Startdatum: <input class="datepicker_datum" id="exp_von_datum" name="exp_von_datum" size="9" type="text" value="'.date('d.m.Y', strtotime('first day of previous month')).'" /></td>';
|
||||
echo '<td align="right">Enddatum: <input class="datepicker_datum" id="exp_bis_datum" name="exp_bis_datum" size="9" type="text" value="'.date('d.m.Y', strtotime('last day of previous month')).'" /></td>';
|
||||
echo '<td>'.$p->t('zeitaufzeichnung/startdatum').' <input class="datepicker_datum" id="exp_von_datum" name="exp_von_datum" size="9" type="text" value="'.date('d.m.Y', strtotime('first day of previous month')).'" /></td>';
|
||||
echo '<td align="right">'.$p->t('zeitaufzeichnung/enddatum').' <input class="datepicker_datum" id="exp_bis_datum" name="exp_bis_datum" size="9" type="text" value="'.date('d.m.Y', strtotime('last day of previous month')).'" /></td>';
|
||||
echo '<td align="right"><input type="submit" value="Export" name="export"></td></tr>';
|
||||
echo '<tr><td></td><td colspan="3"></td></tr>';
|
||||
echo '<tr><td colspan="4"><hr></td></tr>';
|
||||
|
||||
@@ -38,6 +38,12 @@ if (!isset($_GET['projexpmonat']))
|
||||
if (!isset($_GET['projexpjahr']))
|
||||
die("Parameter jahr fehlt");
|
||||
|
||||
$sprache = getSprache();
|
||||
$p = new phrasen($sprache);
|
||||
$sprache_obj = new sprache();
|
||||
$sprache_obj->load($sprache);
|
||||
$sprache_index = $sprache_obj->index;
|
||||
|
||||
$uid = get_uid();
|
||||
$benutzer = new benutzer();
|
||||
if (!$benutzer->load($uid))
|
||||
@@ -46,7 +52,7 @@ if (!$benutzer->load($uid))
|
||||
$month = $_GET['projexpmonat'];
|
||||
$year = $_GET['projexpjahr'];
|
||||
|
||||
$monthtext = $monatsname[1][$month - 1];
|
||||
$monthtext = $monatsname[$sprache_index][$month - 1];
|
||||
$username = $benutzer->vorname." ".$benutzer->nachname;
|
||||
$mitarbeiter = new mitarbeiter();
|
||||
$mitarbeiter->load($uid);
|
||||
@@ -66,7 +72,7 @@ $toignore = ['Pause', 'LehreExtern'];
|
||||
$ztaufdata = $ztauf->result;
|
||||
$monthsums = [0 => 0.00];
|
||||
|
||||
//sprt list by startdate ascending (if not already done in zeitaufzeichnung class)
|
||||
//sort list by startdate ascending (if not already done in zeitaufzeichnung class)
|
||||
usort($ztaufdata, function ($ztaufa, $ztaufb)
|
||||
{
|
||||
$date = new datum();
|
||||
@@ -75,9 +81,12 @@ usort($ztaufdata, function ($ztaufa, $ztaufb)
|
||||
);
|
||||
|
||||
//fill projectlines with data
|
||||
for ($i = 0; $i < sizeof($ztaufdata); $i++)
|
||||
for ($i = 0; $i < count($ztaufdata); $i++)
|
||||
{
|
||||
$ztaufrow = $ztaufdata[$i];
|
||||
//make sure dates are in correct format
|
||||
$ztaufrow->start = $date->formatDatum($ztaufrow->start, $format = 'Y-m-d H:i:s');
|
||||
$ztaufrow->ende = $date->formatDatum($ztaufrow->ende, $format = 'Y-m-d H:i:s');
|
||||
$day = intval($date->formatDatum($ztaufrow->ende, 'd'));
|
||||
//first entry for a day
|
||||
$isFirstEntry = !isset($projectlines[$day]);
|
||||
@@ -95,16 +104,16 @@ for ($i = 0; $i < sizeof($ztaufdata); $i++)
|
||||
$tosubtract[] = $subtraction;
|
||||
|
||||
//save all pause ranges
|
||||
if($ztaufrow->aktivitaet_kurzbz == $toignore[0])
|
||||
if ($ztaufrow->aktivitaet_kurzbz == $toignore[0])
|
||||
{
|
||||
$prevpause = null;
|
||||
if(sizeof($allpauseranges)>0)
|
||||
if (count($allpauseranges) > 0)
|
||||
{
|
||||
$prevpause = $allpauseranges[sizeof($allpauseranges) - 1];
|
||||
$prevpause = $allpauseranges[count($allpauseranges) - 1];
|
||||
}
|
||||
|
||||
//first pause or no overlap to previous pause - add pauserange
|
||||
if( is_null($prevpause ) || $prevpause->ende <= $ztaufrow->start )
|
||||
if (is_null($prevpause) || $prevpause->ende <= $ztaufrow->start)
|
||||
{
|
||||
$pauserange = new stdClass();
|
||||
$pauserange->start = $ztaufrow->start;
|
||||
@@ -112,16 +121,17 @@ for ($i = 0; $i < sizeof($ztaufdata); $i++)
|
||||
$allpauseranges[] = $pauserange;
|
||||
}
|
||||
//pause overlap - change pause ende
|
||||
elseif($prevpause->ende > $ztaufrow->start )
|
||||
elseif ($prevpause->ende > $ztaufrow->start)
|
||||
{
|
||||
$allpauseranges[sizeof($allpauseranges) - 1]->ende = $ztaufrow->ende;
|
||||
$allpauseranges[count($allpauseranges) - 1]->ende = $ztaufrow->ende;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (($dayStart == '' || $date->mktime_fromtimestamp($date->formatDatum($dayStart, $format = 'Y-m-d H:i:s')) > $date->mktime_fromtimestamp($date->formatDatum($ztaufrow->start, $format = 'Y-m-d H:i:s'))) && $ztaufrow->aktivitaet_kurzbz != $toignore[1])
|
||||
//save new dayStart (if earlier) or dayEnd (if later)
|
||||
if (($dayStart == '' || $dayStart > $ztaufrow->start) && $ztaufrow->aktivitaet_kurzbz != $toignore[1])
|
||||
$dayStart = $ztaufrow->start;
|
||||
if (($dayEnd == '' || $date->mktime_fromtimestamp($date->formatDatum($dayEnd, $format = 'Y-m-d H:i:s')) < $date->mktime_fromtimestamp($date->formatDatum($ztaufrow->ende, $format = 'Y-m-d H:i:s'))) && $ztaufrow->aktivitaet_kurzbz != $toignore[1])
|
||||
if (($dayEnd == '' || $dayEnd < $ztaufrow->ende) && $ztaufrow->aktivitaet_kurzbz != $toignore[1])
|
||||
$dayEnd = $ztaufrow->ende;
|
||||
|
||||
if ($isFirstEntry)
|
||||
@@ -141,7 +151,7 @@ for ($i = 0; $i < sizeof($ztaufdata); $i++)
|
||||
|
||||
$toadd = 0.00;
|
||||
//case 1: there is no overlap, just add project time difference
|
||||
if ($date->mktime_fromtimestamp($ztaufrow->start) > $date->mktime_fromtimestamp($lastende))
|
||||
if ($ztaufrow->start >= $lastende)
|
||||
{
|
||||
$toadd = $date->convertTimeStringToHours($ztaufrow->diff);
|
||||
$laststart = $ztaufrow->start;
|
||||
@@ -152,13 +162,13 @@ for ($i = 0; $i < sizeof($ztaufdata); $i++)
|
||||
$projectlines[$day]->projekte[$ztaufrow->projekt_kurzbz]->alleZeiten[] = $newprojecttime;
|
||||
}
|
||||
//case 2: overlap - add only part of the time
|
||||
elseif ($date->mktime_fromtimestamp($ztaufrow->start) < $date->mktime_fromtimestamp($lastende) && $date->mktime_fromtimestamp($ztaufrow->ende) > $date->mktime_fromtimestamp($lastende))
|
||||
elseif ($ztaufrow->start < $lastende && $ztaufrow->ende > $lastende)
|
||||
{
|
||||
$toadd = ($date->mktime_fromtimestamp($ztaufrow->ende) - $date->mktime_fromtimestamp($lastende)) / 3600;
|
||||
$lastende = $ztaufrow->ende;
|
||||
$alleZeiten =& $projectlines[$day]->projekte[$ztaufrow->projekt_kurzbz]->alleZeiten;
|
||||
$index = count($alleZeiten);
|
||||
$alleZeiten[$index-1]->ende = $ztaufrow->ende;
|
||||
$alleZeiten[$index - 1]->ende = $ztaufrow->ende;
|
||||
}
|
||||
$projectlines[$day]->projekte[$ztaufrow->projekt_kurzbz]->stunden += $toadd;
|
||||
|
||||
@@ -201,14 +211,14 @@ for ($i = 0; $i < sizeof($ztaufdata); $i++)
|
||||
|
||||
if ($isLastEntry)
|
||||
{
|
||||
$worktime_unix = $date->mktime_fromtimestamp($date->formatDatum($dayEnd, $format = 'Y-m-d H:i:s')) - $date->mktime_fromtimestamp($date->formatDatum($dayStart, $format = 'Y-m-d H:i:s'));
|
||||
$worktime_unix = $date->mktime_fromtimestamp($dayEnd) - $date->mktime_fromtimestamp($dayStart);
|
||||
$worktimehours = $worktime_unix / 3600;
|
||||
|
||||
$projectlines[$day]->arbeitszeit = $worktimehours;
|
||||
$pauseSubtracted = 0.00;
|
||||
$lehreExternExists = false;
|
||||
|
||||
//subtract Pauses and LehreExtern
|
||||
//subtract pauses and LehreExtern from total worktime
|
||||
foreach ($tosubtract as $subtraction)
|
||||
{
|
||||
if ($subtraction->typ == $toignore[0])
|
||||
@@ -223,32 +233,33 @@ for ($i = 0; $i < sizeof($ztaufdata); $i++)
|
||||
}
|
||||
}
|
||||
|
||||
//subtract pauses from Project worktimes
|
||||
foreach($allpauseranges as $pauserange)
|
||||
//subtract pauses from project worktimes
|
||||
foreach ($allpauseranges as $pauserange)
|
||||
{
|
||||
foreach($projectlines[$day]->projekte as $name => $project)
|
||||
foreach ($projectlines[$day]->projekte as $name => $project)
|
||||
{
|
||||
foreach($projectlines[$day]->projekte[$name]->alleZeiten as $zeit)
|
||||
foreach ($projectlines[$day]->projekte[$name]->alleZeiten as $zeit)
|
||||
{
|
||||
if($pauserange->start >= $zeit->start && $pauserange->ende <= $zeit->ende)
|
||||
//pause between project start and end
|
||||
if ($pauserange->start >= $zeit->start && $pauserange->ende <= $zeit->ende)
|
||||
{
|
||||
$projectlines[$day]->projekte[$name]->stunden -= ($date->mktime_fromtimestamp($pauserange->ende) - $date->mktime_fromtimestamp($pauserange->start)) / 3600;
|
||||
break;
|
||||
}
|
||||
elseif($pauserange->start < $zeit->ende && $pauserange->start > $zeit->start)
|
||||
//pause and project time overlap at project time end
|
||||
elseif ($pauserange->start < $zeit->ende && $pauserange->start > $zeit->start)
|
||||
{
|
||||
$projectlines[$day]->projekte[$name]->stunden -= ($date->mktime_fromtimestamp($zeit->ende) - $date->mktime_fromtimestamp($pauserange->start)) / 3600;
|
||||
//break;
|
||||
}
|
||||
elseif($pauserange->ende > $zeit->start && $pauserange->ende< $zeit->ende)
|
||||
//pause and project time overlap at project time start
|
||||
elseif ($pauserange->ende > $zeit->start && $pauserange->ende < $zeit->ende)
|
||||
{
|
||||
$projectlines[$day]->projekte[$name]->stunden -= ($date->mktime_fromtimestamp($pauserange->ende) - $date->mktime_fromtimestamp($zeit->start)) / 3600;
|
||||
//break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//worktime with no break greater 6 -> compulsory break of half an hour
|
||||
if ($pauseSubtracted < 0.5 && !$lehreExternExists)
|
||||
{
|
||||
@@ -262,7 +273,7 @@ for ($i = 0; $i < sizeof($ztaufdata); $i++)
|
||||
|
||||
$projectlines[$day]->arbeitszeit = floor($projectlines[$day]->arbeitszeit * 100) / 100;
|
||||
|
||||
foreach($projectlines[$day]->projekte as $name => $project)
|
||||
foreach ($projectlines[$day]->projekte as $name => $project)
|
||||
{
|
||||
$projecthours =& $projectlines[$day]->projekte[$name]->stunden;
|
||||
$projecthours = floor($projecthours * 100) / 100;
|
||||
@@ -283,10 +294,10 @@ $workbook = new Spreadsheet_Excel_Writer();
|
||||
$workbook->setVersion(8);
|
||||
|
||||
// sending HTTP headers
|
||||
$workbook->send("Projektliste_".$month."_".$year.".xls");
|
||||
$workbook->send('Projektliste_'.$month.'_'.$year.'.xls');
|
||||
|
||||
// Creating a worksheet
|
||||
$worksheet =& $workbook->addWorksheet("Projektliste");
|
||||
$worksheet =& $workbook->addWorksheet($p->t('zeitaufzeichnung/projektliste'));
|
||||
$worksheet->setInputEncoding('utf-8');
|
||||
|
||||
// Define formats
|
||||
@@ -309,6 +320,12 @@ $format_heading_right_bottomline->setAlign('right');
|
||||
$format_heading_right_bottomline->setRight(2);
|
||||
$format_heading_right_bottomline->setBottom(2);
|
||||
|
||||
$format_heading_bottomline =& $workbook->addFormat();
|
||||
$format_heading_bottomline->setBottom(2);
|
||||
|
||||
$format_heading_topline =& $workbook->addFormat();
|
||||
$format_heading_topline->setTop(2);
|
||||
|
||||
$format_bold_centered_toprightline =& $workbook->addFormat();
|
||||
$format_bold_centered_toprightline->setBorder(1);
|
||||
$format_bold_centered_toprightline->setBold();
|
||||
@@ -349,7 +366,9 @@ $format_cell_centered->setAlign('center');
|
||||
$format_cell_centered->setVAlign('vcenter');
|
||||
|
||||
$format_cell_centered_leftline =& $workbook->addFormat();
|
||||
$format_cell_centered_leftline->setBorder(1);
|
||||
$format_cell_centered_leftline->setRight(1);
|
||||
$format_cell_centered_leftline->setLeft(1);
|
||||
$format_cell_centered_leftline->setBottom(1);
|
||||
$format_cell_centered_leftline->setAlign('center');
|
||||
$format_cell_centered_leftline->setVAlign('vcenter');
|
||||
$format_cell_centered_leftline->setLeft(2);
|
||||
@@ -382,9 +401,9 @@ $format_cell_centered_alllines->setAlign('center');
|
||||
$format_cell_centered_alllines->setVAlign('vcenter');
|
||||
|
||||
//define column widths
|
||||
$nrProjects = sizeof($projectnames);
|
||||
$nrProjects = count($projectnames);
|
||||
$daywidth = 4;
|
||||
$totalworktimewidth = 10;
|
||||
$totalworktimewidth = 13;
|
||||
$worktimewidth = 8;
|
||||
$worksheet->setColumn(0, 1, $daywidth);
|
||||
$worksheet->setColumn(2, 2, $totalworktimewidth);
|
||||
@@ -412,35 +431,48 @@ foreach ($projectcolumnwidths as $projectname => $width)
|
||||
|
||||
//calculating spaces for centering global header texts
|
||||
$numberspaces = ($maxwidthprojects - 10 - strlen($username));
|
||||
$spacesstringFirst = "";
|
||||
$spacesstringFirst = '';
|
||||
|
||||
while ($numberspaces > 0)
|
||||
{
|
||||
$spacesstringFirst .= " ";
|
||||
$spacesstringFirst .= ' ';
|
||||
$numberspaces--;
|
||||
}
|
||||
|
||||
$numberspaces = ($maxwidthprojects - 14 - strlen($persnr));
|
||||
$spacesstringSecond = "";
|
||||
$spacesstringSecond = '';
|
||||
while ($numberspaces > 0)
|
||||
{
|
||||
$spacesstringSecond .= " ";
|
||||
$spacesstringSecond .= ' ';
|
||||
$numberspaces--;
|
||||
}
|
||||
|
||||
$spalte = $zeile = 0;
|
||||
|
||||
//write global header
|
||||
$lastspalte = ($nrProjects > 0) ? 2 + sizeof($projectnames) * 2 : 14;
|
||||
$worksheet->setMerge($zeile, $spalte, $zeile + 1, $spalte + 2);
|
||||
$worksheet->write($zeile, $spalte, $monthtext." ".$year, $format_heading_left);
|
||||
$worksheet->write($zeile + 1, $spalte, "", $format_heading_left);
|
||||
//set language options
|
||||
$decpoint = $sprache_index === '2' ? '.' : ',';
|
||||
$thousandsep = $sprache_index === '2' ? ',' : '.';
|
||||
|
||||
//write global header
|
||||
$lastspalte = ($nrProjects > 0) ? 2 + count($projectnames) * 2 : 14;
|
||||
$worksheet->setMerge($zeile, $spalte, $zeile + 1, $spalte + 2);
|
||||
$worksheet->write($zeile, $spalte, $monthtext.' '.$year, $format_heading_left);
|
||||
$worksheet->write($zeile + 1, $spalte, $monthtext.' '.$year, $format_heading_left);
|
||||
for ($i = 1; $i < 3; $i++)
|
||||
{
|
||||
$worksheet->write($zeile, $spalte + $i, '', $format_heading_topline);
|
||||
$worksheet->write($zeile + 1, $spalte + $i, '', $format_heading_bottomline);
|
||||
}
|
||||
$worksheet->setMerge($zeile, $spalte + 3, $zeile, $lastspalte);
|
||||
$worksheet->setMerge($zeile + 1, $spalte + 3, $zeile + 1, $lastspalte);
|
||||
$worksheet->write($zeile, $spalte + 3, "Projektliste gedruckt am:".$spacesstringFirst.$username, $format_heading_right);
|
||||
$worksheet->write($zeile, $spalte + 3, $p->t('zeitaufzeichnung/projektlistegedruckt').$spacesstringFirst.$username, $format_heading_right);
|
||||
for ($i = 4; $i < $lastspalte; $i++)
|
||||
{
|
||||
$worksheet->write($zeile, $i, '', $format_heading_topline);
|
||||
$worksheet->write($zeile + 1, $i, '', $format_heading_bottomline);
|
||||
}
|
||||
$worksheet->write($zeile, $lastspalte, '', $format_heading_right);
|
||||
$worksheet->write($zeile + 1, $spalte + 3, date('d.m.Y H:i').$spacesstringSecond.'Personal-Nr.:'.$persnr, $format_heading_right_bottomline);
|
||||
$worksheet->write($zeile + 1, $spalte + 3, date('d.m.Y H:i').$spacesstringSecond.$p->t('zeitaufzeichnung/personalnr').$persnr, $format_heading_right_bottomline);
|
||||
$worksheet->write($zeile + 1, $lastspalte, '', $format_heading_right_bottomline);
|
||||
$zeile += 3;
|
||||
|
||||
@@ -451,20 +483,22 @@ $worksheet->hideScreenGridlines();
|
||||
|
||||
//write table header
|
||||
$worksheet->setMerge($zeile, $spalte, $zeile + 1, $spalte + 1);
|
||||
$worksheet->write($zeile, $spalte, "Tag", $format_bold_centered_alllines);
|
||||
$worksheet->write($zeile + 1, $spalte++, "", $format_bold_centered_alllines);
|
||||
$worksheet->write($zeile, $spalte, $p->t('zeitaufzeichnung/tag'), $format_bold_centered_alllines);
|
||||
$worksheet->write($zeile + 1, $spalte, '', $format_bold_centered_alllines);
|
||||
$worksheet->write($zeile, $spalte + 1, $p->t('zeitaufzeichnung/tag'), $format_bold_centered_alllines);
|
||||
$worksheet->write($zeile + 1, ++$spalte, '', $format_bold_centered_alllines);
|
||||
$worksheet->setMerge($zeile, ++$spalte, $zeile + 1, $spalte);
|
||||
$worksheet->write($zeile, $spalte, "Arbeitszeit", $format_bold_centered_alllines);
|
||||
$worksheet->write($zeile + 1, $spalte, "", $format_bold_centered_alllines);
|
||||
$worksheet->write($zeile, $spalte, $p->t('zeitaufzeichnung/arbeitszeit'), $format_bold_centered_alllines);
|
||||
$worksheet->write($zeile + 1, $spalte, '', $format_bold_centered_alllines);
|
||||
$spalte++;
|
||||
|
||||
foreach ($projectnames as $project)
|
||||
{
|
||||
$worksheet->setMerge($zeile, $spalte, $zeile, $spalte + 1);
|
||||
$worksheet->write($zeile, $spalte, $project, $format_bold_centered_toprightline);
|
||||
$worksheet->write($zeile, $spalte + 1, "", $format_bold_centered_toprightline);
|
||||
$worksheet->write($zeile + 1, $spalte, "Stunden", $format_bold_centered_bottomline);
|
||||
$worksheet->write($zeile + 1, $spalte + 1, "Tätigkeit", $format_bold_centered_bottomrightline);
|
||||
$worksheet->write($zeile, $spalte + 1, '', $format_bold_centered_toprightline);
|
||||
$worksheet->write($zeile + 1, $spalte, $p->t('zeitaufzeichnung/stunden'), $format_bold_centered_bottomline);
|
||||
$worksheet->write($zeile + 1, $spalte + 1, $p->t('zeitaufzeichnung/taetigkeit'), $format_bold_centered_bottomrightline);
|
||||
$spalte += 2;
|
||||
}
|
||||
$zeile += 2;
|
||||
@@ -477,14 +511,14 @@ for ($daysnmbr = 1; $daysnmbr <= $daysinmonth; $daysnmbr++)
|
||||
$monthstr = ($month < 10) ? '0'.$month : $month;
|
||||
$daystr = ($daysnmbr < 10) ? '0'.$daysnmbr : $daysnmbr;
|
||||
$datestring = $year.'-'.$monthstr.'-'.$daystr;
|
||||
$weekday = substr($tagbez[1][$date->formatDatum($datestring, 'N')], 0, 2);
|
||||
$weekday = substr($tagbez[$sprache_index][$date->formatDatum($datestring, 'N')], 0, 2);
|
||||
$worksheet->write($zeile, $spalte++, $weekday, $format_cell_centered_leftline);
|
||||
$worksheet->write($zeile, $spalte++, $daysnmbr, $format_cell_centered_rightline);
|
||||
|
||||
if (array_key_exists($daysnmbr, $projectlines))
|
||||
{
|
||||
//write worktime
|
||||
$worksheet->write($zeile, $spalte++, number_format($projectlines[$daysnmbr]->arbeitszeit, 2, ",", "."), $format_cell_centered_rightline);
|
||||
$worksheet->writeString($zeile, $spalte++, number_format($projectlines[$daysnmbr]->arbeitszeit, 2, $decpoint, $thousandsep), $format_cell_centered_rightline);
|
||||
$spaltetemp = $spalte;
|
||||
//write projects
|
||||
foreach ($projectnames as $project)
|
||||
@@ -492,7 +526,7 @@ for ($daysnmbr = 1; $daysnmbr <= $daysinmonth; $daysnmbr++)
|
||||
if (array_key_exists($project, $projectlines[$daysnmbr]->projekte))
|
||||
{
|
||||
$worksheet->setColumn($spalte, $spalte, $worktimewidth);
|
||||
$worksheet->write($zeile, $spalte++, number_format($projectlines[$daysnmbr]->projekte[$project]->stunden, 2, ",", "."), $format_cell_centered_leftline);
|
||||
$worksheet->writeString($zeile, $spalte++, number_format($projectlines[$daysnmbr]->projekte[$project]->stunden, 2, $decpoint, $thousandsep), $format_cell_centered_leftline);
|
||||
$worksheet->setColumn($spalte, $spalte, $projectcolumnwidths[$project]);
|
||||
$worksheet->write($zeile, $spalte++, $projectlines[$daysnmbr]->projekte[$project]->beschreibung, $format_cell_rightline);
|
||||
}
|
||||
@@ -505,15 +539,16 @@ for ($daysnmbr = 1; $daysnmbr <= $daysinmonth; $daysnmbr++)
|
||||
}
|
||||
else
|
||||
{
|
||||
//write empty cells
|
||||
$worksheet->write($zeile, $spalte, '0,00', $format_cell_centered_rightline);
|
||||
$toskip = sizeof($projectnames) * 2;
|
||||
//write empty cells until end of table
|
||||
$worksheet->writeString($zeile, $spalte, number_format(0, 2, $decpoint, $thousandsep), $format_cell_centered_leftline);
|
||||
$toskip = count($projectnames) * 2;
|
||||
for ($i = 0; $i <= $toskip; $i++)
|
||||
{
|
||||
if ($i % 2 == 0)
|
||||
$worksheet->write($zeile, $spalte++, '', $format_cell_centered_rightline);
|
||||
$worksheet->write($zeile, $spalte, '', $format_cell_centered_rightline);
|
||||
else
|
||||
$worksheet->write($zeile, $spalte++, '', $format_cell_centered);
|
||||
$worksheet->write($zeile, $spalte, '', $format_cell_centered);
|
||||
$spalte++;
|
||||
}
|
||||
}
|
||||
$zeile++;
|
||||
@@ -523,22 +558,21 @@ if ($nrProjects < 1)
|
||||
//no projects - merge all cells and write notice
|
||||
{
|
||||
$worksheet->setMerge(3, 3, 4 + $daysinmonth, $lastspalte);
|
||||
$worksheet->write(3, 3, "keine Projekte vorhanden", $format_bold_centered_alllines);
|
||||
$worksheet->write(3, $lastspalte, "", $format_bold_centered_alllines);
|
||||
$worksheet->write(3, 3, $p->t('zeitaufzeichnung/keineprojekte'), $format_bold_centered_alllines);
|
||||
$worksheet->write(3, $lastspalte, '', $format_bold_centered_alllines);
|
||||
}
|
||||
|
||||
//write monthly sums
|
||||
$spalte = 0;
|
||||
$worksheet->setMerge($zeile, $spalte, $zeile, $spalte + 1);
|
||||
$worksheet->write($zeile, $spalte, 'Summe:', $format_bold_centered_alllines);
|
||||
$worksheet->write($zeile, $spalte, $p->t('zeitaufzeichnung/summe'), $format_bold_centered_alllines);
|
||||
$worksheet->write($zeile, $spalte + 1, '', $format_bold_centered_alllines);
|
||||
$spalte += 2;
|
||||
$worksheet->write($zeile, $spalte++, number_format($monthsums[0], 2, ",", "."), $format_cell_centered_alllines);
|
||||
$worksheet->writeString($zeile, $spalte++, number_format($monthsums[0], 2, $decpoint, $thousandsep), $format_cell_centered_alllines);
|
||||
foreach ($projectnames as $project)
|
||||
{
|
||||
$worksheet->write($zeile, $spalte++, number_format($monthsums[$project], 2, ",", "."), $format_cell_centered_topbottomleftline);
|
||||
$worksheet->write($zeile, $spalte++, "", $format_cell_centered_topbottomrightline);
|
||||
$worksheet->writeString($zeile, $spalte++, number_format($monthsums[$project], 2, $decpoint, $thousandsep), $format_cell_centered_topbottomleftline);
|
||||
$worksheet->write($zeile, $spalte++, '', $format_cell_centered_topbottomrightline);
|
||||
}
|
||||
|
||||
$worksheet->fitToPages(1, 1);
|
||||
$workbook->close();
|
||||
|
||||
|
||||
+30
-1
@@ -185,6 +185,30 @@
|
||||
"reference": "b15ea33268b587d986371c0b6f215c36ffbb860c"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "package",
|
||||
"package": {
|
||||
"name": "datatables/plugins",
|
||||
"version": "3.3.7",
|
||||
"source": {
|
||||
"url": "https://github.com/DataTables/Plugins.git",
|
||||
"type": "git",
|
||||
"reference": "master"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "package",
|
||||
"package": {
|
||||
"name": "BlackrockDigital/startbootstrap-sb-admin-2",
|
||||
"version": "3.3.7",
|
||||
"source": {
|
||||
"url": "https://github.com/BlackrockDigital/startbootstrap-sb-admin-2.git",
|
||||
"type": "git",
|
||||
"reference": "master"
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
@@ -222,7 +246,12 @@
|
||||
"jquery/sizzle": "^1.0",
|
||||
"tomazdragar/SimpleCropper": "^1.0",
|
||||
"nicolaskruchten/pivottable": "^2.15.0",
|
||||
"jquery-archive/jquery-metadata": "^1.0"
|
||||
"jquery-archive/jquery-metadata": "^1.0",
|
||||
"BlackrockDigital/startbootstrap-sb-admin-2": "^3.3",
|
||||
"components/font-awesome": "^4.7",
|
||||
"moment/moment": "^2.20",
|
||||
"datatables/datatables": "^1.10",
|
||||
"datatables/plugins": "^3.3"
|
||||
},
|
||||
"require-dev": {
|
||||
"squizlabs/php_codesniffer": "2.*"
|
||||
|
||||
Generated
+145
-13
@@ -4,9 +4,19 @@
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"hash": "e528bc5e31312080d7db9b1b3ae4033b",
|
||||
"content-hash": "69612123f7b612e61cf1e0368e01ee27",
|
||||
"hash": "28942746c1b00b590a3d3cb43cd21606",
|
||||
"content-hash": "2c99452d2bf338a1d1e3462197ab25b7",
|
||||
"packages": [
|
||||
{
|
||||
"name": "BlackrockDigital/startbootstrap-sb-admin-2",
|
||||
"version": "3.3.7",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/BlackrockDigital/startbootstrap-sb-admin-2.git",
|
||||
"reference": "master"
|
||||
},
|
||||
"type": "library"
|
||||
},
|
||||
{
|
||||
"name": "alvaro-prieto/colResizable",
|
||||
"version": "1.6",
|
||||
@@ -462,6 +472,41 @@
|
||||
],
|
||||
"time": "2015-06-17 06:08:09"
|
||||
},
|
||||
{
|
||||
"name": "components/font-awesome",
|
||||
"version": "4.7.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/components/font-awesome.git",
|
||||
"reference": "885308b939369d147bec93174722786bc2c4eedd"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/components/font-awesome/zipball/885308b939369d147bec93174722786bc2c4eedd",
|
||||
"reference": "885308b939369d147bec93174722786bc2c4eedd",
|
||||
"shasum": ""
|
||||
},
|
||||
"type": "component",
|
||||
"extra": {
|
||||
"component": {
|
||||
"styles": [
|
||||
"css/font-awesome.css"
|
||||
],
|
||||
"files": [
|
||||
"css/font-awesome.min.css",
|
||||
"css/font-awesome.css.map",
|
||||
"fonts/*"
|
||||
]
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT",
|
||||
"OFL-1.1"
|
||||
],
|
||||
"description": "The iconic font designed for use with Twitter Bootstrap.",
|
||||
"time": "2016-10-25 10:56:23"
|
||||
},
|
||||
{
|
||||
"name": "components/jquery",
|
||||
"version": "2.1.4",
|
||||
@@ -635,6 +680,39 @@
|
||||
"description": "jQuery UI is a curated set of user interface interactions, effects, widgets, and themes built on top of the jQuery JavaScript Library. Whether you're building highly interactive web applications or you just need to add a date picker to a form control, jQuery UI is the perfect choice.",
|
||||
"time": "2016-09-16 05:47:55"
|
||||
},
|
||||
{
|
||||
"name": "datatables/datatables",
|
||||
"version": "1.10.16",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/DataTables/DataTables.git",
|
||||
"reference": "75a665f64f02982c0f4666b15a25c4670e5e6b18"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/DataTables/DataTables/zipball/75a665f64f02982c0f4666b15a25c4670e5e6b18",
|
||||
"reference": "75a665f64f02982c0f4666b15a25c4670e5e6b18",
|
||||
"shasum": ""
|
||||
},
|
||||
"type": "library",
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"description": "DataTables is a plug-in for the jQuery Javascript library. It is a highly flexible tool, based upon the foundations of progressive enhancement, which will add advanced interaction controls to any HTML table.",
|
||||
"homepage": "http://www.datatables.net/",
|
||||
"time": "2017-08-31 13:52:17"
|
||||
},
|
||||
{
|
||||
"name": "datatables/plugins",
|
||||
"version": "3.3.7",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/DataTables/Plugins.git",
|
||||
"reference": "master"
|
||||
},
|
||||
"type": "library"
|
||||
},
|
||||
{
|
||||
"name": "easyrdf/easyrdf",
|
||||
"version": "0.9.1",
|
||||
@@ -1198,6 +1276,60 @@
|
||||
],
|
||||
"time": "2016-10-10 08:57:56"
|
||||
},
|
||||
{
|
||||
"name": "moment/moment",
|
||||
"version": "2.20.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/moment/moment.git",
|
||||
"reference": "03073778ec18ee38e179208cd1af899e8d1848dc"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/moment/moment/zipball/03073778ec18ee38e179208cd1af899e8d1848dc",
|
||||
"reference": "03073778ec18ee38e179208cd1af899e8d1848dc",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"robloach/component-installer": "*"
|
||||
},
|
||||
"type": "component",
|
||||
"extra": {
|
||||
"component": {
|
||||
"scripts": [
|
||||
"moment.js"
|
||||
],
|
||||
"files": [
|
||||
"min/*.js",
|
||||
"locale/*.js"
|
||||
]
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Tim Wood",
|
||||
"email": "washwithcare@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "Parse, validate, manipulate, and display dates in JavaScript.",
|
||||
"homepage": "https://github.com/moment/moment",
|
||||
"keywords": [
|
||||
"date",
|
||||
"ender",
|
||||
"format",
|
||||
"i18n",
|
||||
"l10n",
|
||||
"moment",
|
||||
"parse",
|
||||
"time",
|
||||
"validate"
|
||||
],
|
||||
"time": "2017-12-19 04:36:30"
|
||||
},
|
||||
{
|
||||
"name": "netcarver/textile",
|
||||
"version": "v3.6.0",
|
||||
@@ -1840,16 +1972,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-mbstring",
|
||||
"version": "v1.5.0",
|
||||
"version": "v1.6.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-mbstring.git",
|
||||
"reference": "7c8fae0ac1d216eb54349e6a8baa57d515fe8803"
|
||||
"reference": "2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/7c8fae0ac1d216eb54349e6a8baa57d515fe8803",
|
||||
"reference": "7c8fae0ac1d216eb54349e6a8baa57d515fe8803",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296",
|
||||
"reference": "2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -1861,7 +1993,7 @@
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.5-dev"
|
||||
"dev-master": "1.6-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
@@ -1895,7 +2027,7 @@
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"time": "2017-06-14 15:44:48"
|
||||
"time": "2017-10-11 12:05:26"
|
||||
},
|
||||
{
|
||||
"name": "symfony/process",
|
||||
@@ -2008,16 +2140,16 @@
|
||||
},
|
||||
{
|
||||
"name": "tinymce/tinymce",
|
||||
"version": "4.7.1",
|
||||
"version": "4.7.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/tinymce/tinymce-dist.git",
|
||||
"reference": "4fd91026d3765fee9b148b5e684b014a8e18ead1"
|
||||
"reference": "2639396a6d5eb8db7457ed4f6de6f5d15303ef52"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/tinymce/tinymce-dist/zipball/4fd91026d3765fee9b148b5e684b014a8e18ead1",
|
||||
"reference": "4fd91026d3765fee9b148b5e684b014a8e18ead1",
|
||||
"url": "https://api.github.com/repos/tinymce/tinymce-dist/zipball/2639396a6d5eb8db7457ed4f6de6f5d15303ef52",
|
||||
"reference": "2639396a6d5eb8db7457ed4f6de6f5d15303ef52",
|
||||
"shasum": ""
|
||||
},
|
||||
"type": "component",
|
||||
@@ -2050,7 +2182,7 @@
|
||||
"tinymce",
|
||||
"wysiwyg"
|
||||
],
|
||||
"time": "2017-10-09 13:17:31"
|
||||
"time": "2017-11-07 12:44:31"
|
||||
},
|
||||
{
|
||||
"name": "tomazdragar/SimpleCropper",
|
||||
|
||||
@@ -41,7 +41,20 @@ $this->phrasen['zeitaufzeichnung/alleEintraege']='Alle Einträge';
|
||||
$this->phrasen['zeitaufzeichnung/summeEintraege']='Summe Einträge';
|
||||
$this->phrasen['zeitaufzeichnung/arbeitszeit']='Arbeitszeit';
|
||||
$this->phrasen['zeitaufzeichnung/pause']='Pausen';'inkl. 30 min. Pflichtpause';
|
||||
$this->phrasen['zeitaufzeichnung/inklusivePflichtpause']='inkl. 30 min. Pflichtpause';
|
||||
$this->phrasen['zeitaufzeichnung/handbuchZeitaufzeichnung']='Arbeitszeitaufzeichnung Leitfaden';
|
||||
$this->phrasen['zeitaufzeichnung/inklusivePflichtpause']='inkl. 30 min. Pflichtpause';
|
||||
$this->phrasen['zeitaufzeichnung/handbuchZeitaufzeichnung']='Arbeitszeitaufzeichnung Leitfaden';
|
||||
$this->phrasen['zeitaufzeichnung/fiktiveNormalarbeitszeit']='Vereinbarung der fiktiven Normalarbeitszeit';
|
||||
$this->phrasen['zeitaufzeichnung/projektexport']='Projektexport';
|
||||
$this->phrasen['zeitaufzeichnung/projektliste']='Projektliste';
|
||||
$this->phrasen['zeitaufzeichnung/projektlistegedruckt']='Projektliste gedruckt am:';
|
||||
$this->phrasen['zeitaufzeichnung/personalnr']='Personal-Nr.:';
|
||||
$this->phrasen['zeitaufzeichnung/jahr']='Jahr:';
|
||||
$this->phrasen['zeitaufzeichnung/monat']='Monat:';
|
||||
$this->phrasen['zeitaufzeichnung/tag']='Tag';
|
||||
$this->phrasen['zeitaufzeichnung/startdatum']='Startdatum:';
|
||||
$this->phrasen['zeitaufzeichnung/enddatum']='Enddatum:';
|
||||
$this->phrasen['zeitaufzeichnung/stunden']='Stunden';
|
||||
$this->phrasen['zeitaufzeichnung/taetigkeit']='Tätigkeit';
|
||||
$this->phrasen['zeitaufzeichnung/keineprojekte']='keine Projekte vorhanden';
|
||||
$this->phrasen['zeitaufzeichnung/summe']='Summe:';
|
||||
?>
|
||||
|
||||
@@ -41,7 +41,20 @@ $this->phrasen['zeitaufzeichnung/alleEintraege']='All entries';
|
||||
$this->phrasen['zeitaufzeichnung/summeEintraege']='Total';
|
||||
$this->phrasen['zeitaufzeichnung/arbeitszeit']='Working time';
|
||||
$this->phrasen['zeitaufzeichnung/pause']='Breaks';
|
||||
$this->phrasen['zeitaufzeichnung/inklusicePlichtpause']='incl. 30 min. lunch break';
|
||||
$this->phrasen['zeitaufzeichnung/handbuchZeitaufzeichnung']='Timesheet howto';
|
||||
$this->phrasen['zeitaufzeichnung/inklusicePlichtpause']='incl. 30 min. lunch break';
|
||||
$this->phrasen['zeitaufzeichnung/handbuchZeitaufzeichnung']='Timesheet howto';
|
||||
$this->phrasen['zeitaufzeichnung/fiktiveNormalarbeitszeit']='Vereinbarung der fiktiven Normalarbeitszeit';
|
||||
$this->phrasen['zeitaufzeichnung/projektexport']='Projectexport';
|
||||
$this->phrasen['zeitaufzeichnung/projektliste']='Projectlist';
|
||||
$this->phrasen['zeitaufzeichnung/projektlistegedruckt']='Projectlist printed on:';
|
||||
$this->phrasen['zeitaufzeichnung/personalnr']='staff number ';
|
||||
$this->phrasen['zeitaufzeichnung/jahr']='Year:';
|
||||
$this->phrasen['zeitaufzeichnung/monat']='Month:';
|
||||
$this->phrasen['zeitaufzeichnung/tag']='Day';
|
||||
$this->phrasen['zeitaufzeichnung/startdatum']='Startdate:';
|
||||
$this->phrasen['zeitaufzeichnung/enddatum']='Enddate:';
|
||||
$this->phrasen['zeitaufzeichnung/stunden']='Hours';
|
||||
$this->phrasen['zeitaufzeichnung/taetigkeit']='Activity';
|
||||
$this->phrasen['zeitaufzeichnung/keineprojekte']='no projects exist';
|
||||
$this->phrasen['zeitaufzeichnung/summe']='Sum:';
|
||||
?>
|
||||
@@ -125,8 +125,8 @@ function loadStudienordnung()
|
||||
$("#studienplan").html("Bitte wählen Sie zuerst eine Studienordnung aus!");
|
||||
drawStudienordnungen(data.result);
|
||||
//jqUi( "#menueLinks" ).accordion("option","active",1);
|
||||
}
|
||||
neueStudienordnung();
|
||||
}
|
||||
neueStudienordnung();
|
||||
});
|
||||
}
|
||||
|
||||
@@ -138,12 +138,12 @@ function drawStudienordnungen(data)
|
||||
{
|
||||
var obj='<a href="#Neu" onclick="neueStudienordnung();return false;">Neue Studienordnung</a><ul style="padding-left: 15px">';
|
||||
|
||||
for(i in data)
|
||||
for(i in data)
|
||||
{
|
||||
if(data[i].studienordnung_id !== null)
|
||||
{
|
||||
obj = obj + '<li>'
|
||||
+' <a style="white-space:nowrap" href="#Load'+data[i].studienordnung_id+'" onclick="loadStudienplanSTO('+data[i].studienordnung_id+','+data[i].studienplan_id+',\''+data[i].bezeichnung+'\',);return false;">'+data[i].bezeichnung+'</a> '
|
||||
+' <a style="white-space:nowrap" href="#Load'+data[i].studienordnung_id+'" onclick="loadStudienplanSTO('+data[i].studienordnung_id+','+data[i].studienplan_id+',\''+data[i].bezeichnung+'\');return false;">'+data[i].bezeichnung+'</a> '
|
||||
+' <a href="#Copy'+data[i].studienordnung_id+'" onclick="copyStudienordnung('+data[i].studienordnung_id+');return false;"><img title="Studienordnung kopieren" src="../../skin/images/copy.png"></a> '
|
||||
+' <a href="../../content/pdfExport.php?xml=studienordnung.rdf.php&xsl=Studienordnung&studienordnung_id='+data[i].studienordnung_id+'&stg_kz=0&output=doc"><img style="cursor:pointer; height: 16px;" title="Studienordnung als Word-Dokument exportieren" src="../../skin/images/doc_icon.png"></a>'
|
||||
+' <a href="../../content/pdfExport.php?xml=studienordnung.rdf.php&xsl=Studienordnung&studienordnung_id='+data[i].studienordnung_id+'&stg_kz=0&output=pdf"><img style="cursor:pointer; height: 16px;" title="Studienordnung als PDF-Dokument exportieren" src="../../skin/images/pdf_icon.png"></a>'
|
||||
@@ -174,7 +174,7 @@ function loadStudienplanSTO(neue_studienordnung_id, studienplan_id,bezeichnung)
|
||||
"typ": "json",
|
||||
"class": "studienplan",
|
||||
"method": "loadStudienplanSTO",
|
||||
"parameter_0": global_studienordnung_id
|
||||
"parameter_0": global_studienordnung_id
|
||||
},
|
||||
error: loadError
|
||||
}).success(function(data)
|
||||
@@ -1455,7 +1455,7 @@ function writeOverallSum(root)
|
||||
*/
|
||||
function semesterSTPLZuordnung()
|
||||
{
|
||||
drawHeader('Neue Studienplan Zuordnung');
|
||||
drawHeader('Neue Studienplan Zuordnung');
|
||||
$("#data").load('studienordnung.inc.php?method=semesterSTPLZuordnung&studienplan_id='+global_studienplan_id);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user