Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public function calculateAttendanceRateForMember(Member $member)
- {
- $memberJoinedDate = $this->membership->getJoinedDate($member);
- $oneYearAgo = (new \DateTime('now'))->modify('-1 year');
- if ($memberJoinedDate < $oneYearAgo) {
- // The member is part of the organization for more
- // than a year, count only the meetings in the last year
- $calculateFrom = $oneYearAgo;
- } else {
- // Otherwise, count the meetings that happened since
- // the member joined
- $calculateFrom = $memberJoinedDate;
- }
- $calculateTo = new \DateTime('now');
- $attended = $this->meetings->countAttendanceForMember($member, $calculateFrom, $calculateTo);
- $total = $this->meetings->countMeetingsInPeriod($calculateFrom, $calculateTo);
- if ($total == 0) {
- return 0;
- }
- $rate = ($attended / $total) * 100;
- return (int)round($rate, 0);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement