⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 allocateduserhours.php

📁 一个基于web的开源项目管理工具
💻 PHP
📖 第 1 页 / 共 2 页
字号:
	$task_duration_per_week = $task->getTaskDurationPerWeek($use_assigned_percentage);	$ted = new CDate(Date_Calc::endOfWeek($task_end_date->day,$task_end_date->month,$task_end_date->year));	$tsd = new CDate(Date_Calc::beginOfWeek($task_start_date->day,$task_start_date->month,$task_start_date->year));	$ed = new CDate(Date_Calc::endOfWeek($end_date->day,$end_date->month,$end_date->year));	$sd = new CDate(Date_Calc::beginOfWeek($start_date->day,$start_date->month,$start_date->year));	$week_difference = $end_date->workingDaysInSpan($start_date)/count(explode(",",dPgetConfig("cal_working_days")));	$actual_date = $start_date;	for($i = 0; $i<=$week_difference; $i++){		if(!$actual_date->before($tsd) && !$actual_date->after($ted)) {			$awoy = $actual_date->year.Date_Calc::weekOfYear($actual_date->day,$actual_date->month,$actual_date->year);			foreach($users as $user_id => $user_data){				if(!isset($user_usage[$user_id][$awoy])){					$user_usage[$user_id][$awoy] = 0;				}				$percentage_assigned = $use_assigned_percentage ? ($user_data["perc_assignment"]/100) : 1;				$hours_added = $task_duration_per_week * $percentage_assigned;				$user_usage[$user_id][$awoy] += $hours_added;				if($user_usage[$user_id][$awoy] < 0.005){					//We want to show at least 0.01 even when the assigned time is very small so we know					//that at that time the user has a running task					$user_usage[$user_id][$awoy] += 0.006;					$hours_added                 += 0.006;				}								// Let's register the tasks counted in for calculation				if(!array_key_exists($user_id, $user_tasks_counted_in)){				    $user_tasks_counted_in[$user_id] = array();				}								if(!array_key_exists($task->task_project, $user_tasks_counted_in[$user_id])) {				    $user_tasks_counted_in[$user_id][$task->task_project] = array();				}								if(!array_key_exists($task->task_id, $user_tasks_counted_in[$user_id][$task->task_project])){				    $user_tasks_counted_in[$user_id][$task->task_project][$task->task_id] = 0;				}				// We add it up				$user_tasks_counted_in[$user_id][$task->task_project][$task->task_id] += $hours_added;			}		}		$actual_date->addSeconds(168*3600);	// + one week	}}function showWeeks(){GLOBAL   $allocated_hours_sum, $end_date, $start_date, $AppUI, $user_list, $user_names, $user_usage, $hideNonWd, $table_header, $table_rows, $df, $working_days_count, $total_hours_capacity, $total_hours_capacity_all;	$working_days_count = 0;	$allocated_hours_sum = 0;	$ed = new CDate(Date_Calc::endOfWeek($end_date->day,$end_date->month,$end_date->year));	$sd = new CDate(Date_Calc::beginOfWeek($start_date->day,$start_date->month,$start_date->year));	$week_difference = ceil($ed->workingDaysInSpan($sd)/count(explode(",",dPgetConfig("cal_working_days"))));	$actual_date = $sd;	$table_header = "<tr><th>".$AppUI->_("User")."</th>";	for($i=0; $i<$week_difference; $i++){		$table_header .= "<th>".Date_Calc::weekOfYear($actual_date->day, $actual_date->month, $actual_date->year)."<br><table><td style='font-weight:normal; font-size:70%'>".$actual_date->format( $df )."</td></table></th>";			$actual_date->addSeconds(168*3600);	// + one week	}	$table_header .= "<th nowrap='nowrap' colspan='2'>".$AppUI->_("Allocated")."</th></tr>";		$table_rows = "";		foreach($user_list as $user_id => $user_data){	    @$user_names[$user_id] = $user_data["user_username"];		if(isset($user_usage[$user_id])) {			$table_rows .= "<tr><td nowrap='nowrap'>(".$user_data["user_username"].") ".$user_data["contact_first_name"]." ".$user_data["contact_last_name"]."</td>";			$actual_date = $sd;			for($i=0; $i<$week_difference; $i++){					$awoy = $actual_date->year.Date_Calc::weekOfYear($actual_date->day,$actual_date->month,$actual_date->year);				$table_rows .= "<td align='right'>";				if(isset($user_usage[$user_id][$awoy])){					$hours = number_format($user_usage[$user_id][$awoy],2);					$table_rows .= $hours;					$percentage_used = round(($hours/(dPgetConfig("daily_working_hours")*count(explode(",",dPgetConfig("cal_working_days")))) )*100);					$bar_color       = "blue";					if($percentage_used > 100){						$bar_color = "red";						$percentage_used = 100;					}					$table_rows .= "<div style='height:2px;width:$percentage_used%; background-color:$bar_color'>&nbsp;</div>";				} else {					$table_rows .= "&nbsp;";				} 				$table_rows .= "</td>";				$actual_date->addSeconds(168*3600);	// + one week			}							$array_sum = array_sum($user_usage[$user_id]);			$average_user_usage = number_format( ($array_sum/( $week_difference * count(explode(",",dPgetConfig("cal_working_days")))*dPgetConfig("daily_working_hours")))*100, 2);			$allocated_hours_sum += $array_sum;			$bar_color = "blue";			if($average_user_usage > 100){				$bar_color = "red";				$average_user_usage = 100;			}			$table_rows .= "<td ><div align='left'>".round($array_sum, 2)." ".$AppUI->_("hours")."</td> <td align='right'> ".$average_user_usage ;			$table_rows .= "%</div>";			$table_rows .= "<div align='left' style='height:2px;width:$average_user_usage%; background-color:$bar_color'>&nbsp;</div></td>";			$table_rows .= "</tr>";		}		}	$total_hours_capacity = $week_difference * count(explode(",",dPgetConfig("cal_working_days"))) * dPgetConfig("daily_working_hours") * count($user_usage);			$total_hours_capacity_all = $week_difference * count(explode(",",dPgetConfig("cal_working_days"))) *dPgetConfig("daily_working_hours") * count($user_list);}function userUsageDays() {GLOBAL $task_start_date, $task_end_date, $day_difference, $hours_added, $actual_date, $users, $user_data, $user_usage,$use_assigned_percentage, $user_tasks_counted_in, $task, $start_date, $end_date;			$task_duration_per_day = $task->getTaskDurationPerDay($use_assigned_percentage);						for($i = 0; $i<=$day_difference; $i++){				if(!$actual_date->before($start_date) && !$actual_date->after($end_date)				   && $actual_date->isWorkingDay()) {						foreach($users as $user_id => $user_data){						if(!isset($user_usage[$user_id][$actual_date->format("%Y%m%d")])){							$user_usage[$user_id][$actual_date->format("%Y%m%d")] = 0;						}						$percentage_assigned = $use_assigned_percentage ? ($user_data["perc_assignment"]/100) : 1;						$hours_added = $task_duration_per_day * $percentage_assigned;						$user_usage[$user_id][$actual_date->format("%Y%m%d")] += $hours_added;						if($user_usage[$user_id][$actual_date->format("%Y%m%d")] < 0.005){							//We want to show at least 0.01 even when the assigned time is very small so we know							//that at that time the user has a running task							$user_usage[$user_id][$actual_date->format("%Y%m%d")] += 0.006;							$hours_added                                          += 0.006;						}												// Let's register the tasks counted in for calculation						if(!array_key_exists($user_id, $user_tasks_counted_in)){						    $user_tasks_counted_in[$user_id] = array();						}												if(!array_key_exists($task->task_project, $user_tasks_counted_in[$user_id])) {						    $user_tasks_counted_in[$user_id][$task->task_project] = array();						}												if(!array_key_exists($task->task_id, $user_tasks_counted_in[$user_id][$task->task_project])){						    $user_tasks_counted_in[$user_id][$task->task_project][$task->task_id] = 0;						}						// We add it up						$user_tasks_counted_in[$user_id][$task->task_project][$task->task_id] += $hours_added;					}				}				$actual_date->addDays(1);			}}function showDays(){GLOBAL  $allocated_hours_sum, $end_date, $start_date, $AppUI, $user_list, $user_names, $user_usage, $hideNonWd, $table_header, $table_rows, $df, $working_days_count, $total_hours_capacity, $total_hours_capacity_all;		$days_difference =  $end_date->dateDiff($start_date);		$actual_date     = $start_date;		$working_days_count = 0;		$allocated_hours_sum = 0;				$table_header = "<tr><th>".$AppUI->_("User")."</th>";		for($i=0; $i<=$days_difference; $i++){			if(($actual_date->isWorkingDay()) || (!$actual_date->isWorkingDay() && !$hideNonWd)) {			$table_header .= "<th>".utf8_encode(Date_Calc::getWeekdayAbbrname($actual_date->day, $actual_date->month, $actual_date->year, 3))."<br><table><td style='font-weight:normal; font-size:70%'>".$actual_date->format( $df )."</td></table></th>";				} 			if($actual_date->isWorkingDay()){				$working_days_count++;			}			$actual_date->addDays(1);		}		$table_header .= "<th nowrap='nowrap' colspan='2'>".$AppUI->_("Allocated")."</th></tr>";				$table_rows = "";				foreach($user_list as $user_id => $user_data){		    @$user_names[$user_id] = $user_data["user_username"];			if(isset($user_usage[$user_id])) {				$table_rows .= "<tr><td nowrap='nowrap'>(".$user_data["user_username"].") ".$user_data["contact_first_name"]." ".$user_data["contact_last_name"]."</td>";				$actual_date = $start_date;				for($i=0; $i<=$days_difference; $i++){			if(($actual_date->isWorkingDay()) || (!$actual_date->isWorkingDay() && !$hideNonWd)) {					$table_rows .= "<td>";					if(isset($user_usage[$user_id][$actual_date->format("%Y%m%d")])){						$hours       = number_format($user_usage[$user_id][$actual_date->format("%Y%m%d")],2);						$table_rows .= $hours;						$percentage_used = round($hours/dPgetConfig("daily_working_hours")*100);						$bar_color       = "blue";						if($percentage_used > 100){							$bar_color = "red";							$percentage_used = 100;						}						$table_rows .= "<div style='height:2px;width:$percentage_used%; background-color:$bar_color'>&nbsp;</div>";					} else {						$table_rows .= "&nbsp;";					} 					$table_rows .= "</td>";}					$actual_date->addDays(1);				}								$array_sum = array_sum($user_usage[$user_id]);				$average_user_usage = number_format( ($array_sum/($working_days_count*dPgetConfig("daily_working_hours")))*100, 2);				$allocated_hours_sum += $array_sum;								$bar_color = "blue";				if($average_user_usage > 100){					$bar_color = "red";					$average_user_usage = 100;				}				$table_rows .= "<td ><div align='left'>".round($array_sum, 2)." ".$AppUI->_("hours")."</td> <td align='right'> ".$average_user_usage ;				$table_rows .= "%</div>";				$table_rows .= "<div align='left' style='height:2px;width:$average_user_usage%; background-color:$bar_color'>&nbsp;</div></td>";				$table_rows .= "</tr>";							}		}		$total_hours_capacity = $working_days_count*dPgetConfig("daily_working_hours")*count($user_usage);		$total_hours_capacity_all = $working_days_count*dPgetConfig("daily_working_hours")*count($user_list);}?>		

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -