Skip to content
Snippets Groups Projects
Commit 983c2af2 authored by Elmar Ludwig's avatar Elmar Ludwig
Browse files

clean up orphaned entries, fixes #75 and #77

parent 93ed76d9
No related branches found
No related tags found
No related merge requests found
<?php
class CleanupTimesheets extends Migration
{
public function description()
{
return 'remove orphaned entries from stundenzettel_timesheets';
}
public function up()
{
$db = DBManager::get();
$sql = 'ALTER TABLE stundenzettel_contracts ADD KEY inst_id (inst_id)';
$db->exec($sql);
$sql = 'ALTER TABLE stundenzettel_timesheets ADD KEY contract_id (contract_id)';
$db->exec($sql);
$sql = 'DELETE FROM stundenzettel_timesheets
WHERE contract_id NOT IN (SELECT id FROM stundenzettel_contracts)';
$db->exec($sql);
$sql = 'DELETE FROM stundenzettel_records
WHERE timesheet_id NOT IN (SELECT id FROM stundenzettel_timesheets)';
$db->exec($sql);
}
public function down()
{
$db = DBManager::get();
$sql = 'ALTER TABLE stundenzettel_contracts DROP KEY inst_id';
$db->exec($sql);
$sql = 'ALTER TABLE stundenzettel_timesheets DROP KEY contract_id';
$db->exec($sql);
}
}
......@@ -36,6 +36,12 @@ class StundenzettelContract extends \SimpleORMap
'foreign_key' => 'inst_id'
];
$config['has_many']['timesheets'] = [
'class_name' => 'StundenzettelTimesheet',
'assoc_foreign_key' => 'contract_id',
'on_delete' => 'delete'
];
$config['additional_fields']['default_workday_time']['get'] = function ($item) {
$workday_hours = $item->contract_hours / 4.348 / 5;
$hours = floor($workday_hours);
......
......@@ -26,7 +26,8 @@ class StundenzettelRecord extends \SimpleORMap
$config['belongs_to']['timesheet'] = [
'class_name' => 'StundenzettelTimesheet',
'foreign_key' => 'timesheet_id',];
'foreign_key' => 'timesheet_id'
];
$config['registered_callbacks']['before_store'][] = 'before_store';
......
......@@ -29,6 +29,12 @@ class StundenzettelTimesheet extends \SimpleORMap
'foreign_key' => 'approver_id'
];
$config['has_many']['records'] = [
'class_name' => 'StundenzettelRecord',
'assoc_foreign_key' => 'timesheet_id',
'on_delete' => 'delete'
];
$config['additional_fields']['timesheet_balance']['get'] = function ($item) {
if ($item->month_completed) {
return $item->sum - ($item->contract->contract_hours * 3600);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment