X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/timetracker.git/blobdiff_plain/8492dc052ad85039e0bbe11c7c3e1b8554907f64..e8612865ad9644fad85cd0d6fef32ea07c8acdf9:/WEB-INF/lib/ttOrgHelper.class.php diff --git a/WEB-INF/lib/ttOrgHelper.class.php b/WEB-INF/lib/ttOrgHelper.class.php index 2cf04506..c69fc7a7 100644 --- a/WEB-INF/lib/ttOrgHelper.class.php +++ b/WEB-INF/lib/ttOrgHelper.class.php @@ -62,4 +62,49 @@ 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 expense items. + $sql = "delete from tt_expense_items where org_id = $org_id"; + $affected = $mdb2->exec($sql); + if (is_a($affected, 'PEAR_Error')) return false; + + // Delete predefined expenses. + $sql = "delete from tt_predefined_expenses where org_id = $org_id"; + $affected = $mdb2->exec($sql); + if (is_a($affected, 'PEAR_Error')) return false; + + // 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. + } }