diff --git a/Stundenzettel.class.php b/Stundenzettel.class.php index 4d41b41350aed50441195838357c49044bdbe499..ff74009918f442bf4adc65eb869ee9b97ee615e6 100644 --- a/Stundenzettel.class.php +++ b/Stundenzettel.class.php @@ -9,7 +9,6 @@ * @version 1.0 */ -require_once 'constants.inc.php'; require_once 'models/StundenzettelContract.class.php'; require_once 'models/StundenzettelRecord.class.php'; require_once 'models/StundenzettelTimesheet.class.php'; @@ -86,14 +85,14 @@ class Stundenzettel extends StudipPlugin implements SystemPlugin public function hasStumiAdminrole () { - return RolePersistence::isAssignedRole($GLOBALS['user']->user_id, \Stundenzettelverwaltung\STUNDENVERWALTUNG_ROLE); + return RolePersistence::isAssignedRole($GLOBALS['user']->user_id, 'Stundenzettelverwaltung'); } public function getAdminInstIds () { $roles = RolePersistence::getAllRoles(); foreach($roles as $role) { - if($role->getRolename() == \Stundenzettelverwaltung\STUNDENVERWALTUNG_ROLE) { + if($role->getRolename() == 'Stundenzettelverwaltung') { $role_id = $role->getRoleid(); } } diff --git a/constants.inc.php b/constants.inc.php deleted file mode 100644 index 2e31851eafe6bd871f11a76ac7e42ea45502a2ff..0000000000000000000000000000000000000000 --- a/constants.inc.php +++ /dev/null @@ -1,5 +0,0 @@ -<?php - -namespace Stundenzettelverwaltung; - -const STUNDENVERWALTUNG_ROLE = 'Stundenzettelverwaltung'; \ No newline at end of file diff --git a/migrations/001_stumi_stundenzettel_tables.php b/migrations/001_stumi_stundenzettel_tables.php index 46dc4fef5bebe1a02e284bb474036e65d8ce5a17..32f9ecb7c4a2424b405a265c1bfcb41af7451a00 100644 --- a/migrations/001_stumi_stundenzettel_tables.php +++ b/migrations/001_stumi_stundenzettel_tables.php @@ -1,7 +1,5 @@ <?php -require_once __DIR__ . '/../constants.inc.php'; - class StumiStundenzettelTables extends Migration { public function description() @@ -13,7 +11,7 @@ class StumiStundenzettelTables extends Migration { $role = new Role(); - $role->setRolename(\Stundenzettelverwaltung\STUNDENVERWALTUNG_ROLE); + $role->setRolename('Stundenzettelverwaltung'); $role->setSystemtype(false); RolePersistence::saveRole($role); @@ -76,7 +74,7 @@ class StumiStundenzettelTables extends Migration $roles = RolePersistence::getAllRoles(); foreach($roles as $role) { - if($role->getRolename() == \Stundenzettelverwaltung\STUNDENVERWALTUNG_ROLE) { + if($role->getRolename() == 'Stundenzettelverwaltung') { RolePersistence::deleteRole($role); } } diff --git a/migrations/004_add_table_institute_settings.php b/migrations/004_add_table_institute_settings.php index 132fce6b78905749f2abd199166eb8bca89dfcb3..28f18c8f75cd3732fedb419c3fc77930b8fd30d2 100644 --- a/migrations/004_add_table_institute_settings.php +++ b/migrations/004_add_table_institute_settings.php @@ -1,7 +1,5 @@ <?php -require_once __DIR__ . '/../constants.inc.php'; - class AddTableInstituteSettings extends Migration { public function description() diff --git a/migrations/005_add_finished_timestamp.php b/migrations/005_add_finished_timestamp.php new file mode 100644 index 0000000000000000000000000000000000000000..df27e75186b1f6d70c8077ea99c86182bb71984b --- /dev/null +++ b/migrations/005_add_finished_timestamp.php @@ -0,0 +1,39 @@ +<?php + +class AddFinishedTimestamp extends Migration +{ + public function description() + { + return 'add timestamp to stundenzettel_timesheets'; + } + + public function up() + { + $db = DBManager::get(); + + $sql = 'ALTER TABLE stundenzettel_contracts ADD description varchar(255) NOT NULL AFTER contract_end'; + $db->exec($sql); + + $sql = 'ALTER TABLE stundenzettel_timesheets ADD finished_at date DEFAULT NULL'; + $db->exec($sql); + + $sql = 'UPDATE stundenzettel_timesheets SET finished_at = + (SELECT MAX(entry_mktime) FROM stundenzettel_records WHERE timesheet_id = id GROUP BY timesheet_id) + WHERE finished = 1'; + $db->exec($sql); + + $sql = 'UPDATE stundenzettel_timesheets SET finished_at = NOW() WHERE finished = 1 AND finished_at IS NULL'; + $db->exec($sql); + } + + public function down() + { + $db = DBManager::get(); + + $sql = 'ALTER TABLE stundenzettel_contracts DROP description'; + $db->exec($sql); + + $sql = 'ALTER TABLE stundenzettel_timesheets DROP finished_at'; + $db->exec($sql); + } +} diff --git a/models/StundenzettelTimesheet.class.php b/models/StundenzettelTimesheet.class.php index cea438e555e4c1cf4dd99d3e8e3d56652d5f55e1..03ad8f2dfd41160f9980f4f58d103b17e9796d8c 100644 --- a/models/StundenzettelTimesheet.class.php +++ b/models/StundenzettelTimesheet.class.php @@ -128,7 +128,6 @@ class StundenzettelTimesheet extends \SimpleORMap { global $STUDIP_BASE_PATH, $TMP_PATH; $line_height = 3; - $date = ''; // create new PDF document $pdf = new ExportPDF(); @@ -151,7 +150,7 @@ class StundenzettelTimesheet extends \SimpleORMap $pdf->Write(5, User::find($this->contract->user_id)->nachname . ', ' . User::find($this->contract->user_id)->vorname); $pdf->Ln(); $pdf->SetX(80); - $pdf->Write(5, my_substr(Institute::find($this->contract->inst_id)->name ,0,50)); + $pdf->Write(5, my_substr(Institute::find($this->contract->inst_id)->name, 0, 64)); $pdf->Ln(); $pdf->SetX(80); $pdf->Write(6, $this->month . '/' . $this->year); @@ -179,7 +178,6 @@ class StundenzettelTimesheet extends \SimpleORMap $pdf->Write($line_height, $record->defined_comment . ' ' . $record->comment); $pdf->Ln(); - $date = max($date, $record->entry_mktime); } $pdf->SetY(192); @@ -192,7 +190,7 @@ class StundenzettelTimesheet extends \SimpleORMap $pdf->SetY(208); $pdf->SetX(24); - $pdf->Write($line_height, date('d.m.Y', $date ? strtotime($date) : time()) . ', ' . $this->contract->stumi->getFullname()); + $pdf->Write($line_height, date('d.m.Y', strtotime($this->finished_at)) . ', ' . $this->contract->stumi->getFullname()); return $pdf; }