X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=WEB-INF%2Flib%2FttOrgHelper.class.php;h=8b3f95ff00f1b2062df22fbf2c140b664920ef04;hb=fd6aa4c43cecf1754280ae8abb9f58add8c6c977;hp=4a322f07d6773a6470d0ace16429a1f7b0d37809;hpb=32173f5d1d4c523d9f3223489651049cafad9a5e;p=timetracker.git diff --git a/WEB-INF/lib/ttOrgHelper.class.php b/WEB-INF/lib/ttOrgHelper.class.php index 4a322f07..8b3f95ff 100644 --- a/WEB-INF/lib/ttOrgHelper.class.php +++ b/WEB-INF/lib/ttOrgHelper.class.php @@ -84,11 +84,39 @@ class ttOrgHelper { } // deleteOrg deletes data for the entire organization from database permanently. - static function deleteOrg() { - return false; // Work in progress, currently not implemented. + static function deleteOrg($org_id) { + // Go one table at a time and remove all records with matching org_id. + // The order is backwards to import (see ttOrgImportHelper). Remove groups last. + // This leaves us with something partially working if an error occurs. + $mdb2 = getConnection(); - // 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. + $tables = array( + 'tt_config', + 'tt_cron', + 'tt_fav_reports', + 'tt_monthly_quotas', + 'tt_predefined_expenses', + 'tt_expense_items', + 'tt_custom_field_log', + 'tt_custom_field_options', + 'tt_custom_fields', + 'tt_log', + 'tt_invoices', + 'tt_user_project_binds', + 'tt_users', + 'tt_client_project_binds', + 'tt_clients', + 'tt_project_task_binds', + 'tt_projects', + 'tt_tasks', + 'tt_roles', + 'tt_groups' + ); + foreach($tables as $table) { + $sql = "delete from $table where org_id = $org_id"; + $affected = $mdb2->exec($sql); + if (is_a($affected, 'PEAR_Error')) return false; + } + return true; } }