Skip to content

Commit 33863be

Browse files
authored
Merge pull request #156 from kadrim/147-Spend-hours-in-goals-not-displayed
Fix Spend hours in goals not displayed #147
2 parents 1bb042d + 29b98f3 commit 33863be

File tree

1 file changed

+16
-7
lines changed

1 file changed

+16
-7
lines changed

lib/Controller/AjaxController.php

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1180,13 +1180,15 @@ public function getStartOfWeek($timestamp){
11801180
$weeknumber = $date->format("W");
11811181
$year = $date->format("Y");
11821182
$weekstartdt = new \DateTime();
1183+
$weekstartdt->setTime(0, 0, 0, 0);
11831184
$weekstartdt->setISODate($year, $weeknumber);
11841185

11851186
return $weekstartdt;
11861187
}
11871188
public function getStartOfMonth($timestamp){
11881189
$date = new \DateTime('@'.$timestamp);
11891190
$date->modify('first day of this month');
1191+
$date->setTime(0, 0, 0, 0);
11901192

11911193
return $date;
11921194
}
@@ -1241,22 +1243,29 @@ public function getGoals(){
12411243
}
12421244
$workedSecondsCurrentPeriod = 0;
12431245
$debtSeconds = 0;
1244-
array_pop($intervals);
12451246
foreach($intervals as $interval){
12461247
$workedInInterval = 0;
12471248
foreach($repItems as $repItem) {
1248-
if ($interval == $repItem->time) {
1249-
$workedInInterval = $repItem->totalDuration;
1250-
break;
1251-
}
1249+
1250+
if ($goal->interval == 'Weekly'){
1251+
if ($interval == $this->getStartOfWeek($repItem->time)->format('Y-m-d')) {
1252+
$workedInInterval += $repItem->totalDuration;
1253+
break;
1254+
}
1255+
} elseif ($goal->interval == 'Monthly'){
1256+
if ($interval == $this->getStartOfMonth($repItem->time)->format('Y-m')) {
1257+
$workedInInterval += $repItem->totalDuration;
1258+
break;
1259+
}
1260+
}
12521261
}
12531262
$debtSeconds += ($goal->hours*3600 - $workedInInterval);
12541263
}
12551264

12561265
foreach($repItems as $period){
1257-
if ($goal->interval == 'Weekly' && $period->time == $weekStart){
1266+
if ($goal->interval == 'Weekly' && $this->getStartOfWeek($period->time)->format('Y-m-d') == $weekStart){
12581267
$workedSecondsCurrentPeriod += $period->totalDuration;
1259-
} elseif ($goal->interval == 'Monthly' && $period->time == $monthStart){
1268+
} elseif ($goal->interval == 'Monthly' && $this->getStartOfMonth($period->time)->format('Y-m') == $monthStart){
12601269
$workedSecondsCurrentPeriod += $period->totalDuration;
12611270
}
12621271
}

0 commit comments

Comments
 (0)