<?php

include "config.php";
#include_once "functionsLDAP.php";

// Funktion zum Berechnen der Gesamteinzahlungen pro Mitarbeiter
function berechneGesamteinzahlungen($mitarbeiterID, $conn) {
    // Gesamteinzahlungen pro Mitarbeiter
    $sqlEinzahlungen = "SELECT SUM(Betrag) AS Gesamteinzahlungen FROM kl_Einzahlungen WHERE MitarbeiterID = ?";
    $stmtEinzahlungen = sqlsrv_query($conn, $sqlEinzahlungen, array($mitarbeiterID));
    $rowEinzahlungen = sqlsrv_fetch_array($stmtEinzahlungen, SQLSRV_FETCH_ASSOC);
    $gesamteinzahlungen = $rowEinzahlungen['Gesamteinzahlungen'];

    return $gesamteinzahlungen;
}

// Funktion zum Berechnen der Gesamtausgabe pro Mitarbeiter
function berechneGesamtausgabe($mitarbeiterID, $conn) {
    // Gesamtausgaben pro Mitarbeiter
    $sqlAusgaben = "SELECT SUM(Kosten) AS Gesamtausgaben FROM kl_Kaffeeverbrauch WHERE MitarbeiterID = ?";
    $stmtAusgaben = sqlsrv_query($conn, $sqlAusgaben, array($mitarbeiterID));
    $rowAusgaben = sqlsrv_fetch_array($stmtAusgaben, SQLSRV_FETCH_ASSOC);
    $gesamtausgaben = $rowAusgaben['Gesamtausgaben'];

    return $gesamtausgaben;
}

// Funktion zum Berechnen der Gesamtstriche pro Mitarbeiter
function berechneGesamtstriche($mitarbeiterID, $conn) {
    // Gesamtstriche pro Mitarbeiter
    $sqlStriche = "SELECT SUM(AnzahlStriche) AS Gesamtstriche FROM kl_Kaffeeverbrauch WHERE MitarbeiterID = ?";
    $stmtStriche = sqlsrv_query($conn, $sqlStriche, array($mitarbeiterID));
    $rowStriche = sqlsrv_fetch_array($stmtStriche, SQLSRV_FETCH_ASSOC);
    $gesamtstriche = $rowStriche['Gesamtstriche'];

    return $gesamtstriche;
}

// Mitglieder aus der Datenbank abrufen
$sqlMitglieder = "SELECT M.MitarbeiterID, M.Name, M.Email
FROM kl_Mitarbeiter M
JOIN kl_Kaffeeverbrauch V ON M.MitarbeiterID = V.MitarbeiterID
WHERE V.Datum >= DATEADD(DAY, -100, (SELECT MAX(Datum) FROM kl_Kaffeeverbrauch  WHERE Datum < CAST(GETDATE() AS DATE))) AND M.aktiv = 1
GROUP BY M.MitarbeiterID, M.Name, M.Email
HAVING SUM(V.AnzahlStriche) >= 10
ORDER BY Name;";
$stmtMitglieder = sqlsrv_query($conn, $sqlMitglieder);

// Kosten pro Strich auslesen
$sqlKostenproStrich = "SELECT KostenproStrich FROM kl_config ";
$stmtKostenproStrich = sqlsrv_query($conn, $sqlKostenproStrich);
$row = sqlsrv_fetch_array($stmtKostenproStrich, SQLSRV_FETCH_ASSOC);
$KostenproStrichtemp = $row["KostenproStrich"];
$KostenproStrich = number_format($KostenproStrichtemp, 2, ',', '.');

// TCPDF-Bibliothek einbinden
require_once('tcpdf/tcpdf.php');

class MyCustomPDFWithWatermark extends TCPDF {
    public function Header() {
        // Get the current page break margin
        $bMargin = $this->getBreakMargin();

        // Get current auto-page-break mode
        $auto_page_break = $this->AutoPageBreak;

        // Disable auto-page-break
        $this->SetAutoPageBreak(false, 0);

        // Define the path to the image that you want to use as watermark.
        $img_file = './watermark.jpg';
		$this->SetAlpha(0.35);
        // Render the image
        $this->Image($img_file, 0, 0, 223, 280, '', '', '', false, 300, '', false, false, 0);
		$this->SetAlpha(1);
        // Restore the auto-page-break status
        $this->SetAutoPageBreak($auto_page_break, $bMargin);

        // Set the starting point for the page content
        $this->setPageMark();
    }
}



// PDF-Objekt erstellen
#$pdf = new TCPDF();
$pdf = new MyCustomPDFWithWatermark(PDF_PAGE_ORIENTATION, 'mm', 'A4', true, 'UTF-8', false);


// PDF-Header setzen
$pdf->SetHeaderData("", 0, "Kaffeestrichliste", "");

// PDF-Header und Footer auf jeder Seite anzeigen
#$pdf->SetPrintHeader(false);
$pdf->SetPrintFooter(false);
$pdf->SetMargins('5', '5', '5');
$pdf->SetAutoPageBreak(TRUE, 5);
// Seitenformat setzen
#$pdf->SetFormat('A4', 'portrait');
$pdf->SetFont('helvetica', '', 9.5);
// PDF-Inhalt starten
$pdf->AddPage();



// Tabelle erstellen
$html = '
<table border="1" style="white-space:nowrap;">
    <tr style="height: 25px;background-color: rgb(0, 94, 63);color: rgb(255, 255, 255);" valign="bottom">
        <th style="width:30%;font-size: 13px;" colspan="2"><b>Kaffeeliste - Vieltrinker</b></th>
		<th style="width:70%;" valign="bottom">1 Strich = ' . $KostenproStrich . '€. Bitte bezahlen bei 10 € zahlen. ' . date("d.m.Y H:s") . '</th>
    </tr>
    <tr >
        <td style="width:20%"><b>Name</b></td>
        <td style="width:10%"><b>Guthaben</b></td>
		<td ><b>Striche</b></td>
    </tr>';
$y=1;
while ($row = sqlsrv_fetch_array($stmtMitglieder, SQLSRV_FETCH_ASSOC)) {
    $mitarbeiterID = $row['MitarbeiterID'];
    $name = $row['Name'];
    $email = $row['Email'];
	$y++;
    $gesamteinzahlungen = berechneGesamteinzahlungen($mitarbeiterID, $conn);
    $gesamtausgaben = berechneGesamtausgabe($mitarbeiterID, $conn);
    $differenztemp = $gesamteinzahlungen - $gesamtausgaben;
	$differenz = number_format($differenztemp, 2, ',', '.');
    $html .= '<tr style="height: 16px;">';
    $html .= "<td>{$name}</td>";
	#$pdf->writeHTML($html, true, false, true, false, '');
	#$html = "";
	if($differenztemp < -10.00){
		$html .= '<td style="background-color: rgb(204, 0, 0); color: rgb(255, 255, 255);">' .$differenz . ' €</td>';
	}elseif($differenztemp > 5.00){
		$html .= '<td style="background-color: rgb(0, 102, 0); color: rgb(255, 255, 255);">' .$differenz . ' €</td>';
	}else{
		$html .= "<td>{$differenz} €</td>";
	}
	$html .= "<td></td>";
    $html .= "</tr>";
}

for ($i = $y; $i < 64; $i++) {
    $html .= '<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>';
}
$html .= '<tr><td>&nbsp;</td><td>&nbsp;</td><td style="background-color: rgb(255, 255, 0);text-align: right;"><b>Rückseite beachten!</b></td></tr>';
$html .= '</table>';


#echo $html;
// Tabelle ins PDF einfügen
$pdf->writeHTML($html, true, false, true, false, '');


// PDF-Inhalt starten
$pdf->AddPage();

// Mitglieder aus der Datenbank abrufen
$sqlMitglieder = "
SELECT M.MitarbeiterID, M.Name, M.Email
FROM kl_Mitarbeiter M
LEFT JOIN kl_Kaffeeverbrauch V ON M.MitarbeiterID = V.MitarbeiterID AND V.Datum >= DATEADD(DAY, -100, (SELECT MAX(Datum) FROM kl_Kaffeeverbrauch  WHERE Datum < CAST(GETDATE() AS DATE)))
WHERE M.aktiv = 1
GROUP BY M.MitarbeiterID, M.Name, M.Email
HAVING COALESCE(SUM(V.AnzahlStriche), 0) < 10
ORDER BY M.Name;
";
$stmtMitglieder = sqlsrv_query($conn, $sqlMitglieder);

// Tabelle erstellen
$html = '
<table border="1" style="white-space:nowrap;">
    <tr style="background-color: rgb(91, 209, 215);color: rgb(0, 0, 0);vertical-align: bottom;">
        <th style="width:30%;font-size: 12px;" colspan="2"><b>Kaffeeliste - Wenigtrinker</b></th>
		<th style="width:70%;" valign="bottom">1 Strich = ' . $KostenproStrich . '€. Bitte bezahlen bei 10 € zahlen. ' . date("d.m.Y H:s") . '</th>
    </tr>
    <tr >
        <td style="width:20%"><b>Name</b></td>
        <td style="width:10%"><b>Guthaben</b></td>
		<td ><b>Striche</b></td>
    </tr>';
$y=1;
while ($row = sqlsrv_fetch_array($stmtMitglieder, SQLSRV_FETCH_ASSOC)) {
    $mitarbeiterID = $row['MitarbeiterID'];
    $name = $row['Name'];
    $email = $row['Email'];
	$y++;
    $gesamteinzahlungen = berechneGesamteinzahlungen($mitarbeiterID, $conn);
    $gesamtausgaben = berechneGesamtausgabe($mitarbeiterID, $conn);
    $differenztemp = $gesamteinzahlungen - $gesamtausgaben;
	$differenz = number_format($differenztemp, 2, ',', '.');
    $html .= "<tr>";
    $html .= "<td>{$name}</td>";
	#$pdf->writeHTML($html, true, false, true, false, '');
	#$html = "";
	if($differenztemp < -10.00){
		$html .= '<td style="background-color: rgb(204, 0, 0); color: rgb(255, 255, 255);">' .$differenz . ' €</td>';
	}elseif($differenztemp > 5.00){
		$html .= '<td style="background-color: rgb(0, 102, 0); color: rgb(255, 255, 255);">' .$differenz . ' €</td>';
	}else{
		$html .= "<td>{$differenz} €</td>";
	}
	$html .= "<td></td>";
    $html .= "</tr>";
}

for ($i = $y; $i < 65; $i++) {
    $html .= '<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>';
}
$html .= '<tr><td>&nbsp;</td><td>&nbsp;</td><td style="background-color: rgb(255, 255, 0);text-align: right;"><b>Vorderseite beachten!</b></td></tr>';
$html .= '</table>';



#echo $html;
// Tabelle ins PDF einfügen
$pdf->writeHTML($html, true, false, true, false, '');

// PDF-Ausgabe
$pdf->Output('Kaffeestrichliste.pdf', 'D');


?>
