]> wagnertech.de Git - timetracker.git/blobdiff - cron.php
Fixed the problem when notifications stopped working after deleting a co-manager.
[timetracker.git] / cron.php
index 7be547d6195113a984a526b91fcc11f042cbc1b2..cf5ac0dde56d11df60ba36c0d544010cd9f8f927 100644 (file)
--- a/cron.php
+++ b/cron.php
@@ -58,17 +58,26 @@ while ($val = $res->fetchRow()) {
 
   // Get favorite report details.
   $report = ttFavReportHelper::getReport($val['report_id']);
 
   // Get favorite report details.
   $report = ttFavReportHelper::getReport($val['report_id']);
-  if (!$report) continue;
+  if (!$report) continue; // Skip not found report.
 
 
-  // Recycle global $user and $i18n objects, as user settings and language are specific for each report.
+  // Recycle global $user object, as user settings are specific for each report.
   $user = new ttUser(null, $report['user_id']);
   $user = new ttUser(null, $report['user_id']);
+  if (!$user->id) continue; // Skip not found user.
+  // Recycle $i18n object because language is user-specific.
   $i18n->load($user->lang);
 
   $i18n->load($user->lang);
 
-  // Email report.
-  if (ttReportHelper::sendFavReport($report, $val['email']))
-    echo "Report ".$val['report_id']. " sent to ".$val['email']."<br>";
-  else
-    echo "Error while emailing report...<br>";
+  // Check condition on a report.
+  $condition_ok = true;
+  if ($val['report_condition'])
+    $condition_ok = ttReportHelper::checkFavReportCondition($report, $val['report_condition']);
+
+  // Email report if condition is okay.
+  if ($condition_ok) {
+    if (ttReportHelper::sendFavReport($report, $val['email']))
+      echo "Report ".$val['report_id']. " sent to ".$val['email']."<br>";
+    else
+      echo "Error while emailing report...<br>";
+  }
 
   // Calculate next execution time.
   $next = tdCron::getNextOccurrence($val['cron_spec'], $now + 60); // +60 sec is here to get us correct $next when $now is close to existing "next".
 
   // Calculate next execution time.
   $next = tdCron::getNextOccurrence($val['cron_spec'], $now + 60); // +60 sec is here to get us correct $next when $now is close to existing "next".