Advertisement
nocturnalmk

calculateAttendanceRateForMember

Aug 4th, 2014
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.00 KB | None | 0 0
  1.     public function calculateAttendanceRateForMember(Member $member)
  2.     {
  3.         $memberJoinedDate = $this->membership->getJoinedDate($member);
  4.         $oneYearAgo = (new \DateTime('now'))->modify('-1 year');
  5.  
  6.         if ($memberJoinedDate < $oneYearAgo) {
  7.             // The member is part of the organization for more
  8.             // than a year, count only the meetings in the last year
  9.  
  10.             $calculateFrom = $oneYearAgo;
  11.         } else {
  12.             // Otherwise, count the meetings that happened since
  13.             // the member joined
  14.  
  15.             $calculateFrom = $memberJoinedDate;
  16.         }
  17.  
  18.         $calculateTo = new \DateTime('now');
  19.  
  20.         $attended = $this->meetings->countAttendanceForMember($member, $calculateFrom, $calculateTo);
  21.         $total = $this->meetings->countMeetingsInPeriod($calculateFrom, $calculateTo);
  22.  
  23.         if ($total == 0) {
  24.             return 0;
  25.         }
  26.  
  27.         $rate = ($attended / $total) * 100;
  28.  
  29.         return (int)round($rate, 0);
  30.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement