Guest User

Untitled

a guest
Jul 18th, 2018
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.57 KB | None | 0 0
  1. #!/usr/bin/php
  2. <?php
  3. //in the cron job crontab -e add the following to execute this script
  4. //every day at 8am
  5. //0 8 * * * /filepath/checkEvents.php
  6.  
  7. $server='localhost';
  8. $username='root';
  9. $password='h0liday';
  10. $database='SS_mysite';
  11.  
  12. mysql_connect($server, $username, $password);
  13. @mysql_select_db($database)or die; //could add errors to a log
  14. //get todays date
  15. $today = date('Y-m-d');
  16.  
  17. //date 5days ago
  18. $emailDate=strtotime( '-5 days' , strtotime ( $today ) ) ;
  19. $emailDate=date('Y-m-d', $emailDate);
  20.  
  21. //$reportDetails="";
  22. $reportDetails.='<html><body>';
  23. function addContract($string, $reportType){
  24. $query="SELECT Contract.ID, Contract.ContractType, Organisation.Name as Organisation, School.Name as School, Concat(Person.FirstName,' ', Person.Surname)as Person, Contract.ContractStarts, Contract.ContractEnds, Contract.Deadline FROM Contract
  25. LEFT JOIN Organisation ON Contract.OrganisationID=Organisation.ID
  26. LEFT JOIN School ON School.ID=Contract.SchoolID
  27. LEFT JOIN Person ON Person.ID=Contract.PersonID ".$string."";
  28. $result=mysql_query($query);
  29. $num =mysql_numrows($result);
  30.  
  31. if($num!=0){
  32. //add to report
  33. $reportDetails.=$reportType;
  34. $reportDetails.="<table style='margin: 1em; border-collapse: collapse;'><tr>
  35. <th style='padding: .3em; border: 1px #ccc solid;'>ID</th>
  36. <th style='padding: .3em; border: 1px #ccc solid;'>Type</th>
  37. <th style='padding: .3em; border: 1px #ccc solid;'>Organisation</th>
  38. <th style='padding: .3em; border: 1px #ccc solid;'>School</th>
  39. <th style='padding: .3em; border: 1px #ccc solid;'>Person</th>
  40. <th style='padding: .3em; border: 1px #ccc solid;'>Contract Starts</th>
  41. <th style='padding: .3em; border: 1px #ccc solid;'>Contract Ends</th>
  42. <th style='padding: .3em; border: 1px #ccc solid;'>Deadline</th></tr>";
  43. for($i=0;$i<count($result);$i++){
  44. $reportDetails.="<tr><td style='padding: .3em; border: 1px #ccc solid;'>".mysql_result($result, $i, "ID")."</td>";
  45. $reportDetails.="<td style='padding: .3em; border: 1px #ccc solid;'>".mysql_result($result, $i, "ContractType")."</td>";
  46. $reportDetails.="<td style='padding: .3em; border: 1px #ccc solid;'>".mysql_result($result, $i, "Organisation")."</td>";
  47. $reportDetails.="<td style='padding: .3em; border: 1px #ccc solid;'>".mysql_result($result, $i, "School")."</td>";
  48. $reportDetails.="<td style='padding: .3em; border: 1px #ccc solid;'>".mysql_result($result, $i, "Person")."</td>";
  49. $reportDetails.="<td style='padding: .3em; border: 1px #ccc solid;'>".mysql_result($result, $i, "ContractStarts")."</td>";
  50. $reportDetails.="<td style='padding: .3em; border: 1px #ccc solid;'>".mysql_result($result, $i, "ContractEnds")."</td>";
  51. $reportDetails.="<td style='padding: .3em; border: 1px #ccc solid;'>".mysql_result($result, $i, "Deadline")."</td></tr>";
  52. }
  53. $reportDetails.="</table><br />";
  54. }
  55. return $reportDetails;
  56. }
  57. function addEvent($string, $reportType){
  58. $query="SELECT EventLog.ID, EventLog.Priority, EventLog.EventLogType, EventLog.Review, Organisation.Name as Organisation, School.Name as School, CONCAT(Person.FirstName,' ', Person.Surname)as Person FROM EventLog
  59. LEFT JOIN Organisation ON Organisation.ID=OrganisationID
  60. LEFT JOIN School ON School.ID=EventLog.SchoolID
  61. LEFT JOIN Person ON Person.ID=EventLog.PersonID ".$string."";
  62. $result=mysql_query($query);
  63. $num=mysql_numrows($result);
  64.  
  65. if($num!=0){
  66. //add to report
  67. $reportDetails.=$reportType;
  68. $reportDetails.="<table style='margin: 1em; border-collapse: collapse;'><tr>
  69. <th style='padding: .3em; border: 1px #ccc solid;'>ID</th>
  70. <th style='padding: .3em; border: 1px #ccc solid;'>Priority</th>
  71. <th style='padding: .3em; border: 1px #ccc solid;'>Event Type</th>
  72. <th style='padding: .3em; border: 1px #ccc solid;'>Review</th>
  73. <th style='padding: .3em; border: 1px #ccc solid;'>Organisation</th>
  74. <th style='padding: .3em; border: 1px #ccc solid;'>School</th>
  75. <th style='padding: .3em; border: 1px #ccc solid;'>Person</th></tr>";
  76. for($i=0;$i<count($result);$i++){
  77. $reportDetails.="<tr><td style='padding: .3em; border: 1px #ccc solid;'>".mysql_result($result, $i, "ID")."</td>";
  78. $reportDetails.="<td style='padding: .3em; border: 1px #ccc solid;'>".mysql_result($result, $i, "Priority")."</td>";
  79. $reportDetails.="<td style='padding: .3em; border: 1px #ccc solid;'>".mysql_result($result, $i, "EventLogType")."</td>";
  80. $reportDetails.="<td style='padding: .3em; border: 1px #ccc solid;'>".mysql_result($result, $i, "Review")."</td>";
  81. $reportDetails.="<td style='padding: .3em; border: 1px #ccc solid;'>".mysql_result($result, $i, "Organisation")."</td>";
  82. $reportDetails.="<td style='padding: .3em; border: 1px #ccc solid;'>".mysql_result($result, $i, "School")."</td>";
  83. $reportDetails.="<td style='padding: .3em; border: 1px #ccc solid;'>".mysql_result($result, $i, "Person")."</td></tr>";
  84. }
  85. $reportDetails.="</table><br />";
  86. }
  87. return $reportDetails;}
  88.  
  89. //get all events that have not closed
  90. $reportDetails.=addEvent("WHERE Closed=0","<b>Unclosed Events</b>");
  91.  
  92. //what eventlogs need to be reviewed
  93. $reportDetails.=addEvent("Where Review='".$today."'","<b>Events to Review</b>");
  94.  
  95. //email what contracts are not complete
  96. $reportDetails.=addContract("WHERE Complete=0","<b>Uncomplete Contracts</b>");
  97.  
  98. //email mag contracts for deadlines
  99. $reportDetails.=addContract("WHERE ContractType='Magazine' AND Deadline BETWEEN '".$emailDate."' AND '".$today."'","<b>Magazine Deadlines about to End</b>");
  100.  
  101. //email web contracts for deadlines
  102. $reportDetails.=addContract("WHERE ContractType='Web' AND Deadline BETWEEN '".$emailDate."' AND '".$today."'","<b>Website Deadlines about to End</b>");
  103.  
  104. //email when web contract starts to put on the web
  105. $reportDetails.=addContract("WHERE ContractType='Web' AND ContractStarts='".$today."'","<b>Web Adverts Online Today</b>");
  106.  
  107. //email when contract end for web
  108. $reportDetails.=addContract("WHERE ContractType='Web' AND ContractEnds='".$today."'","<b>Web Adverts Offline today</b>");
  109.  
  110. //email when Magazine contract 5days before deadline
  111. $reportDetails.=addContract("WHERE ContractType='Magazine' AND Deadline BETWEEN '".$emailDate."' AND '".$today."'","<b>Magazine Deadline</b>");
  112.  
  113. //email 5days before mag contract ends
  114. $reportDetails.=addContract("WHERE ContractType='Magazine' AND ContractEnds BETWEEN '".$emailDate."' AND '".$today."'","<b>Magazine Contracts about to end</b>");
  115. mysql_close;
  116.  
  117. //mail out
  118. $to ="monica@localhost";
  119. $subject="Tearaway Daily DB report";
  120. $message="<H3>Tearaway DB Report For ".date('d F Y')."</H3><br />".$reportDetails."<br /> Cheers, <br />Tearaway Post Fairy";
  121. $headers.='FROM:<monica@localhost>'."\nContent-Type:Text/HTML; charset=iso-8859-1\n";
  122. mail($to, $subject, $message."</body></html>", $headers);
  123. ?>
Add Comment
Please, Sign In to add comment