fhiiqm/report/vtr_kuend_emaila.php
author Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
Thu, 05 Apr 2012 15:35:43 +0200
changeset 25 482252ff12fd
child 27 d92bbe898f32
permissions -rw-r--r--
+ Prozesse edit, Liste; Reports Info, GVP

#!/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&auml;uft demn&auml;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&auml;ngerung</td><td>K&uuml;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" : "&nbsp;";
                if ($begin = new DateTime($row->cbegin)) $begin=$begin->format("d.m.Y"); else $begin="&nbsp;";
                if ($end = new DateTime($row->cend)) $end=$end->format("d.m.Y"); else $end="&nbsp;";
                if ($ckd = new DateTime($row->ckdate)) $ckd=$ckd->format("d.m.Y"); else $ckd="&nbsp;";
                $info = "<tr><td><b>$row->cname</b></td><td>$row->vtypk</td><td>$begin</td><td><b>$end</b></td>
                    <td>&nbsp;$av</td><td>&nbsp;&nbsp;&nbsp;$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&uuml;fen Sie, ob er verl&auml;ngert oder gek&uuml;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ü&szlig;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);
            }
        }
    }
?>