Dateien nach "/" hochladen

This commit is contained in:
2026-03-05 15:30:25 +01:00
parent cd182a1fb9
commit 9e320d601d
5 changed files with 723 additions and 0 deletions
+39
View File
@@ -0,0 +1,39 @@
<?php
### ZUGANGSDATEN AD
$aduser = '';
$adpassword = '';
$domain = '';
## OU für die Suche der Benutzerkonten
#$basedn = '';
$basedn = '';
## OU für die Suche der Benutzerkonten
#$basednandereKasse = '';
## OU für die Suche der Gruppen
$basedngroup = '';
## Zugriffsgruppe für Automatisierungsclient
$zugriffsACgroup = '';
## Zugriffsgruppe für Automatische Abwesenheitsnachricht
$zugriffsAbwesenheitgroup = '';
## Zugriffsgruppe für alle Anfragen des Automatisierungsclient
$zugriffsalleACgroup = '';
## Zugriffsgruppe für Anfragen der Abwesenheitsnachrichten
$zugriffsalleAbwesenheitgroup = '';
## Zugriff auf alles
$zugriffsAdminsgroup = '';
// Verbindung zur Datenbank herstellen (ersetze die Platzhalter durch deine Daten)
$serverName = "";
$connectionOptions = array(
"Database" => "",
"Uid" => "",
"PWD" => "",
"TrustServerCertificate"=>true
);
$conn = sqlsrv_connect($serverName, $connectionOptions);
// Überprüfen der Verbindung
if (!$conn) {
die(print_r(sqlsrv_errors(), true));
}
?>
+218
View File
@@ -0,0 +1,218 @@
<?php
include "functions.php";
include "header.php";
include "headerline.php";
include "nav.php";
?>
<!-- Banner -->
<section id="banner">
<div class="content">
<?php
if(checkKaffeelisteAdmin($conn, $mailadress)){
// Funktion zum Überprüfen, ob der Mitarbeiter in der Tabelle vorhanden ist
function isMitarbeiterExist($conn, $name)
{
$sql = "SELECT MitarbeiterID FROM kl_Mitarbeiter WHERE Name = ?";
$params = array($name);
$stmt = sqlsrv_query($conn, $sql, $params);
if ($stmt === false) {
die(print_r(sqlsrv_errors(), true));
}
$row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
return ($row !== false);
}
// Funktion zum Überprüfen, ob ein identischer Eintrag bereits vorhanden ist
function isDuplicateEntry($conn, $mitarbeiterID, $betrag, $datum)
{
// Um nur den gleichen Tag zu vergleichen, konvertieren wir den Datum-String zu einem DateTime-Objekt und verwenden die Funktion CONVERT
$convertedDatum = date_format(date_create($datum), 'Y-m-d');
#$sql = "SELECT count FROM dbo.kl_Einzahlungen WHERE MitarbeiterID = ? AND Betrag = ? AND CONVERT(VARCHAR, Datum, 23) = ?";
$sql = "SELECT * FROM dbo.kl_Einzahlungen WHERE MitarbeiterID = ? AND Betrag = ? AND CONVERT(VARCHAR, Datum, 23) = ?";
$params = array($mitarbeiterID, $betrag, $convertedDatum);
$stmt = sqlsrv_query($conn, $sql, $params);
if ($stmt === false) {
die(print_r(sqlsrv_errors(), true));
}
$row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
return ($row['MitarbeiterID'] > 0);
}
// Funktion zum Verarbeiten der CSV-Datei und Rückgabe der Ergebnisse
function processCSV($conn, $file)
{
$handle = fopen($file, "r");
$success_entries = [];
$failed_entries = [];
// Überspringe die erste Zeile (Header) der CSV-Datei
fgetcsv($handle);
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$name = $data[3]; // Index 3 entspricht dem "Name"-Feld in der CSV
$betrag = $data[7]; // Index 7 entspricht dem "Brutto"-Feld in der CSV
$betrag = str_replace(",", ".", $betrag);
#echo "<br>";
#$Ausgabe = array($data[0], $data[3], $data[7]);
// Überprüfen, ob der Mitarbeiter existiert und der Betrag positiv ist
if (isMitarbeiterExist($conn, $name) && $betrag > 0) {
$mitarbeiterID = getMitarbeiterID($conn, $name);
$datum = $data[0]; // Index 0 entspricht dem "Datum"-Feld in der CSV
// Überprüfen, ob ein identischer Eintrag bereits vorhanden ist
if (!isDuplicateEntry($conn, $mitarbeiterID, $betrag, $datum)) {
// Eintrag in die Tabelle dbo.kl_Einzahlungen einfügen
$sql = "INSERT INTO kl_Einzahlungen (MitarbeiterID, Betrag, Datum) VALUES (?, ?, ?)";
$params = array($mitarbeiterID, $betrag, $datum);
$stmt = sqlsrv_query($conn, $sql, $params);
if ($stmt) {
$success_entries[] = array($data[0], $data[3], $data[7], 0);
} else {
$failed_entries[] = array($data[0], $data[3], $data[7], 1);
#die(print_r(sqlsrv_errors(), true));
}
}else {
#echo "Eintrag bereits vorhanden: " . print_r($data, true) . "\n";
$failed_entries[] = array($data[0], $data[3], $data[7], 2);
}
} else {
$failed_entries[] = array($data[0], $data[3], $data[7], 3);
}
}
fclose($handle);
return ['success' => $success_entries, 'failed' => $failed_entries];
}
// Funktion zum Abrufen der MitarbeiterID
function getMitarbeiterID($conn, $name)
{
$sql = "SELECT MitarbeiterID FROM kl_Mitarbeiter WHERE Name = ? or paypalname = ?";
$params = array($name);
$stmt = sqlsrv_query($conn, $sql, $params);
if ($stmt === false) {
die(print_r(sqlsrv_errors(), true));
}
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC))
{
return $row['MitarbeiterID'];
}
#echo $mitarbeiterid;
}
// Überprüfen, ob das Formular abgeschickt wurde
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// Überprüfen, ob eine Datei hochgeladen wurde
if (isset($_FILES["csv_file"]) && $_FILES["csv_file"]["error"] == 0) {
$file_name = $_FILES["csv_file"]["name"];
$file_tmp = $_FILES["csv_file"]["tmp_name"];
// Datei in den Upload-Ordner verschieben
move_uploaded_file($file_tmp, "uploads/" . $file_name);
// CSV-Datei verarbeiten
$result = processCSV($conn, "uploads/" . $file_name);
echo "CSV-Datei erfolgreich verarbeitet.\n";
echo "<h3>Auswertung</h3>";
echo "<table>
<tr>
<th>Name</th>
<th>Datum</th>
<th>Betrag</th>
<th>Ergebnis</th>
</tr>";
foreach ($result['success'] as $eintrag){
echo "<tr>
<td>$eintrag[0]</td>
<td>$eintrag[1]</td>
<td>$eintrag[2]</td>
<td>Erfolgreich gespeichert</td>
</tr>";
}
foreach ($result['failed'] as $eintrag){
echo "<tr>
<td>$eintrag[0]</td>
<td>$eintrag[1]</td>
<td>$eintrag[2]</td>
<td>";
if($eintrag[3] == 1){
echo "SQL Fehler";
}elseif($eintrag[3] == 2){
echo "Eintrag schon vorhanden";
}elseif($eintrag[3] == 3){
echo "Benutzer nicht gefunden";
}
echo "</td>
</tr>";
}
echo "</table>";
} else {
echo "Fehler beim Hochladen der Datei.";
}
}
?>
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSV Verarbeitung</title>
</head>
<body>
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post" enctype="multipart/form-data">
<label for="csv_file">CSV-Datei auswählen:</label>
<input type="file" name="csv_file" accept=".csv" required>
<button type="submit">Datei hochladen</button>
</form>
</body>
</html>
<?php
}else{
echo "<h2>Kein Zugriff</h2>";
}
?>
</div>
</section>
<?php include "footer.php"; ?>
+152
View File
@@ -0,0 +1,152 @@
<?php
include "functions.php";
include "header.php";
include "headerline.php";
include "nav.php";
?>
<!-- Banner -->
<section id="banner">
<div class="content">
<?php
// Verarbeitung des Formulars, wenn es gesendet wurde
if ($_SERVER["REQUEST_METHOD"] == "POST" ) {
// Iteriere über alle Mitarbeiter
foreach ($_POST["anzahlBetrag"] as $mitarbeiterID => $anzahlBetrag) {
// Validierung könnte hier hinzugefügt werden
#$anzahlBetrag = $anzahlBetrag;
$anzahlBetrag = floatval($anzahlBetrag);
if($anzahlBetrag != 0){
$datum = date("Y-d-m H:i:s"); // Das aktuelle Datum verwenden
// SQL-Abfrage zum Einfügen der Daten
$sql = "INSERT INTO kl_Einzahlungen (MitarbeiterID, Betrag, Datum) VALUES (?, ?, ?)";
$params = array($mitarbeiterID, $anzahlBetrag, $datum);
$stmt = sqlsrv_query($conn, $sql, $params);
if ($stmt === false) {
die(print_r(sqlsrv_errors(), true));
}
}
}
echo "Einträge erfolgreich hinzugefügt.";
}elseif($_SERVER["REQUEST_METHOD"] == "GET" AND isset($_GET["action"])){
if($_GET["action"] == "vorderseite"){
$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, GETDATE()) AND M.aktiv = 1
GROUP BY M.MitarbeiterID, M.Name, M.Email
HAVING SUM(V.AnzahlStriche) >= 10
ORDER BY Name;";
}elseif( $_GET["action"] == "rueckseite"){
$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, GETDATE())
WHERE M.aktiv = 1
GROUP BY M.MitarbeiterID, M.Name, M.Email
HAVING COALESCE(SUM(V.AnzahlStriche), 0) < 10
ORDER BY M.Name;";
}elseif($_GET["action"] == "alle"){
// Mitarbeiter aus der Datenbank abrufen und nach Namen sortieren
$sqlMitarbeiter = "SELECT MitarbeiterID, Name FROM kl_Mitarbeiter WHERE aktiv = 1 ORDER BY Name";
}
}else{
// Mitarbeiter aus der Datenbank abrufen und nach Namen sortieren
$sqlMitarbeiter = "SELECT MitarbeiterID, Name FROM kl_Mitarbeiter WHERE aktiv = 1 ORDER BY Name";
}
$stmtMitarbeiter = sqlsrv_query($conn, $sqlMitarbeiter);
// Schließe die Verbindung zur Datenbank
#sqlsrv_close($conn);
?>
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Kaffeeliste - Einzahlung</title>
</head>
<body>
<h2>Einzahlungen für alle Mitarbeiter</h2>
<ul class="actions">
<li>
<form action="einzahlung.php?aktion=vorderseite" method="get">
<button type="submit">Vorderseite</button>
</form>
</li>
<li>
<form action="einzahlung.php?aktion=rueckseite" method="get">
<button type="submit">Rückseite</button>
</form>
</li>
<li>
<form action="einzahlung.php?aktion=alle" method="get">
<button type="submit">Alle</button>
</form>
</li>
<li>
<form action="letzteneintraege.php" method="get">
<button type="submit">Letzten Einträge</button>
</form>
</li>
<li>
<form action="csvupload.php" method="get">
<button type="submit">CSV Upload</button>
</form>
</li>
</ul>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>">
<?php
echo "<table>";
echo " <tr>
<th>Mitarbeiter</th>
<th>Betrag</th>
</tr>";
// Iteriere über alle Mitarbeiter
while ($row = sqlsrv_fetch_array($stmtMitarbeiter, SQLSRV_FETCH_ASSOC)) {
$mitarbeiterID = $row["MitarbeiterID"];
$mitarbeiterName = $row["Name"];
echo "<tr>";
// Formularfeld für die Anzahl der Striche
echo "<td><label for='anzahlBetrag[$mitarbeiterID]'>$mitarbeiterName </label></td>";
echo "<td><input type='number' name='anzahlBetrag[$mitarbeiterID]' step='0.01'></td>";
echo "</tr>";
}
echo "</table>";
?>
<button type="submit" name="submit" value="Speichern" >Eintragen</button>
</form>
</body>
</html>
</div>
</section>
<?php include "footer.php"; ?>
+224
View File
@@ -0,0 +1,224 @@
<?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');
?>
+90
View File
@@ -0,0 +1,90 @@
<?php
include "functions.php";
include "header.php";
include "headerline.php";
include "nav.php";
?>
<!-- Banner -->
<section id="banner">
<div class="content">
<?php
echo "<h2>FAQ - Kaffeeliste</h2>";
echo "<br>";
?>
<p><b>Wie werde ich Mitglied der Kaffeeliste?</b>
</b></p><p>Neumitglieder können sich einfach in diese Liste eintragen und zahlen aktuell keine Aufnahmegebühr. Es ist keine weitere Rücksprache nötig.
Schon mal ausgetretene Mitglieder können erst nach einem Jahr wiederaufgenommen werden. Die Kaffeeliste behält sich vor Mitglieder von der Liste streichen zu können.
<p><b>Wo finde ich Milch, Zucker und Kaffee?
</b></p><p>Milch findet ihr im Kühlschrank (XXX auf dem Deckel), Zucker und Süßstoff steht neben der Kaffeemaschine. Nachschub findet Ihr im Schrank über der Maschine.
Sollte dort nichts mehr vorhanden sein, schaut bitte auf der Webseite https://kaffeeliste.arge.aok nach ob es einen Hinweis gibt. Sollte kein Hinweis erscheinen, informiert bitte den Ansprechpartner der Kaffeeliste. <br>
Dieser bestellt im Laufe einer Woche die Verbrauchsgüter nach. Sollte dieses nicht ausreichen, dann können in diesem Ausnahmefall auch selbst die Verbrauchsgüter besorgt werden.
Die Unkosten werden gegen Vorlage des Bon (z.B. per Mail) der einreichenden Person auf der Kaffeeliste gutgeschrieben.
<p><b>Welche Arten von Kaffee bekomme ich an der Kaffeemaschine?
</b></p><p>Es gibt für euch nur noch vier Tasten mit jeweils einem Bild.<br>
<b>Espresso</b> Ausgabe von ca. 100ml Kaffee<br>
<b>Coffee</b> Ausgabe von ca. 150ml Kaffee<br>
<b>Hot Water</b> Ausgabe von ca. 200ml warmen Wasser (extra Ausgabe)<br>
<b>Americano</b> Ausgabe von ca. 300ml (150ml Kaffee + 150ml warmes Wasser)<br>
<br>
Eine persönliche Einstellung der Kaffeemenge ist nicht mehr möglich.
Die Stärke muss durch die Menge des Wassers definiert werden.
Alle Kaffeespezialitäten bekommen aktuell ca. 11g Kaffee.
Durch den automatischen Doppelbezug und die verschiedenen Mengen sollten aber die meisten Wünsche erfüllt werden können.
</p>
<p><b>Wie nutze ich die Kaffeemaschine?
</b></p><p>Mit einem Klick auf das jeweilige Symbol bekommt ihr eine Tasse (1 Strich auf der Kaffeeliste).
Mit zweimaligem Drücken auf die jeweilige Taste bekommt ihr zwei Tassen (2 Strich auf der Kaffeeliste).
Läuft das Programm könnt ihr mit einem weiteren Klick auf das jeweilige Symbol den Vorgang vorzeitig beenden.
<p><b>Wie viel kostet ein Kaffee?
</b></p><p>Den aktuellen Preis pro Strich steht immer oben rechts auf der Kaffeeliste. Somit kann ein einfacher Kaffee ein oder auch zwei Striche kosten.
<p><b>Wie erfolgt die Abrechnung?
</b></p><p>Je nach dem was du an der Maschine bezogen hast, machst du die entsprechenden Striche auf der Liste. Also: ein Klick = ein Strich und zwei Klicks = zwei Striche.
Etwa ein Mal im Monat wird die Liste aktualisiert. In diesem Fall bekommst eine E-Mail, wenn du bezahlen musst.
<p><b>Wie kann ich bezahlen?
</b></p><p>Aktuell kann nur per Paypal bezahlt werden. Du erhältst einen entsprechenden Link per Mail.<br>
Bezahle immer über die Freunde Funktion von Paypal. Ansonsten stellen wir 20% des Betrags als Gebühr in Rechnung.
<p><b>Muss ich bei der Bezahlung per PayPal gesondert bestätigen oder jemand benachrichtigen?
</b></p><p>Nein, du musst die Bezahlung nicht gesondert bestätigen. Deine Zahlungen von PayPal werden verrechnet und du siehst dieses auf der nächsten Kaffeeliste. Nach der Verarbeitung deiner Einzahlung bekommst du eine schriftliche Bestätigung per Mail.
<p><b>Ich habe einen negativen Wert auf der Kaffeeliste?
</b></p><p>Ein negativer Betrag in der Spalte "offen" stellen deine Schulden dar. Ein positiver Betrag ist ein Guthaben.
<p><b>Ich habe eine rote Markierung in der Liste. Was bedeutet das?
</b></p><p>Du hast einen höheren offenen Betrag. Bitte bezahle deinen ausstehenden Betrag per PayPal.
<p><b>Ich habe bezahlt und der rote Eintrag in der Liste verschwindet nicht!
</b></p><p>Die Liste wird etwa ein Mal im Monat aktualisiert. Bis zur Aktualisierung der Liste bleibt dein Betrag vom letzten Mal auf der Liste stehen.
<p><b>Was passiert, wenn ich die Striche auf der Liste zu undeutlich oder nicht in Fünferblocks mache?
</b></p><p>Nicht klar erkennbare Stiche führen ohne weitere Vorwarnung zu einer pauschalen Strafe von 10 Strichen bei der Auswertung der Liste. <br>
Sollten die Striche nicht im Quinärsystem - also nach vier Strichen ein Querstrich über diese - (Beispiel: <a href="https://de.wikipedia.org/wiki/Strichliste" >Strichliste</a>) gemacht werden, führt dieses ohne weitere Vorwarnung zu einer pauschalen Strafe von 10 Strichen bei der Auswertung der Liste.
<p><b>Ich habe das Gefühl mein Betrag/Guthaben passt nicht. Was soll ich machen?
</b></p><p>Fehler können leider auch in der Kaffeeliste passieren. Melde dich einfach per Mail und wir schauen uns einmal die Abrechnung an. In der Regel findet sich dann der Fehler oder eine Lösung.
<p><b>Wie erfolgt die Wartung der Maschine?
</b></p><p>Die Wartung der Maschine (Reinigung und Entkalkung) erfolgt etwa einmal im Monaten. Bei jeder Entkalkung findet auch ein Wechsel des Wasserfilters statt.
</p>
<p><b>Wie kann ich mich einbringen?
</b></p><p>Zunächst ist ein freundliches Miteinander wichtig! <br>
Schaut gerne immer mal nach, ob die Verbrauchsmaterialen noch entsprechend vorhanden sind.
Wenn du dich weitere Punkte wie Wartung oder ähnliches kümmern möchtest, melde dich gerne beim Ansprechpartner der Kaffeeliste.
<p><b>Ich habe eine Frage und diese steht hier nicht!
</b></p><p>Dann wenden dich gerne an den Ansprechpartner der Kaffeeliste (kaffeelistesb3@nds.aok.de). Dieser wird dir sicherlich weiterhelfen.
</div>
</section>
<?php include "footer.php";
?>