コード例 #1
0
ファイル: stats.php プロジェクト: cjbayliss/alloc
function show_users_stats($template)
{
    global $TPL;
    global $db;
    $stats = new stats();
    $projects = $stats->project_stats();
    $tasks = $stats->task_stats();
    $comments = $stats->comment_stats();
    $persons = array();
    $query = "SELECT * FROM person ORDER BY username";
    $db->query($query);
    while ($db->next_record()) {
        $person = new person();
        $person->read_db_record($db);
        array_push($persons, $person->get_id());
    }
    usort($persons, "compare");
    for ($i = 0; $i < count($persons); $i++) {
        $person = new person();
        $person->set_id($persons[$i]);
        $person->select();
        $TPL["user_username"] = $person->get_value("username");
        $TPL["user_projects_current"] = $projects["current"][$person->get_id()] + 0;
        $TPL["user_projects_total"] = $projects["current"][$person->get_id()] + $projects["archived"][$person->get_id()];
        $TPL["user_tasks_current"] = $tasks["current"][$person->get_id()] + 0;
        $TPL["user_tasks_total"] = $tasks["current"][$person->get_id()] + $tasks["completed"][$person->get_id()];
        $TPL["user_comments_total"] = $comments["total"][$person->get_id()] + 0;
        $TPL["user_graph"] = "<a href=\"" . $TPL["url_alloc_statsImage"] . "id=" . $person->get_id() . "&width=640&multiplier=8&labels=true\">";
        $TPL["user_graph"] .= "<img alt=\"User graph\" src=\"" . $TPL["url_alloc_statsImage"] . "id=" . $person->get_id() . "&width=400&multiplier=2\"></a>";
        if ($TPL["user_projects_total"] + $TPL["user_tasks_total"] + $TPL["user_comments_total"] > 0) {
            $TPL["odd_even"] = $TPL["odd_even"] == "odd" ? "even" : "odd";
            include_template($template);
        }
    }
}
コード例 #2
0
ファイル: reminder.inc.php プロジェクト: cjbayliss/alloc
 function get_recipients()
 {
     $db = new db_alloc();
     $type = $this->get_value('reminderType');
     if ($type == "project") {
         $query = prepare("SELECT * \n                          FROM projectPerson \n                     LEFT JOIN person ON projectPerson.personID=person.personID \n                         WHERE projectPerson.projectID = %d \n                      ORDER BY person.username", $this->get_value('reminderLinkID'));
     } else {
         if ($type == "task") {
             // Modified query option: to send to all people on the project that this task is from.
             $recipients = array("-3" => "Task Manager", "-2" => "Task Assignee");
             $db->query("SELECT projectID FROM task WHERE taskID = %d", $this->get_value('reminderLinkID'));
             $db->next_record();
             if ($db->f('projectID')) {
                 $query = prepare("SELECT * \n                            FROM projectPerson \n                       LEFT JOIN person ON projectPerson.personID=person.personID \n                           WHERE projectPerson.projectID = %d \n                        ORDER BY person.username", $db->f('projectID'));
             } else {
                 $query = "SELECT * FROM person WHERE personActive = 1 ORDER BY username";
             }
         } else {
             $query = "SELECT * FROM person WHERE personActive = 1 ORDER BY username";
         }
     }
     $db->query($query);
     while ($db->next_record()) {
         $person = new person();
         $person->read_db_record($db);
         $recipients[$person->get_id()] = $person->get_name();
     }
     return $recipients;
 }
コード例 #3
0
ファイル: personGraph.php プロジェクト: cjbayliss/alloc
function show_people($template_name)
{
    global $person_query;
    global $project;
    global $TPL;
    $db = new db_alloc();
    $db->query($person_query);
    while ($db->next_record()) {
        $person = new person();
        $person->read_db_record($db);
        $person->set_values("person_");
        $TPL["graphTitle"] = urlencode($person->get_name());
        include_template($template_name);
    }
}
コード例 #4
0
ファイル: item.php プロジェクト: cjbayliss/alloc
$loanID = $_POST["loanID"] or $loanID = $_GET["loanID"];
$item = new item();
$loan = new loan();
$db = new db_alloc();
$db->query("select * from item where itemID=%d", $itemID);
$db->next_record();
$item->read_db_record($db);
$item->set_values();
// new crap
if ($current_user->have_role("admin") || $current_user->have_role("manage")) {
    $users = array();
    $_db = new db_alloc();
    $_db->query("SELECT * FROM person ORDER BY username");
    while ($_db->next_record()) {
        $person = new person();
        $person->read_db_record($_db);
        $users[$person->get_id()] = $person->get_value('username');
    }
    $TPL["userSelect"] = "<select name=\"userID\">" . page::select_options($users, $current_user->get_id()) . "</select><br>\n";
} else {
    $TPL["userSelect"] = "";
}
$temp = mktime(0, 0, 0, date("m") + $_POST["timePeriod"], date("d"), date("Y"));
$whenToReturn = date("Y", $temp) . "-" . date("m", $temp) . "-" . date("d", $temp);
$today = date("Y") . "-" . date("m") . "-" . date("d");
if ($loanID) {
    $loan->set_id($loanID);
    $loan->select();
}
if ($_POST["borrowItem"]) {
    $db->query("select * from loan where itemID=%d and dateReturned='0000-00-00'", $itemID);
コード例 #5
0
ファイル: import_export.inc.php プロジェクト: cjbayliss/alloc
function import_find_username($candidates)
{
    //Attempts to find a Person record that corresponds to one of the names specified in the $candidates array. Returns false on failure.
    global $db;
    //Our aim is just to find one record that matches the username
    foreach ($candidates as $candidate) {
        $query = prepare("SELECT * FROM person WHERE username = '******'", $candidate);
        $db->query($query);
        if ($db->next_record()) {
            $person = new person();
            $person->read_db_record($db);
            $person->select();
            return $person;
        }
    }
    //No such user
    return false;
}
コード例 #6
0
ファイル: stats.inc.php プロジェクト: cjbayliss/alloc
 function order_by_most_frequent_use()
 {
     $max_search_back = 90;
     // maximum number of days to go back when sorting
     $query = "SELECT * FROM person ORDER BY username";
     $db = new db_alloc();
     $db->query($query);
     while ($db->next_record()) {
         $person = new person();
         $person->read_db_record($db);
         for ($value = 0, $i = 0; $value == 0 && $i < $max_search_back; $i++) {
             $date = date("Y-m-d", mktime(0, 0, 0, date("m"), date("d") - $i, date("Y")));
             $value = $this->tasks["all"][$person->get_id()][$date];
             // + $this->projects["all"][$person->get_id()][$date]
             // + $this->comments["all"][$person->get_id()][$date];
             if ($value > 0) {
                 array_push($this->persons, array("id" => $person->get_id(), "username" => $person->get_value('username'), "count_back" => $i, "value" => $value));
             }
         }
     }
     usort($this->persons, array($this, "compare"));
 }
コード例 #7
0
ファイル: person.inc.php プロジェクト: cjbayliss/alloc
 public static function get_list($_FORM = array())
 {
     global $TPL;
     $current_user =& singleton("current_user");
     list($filter, $filter2) = person::get_list_filter($_FORM);
     $debug = $_FORM["debug"];
     $debug and print "<pre>_FORM: " . print_r($_FORM, 1) . "</pre>";
     $debug and print "<pre>filter: " . print_r($filter, 1) . "</pre>";
     $_FORM["return"] or $_FORM["return"] = "html";
     // Get averages for hours worked over the past fortnight and year
     if ($current_user->have_perm(PERM_PERSON_READ_MANAGEMENT) && $_FORM["showHours"]) {
         $t = new timeSheetItem();
         list($ts_hrs_col_1, $ts_dollars_col_1) = $t->get_averages(date("Y-m-d", mktime(0, 0, 0, date("m"), date("d") - 14, date("Y"))));
         list($ts_hrs_col_2, $ts_dollars_col_2) = $t->get_fortnightly_average();
     } else {
         unset($_FORM["showHours"]);
     }
     // A header row
     $summary .= person::get_list_tr_header($_FORM);
     if (is_array($filter) && count($filter)) {
         $filter = " WHERE " . implode(" AND ", $filter);
     }
     if (is_array($filter2) && count($filter2)) {
         unset($filter["skill"]);
         $filter .= " AND " . implode(" OR ", $filter2);
     }
     $q = "SELECT person.*\n            FROM person\n       LEFT JOIN proficiency ON person.personID = proficiency.personID\n           " . $filter . "\n        GROUP BY username\n        ORDER BY firstName,surname,username";
     $debug and print "Query: " . $q;
     $db = new db_alloc();
     $db->query($q);
     while ($row = $db->next_record()) {
         $p = new person();
         if (!$p->read_db_record($db)) {
             continue;
         }
         $row = $p->perm_cleanup($row);
         // this is not the right way to do this - alla
         $print = true;
         $_FORM["showHours"] and $row["hoursSum"] = $ts_hrs_col_1[$row["personID"]];
         $_FORM["showHours"] and $row["hoursAvg"] = $ts_hrs_col_2[$row["personID"]];
         $row["name"] = $p->get_name();
         $row["name_link"] = $p->get_link($_FORM);
         $row["personActive_label"] = $p->get_value("personActive") == 1 ? "Y" : "";
         if ($_FORM["showSkills"]) {
             $senior_skills = $p->get_skills('Senior');
             $advanced_skills = $p->get_skills('Advanced');
             $intermediate_skills = $p->get_skills('Intermediate');
             $junior_skills = $p->get_skills('Junior');
             $novice_skills = $p->get_skills('Novice');
             $skills = array();
             $senior_skills and $skills[] = "<img src=\"../images/skill_senior.png\" alt=\"Senior=\"> " . page::htmlentities($senior_skills);
             $advanced_skills and $skills[] = "<img src=\"../images/skill_advanced.png\" alt=\"Advanced=\"> " . page::htmlentities($advanced_skills);
             $intermediate_skills and $skills[] = "<img src=\"../images/skill_intermediate.png\" alt=\"Intermediate=\"> " . page::htmlentities($intermediate_skills);
             $junior_skills and $skills[] = "<img src=\"../images/skill_junior.png\" alt=\"Junior=\"> " . page::htmlentities($junior_skills);
             $novice_skills and $skills[] = "<img src=\"../images/skill_novice.png\" alt=\"Novice\"> " . page::htmlentities($novice_skills);
             $row["skills_list"] = implode("<br>", $skills);
         }
         if ($_FORM["showLinks"]) {
             $row["navLinks"] = '<a href="' . $TPL["url_alloc_taskList"] . 'personID=' . $row["personID"] . '&taskView=byProject&applyFilter=1';
             $row["navLinks"] .= '&dontSave=1&taskStatus=open&projectType=Current">Tasks</a>&nbsp;&nbsp;';
             has("project") and $row["navLinks"] .= '<a href="' . $TPL["url_alloc_personGraph"] . 'personID=' . $row["personID"] . '">Graph</a>&nbsp;&nbsp;';
             $row["navLinks"] .= '<a href="' . $TPL["url_alloc_taskCalendar"] . 'personID=' . $row["personID"] . '">Calendar</a>&nbsp;&nbsp;';
             $dateFrom = date("Y-m-d", mktime(0, 0, 0, date("m"), date("d") - 28, date("Y")));
             $dateTo = date("Y-m-d", mktime(0, 0, 0, date("m"), date("d") + 1, date("Y")));
             $row["navLinks"] .= '<a href="' . $TPL["url_alloc_timeSheetGraph"] . 'personID=' . $row["personID"] . '&dateFrom=' . $dateFrom . '&dateTo=' . $dateTo . '&applyFilter=1&dontSave=1">Hours</a>';
         }
         $summary .= person::get_list_tr($row, $_FORM);
         $rows[$row["personID"]] = $row;
     }
     $rows or $rows = array();
     if ($print && $_FORM["return"] == "array") {
         return $rows;
     } else {
         if ($print && $_FORM["return"] == "html") {
             return "<table class=\"list sortable\">" . $summary . "</table>";
         } else {
             if (!$print && $_FORM["return"] == "html") {
                 return "<table style=\"width:100%\"><tr><td colspan=\"10\" style=\"text-align:center\"><b>No People Found</b></td></tr></table>";
             }
         }
     }
 }
コード例 #8
0
ファイル: personSkillMatrix.php プロジェクト: cjbayliss/alloc
function get_people_header()
{
    global $TPL;
    global $people_ids;
    global $people_header;
    global $talent;
    global $skill_class;
    $people_ids = array();
    $where = FALSE;
    $db = new db_alloc();
    $query = "SELECT * FROM person";
    $query .= " LEFT JOIN proficiency ON person.personID=proficiency.personID";
    $query .= " LEFT JOIN skill ON proficiency.skillID=skill.skillID WHERE personActive = 1 ";
    if ($talent) {
        $query .= prepare(" AND skill.skillID=%d", $talent);
    } else {
        if ($skill_class) {
            $query .= prepare(" AND skill.skillClass='%s'", $skill_class);
        }
    }
    $query .= " GROUP BY username ORDER BY username";
    $db->query($query);
    while ($db->next_record()) {
        $person = new person();
        $person->read_db_record($db);
        array_push($people_ids, $person->get_id());
        $people_header .= sprintf("<th style=\"text-align:center\">%s</th>\n", $person->get_value('username'));
    }
}