コード例 #1
0
ファイル: mastergantt.php プロジェクト: pipporazzo/achievo
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)
{