forked from openemr/openemr
-
Notifications
You must be signed in to change notification settings - Fork 0
/
cron_email_notification.php
99 lines (79 loc) · 3.21 KB
/
cron_email_notification.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
<?
////////////////////////////////////////////////////////////////////
// Package: cron_email_notification
// Purpose: to be run by cron every hour, look for appointments
// in the pre-notification period and send an email reminder
//
// Created by:
// Updated by: Larry Lart on 10/03/2008
////////////////////////////////////////////////////////////////////
// larry :: hack add for command line version
$_SERVER['REQUEST_URI']=$_SERVER['PHP_SELF'];
$_SERVER['SERVER_NAME']='localhost';
$backpic = "";
// email notification
$ignoreAuth=1;
include_once("../../interface/globals.php");
include_once("cron_functions.php");
$TYPE = "Email";
$CRON_TIME = 5;
// set cron time (time to event ?) - todo extra tests
$vectNotificationSettings = cron_GetNotificationSettings( );
$CRON_TIME = $vectNotificationSettings['Send_Email_Before_Hours'];
$check_date = date("Y-m-d", mktime(date("h")+$EMAIL_NOTIFICATION_HOUR, 0, 0, date("m"), date("d"), date("Y")));
// get data from automatic_notification table
$db_email_msg = cron_getNotificationData($TYPE);
//my_print_r($db_email_msg);
// get patient data for send alert
$db_patient = cron_getAlertpatientData($TYPE);
echo "<br>Total ".count($db_patient)." Records Found\n";
for($p=0;$p<count($db_patient);$p++)
{
$prow =$db_patient[$p];
//my_print_r($prow);
/*
if($prow['pc_eventDate'] < $check_date)
{
$app_date = date("Y-m-d")." ".$prow['pc_startTime'];
}else{
$app_date = $prow['pc_eventDate']." ".$prow['pc_startTime'];
}
*/
$app_date = $prow['pc_eventDate']." ".$prow['pc_startTime'];
$app_time = strtotime($app_date);
$app_time_hour = round($app_time/3600);
$curr_total_hour = round(time()/3600);
$remaining_app_hour = round($app_time_hour - $curr_total_hour);
$remain_hour = round($remaining_app_hour - $EMAIL_NOTIFICATION_HOUR);
$strMsg = "\n========================".$TYPE." || ".date("Y-m-d H:i:s")."=========================";
$strMsg .= "\nSEND NOTIFICATION BEFORE:".$EMAIL_NOTIFICATION_HOUR." || CRONJOB RUN EVERY:".$CRON_TIME." || APPDATETIME:".$app_date." || REMAINING APP HOUR:".($remaining_app_hour)." || SEND ALERT AFTER:".($remain_hour);
if($remain_hour >= -($CRON_TIME) && $remain_hour <= $CRON_TIME)
{
// insert entry in notification_log table
cron_InsertNotificationLogEntry($TYPE,$prow,$db_email_msg);
//set message
$db_email_msg['message'] = cron_setmessage( $prow, $db_email_msg );
// send mail to patinet
cron_SendMail( $prow['email'], $db_email_msg['email_subject'],
$db_email_msg['message'], $db_email_msg['email_sender'] );
//update entry >> pc_sendalertemail='Yes'
cron_updateentry($TYPE,$prow['pid'],$prow['pc_eid']);
$strMsg .= " || ALERT SENT SUCCESSFULLY TO ".$prow['email'];
$strMsg .= "\n".$patient_info."\n".$smsgateway_info."\n".$data_info."\n".$db_email_msg['message'];
}
WriteLog( $strMsg );
// larry :: get notification data again - since was updated by cron_updateentry
// todo :: instead fix not to modify the template aka $db_email_msg
$db_email_msg = cron_getNotificationData($TYPE);
}
sqlClose();
?>
<html>
<head>
<title>Conrjob - Email Notification</title>
</head>
<body>
<center>
</center>
</body>
</html>