Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- //ini_set('display_errors', 1);
- //ini_set('display_startup_errors', 1);
- //error_reporting(E_ALL);
- // putanje na produkciji
- //require_once(dirname(__FILE__).'/public_html/dbinfo.php');
- //require_once(dirname(__FILE__).'/public_html/functions.php');
- //require_once(dirname(__FILE__).'/public_html/libs/phpmailer/PHPMailerAutoload.php');
- require_once '../dbinfo.php';
- require '../functions.php';
- require_once '../libs/phpmailer/PHPMailerAutoload.php';
- //require_once(dirname(__FILE__).'../dbinfo.php');
- //require_once(dirname(__FILE__).'../functions.php');
- //require_once(dirname(__FILE__).'../libs/phpmailer/PHPMailerAutoload.php');
- //authenticate();
- //sessionEndCheck();
- try
- {
- $conn = new PDO("mysql:host=".HOST_NAME.";dbname=".DATABASE_NAME, USER_NAME, USER_PASS);
- $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
- $conn->exec("SET NAMES 'utf8'");
- }
- catch (PDOException $e)
- {
- die($e->getMessage());
- }
- try {
- // statusi u task_info:
- // (0) task je kreiran, ali jos nije doslo vreme za slanje
- // (1) oznacava da se task treba slati
- // (2) task je zatvoren i ne salje se
- $todayIs = new DateTime();
- $todayIsFormat = $todayIs->format('Y-m-d H:i:s');
- $sqlCron = 'SELECT * FROM task_info';
- $queryCron = $conn->prepare($sqlCron);
- $queryCron->execute();
- $result = $queryCron->fetchAll(PDO::FETCH_ASSOC);
- foreach($result as $task){
- $datum = new DateTime($task['start_time']);
- // ako se datumi poklapaju doslo je vreme da se pocne sa slanjem notifikacija
- $sqlSetActive = 'UPDATE task_info SET f_status = 1 WHERE DATE(start_time) = DATE(NOW()) AND (f_status = 0 OR f_status = 1)';
- $setActive = $conn->prepare($sqlSetActive);
- $setActive->execute();
- // da li je daily task i da li je danasnji datum odredjen za slanje
- if($task['type'] === 'd' && $datum->format('Y-m-d H:i:s') === $todayIsFormat){
- // ako imamo poklapanje pre nego posaljemo notifikaciju povecamo datum za 1 da i ponovo upisemo isti task sa sutrasnjim datumom
- // kako bi se sutra ponovo pokrenuo daily task
- $futureDate = $todayIs->modify('+1 day');
- $taskDate = $futureDate->format('Y-m-d H:i:s');
- // vrsimo ponovni upis ovog taska za sutra
- // 0 oznacava da je task TEK kreiran i da do sada nije slata notifikacija
- $sqlTaskInfo = 'INSERT INTO task_info(type, f_task, start_time, f_status) VALUES (:type, :f_task, :start_time, 0)';
- $queryTaskInfo = $conn->prepare($sqlTaskInfo);
- $queryTaskInfo->bindParam(':type', $task['type'], PDO::PARAM_STR);
- $queryTaskInfo->bindParam(':f_task', $task['f_task'], PDO::PARAM_INT);
- $queryTaskInfo->bindParam(':start_time', $taskDate, PDO::PARAM_STR);
- $queryTaskInfo->execute();
- } else if($task['type'] === 'w' && $datum->format('Y-m-d H:i:s') === $todayIsFormat){
- echo "wat";
- $futureDate = $todayIs->modify('+7 day');
- $taskDate = $futureDate->format('Y-m-d H:i:s');
- $sqlTaskInfo = 'INSERT INTO task_info(type, f_task, start_time, f_status) VALUES (:type, :f_task, :start_time, 0)';
- $queryTaskInfo = $conn->prepare($sqlTaskInfo);
- $queryTaskInfo->bindParam(':type', $task['type'], PDO::PARAM_STR);
- $queryTaskInfo->bindParam(':f_task', $task['f_task'], PDO::PARAM_INT);
- $queryTaskInfo->bindParam(':start_time', $taskDate, PDO::PARAM_STR);
- $queryTaskInfo->execute();
- } else if($task['type'] === 'm' && $datum->format('Y-m-d H:i:s') === $todayIsFormat){
- $futureDate = $todayIs->modify('first day of next month');
- $taskDate = $futureDate->format('Y-m-d H:i:s');
- $sqlTaskInfo = 'INSERT INTO task_info(type, f_task, start_time, f_status) VALUES (:type, :f_task, :start_time, 0)';
- $queryTaskInfo = $conn->prepare($sqlTaskInfo);
- $queryTaskInfo->bindParam(':type', $task['type'], PDO::PARAM_STR);
- $queryTaskInfo->bindParam(':f_task', $task['f_task'], PDO::PARAM_INT);
- $queryTaskInfo->bindParam(':start_time', $taskDate, PDO::PARAM_STR);
- $queryTaskInfo->execute();
- }
- }
- /************************************ Sending mail notifications ***************************************/
- $qry = 'SELECT users.usr_id, users.first_name, users.last_name, users.e_mail, task_info.type, task_info.f_task FROM users
- INNER JOIN task_persons ON task_persons.f_p_resp = users.usr_id
- INNER JOIN task_info ON task_info.f_task = task_persons.f_task
- WHERE DATE(task_info.start_time) = "' . $todayIsFormat . '" AND f_status = 1';
- $dbq = $conn->prepare($qry);
- $dbq->execute();
- // SENDING MAIL AFTER ATTACHMENT CREATION
- $mail = new PHPMailer;
- $mail->isSMTP(); // Set mailer to use SMTP
- $mail->Host = 'mail.code3.red'; // Specify main and backup SMTP servers
- $mail->SMTPAuth = true; // Enable SMTP authentication
- $mail->Username = 'debug@code3.red'; // SMTP username
- $mail->Password = 'debug+13'; // SMTP password
- $mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
- $mail->Port = 25; // TCP port to connect to
- $mail->setFrom('debug@code3.red', 'OKR Notification');
- if($dbq->rowCount()>0){
- $subject = 'OKR TASK notification for ' . $todayIsFormat;
- $to = '';
- $odgovorni = '';
- //$res = $dbq->fetchAll(PDO::FETCH_ASSOC);
- //foreach($res as $r){
- while($r = $dbq->fetch(PDO::FETCH_ASSOC)){
- $mail->ClearAllRecipients();
- if($r['e_mail'] !== ''){
- $odgovorni = $r['first_name'] . ' ' . $r['last_name'];
- switch ($r['type']) {
- case 'o':
- $tip_taska = 'one time';
- break;
- case 'd':
- $tip_taska = 'daily';
- break;
- case 'w':
- $tip_taska = 'weekly';
- break;
- case 'm':
- $tip_taska = 'monthly';
- break;
- }
- $task_id = $r['f_task'];
- $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.';
- $mail->addAddress($r['e_mail']);
- $mail->Subject = $subject;
- $mail->Body = $msgText;
- $mail->AltBody = 'A message from OKR info service!';
- if(!$mail->send()) {
- $mail2 = new PHPMailer;
- $mail2->isSMTP(); // Set mailer to use SMTP
- $mail2->Host = 'mail.code3.red'; // Specify main and backup SMTP servers
- $mail2->SMTPAuth = true; // Enable SMTP authentication
- $mail2->Username = 'debug@code3.red'; // SMTP username
- $mail2->Password = 'debug+13'; // SMTP password
- $mail2->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
- $mail2->Port = 25; // TCP port to connect to
- $mail2->setFrom('debug@code3.red', 'OKR notification');
- $mail2->addAddress('radovan.zoric76@gmail.com');
- $mail2->Subject = 'OKR notifkacija - Neuspesno poslat TASK';
- $mail2->Body = 'Notifikacija o tasku = ' . $task_id. ' nije uspesno poslata useru = ' . $odgovorni . ' (' . $r['usr_id'] . '). U pitanju je ' . $tip_taska . ' task!';
- $mail2->AltBody = 'A message from OKR info service!';
- $mail2->send();
- }
- } else {
- // $mail3 = new PHPMailer;
- //
- // $mail3->isSMTP(); // Set mailer to use SMTP
- // $mail3->Host = 'mail.code3.red'; // Specify main and backup SMTP servers
- // $mail3->SMTPAuth = true; // Enable SMTP authentication
- // $mail3->Username = 'debug@code3.red'; // SMTP username
- // $mail3->Password = 'debug+13'; // SMTP password
- // $mail3->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
- // $mail3->Port = 25; // TCP port to connect to
- //
- // $mail3->setFrom('debug@code3.red', 'code3 Debug');
- // $mail3->addAddress('radovan.zoric76@gmail.com');
- // $mail3->Subject = 'OKR notifkacija - Neuspesno poslat TASK';
- // $mail3->Body = 'Task nije dodeljen useru, jer useru nije upisan mail!';
- // $mail3->AltBody = 'A message from OKR info service!';
- // $mail3->send();
- }
- }
- }
- /************************************ End sending mail notifications ***************************************/
- var_dump($msgText);
- } catch (Exception $e) {
- echo $e->getMessage();
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement