<?php
// Einstellungen
// Verbindung zur Datenbank herstellen (ersetze die Platzhalter durch deine Daten)
$serverName = "server";
$connectionOptions = array(
    "Database" => "database",
    "Uid" => "user",
    "PWD" => "password",
	"TrustServerCertificate"=>true
);

$stricheAnzupassen = 490; // Anzahl der neuen Striche
$betragProStrich = 0.20; // Betrag pro Strich in Euro

// Testmodus aktivieren
$testmodus = false;



use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;

require 'PHPMailer/src/Exception.php';
require 'PHPMailer/src/PHPMailer.php';
require 'PHPMailer/src/SMTP.php';

// PHPMailer konfigurieren
function sendeMail($empfaenger, $betreff, $inhalt, $testmodus)
{
    $mail = new PHPMailer(true);

    try {
        // Server-Einstellungen
        $mail->isSMTP();
        $mail->Host = 'smtpv.aoknds.aok'; // SMTP-Server
		$mail->Timeout = 180;
        $mail->SMTPAuth = false;
        $mail->Port = 25;

        // Absender
        $mail->setFrom('kaffeelistesb3@nds.aok.de', 'Kaffeeliste');

        // Empfänger
        if ($testmodus) {
            $mail->addAddress('kaffeelistesb3@nds.aok.de'); // Testadresse
        } else {
            $mail->addAddress($empfaenger); // Tatsächlicher Empfänger
        }

        // Inhalt
        $mail->isHTML(true);
        $mail->Subject = $betreff;
        $mail->Body = utf8_decode($inhalt);

        // Senden
        $mail->send();
        echo "E-Mail erfolgreich gesendet an: " . ($testmodus ? 'kaffeelistesb3@nds.aok.de' : $empfaenger) . "\n";
    } catch (Exception $e) {
        echo "E-Mail konnte nicht gesendet werden. Fehler: {$mail->ErrorInfo}\n";
    }
}

// Verbindung herstellen
$conn = sqlsrv_connect($serverName, $connectionOptions);
if ($conn === false) {
    die(print_r(sqlsrv_errors(), true));
}

// Aktuelles Jahr ermitteln
$currentYear = date("Y");

// SQL-Abfrage: Gesamtanzahl der Striche pro Mitarbeiter im aktuellen Jahr mit Namen und E-Mail
$sql = "
    SELECT 
        m.MitarbeiterID, 
        m.Name, 
        m.Email, 
        SUM(v.AnzahlStriche) AS GesamtStriche
    FROM kl_Kaffeeverbrauch v
    JOIN kl_Mitarbeiter m ON v.MitarbeiterID = m.MitarbeiterID
    WHERE YEAR(v.Datum) = ? AND m.aktiv = 1
    GROUP BY m.MitarbeiterID, m.Name, m.Email
";
$params = [$currentYear];
$stmt = sqlsrv_query($conn, $sql, $params);

if ($stmt === false) {
    die(print_r(sqlsrv_errors(), true));
}

// Ergebnisse verarbeiten
$mitarbeiterDaten = [];
$gesamtStriche = 0;

while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
    $mitarbeiterDaten[] = $row;
    $gesamtStriche += $row['GesamtStriche'];
}

echo $gesamtStriche;

// Neue Striche proportional verteilen
$verteilung = [];

foreach ($mitarbeiterDaten as $mitarbeiter) {
    $mitarbeiterID = $mitarbeiter['MitarbeiterID'];
    $anteil = $mitarbeiter['GesamtStriche'] / $gesamtStriche;
    $neueStriche = round($anteil * $stricheAnzupassen);
    $betrag = $neueStriche * $betragProStrich;

    $verteilung[] = [
        'MitarbeiterID' => $mitarbeiterID,
        'Name' => $mitarbeiter['Name'],
        'Email' => $mitarbeiter['Email'],
        'JahrStriche' => $mitarbeiter['GesamtStriche'],
        'NeueStriche' => $neueStriche,
        'Betrag' => $betrag
    ];

    // SQL-Befehl vorbereiten
    $insertSql = "
        INSERT INTO kl_Einzahlungen (MitarbeiterID, Betrag, Datum)
        VALUES (?, ?, GETDATE())
    ";
    $insertParams = [$mitarbeiterID, $betrag];

    if ($testmodus) {
        // SQL-Befehl und Parameter anzeigen
        echo "SQL-Befehl: $insertSql\n";
        echo "Parameter: " . json_encode($insertParams) . "\n";
		// E-Mail vorbereiten

    } else {
        // SQL-Befehl ausführen
        $insertStmt = sqlsrv_query($conn, $insertSql, $insertParams);
        if ($insertStmt === false) {
            die(print_r(sqlsrv_errors(), true));
        }
		// E-Mail vorbereiten
		
    }
	
	
    
    $betreff = "Kaffeeliste - Weihnachten";
    $inhalt = "
        <p>Hallo {$mitarbeiter['Name']},</p>
        <p>vielen Dank für deine Nutzung der Kaffeeliste in diesem Jahr!</p>
		<p>Du hast dieses Jahr {$mitarbeiter['GesamtStriche']} Kaffee bezogen.</p>
		<p>Deswegen wurden dir $betrag Euro auf deinem Konto gutgeschrieben.</p>
		<br><br>
        <p>Wir wünschen dir eine frohe Weihnachtszeit und einen guten Rutsch ins neue Jahr.</p>
        <p>Deine ARGE Kaffeeliste</p>
    ";
	$empfaenger = $mitarbeiter['Email'];
    // E-Mail senden
    sendeMail($empfaenger, $betreff, $inhalt, $testmodus);
	
	
}



// Sortiere die Verteilung nach JahrStriche (absteigend)
usort($verteilung, function ($a, $b) {
    return $b['JahrStriche'] <=> $a['JahrStriche'];
});

// Ergebnisse ausgeben
header('Content-Type: application/json');
#echo json_encode($verteilung, JSON_PRETTY_PRINT);

// Verbindung schließen
sqlsrv_close($conn);
?>

