Conf)){ $conf = new Config(); $app->Conf = $conf; } if(empty($app->DB) || empty($app->DB->connection)){ $app->DB = new DB($app->Conf->WFdbhost, $app->Conf->WFdbname, $app->Conf->WFdbuser, $app->Conf->WFdbpass, null, $app->Conf->WFdbport); } if(empty($app->erp)){ if(class_exists('erpAPICustom')){ $erp = new erpAPICustom($app); }else{ $erp = new erpAPI($app); } $app->erp = $erp; } $firmendatenid = $app->DB->Select("SELECT MAX(id) FROM firmendaten LIMIT 1"); $app->DB->Update("UPDATE prozessstarter SET mutexcounter = mutexcounter + 1 WHERE mutex = 1 AND (parameter = 'kalender' ) AND aktiv = 1"); if(!$app->DB->Select("SELECT id FROM prozessstarter WHERE mutex = 0 AND (parameter = 'kalender') AND aktiv = 1"))return; // alle termine innerhalb der nächsten 15 Minuten $termine = $app->DB->SelectArr("SELECT ke.id,ke.bezeichnung,DATE_FORMAT(ke.von,'%H:%i') as start,ke.beschreibung,ke.allDay FROM kalender_event AS ke WHERE ke.von <= DATE_ADD(NOW(),INTERVAL 15 MINUTE) AND ke.von >= NOW() AND ke.erinnerung='1'"); $ctermine = !empty($termine)?count($termine):0; $firmenmail = $erp->GetFirmaMail(); $firmaname = $erp->GetFirmaName(); for($i=0;$i<$ctermine;$i++) { $users = $app->DB->SelectArr("SELECT DISTINCT userid FROM kalender_user WHERE event='".$termine[$i]['id']."' AND userid > 0"); $cusers = !empty($users)?count($users):0; for($u=0;$u<$cusers;$u++) { $userid = $users[$u]['userid']; $adressearr = $app->DB->SelectRow("SELECT a.email,a.name FROM `user` AS u INNER JOIN adresse AS a ON a.id=u.adresse WHERE u.id='".$userid."' AND u.kalender_ausblenden=0 LIMIT 1"); if(!empty($adressearr) && !empty($adressearr['email'])) { $name = $adressearr['name']; $email = $adressearr['email']; }else{ continue; } $app->erp->MailSend($firmenmail,$firmaname,$email,$name,'ERINNERUNG TERMIN: '.$termine[$i]['bezeichnung'].' (um '.$termine[$i]['start'].')',"Erinnerung von Xentral:\r\n\r\n".$termine[$i]['beschreibung'],'','',false); if($termine[$i]['allDay']){ $app->erp->InternesEvent($userid, 'Termin: ' . $termine[$i]['bezeichnung'] . '
Kalender-Erinnerung', 'alert', 1); } else{ $app->erp->InternesEvent($userid, 'Termin: ' . $termine[$i]['bezeichnung'] . ' (um ' . $termine[$i]['start'] . ')
Kalender-Erinnerung', 'alert', 1); } } } $app->DB->Update("UPDATE prozessstarter SET mutex = 0 , mutexcounter = 0 WHERE (parameter = 'kalender' ) AND aktiv = 1");