Advertisement
Guest User

Untitled

a guest
Dec 30th, 2016
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 9.88 KB | None | 0 0
  1. <?php
  2.  
  3. //ini_set('display_errors', 1);
  4. //ini_set('display_startup_errors', 1);
  5. //error_reporting(E_ALL);
  6.  
  7. // putanje na produkciji
  8. //require_once(dirname(__FILE__).'/public_html/dbinfo.php');
  9. //require_once(dirname(__FILE__).'/public_html/functions.php');
  10. //require_once(dirname(__FILE__).'/public_html/libs/phpmailer/PHPMailerAutoload.php');
  11.  
  12.  
  13. require_once  '../dbinfo.php';
  14. require '../functions.php';
  15. require_once '../libs/phpmailer/PHPMailerAutoload.php';
  16. //require_once(dirname(__FILE__).'../dbinfo.php');
  17. //require_once(dirname(__FILE__).'../functions.php');
  18. //require_once(dirname(__FILE__).'../libs/phpmailer/PHPMailerAutoload.php');
  19.  
  20. //authenticate();
  21. //sessionEndCheck();
  22.  
  23. try
  24. {
  25.    
  26.     $conn = new PDO("mysql:host=".HOST_NAME.";dbname=".DATABASE_NAME, USER_NAME, USER_PASS);
  27.     $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  28.     $conn->exec("SET NAMES 'utf8'");
  29.    
  30. }
  31. catch (PDOException $e)
  32. {
  33.     die($e->getMessage());
  34. }
  35.  
  36. try {
  37.     // statusi u task_info:
  38.     // (0) task je kreiran, ali jos nije doslo vreme za slanje
  39.     // (1) oznacava da se task treba slati
  40.     // (2) task je zatvoren i ne salje se
  41.    
  42.    
  43.     $todayIs = new DateTime();
  44.     $todayIsFormat = $todayIs->format('Y-m-d H:i:s');
  45.    
  46.     $sqlCron = 'SELECT * FROM task_info';
  47.     $queryCron = $conn->prepare($sqlCron);
  48.     $queryCron->execute();
  49.    
  50.     $result = $queryCron->fetchAll(PDO::FETCH_ASSOC);
  51.     foreach($result as $task){
  52.         $datum = new DateTime($task['start_time']);
  53.         // ako se datumi poklapaju doslo je vreme da se pocne sa slanjem notifikacija
  54.         $sqlSetActive = 'UPDATE task_info SET f_status = 1 WHERE DATE(start_time) = DATE(NOW()) AND (f_status = 0 OR f_status = 1)';
  55.         $setActive = $conn->prepare($sqlSetActive);
  56.         $setActive->execute();
  57.         // da li je daily task i da li je danasnji datum odredjen za slanje
  58.         if($task['type'] === 'd' && $datum->format('Y-m-d H:i:s') === $todayIsFormat){
  59.             // ako imamo poklapanje pre nego posaljemo notifikaciju povecamo datum za 1 da i ponovo upisemo isti task sa sutrasnjim datumom
  60.             // kako bi se sutra ponovo pokrenuo daily task
  61.          
  62.             $futureDate = $todayIs->modify('+1 day');
  63.             $taskDate = $futureDate->format('Y-m-d H:i:s');
  64.            
  65.             // vrsimo ponovni upis ovog taska za sutra
  66.             // 0 oznacava da je task TEK kreiran i da do sada nije slata notifikacija
  67.             $sqlTaskInfo = 'INSERT INTO task_info(type, f_task, start_time, f_status) VALUES (:type, :f_task, :start_time, 0)';
  68.             $queryTaskInfo = $conn->prepare($sqlTaskInfo);
  69.             $queryTaskInfo->bindParam(':type', $task['type'], PDO::PARAM_STR);
  70.             $queryTaskInfo->bindParam(':f_task', $task['f_task'], PDO::PARAM_INT);
  71.             $queryTaskInfo->bindParam(':start_time', $taskDate, PDO::PARAM_STR);
  72.             $queryTaskInfo->execute();
  73.  
  74.         } else if($task['type'] === 'w' && $datum->format('Y-m-d H:i:s') === $todayIsFormat){
  75.             echo "wat";
  76.             $futureDate = $todayIs->modify('+7 day');
  77.             $taskDate = $futureDate->format('Y-m-d H:i:s');        
  78.  
  79.             $sqlTaskInfo = 'INSERT INTO task_info(type, f_task, start_time, f_status) VALUES (:type, :f_task, :start_time, 0)';    
  80.             $queryTaskInfo = $conn->prepare($sqlTaskInfo);
  81.             $queryTaskInfo->bindParam(':type', $task['type'], PDO::PARAM_STR);
  82.             $queryTaskInfo->bindParam(':f_task', $task['f_task'], PDO::PARAM_INT);
  83.             $queryTaskInfo->bindParam(':start_time', $taskDate, PDO::PARAM_STR);
  84.             $queryTaskInfo->execute();
  85.  
  86.         } else if($task['type'] === 'm' && $datum->format('Y-m-d H:i:s') === $todayIsFormat){
  87.             $futureDate = $todayIs->modify('first day of next month');
  88.              $taskDate = $futureDate->format('Y-m-d H:i:s');
  89.  
  90.             $sqlTaskInfo = 'INSERT INTO task_info(type, f_task, start_time, f_status) VALUES (:type, :f_task, :start_time, 0)';    
  91.             $queryTaskInfo = $conn->prepare($sqlTaskInfo);
  92.             $queryTaskInfo->bindParam(':type', $task['type'], PDO::PARAM_STR);
  93.             $queryTaskInfo->bindParam(':f_task', $task['f_task'], PDO::PARAM_INT);
  94.             $queryTaskInfo->bindParam(':start_time', $taskDate, PDO::PARAM_STR);
  95.             $queryTaskInfo->execute();
  96.         }
  97.     }
  98.    
  99.     /************************************ Sending mail notifications ***************************************/
  100.         $qry = 'SELECT users.usr_id, users.first_name, users.last_name, users.e_mail, task_info.type, task_info.f_task FROM users
  101.                INNER JOIN task_persons ON task_persons.f_p_resp = users.usr_id
  102.                INNER JOIN task_info ON task_info.f_task = task_persons.f_task
  103.                WHERE DATE(task_info.start_time) = "' . $todayIsFormat . '" AND f_status = 1';
  104.    
  105.         $dbq = $conn->prepare($qry);
  106.         $dbq->execute();
  107.    
  108.     // SENDING MAIL AFTER ATTACHMENT CREATION
  109.         $mail = new PHPMailer;
  110.  
  111.         $mail->isSMTP();                                      // Set mailer to use SMTP
  112.         $mail->Host = 'mail.code3.red';  // Specify main and backup SMTP servers
  113.         $mail->SMTPAuth = true;                               // Enable SMTP authentication
  114.         $mail->Username = 'debug@code3.red';                 // SMTP username
  115.         $mail->Password = 'debug+13';                           // SMTP password
  116.         $mail->SMTPSecure = 'tls';                            // Enable TLS encryption, `ssl` also accepted
  117.         $mail->Port = 25;                                    // TCP port to connect to
  118.  
  119.         $mail->setFrom('debug@code3.red', 'OKR Notification');
  120.    
  121.     if($dbq->rowCount()>0){
  122.         $subject = 'OKR TASK notification for ' . $todayIsFormat;
  123.         $to = '';
  124.         $odgovorni = '';        
  125.        
  126.         //$res = $dbq->fetchAll(PDO::FETCH_ASSOC);
  127.        
  128.         //foreach($res as $r){
  129.         while($r = $dbq->fetch(PDO::FETCH_ASSOC)){
  130.             $mail->ClearAllRecipients();
  131.             if($r['e_mail'] !== ''){
  132.                 $odgovorni = $r['first_name'] . ' ' . $r['last_name'];
  133.                
  134.                 switch ($r['type']) {
  135.                     case 'o':
  136.                         $tip_taska = 'one time';
  137.                         break;
  138.                     case 'd':
  139.                         $tip_taska = 'daily';
  140.                         break;
  141.                     case 'w':
  142.                         $tip_taska = 'weekly';
  143.                         break;
  144.                     case 'm':
  145.                         $tip_taska = 'monthly';
  146.                         break;
  147.                 }
  148.                
  149.                 $task_id = $r['f_task'];
  150.                
  151.                 $msgText = 'You (' . $odgovorni . ') have a new ' . $tip_taska . ' TASK assigned! Please click <a href="http://37.18.184.167/pages/customer-support/tasks/index.php?task=' . $task_id . '">here</a> to see the assigned task.';
  152.                
  153.                 $mail->addAddress($r['e_mail']);
  154.            
  155.                 $mail->Subject = $subject;
  156.                 $mail->Body    = $msgText;
  157.                 $mail->AltBody = 'A message from OKR info service!';
  158.  
  159.                 if(!$mail->send()) {
  160.                     $mail2 = new PHPMailer;
  161.                    
  162.                     $mail2->isSMTP();                                      // Set mailer to use SMTP
  163.                     $mail2->Host = 'mail.code3.red';  // Specify main and backup SMTP servers
  164.                     $mail2->SMTPAuth = true;                               // Enable SMTP authentication
  165.                     $mail2->Username = 'debug@code3.red';                 // SMTP username
  166.                     $mail2->Password = 'debug+13';                           // SMTP password
  167.                     $mail2->SMTPSecure = 'tls';                            // Enable TLS encryption, `ssl` also accepted
  168.                     $mail2->Port = 25;                                    // TCP port to connect to
  169.  
  170.                     $mail2->setFrom('debug@code3.red', 'OKR notification');
  171.                     $mail2->addAddress('radovan.zoric76@gmail.com');
  172.                     $mail2->Subject = 'OKR notifkacija - Neuspesno poslat TASK';
  173.                     $mail2->Body = 'Notifikacija o tasku = ' . $task_id. ' nije uspesno poslata useru = ' . $odgovorni . ' (' . $r['usr_id'] . '). U pitanju je ' . $tip_taska . ' task!';
  174.                     $mail2->AltBody = 'A message from OKR info service!';
  175.                     $mail2->send();
  176.                 }
  177.             } else {
  178. //                $mail3 = new PHPMailer;
  179. //
  180. //                $mail3->isSMTP();                                      // Set mailer to use SMTP
  181. //                $mail3->Host = 'mail.code3.red';  // Specify main and backup SMTP servers
  182. //                $mail3->SMTPAuth = true;                               // Enable SMTP authentication
  183. //                $mail3->Username = 'debug@code3.red';                 // SMTP username
  184. //                $mail3->Password = 'debug+13';                           // SMTP password
  185. //                $mail3->SMTPSecure = 'tls';                            // Enable TLS encryption, `ssl` also accepted
  186. //                $mail3->Port = 25;                                    // TCP port to connect to
  187. //
  188. //                $mail3->setFrom('debug@code3.red', 'code3 Debug');
  189. //                $mail3->addAddress('radovan.zoric76@gmail.com');
  190. //                $mail3->Subject = 'OKR notifkacija - Neuspesno poslat TASK';
  191. //                $mail3->Body = 'Task nije dodeljen useru, jer useru nije upisan mail!';
  192. //                $mail3->AltBody = 'A message from OKR info service!';
  193. //                $mail3->send();
  194.             }
  195.         }
  196.     }
  197.     /************************************ End sending mail notifications ***************************************/
  198.    var_dump($msgText);
  199. } catch (Exception $e) {
  200.     echo $e->getMessage();
  201. }
  202.  
  203. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement