<div class="module">Datenexport</div>
<?php
$DEBUG = true;
$end = mktime(0,0,0,12,12,2014);
$healthmiles = new healthmiles();
$row = '';
$query = "SELECT * FROM userlogs WHERE aktion='Teilnehmer Kassenexport' ORDER BY timestamp DESC";
$result = dbQuery($query)
        or error("Konnte log nicht aus der Datenbank lesen: " . dbError());
$row = dbFetchRow($result);
dbFreeResult($result);
if ($row) {
    //    $row['timestamp'] = 1; // Export aller Teilnehmer
    $userids = $healthmiles->getNewUsers($row['timestamp']);
    $numRows = count($userids);
    $dateLastExport = date('r', $row['timestamp']);
}
else {
    $userids = $healthmiles->getNewUsers(631148401,$end);
    $numRows = count($userids);
    $dateLastExport = date('r', 631148401);
}

// Exportiere Daten auf Anfrage
if ($export) {

    if (count($userids) > 0) {
        if ($DEBUG)
            print "Export $numrows  Teilnehmer from " . $row['timestamp'] . " to now.<br />\n";
        // in that create dir "date time, seconds"
        $exportdirname = date("Ymd-His");
        if (!is_dir($exportpath . "/" . $exportdirname)) {
            if ($DEBUG)
                print "Erstelle Verzeichnis $exportpath/$exportdirname<br/>\n";
            $oldumask = umask(0);
            if (!mkdir($exportpath . "/" . $exportdirname, 0775)) {
                umask($oldumask);
                die('Erstellung des Verzeichnisses ' .
                        $exportpath . "/" . $exportdirname . ' schlug fehl!');
            }
            umask($oldumask);
        }
        $exportfilenames = array();
        $number = count($userids);
        print "$number neue Dateien werden erzeugt...<br/>\n";
        flush();
        $id = 1;
        foreach ($userids as $userid)
        {
            $myUser = new user(0, $userid);
            $exportfilename = $exportpath . "/" . $exportdirname . "/";
/*
            switch ($myUser->rechtskreis)
            {
                case 'West':
                    $exportfilename .= "20_";
                    break;
                case 'Ost':
                    $exportfilename .= "70_";
                    break;
                default:
                    $exportfilename .= "NA_";
            }

            $exportfilename .= $myUser->versnummerneu;
            $exportfilename .= "_healthmiles.xml";
*/
            $exportfilename .= 'healthmiles_teilnehmer_' . $id . '.xml';
            $xml = $myUser->toXML($id);
            if ($xml == '') {
                continue;
            }
            $id++;
            if ($exportfilehandle = fopen($exportfilename, "w")) {
                fwrite($exportfilehandle, $xml);
                fclose($exportfilehandle);
                $exportfilenames[] = $exportfilename;
                if ($DEBUG) {
                    print "Written ".$exportfilename."<br />\n";
                }
            }
            else {
                print "Writing of " . $exportfilename . " FAILED!<br />\n";
            }
        }
        print "Fertig.<br/>\n";

        // packen ueber system -> verschluesselt
        echo system($zipbin . ' -e -q -j -P secu09 -r ' . $exportpath . '/TeilnehmerExport-' . $exportdirname . ' ' . $exportpath . '/' . $exportdirname);
        //      echo system('zip -e -q -j -P secviexp4crmkv -r '.$exportroot.'/TeilnehmerExport-'.$exportdirname.' '.$exportroot.'/'.$exportdirname);
        if ($DEBUG)
            print "<br />Moved results to enrypted archive TeilnehmerExport-" . $exportdirname . ".zip <br />";

        // Temp-Dateien loeschen
        if ($DEBUG)
            print "<br />Deleted temporary files.<br />";
        rrmdir($exportpath . '/' . $exportdirname);

        $numRows = 0;
        $loggedIn->log('Teilnehmer Kassenexport', $loggedIn->userId);
    } else {
        print "Keine neuen Daten zu exportierten.<br />\n";
    }
}

if ($deletefiles) {
    foreach ($deletefiles as $deletefile)
    {
        rename("$exportpath/$exportsubdir/$deletefile",
               "$exportpath/old/$deletefile");
    }
}

$myDir = opendir($exportpath . "/");
$files = array();
while ($filename = readdir($myDir))
{
    if (filetype("$exportpath/$filename") == "file") {
        if (preg_match("/^Teilnehmer/", $filename)) {
            array_push($files, $filename);
        }
    }
}
closedir($myDir);
sort($files);
?>
            <?php if (count($files)) : ?>
    <br />
    <form action="<?= $_SERVER['PHP_SELF'] ?>" method="POST">
        <fieldset class="fieldset"><legend>Exportierte Dateien</legend>
            Folgende Dateien (Teilnehmer f&uuml;r Kasse) stehen zum Herunterladen bereit:<br><br>
            <input type="hidden" name="module" value="<?= $module ?>" />
            <input type="hidden" name="action" value="<?= $action ?>" />
            <table>
    <?php foreach ($files as $file) : ?>
                    <tr>
                        <td>
                            <a href="https://www.healthmiles.de/<?= $dev
                ? 'dev/'
                : '' ?>admin/downloadcsv.php?file=<?= $file ?>"><?= $file ?></a>
                        </td>
                        <td>
                            <input class="inputradio" type="checkbox" name="deletefiles[]" value="<?= $file ?>" title="Datei zum L&ouml;schen markieren" />
                        </td>
                    </tr>
        <?php endforeach; ?>
            </table>
            <input type="submit" name="delete" class="inputsubmit" value="Dateien l&ouml;schen" /><br />
        </fieldset>
    </form>
    <?php
endif;
if ($numRows > 0) :
    ?>
    <br />
    <form action="<?= $_SERVER['PHP_SELF'] ?>" method="POST">
        <input type="hidden" name="module" value="<?= $module ?>" />
        <input type="hidden" name="action" value="<?= $action ?>" />
        <fieldset class="fieldset"><legend>Download erzeugen</legend>
            Es stehen <strong><?= $numRows ?></strong> neue Datens&auml;tze (Teilnehmer f&uuml;r Kasse) zum Herunterladen bereit.<br />
            Datum des letzten Exports: <strong><?= $dateLastExport ?></strong><br />
            <br />
            Erzeugen sie hier eine neue Datei: <input type="submit" name="export" class="inputsubmit" value="Datei erzeugen" /><br />
            <br />
            <hr />
            <!--
            <p>
            <a href="<?= $_SERVER['PHP_SELF'] ?>?module=export&action=old">Alte/gel&ouml;schte Exportdateien</a>
            </p>
            -->

        </fieldset>
    </form>
<?php else : ?>
    Es stehen keine neuen Daten f&uuml;r den Export bereit.
<?php
endif;


function rrmdir($dir)
{
    if (is_dir($dir)) {
        $objects = scandir($dir);
        foreach ($objects as $object)
        {
            if ($object != "." && $object != "..") {
                if (filetype($dir . "/" . $object) == "dir")
                    rrmdir($dir . "/" . $object);
                else
                    unlink($dir . "/" . $object);
            }
        }
        reset($objects);
        rmdir($dir);
    }
}
