<?php

    function SaveCronjobRun($Command, $RunHour, $RunMinute) {
        
        $SQLString = 'UPDATE ' . TABLE_CRONJOB . ' SET ';
        $SQLString .= TABLE_CRONJOB . '.run_hour = \'' . $RunHour . '\', ';
        $SQLString .= TABLE_CRONJOB . '.run_minute  = \'' . $RunMinute . '\' ';
        $SQLString .= 'WHERE  ';
        $SQLString .= TABLE_CRONJOB . '.command = \'' . $Command . '\' ';

        $MySQLQueryReference = errorlogged_mysql_query($SQLString);
        
    }

    function CheckCronJobs() {
        
        $SQLString = 'SELECT ';
        $SQLString .= TABLE_CRONJOB . '.cronjob_id ';
        $SQLString .= 'FROM ';
        $SQLString .= TABLE_CRONJOB . ' ';
        $SQLString .= 'WHERE ';
        $SQLString .= 'DATE_ADD(' . TABLE_CRONJOB . '.last_execute, INTERVAL (' . TABLE_CRONJOB . '.run_minute + (60 * ' . TABLE_CRONJOB . '.run_hour)) MINUTE) < NOW() ';
        
        $MySQLQueryReference = errorlogged_mysql_query($SQLString);

        while ($CronjobRow = mysql_fetch_array($MySQLQueryReference, MYSQL_ASSOC)) {
            
            ExecuteCommand($CronjobRow['cronjob_id']);
            
        }
        
    }
    
    function ExecuteCommand($CronjobID) {
        
        $CronjobObject = GetCronjobDetail($CronjobID);
        
        switch ($CronjobObject->command) {
        
            case 'AbgleichAGBHostingTexte':
            
                include_once(DATEIPFAD . "includes/functions.agbhosting.inc.php");
                AbgleichAGBHostingTexte();
                
            break;

            case 'CheckPendingPayments':
                CheckPendingPayments();
                break;
        }
        
        $SQLString = 'UPDATE ' . TABLE_CRONJOB . ' SET ';
        $SQLString .= TABLE_CRONJOB . '.last_execute = NOW() ';
        $SQLString .= 'WHERE  ';
        $SQLString .= TABLE_CRONJOB . '.cronjob_id = \'' . $CronjobID . '\' ';

        $MySQLQueryReference = errorlogged_mysql_query($SQLString);
        
    }
    
    function GetCronjobDetail($CronjobID) {
        
        $SQLString = 'SELECT ';
        $SQLString .= TABLE_CRONJOB . '.cronjob_id, ';
        $SQLString .= TABLE_CRONJOB . '.command, ';
        $SQLString .= TABLE_CRONJOB . '.last_execute, ';
        $SQLString .= TABLE_CRONJOB . '.run_hour, ';
        $SQLString .= TABLE_CRONJOB . '.run_minute ';
        $SQLString .= 'FROM ';
        $SQLString .= TABLE_CRONJOB . ' ';
        $SQLString .= 'WHERE  ';
        $SQLString .= TABLE_CRONJOB . '.cronjob_id = \'' . $CronjobID . '\' ';
        
//        echo '$SQLString: ' . $SQLString . '<br>';
        
        $CronjobObject = mysql_fetch_object(errorlogged_mysql_query($SQLString));
        
        return $CronjobObject;
        
    }