@@ -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