X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=plugins%2FMonthlyQuota.class.php;h=21854672bc2e0bef16fd938e1806649a38b0779e;hb=b53f880dcd61797fd2e6609477add03ca757d813;hp=a1c1b5d0985ef06acb1fefecc3898ce69aa9cd0b;hpb=0f6454bb20d223018d0f969ab5e1d46f4ce14b96;p=timetracker.git diff --git a/plugins/MonthlyQuota.class.php b/plugins/MonthlyQuota.class.php index a1c1b5d0..21854672 100644 --- a/plugins/MonthlyQuota.class.php +++ b/plugins/MonthlyQuota.class.php @@ -94,6 +94,25 @@ class MonthlyQuota { return $userMinutes; } + // getUserQuotaFrom1st - obtains a quota for user + // from 1st of the month up to and inclusive of $selected_date. + public function getUserQuotaFrom1st($selected_date) { + // TODO: we may need a better algorithm here. Review. + $monthQuotaMinutes = $this->getUserQuota($selected_date->mYear, $selected_date->mMonth); + $workdaysInMonth = $this->getNumWorkdays($selected_date->mMonth, $selected_date->mYear); + + // Iterate from 1st up to selected date. + $workdaysFrom1st = 0; + for ($i = 1; $i <= $selected_date->mDate; $i++) { + $date = "$selected_date->mYear-$selected_date->mMonth-$i"; + if (!ttTimeHelper::isWeekend($date) && !ttTimeHelper::isHoliday($date)) { + $workdaysFrom1st++; + } + } + $quotaMinutesFrom1st = (int) ($monthQuotaMinutes * $workdaysFrom1st / $workdaysInMonth); + return $quotaMinutesFrom1st; + } + // getMany - returns an array of quotas for a given year for group. private function getMany($year){ $sql = "select month, minutes from tt_monthly_quotas".