wbTeamPro Feature Request & Bug Tracker - wbTeamPro
View Issue Details
0010255wbTeamPro[All Projects] Featurespublic2017-01-30 09:312015-01-25 00:00
webuddha 
webuddha 
normalminoralways
Implementedadded 
 
v3.0.14 
0010255: Action Listing by Calculated Priority
Improve the action list sorting to provide better priority sorting using a weight value, priority value, due date, and percentage completed.
action, list view
Issue History
2013-06-19 10:41webuddhaNew Issue
2013-06-19 10:41webuddha
2013-06-19 10:41webuddhaTag Attached: action
2013-06-19 10:41webuddhaTag Attached: list view
2013-06-19 10:47webuddhaNote Added: 0010050
2013-06-19 10:53webuddhaNote Edited: 0010050bug_revision_view_page.php?bugnote_id=10050#r24
2013-06-22 10:48webuddhaNote Added: 0010051
2013-06-22 10:48webuddhaAssigned To => webuddha
2013-06-22 10:48webuddhaStatusNew => In Progress
2013-06-24 13:58webuddhaNote Edited: 0010051bug_revision_view_page.php?bugnote_id=10051#r26
2013-06-24 13:59webuddhaStatusIn Progress => Implemented
2013-06-24 13:59webuddhaApplied to Version => v3.0.14
2013-06-24 13:59webuddhaResolutionopen => added

Notes
(0010050)
webuddha   
2013-06-19 10:47   
(edited on: 2013-06-19 10:53)
This value could be called the "Score" representing something like this:

Score = (Date > Due Date ? (Date - Due Date) : exp(Due Date - Date)) * (Priority) * (Weight) * ((100 - Percentage Complete)/100)

(0010051)
webuddha   
2013-06-22 10:48   
(edited on: 2013-06-24 13:58)
The total score is a value from 0..100, calculated based on the following weights.

70% = DateScore
10% = ActivityScore
10% = PriorityScore
10% = CompleteScore

IF(`action`.`action_complete`=100
  ,0
  ,(
    ((IF( `action`.`date_finish` = CURDATE()
      , 0.25
      , IF(
        `action`.`date_finish` > CURDATE()
        , IF( (DATEDIFF(`action`.`date_finish`,CURDATE())>365), 0, 0.25 - ((DATEDIFF(`action`.`date_finish`,CURDATE())/365)*.25) )
        , IF( (DATEDIFF(CURDATE(),`action`.`date_finish`)>90), 1, 0.25 + ((DATEDIFF(CURDATE(),`action`.`date_finish`)/90)*.75) )
        )
      )) * 70)
    + ((IF(
      (DATEDIFF(NOW(),`action`.`date_activity`)>90)
      , 1
      , IF(
        `action`.`date_activity`='0000-00-00 00:00:00'
        , IF(
          (DATEDIFF(NOW(),`action`.`date_modified`)>90)
          , 1
          , (DATEDIFF(NOW(),`action`.`date_modified`)/90)
          )
        , (DATEDIFF(NOW(),`action`.`date_activity`)/90)
        )
      )) * 10)
    + ((((`action`.`action_priority` - 1) / 2)) * 10)
    + ((IF( `action`.`date_finish` <= CURDATE()
      , 1
      , IF( ((DATEDIFF(`action`.`date_finish`,CURDATE()) / (DATEDIFF(`action`.`date_finish`,`action`.`date_start`)+1)) > (100 - `action`.`action_complete`))
        , ( (100 - `action`.`action_complete`) / (DATEDIFF(`action`.`date_finish`,CURDATE()) / (DATEDIFF(`action`.`date_finish`,`action`.`date_start`)+1)) )
        , 0
        )
      )) * 10)
  )
) AS `calc_actionScore`