Kalender Updates

* Update 1 day Reminder + autoscript
This commit is contained in:
Daniel Spitzer
2025-01-21 18:18:22 +01:00
parent 3840a6428a
commit 579d7088a8
4 changed files with 89 additions and 1 deletions

View File

@@ -94,7 +94,7 @@ class CalendarController extends mfBaseController
if ($r->customer_info_type == 1) {
$body = $r->customer_info_text;
$email = new Emailnotification();
$email->setSubject('Inbetriebnahme');
$email->setSubject('Technikertermin Xinon');
$email->setBody($body);
$email->setFrom('termin@xinon.at', 'Terminbestätigung');
$email->setTo($r->customer_info_type_text);

View File

@@ -399,6 +399,28 @@ WHERE `TimerecordingCategory`.`hourday`!='1' AND `TimerecordingCategory`.`hourda
return $return;
}
public static function getCalendarEventsReminder()
{
$dbcal = self::dbKalender();
$timecalcend = time() + 86400;
$timecalcstart = $timecalcend - 3600;
$sql = "SELECT `id`,`name`,`customer_info_send`,`start_time`,`end_time`,`event_type` FROM `cal_events` WHERE `customer_info_reminder`= 1 AND `customer_info_send` IS NOT NULL AND `event_type` > 1 AND `start_time` BETWEEN $timecalcstart AND $timecalcend";
$res = $dbcal->query($sql);
while ($data = $dbcal->fetch_array($res))
{
$rows[] = array(
'id' => $data['id'],
'name' => $data['name'],
'customer_info_send' => $data['customer_info_send'],
'start_time' => $data['start_time'],
'end_time' => $data['end_time'],
'event_type' => $data['event_type']
);
}
return ($rows);
}
public static function getCalendarEvent($id)
{
$calendar = self::search(array("user_id" => $me));

View File

@@ -126,6 +126,12 @@ class CalendarTemplateModel
$where .= " AND event_type=$event_type";
}
}
if (array_key_exists("is_reminder", $filter)) {
$is_reminder = $filter['is_reminder'];
if (is_numeric($is_reminder)) {
$where .= " AND is_reminder=$is_reminder";
}
}
//var_dump($filter, $where);exit;
return $where;

View File

@@ -0,0 +1,60 @@
<?php
//require 'vendor/autoload.php';
require("../../config/config.php");
define('FRONKDB_SQLDEBUG', false);
error_reporting(E_ALL & ~(E_NOTICE | E_STRICT | E_DEPRECATED));
require_once(LIBDIR . "/mvcfronk/mfRouter/mfRouter.php");
require_once(LIBDIR . "/mvcfronk/mfBase/mfBaseModel.php");
require_once(LIBDIR . "/mvcfronk/mfBase/mfBaseController.php");
$me = new User(154);
define("INTERNAL_USER_ID", $me->id);
define("INTERNAL_USER_USERNAME", $me->username);
$sendReminder = CalendarModel::getCalendarEventsReminder();
if (empty($sendReminder)) {
die();
}
foreach ($sendReminder as $reminder) {
$dbcal = CalendarModel::dbKalender();
$sql = "UPDATE cal_events SET customer_info_reminder=2 WHERE id=" . $reminder['id'];
if (!$dbcal->query($sql)) {
echo "Error updating record: " . $dbcal->error;
die();
}
$calendarTemplate = CalendarTemplateModel::search(array("event_type" => $reminder['event_type'], "is_reminder" => 1));
if (empty($calendarTemplate)) {
continue;
}
$hour = (int)date('H', $reminder['start_time']);
if ($hour < 12) {
$vm = "vormittags";
} else {
$vm = "nachmittags";
}
$text = str_replace("[&&date&&]", date("d.m.Y", $reminder['start_time']), $calendarTemplate[0]->text);
$text = str_replace("[&&start&&]", date("H:i", $reminder['start_time']), $text);
$text = str_replace("[&&end&&]", date("H:i", $reminder['end_time']), $text);
$text = str_replace("[&&vmnm&&]", $vm, $text);
$reminderInfo = json_decode($reminder['customer_info_send'], true);
$customerInfoType = $reminderInfo['customer_info_type'];
$customerInfo = $reminderInfo['customer_info_type_text'];
if ($customerInfoType == 1) {
$body = $text;
$email = new Emailnotification();
$email->setSubject('Technikertermin Xinon');
$email->setBody($body);
$email->setFrom('termin@xinon.at', 'Terminbestätigung');
$email->setTo($customerInfo);
$email->send();
} else if ($customerInfoType == 2) {
$sms = new SmsNotification();
$body = "Xinon Terminbestätigung:" . PHP_EOL . $text;
$sms->setBody($body);
$sms->setRecipient($customerInfo);
$sms->send();
}
}