[evolvis-commits] r12094: [#3088] Fixed the daily_task_email cron (trunk)

mirabilos at evolvis.org mirabilos at evolvis.org
Thu Feb 24 18:38:54 CET 2011


Author: mirabilos
Date: 2011-02-24 18:38:54 +0100 (Thu, 24 Feb 2011)
New Revision: 12094

Modified:
   trunk/gforge_base/evolvisforge-5.1/gforge/cronjobs/daily_task_email.php
Log:
[#3088] Fixed the daily_task_email cron (trunk)

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/cronjobs/daily_task_email.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/cronjobs/daily_task_email.php	2011-02-24 17:38:51 UTC (rev 12093)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/cronjobs/daily_task_email.php	2011-02-24 17:38:54 UTC (rev 12094)
@@ -25,11 +25,24 @@
  */
 
 require_once('squal_pre.php');
-require_once('common/pm/ProjectTasksForUser.class.php');
+require_once('common/pm/ProjectTasksForUser.class');
 require_once('common/include/cron_utils.php');
 
-$err='';
+//
+//  Set up this script to run as the site admin
+//
+$res = db_query("SELECT user_id FROM user_group WHERE admin_flags='A' AND group_id='1'");
 
+if (!$res) {
+    echo db_error();
+    exit(1);
+}
+if (db_numrows($res) == 0) {
+    exit(0);
+}
+$id=db_result($res,0,0);
+session_set_new($id);
+
 // Get user id's from users who have open tasks
 $res = db_query("SELECT DISTINCT u.user_id, u.realname, u.email FROM users u, project_assigned_to pat, project_task_vw ptv 
 		WHERE u.user_id > 100 AND u.user_id=pat.assigned_to_id AND pat.project_task_id=ptv.project_task_id 
@@ -50,30 +63,45 @@
 	if (!$user_object || !is_object($user_object)) {
 		$err .= "Could not get User object with ID: $user_id\n";
 	} else {
+		$projectTasksForUser = new ProjectTasksForUser($user_object);
 
-		$projectTasksForUser = new ProjectTasksForUser($user_object);
 		if (!$projectTasksForUser || !is_object($projectTasksForUser)) {
 			$err .= "Could not get ProjectTasksForUser object for user with ID: $user_id\n";
 			continue;
 		}
+
 		// get the tasks the user should work on, today
 		$userTasks =& $projectTasksForUser->getTasksForToday();
+		$last_group = 0;
+		$last_projectgroup = 0;
 
 		// start composing the email	
 		$subject = 'Tasks for '.$realname.' for '.$today;
+
 		if (count($userTasks) > 0) {
+			$valid_tasks = 0;
+			$debug_info = "************ DEBUG FOR USER: $user_id ************\n";
 			ob_start();
 			// get the data of every task and compose the email
 			foreach ($userTasks as $task) {
-	
+				if ($task->getPercentComplete() == 100) {
+					$debug_info .= "Task ID: ".$task->getID()." complete (100%)\n------------\n";
+					continue;
+				}
+				$debug_info .= 'Task ID: ' . $task->getID() . "\n";
+
 				$end_date = date("n/j/y", $task->getEndDate());
-	
+
 				$projectGroup =& $task->getProjectGroup();
 				if ($projectGroup && is_object($projectGroup)) {
 
+					$debug_info .= 'Project Group ID: ' . $projectGroup->getID() . "\n";
+
 					$group =& $projectGroup->getGroup();
 					if ($group && is_object($group)) {
 
+						$debug_info .= 'Group ID: ' . $group->getID() . "\n";
+
 						if ($group->getID() != $last_group) {
 							echo $group->getPublicName().":\n";
 						}
@@ -87,16 +115,22 @@
 						echo 'http://'.$sys_default_domain.'/pm/task.php?func=detailtask&project_task_id='.
 						$task->getID().'&group_id='.$group->getID().'&group_project_id='.$projectGroup->getID();
 						echo "\n\n";
-				
+
 						$last_group = $group->getID();
 						$last_projectgroup = $projectGroup->getID();
+						$valid_tasks++;
 					}
 				}
+				$debug_info .= "------------\n";
 			}
 			$messagebody = ob_get_contents();
 			ob_end_clean();
-			util_send_message($email, $subject, $messagebody);
-//			echo "\n\n\n***************************************************\nTo: $email\nSubject: $subject\n\n$messagebody";
+			if ($valid_tasks > 0) {
+				util_send_message($email, $subject, $messagebody);
+			}
+			/* else {
+				echo $debug_info."\n";
+			}*/
 		}
 	}
 }



More information about the evolvis-commits mailing list