include_once "achievotools.inc"; atksession(); atksecure(); global $g_securityManager; if ($g_securityManager->allowed("project.project", "any_project")) { $coordinator = $_REQUEST["coordinator"]; } else { $user = getUser(); $coordinator = $user["id"]; } function dashDate($undasheddate) { return substr($undasheddate, 0, 4) . "-" . substr($undasheddate, 4, 2) . "-" . substr($undasheddate, 6, 2); } $from = dashDate(dateUtil::startOfWeek($_REQUEST["from"])); $to = dashDate(dateUtil::endOfWeek($_REQUEST["to"])); $plannedbooked = $_REQUEST["plannedbooked"]; if ($plannedbooked != "planned" && $plannedbooked != "booked") { $plannedbooked = "planned"; } // safeguard $db =& atkGetDb(); $projects = $db->getrows("SELECT\n project.id,\n project.name,\n MIN(phase.startdate) as startdate,\n MAX(phase.enddate) as enddate,\n SUM(phase.current_planning) as planned\n FROM\n project,\n phase\n WHERE\n phase.status='active'\n AND project.status='active'\n AND phase.projectid = project.id\n AND (phase.enddate IS NULL OR phase.enddate>='{$from}')\n AND (phase.startdate <= '{$to}')\n " . ($coordinator != "" ? "AND project.coordinator={$coordinator}" : "") . "\n GROUP BY\n project.id,\n project.name"); //make an gant array, this array contains important information about the phases $gant = array(); for ($i = 0; $i < count($projects); $i++) { $gant[$projects[$i]['id']] = $projects[$i]; $gant[$projects[$i]['id']]['booked'] = getBooked($projects[$i]['id']); } function getBooked($projectid) {