From 0ab715fc86a3cc0082f166dd4a29160adf17403a Mon Sep 17 00:00:00 2001 From: Ralf Becker Date: Mon, 7 Aug 2006 08:35:27 +0000 Subject: [PATCH] small utility to re-link timeheets with projectmanager (fix deleted links by the bug in the links class) --- timesheet/fix_lost_links.php | 44 ++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 timesheet/fix_lost_links.php diff --git a/timesheet/fix_lost_links.php b/timesheet/fix_lost_links.php new file mode 100644 index 0000000000..2168c4ae29 --- /dev/null +++ b/timesheet/fix_lost_links.php @@ -0,0 +1,44 @@ + * +* -------------------------------------------- * +* This program is free software; you can redistribute it and/or modify it * +* under the terms of the GNU General Public License as published by the * +* Free Software Foundation; either version 2 of the License, or (at your * +* option) any later version. * +\**************************************************************************/ + +/* $Id: index.php 20159 2005-12-19 04:23:14Z ralfbecker $ */ + +$GLOBALS['egw_info'] = array( + 'flags' => array( + 'currentapp' => 'admin', +)); +include('../header.inc.php'); + +require_once(EGW_INCLUDE_ROOT.'/timesheet/inc/class.botimesheet.inc.php'); + +$bots =& new botimesheet(); +$so_sql =& new so_sql('timesheet',$bots->table_name); + +// search timesheet which have a project-field identical to an exiting PM project, but no link to it +$rows = $so_sql->search(false,'ts_id,ts_project,ts_title','','pm_id,link_id','',false,'AND',false,array('link_id IS NULL'), + ' JOIN egw_pm_projects ON ts_project='.$so_sql->db->concat('pm_number',"': '",'pm_title'). + " LEFT JOIN egw_links ON (link_app1='timesheet' AND link_id1=ts_id AND link_app2='projectmanager' AND link_id2=pm_id". + " OR link_app1='projectmanager' AND link_id1=pm_id AND link_app2='timesheet' and link_id2=ts_id)"); + +echo "

Fixing links to ProjectManager lost by the bug in the links-class

\n"; + +if ($rows) +{ + foreach($rows as $row) + { + if ($bots->link->link('timesheet',$row['ts_id'],'projectmanager',$row['pm_id'])) + { + echo "

relinked timesheet '$row[ts_title]' with project '$row[ts_project]'

\n"; + } + } +} +echo "

".(is_array($rows) ? count($rows) : 0)." missing links found.

\n"; \ No newline at end of file