<?php

include('../../functions.php');

print "Anzahl erste Einloesung:\n";
for ($year = 2009; $year < 2013; $year++)
{
  $anzahl = getErsteEinloesungen($year);
  $anzahlgesamt = getEinloesungen($year);
  print "$year: Ersteinloesungen: $anzahl;Gesamteinloesungen: $anzahlgesamt\n";
}

function getEinloesungen($year)
{
    $einloesungen = 0;
    $startdatum = mktime(0,0,0,1,1,$year);
    $enddatum = mktime(0,0,0,1,1,$year+1);
// Hole alle userIds von Teilnehmern, die Punkte eingeloest haben
    $query = "SELECT count(userId) AS anzahl
        FROM kontobewegungen
        WHERE datum >= $startdatum
        AND datum <= $enddatum
        AND wert < 0
        AND beschreibung NOT LIKE 'Punkteverfall%'";
    $result = dbQuery($query)
        or die ("Kann query nicht ausführen: " . dbError());
    
    $row = dbFetchRow($result, MYSQL_ASSOC);
    $einloesungen = $row['anzahl'];
    return $einloesungen;
}

function getErsteEinloesungen($year)
{
    $userIds = array();
    $einloesungen = 0;
    $startdatum = mktime(0,0,0,1,1,$year);
    $enddatum = mktime(0,0,0,1,1,$year+1);
// Hole alle userIds von Teilnehmern, die Punkte eingeloest haben
    $query = "SELECT DISTINCT( userId) 
        FROM kontobewegungen
        WHERE datum >= $startdatum
        AND datum <= $enddatum
        AND wert < 0
        AND beschreibung NOT LIKE 'Punkteverfall%'";
    $result = dbQuery($query)
        or die ("Kann query nicht ausführen: " . dbError());
    
    while ($row = dbFetchRow($result, MYSQL_ASSOC))
    {
        $userId = $row['userId'];
        $datum = getErsteEinloesung($userId);
        if ($datum >= $startdatum && $datum <= $enddatum) {
            $einloesungen++;
        }
    }
    return $einloesungen;
}

function getErsteEinloesung($userId)
{
    $query = "SELECT datum 
        FROM kontobewegungen
        WHERE wert < 0
        AND userId = $userId
        AND beschreibung NOT LIKE 'Punkteverfall%'
        ORDER BY datum ASC";
    $result = dbQuery($query)
        or die ("Kann query nicht ausführen: " . dbError());
    $row = dbFetchRow($result, MYSQL_ASSOC);
    $datum = $row['datum'];
    return $datum;
}
