Kimai_Database_Mysql::get_best_fitting_rate PHP Method

get_best_fitting_rate() public method

Query the database for the best fitting rate for the given user, project and activity.
Author: sl
public get_best_fitting_rate ( $userID, $projectID, $activityID ) : boolean
$userID
$projectID
$activityID
return boolean
    public function get_best_fitting_rate($userID, $projectID, $activityID)
    {
        // validate input
        if ($userID == null || !is_numeric($userID)) {
            $userID = "NULL";
        }
        if ($projectID == null || !is_numeric($projectID)) {
            $projectID = "NULL";
        }
        if ($activityID == null || !is_numeric($activityID)) {
            $activityID = "NULL";
        }
        $query = "SELECT rate FROM " . $this->kga['server_prefix'] . "rates WHERE\n    (userID = {$userID} OR userID IS NULL)  AND\n    (projectID = {$projectID} OR projectID IS NULL)  AND\n    (activityID = {$activityID} OR activityID IS NULL)\n    ORDER BY userID DESC, activityID DESC, projectID DESC\n    LIMIT 1;";
        $result = $this->conn->Query($query);
        if ($result === false) {
            $this->logLastError('get_best_fitting_rate');
            return false;
        }
        if ($this->conn->RowCount() == -1) {
            // no error, but no best fitting rate, return default value
            Kimai_Logger::logfile("get_best_fitting_rate - using default rate 0.00");
            return 0.0;
        }
        $data = $this->conn->rowArray(0, MYSQLI_ASSOC);
        return $data['rate'];
    }
Kimai_Database_Mysql