#!/usr/bin/php
<?php
/**
* @author Bettina Schwarzer, Fritz-Haber-Institut
* @copyright 03/2012
*
* sendet email an Bearbeiter am Tag ('kuendigugsfrist'+ 1) Monate vor Vertragsende = ckdate
* + Vertrag-File als Attachment, wenn Bearbeiter kein Recht 'vr' oder 've' hat
* auch als cron-Job einsetzbar
*
*/
include_once("/var/www/fhiiqm/inc/dbconnect.inc.php");
if (!isset($dbc) || !$dbc) $dbc = new dbconnection();
$sql = "CALL vertrag_ablauf()";
// liefert: cid, cname, vtypid, vtypk, cbegin, cend, cauto, cmon, email, cfile, bem, ckdate
$result = $dbc -> queryObjectArray($sql);
if ($result)
{
$heute = new DateTime();
$infoh = "
<html>
<head>
<title>Vertragsinfo (IQM-DB)</title>
</head>
<body>
<p>Liebe(r) Frau/Herr ";
$infoh2 = ",</p>
<p>der folgende Vertrag läuft demnächst aus:</p>
<table border='1' cellspacing='0' cellpadding='5'>\n
<tr><td>Vertragsbezeichnung</td><td>VTyp</td><td>VBeginn</td><td>VEnde</td>
<td>Verlängerung</td><td>Künd.-frist(mon)</td><td>Bemerkung</td></tr>\n";
$trenn = md5( time() );
// Bearbeiter
$sql = "SELECT b.persknr,nachname,email
FROM fhiiqm.Vertrag v LEFT OUTER JOIN Vertrag_Bearbeiter b
ON v.contract_ID=b.contract_ID LEFT OUTER JOIN Mitarbeiter m
ON b.persknr=m.persknr WHERE v.contract_ID=";
// Recht Vertrag zu sehen
$sql1 = "SELECT COUNT(*) FROM fhiiqm.user_recht r INNER JOIN fhiiqm.userweb u
ON u.userid = r.userid
WHERE recht_ID IN ('ve','vr') AND persknr IN ";
foreach ($result as $row)
{
// if (!is_null($row -> ckdate) && $row->ckdate <= $heute->format("Y-m-d") && $row->email) // nur fuer Test
if (!is_null($row -> ckdate) && $heute->format("Y-m-d") == $row->ckdate && $row->email) // 28.02.2012
{
$av = $row->cauto? "automatisch" : " ";
if ($begin = new DateTime($row->cbegin)) $begin=$begin->format("d.m.Y"); else $begin=" ";
if ($end = new DateTime($row->cend)) $end=$end->format("d.m.Y"); else $end=" ";
if ($ckd = new DateTime($row->ckdate)) $ckd=$ckd->format("d.m.Y"); else $ckd=" ";
$info = "<tr><td><b>$row->cname</b></td><td>$row->vtypk</td><td>$begin</td><td><b>$end</b></td>
<td> $av</td><td> $row->cmon</td><td>$row->bem</td></tr>\n";
// Adressat(en)), Attachment? ermitteln
$strsql = $sql .$row->cid;
$addr = "";
$pers = "";
if ($res = $dbc -> queryObjectArray($strsql))
{
foreach ($res as $ro)
{
$addr .= $ro->email.",";
$pers .= $ro->persknr.",";
}
$addr = substr($addr,0,strlen($addr)-1);
$pers = substr($pers,0,strlen($pers)-1);
$strsql1 = $sql1 . "($pers)";
$noatt = $dbc -> querySingleItem($strsql1); // = 0 -> file als Attachment
}
// email senden
// $eaddr = "schwarzer@fhi-berlin.mpg.de"; // nur fuer Test
$eaddr = $addr;
$eheader =
// 'Reply-To: noreply@' .$_SERVER['SERVER_NAME'] . "\r\n" .
'Message-ID: <' .$trenn.'@achilleus.rz-berlin.mpg.de'.">\r\n" .
'X-Mailer: PHP v' .phpversion() . "\r\n" .
'Bcc: schwarzer@fhi-berlin.mpg.de' . "\r\n" .
'From: noreply@achilleus.rz-berlin.mpg.de'."\r\n" .
'MIME-Version: 1.0' . "\r\n" .
'Content-type: multipart/mixed;' . "\r\n" ;
$eheader .= " boundary = " .$trenn;
$eheader .= "\r\n\r\n";
$esubj = "Vertragsinformation (IQM-DB)";
// $emess = $infoh.$ro->nachname.$infoh2.$addr."\n".$info ."\n";
// Mailbody vorbereiten
$mailbody = "This is a multi-part message in MIME format\r\n";
$mailbody .= "--" .$trenn. "\r\n";
$mailbody .= "Content-Type: text/html; charset=iso-8859-1\r\n";
$mailbody .= "Content-Transfer-Encoding: 8bit\r\n\r\n";
$emess = $mailbody . $infoh.$ro->nachname.$infoh2."\n".$info ."\n";
$emess .= "</table>\n";
$emess .= "<p>Bitte prüfen Sie, ob er verlängert oder gekündigt werden soll.</p>\n";
if ($noatt == 0) $emess .= "<p>Als Attachment finden Sie das Vertragsdokument.</p>\n";
$emess .= "<br /><p>Dies ist eine automatisch generierte E-Mail, bitte nicht darauf antworten.</p>\n";
$emess .= "<p>Beste Grüße, Ihre IQM-Datenbank</p>\n</body></html>\n";
// Anhang anfügen
if ($noatt == 0)
{
$fname = $row->cfile;
$ftyp = substr($fname,strrpos($fname,".")+1);
switch (strtolower($ftyp))
{
case "pdf":
$ctyp = " application/pdf";
break;
case "jpg":
$ctyp = " image/jpeg";
break;
default:
$ctyp = " application/pdf";
break;
}
$afname = substr($fname,strpos($fname,"_")+1);
$attm = "--" .$trenn. "\r\n";
$attm .= "Content-Type:$ctyp; name=\"$afname\"\r\n";
$attm .= "Content-Transfer-Encoding: base64\r\n";
$attm .= "Content-Disposition: attachment; filename=\"$afname\"\r\n\r\n";
$attm .= chunk_split( base64_encode( file_get_contents( "/var/www/fhiiqm/documents/$fname" ) ) );
$attm .= "\n";
$emess .= $attm;
}
mail($eaddr,$esubj,$emess,$eheader);
}
}
}
?>