X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=sidebyside;f=WEB-INF%2Flib%2FttOrgHelper.class.php;h=81bfbcf7010416214e960393e0e8c3b0cf9a6e9b;hb=871d0e2a62747b03609afc04e0ed84cfb0b1d776;hp=2cf045060e4926a10ece46a708ca65be90baf387;hpb=8492dc052ad85039e0bbe11c7c3e1b8554907f64;p=timetracker.git diff --git a/WEB-INF/lib/ttOrgHelper.class.php b/WEB-INF/lib/ttOrgHelper.class.php index 2cf04506..81bfbcf7 100644 --- a/WEB-INF/lib/ttOrgHelper.class.php +++ b/WEB-INF/lib/ttOrgHelper.class.php @@ -62,4 +62,39 @@ class ttOrgHelper { } return false; } + + // The getInactiveOrgs is a maintenance function that returns an array of inactive organization ids (max 5 for now). + static function getInactiveOrgs() { + $inactive_orgs = array(); + $mdb2 = getConnection(); + + // Determine inactive organizations by querying the database for max access timestamp for its users. + $cutoff_timestamp = $mdb2->quote(date('Y-m-d', strtotime('-1 year'))); + $sql = "select org_id from". + " (select max(accessed) as last_access, org_id from tt_users group by org_id order by last_access, org_id) as t". + " where last_access is null or last_access < $cutoff_timestamp limit 5"; // Max 5 orgs at a time for now... + $res = $mdb2->query($sql); + if (!is_a($res, 'PEAR_Error')) { + while ($val = $res->fetchRow()) { + $inactive_orgs[] = $val['org_id']; + } + return $inactive_orgs; + } + return false; + } + + // deleteOrg deletes data for the entire organization from database permanently. + // Work in progress, currently not fully implemented. + static function deleteOrg($org_id) { + // We shall do it in a straightforward way by a delete operation from all tables by org_id. + // However, at this time not all tables have org_id. + // So, we need to add the field as we write code here. + + // Delete monthly quotas. + $sql = "delete from tt_monthly_quotas where org_id = $org_id"; + $affected = $mdb2->exec($sql); + if (is_a($affected, 'PEAR_Error')) return false; + + return true; // Work in progress, currently not fully implemented. + } }