*** origProjectPlannerPlugin.pm 2007-02-14 12:35:05.000000000 +0000
--- ProjectPlannerPlugin.pm 2007-03-02 09:15:12.000000000 +0000
***************
*** 1127,1147 ****
my $projTotalTasks = 0;
my $projEstDays = 0;
my $projSpentDays = 0;
my %projModuleTotal;
my %projModuleDone;
my %projModuleInP;
my %projModuleWait;
my %projModuleNS;
my %prioTotal;
my %prioDone;
my %prioInP;
my %prioWait;
my %prioNS;
my ($summary, $ids, $planText);
my $list = "
All plans for project $project
\n\n";
! $list .= "| *Plan* | *Summary* | *Status By Tasks* | *Done Tasks* | *Total Tasks* | *Status By Days* | *Spent Days* | *Estimated Days* | \n";
foreach my $eachPl (split(/;/, $cachedProjPlans{$project})) {
if (&TWiki::Func::topicExists($web, $eachPl)) {
(undef, $planText) = TWiki::Func::readTopic($web, $eachPl);
--- 1127,1150 ----
my $projTotalTasks = 0;
my $projEstDays = 0;
my $projSpentDays = 0;
+ my $projRemainingDays = 0;
my %projModuleTotal;
my %projModuleDone;
my %projModuleInP;
my %projModuleWait;
my %projModuleNS;
+ my %projModuleRem;
my %prioTotal;
my %prioDone;
my %prioInP;
my %prioWait;
my %prioNS;
+ my %prioRem;
my ($summary, $ids, $planText);
my $list = "All plans for project $project
\n\n";
! $list .= "| *Plan* | *Summary* | *Status By Tasks* | *Done Tasks* | *Total Tasks* | *Status By Days* | *Spent Days* | *Estimated Days* | *Remaining Days* | \n";
foreach my $eachPl (split(/;/, $cachedProjPlans{$project})) {
if (&TWiki::Func::topicExists($web, $eachPl)) {
(undef, $planText) = TWiki::Func::readTopic($web, $eachPl);
***************
*** 1169,1183 ****
my $doneDays = 0;
my $inProgressDays = 0;
my $waitingDays;
foreach $line (split(/\n/, $planText)) {
if ($line =~ /.*\|\s*PPTASK\s*\|.*/) {
- $totalTasks++;
my @plantask = split(/\|/, $line);
$totalDays += int $plantask[$col_estdays];
$projModuleTotal{$plantask[$col_module]} += int $plantask[$col_estdays];
$prioTotal{$plantask[$col_priority]} += int $plantask[$col_estdays];
! if (($plantask[$col_status] =~ /.*[d|D]one.*/)
! || ($plantask[$col_status] =~ /.*[c|C]ancelled.*/)) {
$doneTasks++;
#assume spent days not accurate sp Spent=Est
$doneDays += int $plantask[$col_estdays];
--- 1172,1210 ----
my $doneDays = 0;
my $inProgressDays = 0;
my $waitingDays;
+ my $remainingDays;
foreach $line (split(/\n/, $planText)) {
if ($line =~ /.*\|\s*PPTASK\s*\|.*/) {
my @plantask = split(/\|/, $line);
+ if ($plantask[$col_status] =~ /.*[c|C]ancelled.*/) {
+ next; # cancelled tasks aren't progress!
+ }
+ $totalTasks++;
$totalDays += int $plantask[$col_estdays];
$projModuleTotal{$plantask[$col_module]} += int $plantask[$col_estdays];
$prioTotal{$plantask[$col_priority]} += int $plantask[$col_estdays];
! #
! # Calculate the remaining days. For completed
! # tasks, this will be zero.
! #
!
! if (!(($plantask[$col_status] =~ /.*[d|D]one.*/)
! || ($plantask[$col_status] =~ /.*[c|C]ancelled.*/)))
! {
! if ($plantask[$col_spentdays] <
! $plantask[$col_estdays] )
! {
! my $newRem += $plantask[$col_estdays]
! - $plantask[$col_spentdays];
! $remainingDays += $newRem;
! $projModuleRem{$plantask[$col_module]} +=
! $newRem;
! $prioRem{$plantask[$col_priority]} +=
! $newRem;
! }
! }
!
! if ($plantask[$col_status] =~ /.*[d|D]one.*/) {
$doneTasks++;
#assume spent days not accurate sp Spent=Est
$doneDays += int $plantask[$col_estdays];
***************
*** 1221,1233 ****
$list .= "| $doneTasks| $totalTasks|";
$list .= gaugeFour($daysDonePer, $daysWaitingPer, $daysInProgressPer);
my $totalSpentDays = int ($doneDays + $inProgressDays + $waitingDays);
! $list .= "| $totalSpentDays| $totalDays| \n";
#collect stats for full project
$projDoneTasks += $doneTasks;
$projTotalTasks += $totalTasks;
$projEstDays += $totalDays;
$projSpentDays += $totalSpentDays;
} else {
$list .= "|$eachPl | | | | | | | | \n";
}
--- 1248,1261 ----
$list .= "| $doneTasks| $totalTasks|";
$list .= gaugeFour($daysDonePer, $daysWaitingPer, $daysInProgressPer);
my $totalSpentDays = int ($doneDays + $inProgressDays + $waitingDays);
! $list .= "| $totalSpentDays| $totalDays| $remainingDays | \n";
#collect stats for full project
$projDoneTasks += $doneTasks;
$projTotalTasks += $totalTasks;
$projEstDays += $totalDays;
$projSpentDays += $totalSpentDays;
+ $projRemainingDays += $remainingDays;
} else {
$list .= "|$eachPl | | | | | | | | \n";
}
***************
*** 1238,1252 ****
$projSpentPer = int (100.0 * $projSpentDays / $projEstDays);
}
$list .= gaugeLite($projSpentPer);
! $list .= "| Total Spent: $projSpentDays| Total Estimated: $projEstDays| \n";
# Build list of modules with data
my %mods;
foreach my $m (keys %projModuleDone) { $mods{$m} = 1;}
foreach my $m (keys %projModuleInP) { $mods{$m} = 1; }
foreach my $m (keys %projModuleWait) { $mods{$m} = 1; }
foreach my $m (keys %projModuleNS) { $mods{$m} = 1; }
! $list .= "| | | | | *Module* | | | |\n";
foreach my $m (keys %mods) {
my $done = 0;
--- 1266,1281 ----
$projSpentPer = int (100.0 * $projSpentDays / $projEstDays);
}
$list .= gaugeLite($projSpentPer);
! $list .= "| Total Spent: $projSpentDays| Total Estimated: $projEstDays| Total Remaining: $projRemainingDays | \n";
# Build list of modules with data
my %mods;
foreach my $m (keys %projModuleDone) { $mods{$m} = 1;}
foreach my $m (keys %projModuleInP) { $mods{$m} = 1; }
foreach my $m (keys %projModuleWait) { $mods{$m} = 1; }
foreach my $m (keys %projModuleNS) { $mods{$m} = 1; }
+ foreach my $m (keys %projModuleRem) { $mods{$m} = 1; }
! $list .= "| | | | | *Module* | | | | |\n";
foreach my $m (keys %mods) {
my $done = 0;
***************
*** 1255,1260 ****
--- 1284,1290 ----
$wait += $projModuleWait{$m};
my $inP = 0;
$inP += $projModuleInP{$m};
+ my $remaining = int $projModuleRem{$m};
my $total = 0;
$total = int $projModuleTotal{$m};
my $spent = $done + $wait + $inP;
***************
*** 1264,1270 ****
my $inPper = int ($inP*100 / $total);
$list .= "| | | | | $m |";
$list .= gaugeFour($doneper, $waitper, $inPper);
! $list .= "| $spent| $total| \n";
}
}
--- 1294,1300 ----
my $inPper = int ($inP*100 / $total);
$list .= "| | | | | $m |";
$list .= gaugeFour($doneper, $waitper, $inPper);
! $list .= "| $spent| $total| $remaining| \n";
}
}
***************
*** 1274,1280 ****
foreach my $p (keys %prioInP) { $prios{$p} = 1; }
foreach my $p (keys %prioWait) { $prios{$p} = 1; }
foreach my $p (keys %prioNS) { $prios{$p} = 1; }
! $list .= "| | | | | *Priority* | | | |\n";
foreach my $p (keys %prios) {
my $done = 0;
$done += $prioDone{$p};
--- 1304,1311 ----
foreach my $p (keys %prioInP) { $prios{$p} = 1; }
foreach my $p (keys %prioWait) { $prios{$p} = 1; }
foreach my $p (keys %prioNS) { $prios{$p} = 1; }
! foreach my $p (keys %prioRem) { $prios{$p} = 1; }
! $list .= "| | | | | *Priority* | | | | |\n";
foreach my $p (keys %prios) {
my $done = 0;
$done += $prioDone{$p};
***************
*** 1282,1287 ****
--- 1313,1319 ----
$wait += $prioWait{$p};
my $inP = 0;
$inP += $prioInP{$p};
+ my $remaining = $prioRem{$p};
my $total = 0;
$total = int $prioTotal{$p};
my $spent = $done + $wait + $inP;
***************
*** 1291,1297 ****
my $inPper = int ($inP*100 / $total);
$list .= "| | | | | $p |";
$list .= gaugeFour($doneper, $waitper, $inPper);
! $list .= "| $spent| $total| \n";
}
}
--- 1323,1329 ----
my $inPper = int ($inP*100 / $total);
$list .= "| | | | | $p |";
$list .= gaugeFour($doneper, $waitper, $inPper);
! $list .= "| $spent| $total| $remaining| \n";
}
}