X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=plugins%2FMonthlyQuota.class.php;h=c8559ad46371f1cb0166034923044fde0e746291;hb=acf9b73aeba337d836b1cdf2c1bb19d4106aa967;hp=a1c1b5d0985ef06acb1fefecc3898ce69aa9cd0b;hpb=0f6454bb20d223018d0f969ab5e1d46f4ce14b96;p=timetracker.git diff --git a/plugins/MonthlyQuota.class.php b/plugins/MonthlyQuota.class.php index a1c1b5d0..c8559ad4 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 = ttTimeHelper::dateInDatabaseFormat($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". @@ -120,6 +139,7 @@ class MonthlyQuota { // Iterate through the entire month. for ($i = 1; $i <= $daysInMonth; $i++) { $date = "$year-$month-$i"; + $date = ttTimeHelper::dateInDatabaseFormat($year, $month, $i); if (!ttTimeHelper::isWeekend($date) && !ttTimeHelper::isHoliday($date)) { $workdaysInMonth++; }