Skip to content

Commit

Permalink
New API function bug_overdue_level()
Browse files Browse the repository at this point in the history
Update bug_is_overdue() to use new function.
  • Loading branch information
dregad committed Feb 2, 2020
1 parent 08c4d53 commit c4660a5
Showing 1 changed file with 37 additions and 10 deletions.
47 changes: 37 additions & 10 deletions core/bug_api.php
Expand Up @@ -1129,6 +1129,42 @@ function bug_is_closed( $p_bug_id ) {
return( $t_bug->status >= config_get( 'bug_closed_status_threshold', null, null, $t_bug->project_id ) );
}

/**
* Return a bug's overdue warning level.
* Determines the level based on the difference between the bug's due date
* and the current date/time, based on the defined delays
* @see $g_due_date_warning_levels
*
* @param $p_bug_id
*
* @return int|false Warning level (0 = overdue), false if N/A.
*/
function bug_overdue_level( $p_bug_id ) {
if( bug_is_resolved( $p_bug_id ) ) {
return false;
}

$t_bug = bug_get( $p_bug_id );
$t_due_date = $t_bug->due_date;

if( date_is_null( $t_due_date ) ) {
return false;
}

$t_warning_levels = config_get( 'due_date_warning_levels', null, null, $t_bug->project_id );
if( !empty( $t_warning_levels ) && !is_array( $t_warning_levels ) ) {
trigger_error( ERROR_GENERIC );
}

$t_now = db_now();
foreach( $t_warning_levels as $t_level => $t_delay ) {
if( $t_now > $t_due_date - $t_delay ) {
return $t_level;
}
}
return false;
}

/**
* Check if a given bug is overdue
* @param integer $p_bug_id Integer representing bug identifier.
Expand All @@ -1137,16 +1173,7 @@ function bug_is_closed( $p_bug_id ) {
* @uses database_api.php
*/
function bug_is_overdue( $p_bug_id ) {
$t_due_date = bug_get_field( $p_bug_id, 'due_date' );
if( !date_is_null( $t_due_date ) ) {
$t_now = db_now();
if( $t_now > $t_due_date ) {
if( !bug_is_resolved( $p_bug_id ) ) {
return true;
}
}
}
return false;
return bug_overdue_level( $p_bug_id ) === 0;
}

/**
Expand Down

0 comments on commit c4660a5

Please sign in to comment.