本文整理汇总了PHP中task::get_id方法的典型用法代码示例。如果您正苦于以下问题:PHP task::get_id方法的具体用法?PHP task::get_id怎么用?PHP task::get_id使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类task
的用法示例。
在下文中一共展示了task::get_id方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: array
$TPL["_FORM"] = $_FORM;
// Load filter
$arr = task::load_task_filter($_FORM);
is_array($arr) and $TPL = array_merge($TPL, $arr);
// Check for updates
if ($_POST["mass_update"]) {
if ($_POST["select"]) {
$allowed_auto_fields = array("dateTargetStart", "dateTargetCompletion", "dateActualStart", "dateActualCompletion", "managerID", "timeLimit", "timeBest", "timeWorst", "timeExpected", "priority", "taskTypeID", "taskStatus", "personID");
foreach ($_POST["select"] as $taskID => $selected) {
$task = new task();
$task->set_id($taskID);
$task->select();
// Special case: projectID and parentTaskID have to be done together
if ($_POST["update_action"] == "projectIDAndParentTaskID") {
// Can't set self to be parent
if ($_POST["parentTaskID"] != $task->get_id()) {
$task->set_value("parentTaskID", $_POST["parentTaskID"]);
}
// If task is a parent, change the project of that tasks children
if ($_POST["projectID"] != $task->get_value("projectID") && $task->get_value("taskTypeID") == "Parent") {
$task->update_children("projectID", $_POST["projectID"]);
}
$task->set_value("projectID", $_POST["projectID"]);
$task->updateSearchIndexLater = true;
$task->save();
// All other cases are generic and can be handled by a single clause
} else {
if ($_POST["update_action"] && in_array($_POST["update_action"], $allowed_auto_fields)) {
$task->set_value($_POST["update_action"], $_POST[$_POST["update_action"]]);
$task->updateSearchIndexLater = true;
$task->save();
示例2: timeUnit
*/
define("NO_REDIRECT", 1);
require_once "../alloc.php";
//usleep(1000);
$t = timeSheetItem::parse_time_string($_REQUEST["time_item"]);
$timeUnit = new timeUnit();
$units = $timeUnit->get_assoc_array("timeUnitID", "timeUnitLabelA");
$timeSheetItemMultiplier = new meta("timeSheetItemMultiplier");
$tsims = $timeSheetItemMultiplier->get_list();
foreach ($t as $k => $v) {
if ($v) {
if ($k == "taskID") {
$task = new task();
$task->set_id($v);
if ($task->select()) {
$v = $task->get_id() . " " . $task->get_link();
} else {
$v = "Task " . $v . " not found.";
}
} else {
if ($k == "unit") {
$v = $units[$v];
} else {
if ($k == "multiplier") {
$v = $tsims[sprintf("%0.2f", $v)]["timeSheetItemMultiplierName"];
}
}
}
$rtn[$k] = $v;
}
}
示例3: prepare
$project->read_db_record($db);
$parent_names[$project->get_id()] = $project->get_value('projectName');
}
} else {
if ($parentType == "task") {
if ($current_user->have_role("admin")) {
$query = "SELECT * FROM task";
} else {
$query = prepare("SELECT * FROM task WHERE personID=%d ORDER BY taskName", $personID);
}
$db->query($query);
while ($db->next_record()) {
$task = new task();
$task->read_db_record($db);
if (substr($task->get_value("taskStatus"), 0, 6) != "closed") {
$parent_names[$task->get_id()] = $task->get_value('taskName');
}
}
}
}
}
$TPL["parentType"] = $parentType;
$TPL["parentNameOptions"] = page::select_options($parent_names);
include_template("templates/reminderSelectParentM.tpl");
break;
case 3:
// reminder entry form
$reminder = new reminder();
if (isset($reminderID)) {
$reminder->set_id($reminderID);
$reminder->select();
示例4: task
include_template("templates/taskHistoryM.tpl");
}
global $timeSheetID;
$db = new db_alloc();
$task = new task();
// If taskID
$taskID = $_POST["taskID"] or $taskID = $_GET["taskID"];
if (isset($taskID)) {
// Displaying a record
$task->set_id($taskID);
$task->select();
// Creating a new record
} else {
$_POST["dateCreated"] = date("Y-m-d H:i:s");
$task->read_globals();
$taskID = $task->get_id();
if (has("project") && $task->get_value("projectID")) {
$project = $task->get_foreign_object("project");
}
}
// if someone uploads an attachment
if ($_POST["save_attachment"]) {
move_attachment("task", $taskID);
alloc_redirect($TPL["url_alloc_task"] . "taskID=" . $taskID . "&sbs_link=attachments");
}
// If saving a record
if ($_POST["save"] || $_POST["save_and_back"] || $_POST["save_and_new"] || $_POST["save_and_summary"] || $_POST["timeSheet_save"] || $_POST["close_task"]) {
$task->read_globals();
if ($_POST["close_task"]) {
$task->set_value("taskStatus", "closed_complete");
}
示例5: singleton
function move_forwards()
{
$current_user =& singleton("current_user");
global $TPL;
$status = $this->get_value("status");
$db = new db_alloc();
if ($this->get_value("clientID")) {
$c = $this->get_foreign_object("client");
$extra = " for " . $c->get_value("clientName");
$taskDesc[] = "";
}
$taskname1 = "Sale " . $this->get_id() . ": raise an invoice" . $extra;
$taskname2 = "Sale " . $this->get_id() . ": place an order to the supplier";
$taskname3 = "Sale " . $this->get_id() . ": pay the supplier";
$taskname4 = "Sale " . $this->get_id() . ": deliver the goods / action the work";
$cyberadmin = 59;
$taskDesc[] = "Sale items:";
$taskDesc[] = "";
foreach ((array) $this->get_productSaleItems() as $psiID => $psi_row) {
$p = new product();
$p->set_id($psi_row["productID"]);
$taskDesc[] = " " . page::money($psi_row["sellPriceCurrencyTypeID"], $psi_row["sellPrice"], "%S%mo") . " for " . $psi_row["quantity"] . " x " . $p->get_name();
$hasItems = true;
}
if (!$hasItems) {
return alloc_error("No sale items have been added.");
}
$amounts = $this->get_amounts();
$taskDesc[] = "";
$taskDesc[] = "Total: " . $amounts["total_sellPrice"];
$taskDesc[] = "Total inc " . config::get_config_item("taxName") . ": " . $amounts["total_sellPrice_plus_gst"];
$taskDesc[] = "";
$taskDesc[] = "Refer to the sale in alloc for up-to-date information:";
$taskDesc[] = config::get_config_item("allocURL") . "sale/productSale.php?productSaleID=" . $this->get_id();
$taskDesc = implode("\n", $taskDesc);
if ($status == "edit") {
$this->set_value("status", "allocate");
$items = $this->get_productSaleItems();
foreach ($items as $r) {
$psi = new productSaleItem();
$psi->set_id($r["productSaleItemID"]);
$psi->select();
if (!$db->qr("SELECT transactionID FROM transaction WHERE productSaleItemID = %d", $psi->get_id())) {
$psi->create_transactions();
}
}
} else {
if ($status == "allocate") {
$this->set_value("status", "admin");
// 1. from salesperson to admin
$q = prepare("SELECT * FROM task WHERE projectID = %d AND taskName = '%s'", $cyberadmin, $taskname1);
if (config::for_cyber() && !$db->qr($q)) {
$task = new task();
$task->set_value("projectID", $cyberadmin);
// Cyber Admin Project
$task->set_value("taskName", $taskname1);
$task->set_value("managerID", $this->get_value("personID"));
// salesperson
$task->set_value("personID", 67);
// Cyber Support people (jane)
$task->set_value("priority", 3);
$task->set_value("taskTypeID", "Task");
$task->set_value("taskDescription", $taskDesc);
$task->set_value("dateTargetStart", date("Y-m-d"));
$task->set_value("dateTargetCompletion", date("Y-m-d", date("U") + 60 * 60 * 24 * 7));
$task->save();
$TPL["message_good"][] = "Task created: " . $task->get_id() . " " . $task->get_value("taskName");
$p1 = new person();
$p1->set_id($this->get_value("personID"));
$p1->select();
$p2 = new person();
$p2->set_id(67);
$p2->select();
$recipients[$p1->get_value("emailAddress")] = array("name" => $p1->get_name(), "addIP" => true, "internal" => true);
$recipients[$p2->get_value("emailAddress")] = array("name" => $p2->get_name(), "addIP" => true, "internal" => true);
$comment = $p2->get_name() . ",\n\n" . $taskname1 . "\n\n" . $taskDesc;
$commentID = comment::add_comment("task", $task->get_id(), $comment, "task", $task->get_id());
$emailRecipients = comment::add_interested_parties($commentID, null, $recipients);
// Re-email the comment out, including any attachments
if (!comment::send_comment($commentID, $emailRecipients)) {
alloc_error("Email failed to send.");
} else {
$TPL["message_good"][] = "Emailed task comment to " . $p1->get_value("emailAddress") . ", " . $p2->get_value("emailAddress") . ".";
}
}
} else {
if ($status == "admin" && $this->have_perm(PERM_APPROVE_PRODUCT_TRANSACTIONS)) {
$this->set_value("status", "finished");
if ($_REQUEST["changeTransactionStatus"]) {
$rows = $this->get_productSaleItems();
foreach ($rows as $row) {
$ids[] = $row["productSaleItemID"];
}
if ($ids) {
$q = prepare("UPDATE transaction SET status = '%s' WHERE productSaleItemID in (%s)", $_REQUEST["changeTransactionStatus"], $ids);
$db = new db_alloc();
$db->query($q);
}
}
// 2. from admin to salesperson
//.........这里部分代码省略.........
示例6: get_list
public static function get_list($_FORM)
{
$current_user =& singleton("current_user");
/*
* This is the definitive method of getting a list of tasks that need a sophisticated level of filtering
*
*/
list($filter, $having) = task::get_list_filter($_FORM);
$debug = $_FORM["debug"];
$debug and print "\n<pre>_FORM: " . print_r($_FORM, 1) . "</pre>";
$debug and print "\n<pre>filter: " . print_r($filter, 1) . "</pre>";
$_FORM["taskView"] or $_FORM["taskView"] = 'prioritised';
// Zero is a valid limit
if ($_FORM["limit"] || $_FORM["limit"] === 0 || $_FORM["limit"] === "0") {
$limit = prepare("limit %d", $_FORM["limit"]);
}
$_FORM["return"] or $_FORM["return"] = "html";
$_FORM["people_cache"] =& get_cached_table("person");
$_FORM["timeUnit_cache"] =& get_cached_table("timeUnit");
$_FORM["taskType_cache"] =& get_cached_table("taskType");
if ($_FORM["taskView"] == "prioritised") {
unset($filter["parentTaskID"]);
$order_limit = " " . $limit;
} else {
$order_limit = " ORDER BY projectName,taskName " . $limit;
}
// Get a hierarchical list of tasks
if (is_array($filter) && count($filter)) {
$f = " WHERE " . implode(" AND ", $filter);
}
$uid = sprintf("%d", $current_user->get_id());
$spread = sprintf("%d", config::get_config_item("taskPrioritySpread"));
$scale = sprintf("%d", config::get_config_item("taskPriorityScale"));
$scale_halved = sprintf("%d", config::get_config_item("taskPriorityScale") / 2);
$q = "SELECT task.*\n ,projectName\n ,projectShortName\n ,clientID\n ,projectPriority\n ,project.currencyTypeID as currency\n ,rate\n ,rateUnitID\n ,GROUP_CONCAT(pendingTask.pendingTaskID) as pendingTaskIDs\n ,GROUP_CONCAT(DISTINCT alltag.name SEPARATOR ', ') as tags\n FROM task\n LEFT JOIN project ON project.projectID = task.projectID\n LEFT JOIN projectPerson ON project.projectID = projectPerson.projectID AND projectPerson.personID = '" . $uid . "'\n LEFT JOIN pendingTask ON pendingTask.taskID = task.taskID\n LEFT JOIN tag alltag ON alltag.taskID = task.taskID\n LEFT JOIN tag seltag ON seltag.taskID = task.taskID\n " . $f . "\n GROUP BY task.taskID\n " . $having . "\n " . $order_limit;
$debug and print "\n<br>QUERY: " . $q;
$_FORM["debug"] and print "\n<br>QUERY: " . $q;
$db = new db_alloc();
$db->query($q);
while ($row = $db->next_record()) {
$task = new task();
$task->read_db_record($db);
$row["taskURL"] = $task->get_url();
$row["taskName"] = $task->get_name($_FORM);
$row["taskLink"] = $task->get_task_link($_FORM);
$row["project_name"] = $row["projectShortName"] or $row["project_name"] = $row["projectName"];
$row["projectPriority"] = $db->f("projectPriority");
has("project") and $row["projectPriorityLabel"] = project::get_priority_label($db->f("projectPriority"));
has("project") and list($row["priorityFactor"], $row["daysUntilDue"]) = $task->get_overall_priority($row["projectPriority"], $row["priority"], $row["dateTargetCompletion"]);
$row["taskTypeImage"] = $task->get_task_image();
$row["taskTypeSeq"] = $_FORM["taskType_cache"][$row["taskTypeID"]]["taskTypeSeq"];
$row["taskStatusLabel"] = $task->get_task_status("label");
$row["taskStatusColour"] = $task->get_task_status("colour");
$row["creator_name"] = $_FORM["people_cache"][$row["creatorID"]]["name"];
$row["manager_name"] = $_FORM["people_cache"][$row["managerID"]]["name"];
$row["assignee_name"] = $_FORM["people_cache"][$row["personID"]]["name"];
$row["closer_name"] = $_FORM["people_cache"][$row["closerID"]]["name"];
$row["estimator_name"] = $_FORM["people_cache"][$row["estimatorID"]]["name"];
$row["creator_username"] = $_FORM["people_cache"][$row["creatorID"]]["username"];
$row["manager_username"] = $_FORM["people_cache"][$row["managerID"]]["username"];
$row["assignee_username"] = $_FORM["people_cache"][$row["personID"]]["username"];
$row["closer_username"] = $_FORM["people_cache"][$row["closerID"]]["username"];
$row["estimator_username"] = $_FORM["people_cache"][$row["estimatorID"]]["username"];
$row["newSubTask"] = $task->get_new_subtask_link();
$_FORM["showPercent"] and $row["percentComplete"] = $task->get_percentComplete();
$_FORM["showTimes"] and $row["timeActual"] = $task->get_time_billed() / 60 / 60;
$row["rate"] = page::money($row["currency"], $row["rate"], "%mo");
$row["rateUnit"] = $_FORM["timeUnit_cache"][$row["rateUnitID"]]["timeUnitName"];
$row["priorityLabel"] = $task->get_priority_label();
if (!$_FORM["skipObject"]) {
$_FORM["return"] == "array" and $row["object"] = $task;
}
$row["padding"] = $_FORM["padding"];
$row["taskID"] = $task->get_id();
$row["parentTaskID"] = $task->get_value("parentTaskID");
$row["parentTaskID_link"] = "<a href='" . $task->get_url(false, $task->get_value("parentTaskID")) . "'>" . $task->get_value("parentTaskID") . "</a>";
$row["timeLimitLabel"] = $row["timeBestLabel"] = $row["timeWorstLabel"] = $row["timeExpectedLabel"] = $row["timeActualLabel"] = "";
$row["timeLimit"] !== NULL and $row["timeLimitLabel"] = seconds_to_display_format($row["timeLimit"] * 60 * 60);
$row["timeBest"] !== NULL and $row["timeBestLabel"] = seconds_to_display_format($row["timeBest"] * 60 * 60);
$row["timeWorst"] !== NULL and $row["timeWorstLabel"] = seconds_to_display_format($row["timeWorst"] * 60 * 60);
$row["timeExpected"] !== NULL and $row["timeExpectedLabel"] = seconds_to_display_format($row["timeExpected"] * 60 * 60);
$row["timeActual"] !== NULL and $row["timeActualLabel"] = seconds_to_display_format($row["timeActual"] * 60 * 60);
if ($_FORM["showComments"] && ($comments = comment::util_get_comments("task", $row["taskID"]))) {
$row["comments"] = $comments;
}
if ($_FORM["taskView"] == "byProject") {
$rows[$task->get_id()] = array("parentTaskID" => $row["parentTaskID"], "row" => $row);
} else {
if ($_FORM["taskView"] == "prioritised") {
$rows[$row["taskID"]] = $row;
if (is_array($rows) && count($rows)) {
uasort($rows, array("task", "priority_compare"));
}
}
}
}
if ($_FORM["taskView"] == "byProject") {
$parentTaskID = $_FORM["parentTaskID"] or $parentTaskID = 0;
$t = task::get_recursive_child_tasks($parentTaskID, (array) $rows);
list($tasks, $done) = task::build_recursive_task_list($t, $_FORM);
//.........这里部分代码省略.........
示例7: singleton
function email_move_status_to_manager($direction, $info)
{
$current_user =& singleton("current_user");
$project = $this->get_foreign_object("project");
$projectManagers = $project->get_timeSheetRecipients();
// Can get forwards to "manager" only from "edit" or "rejected"
if ($direction == "forwards") {
//forward to manager requires the timesheet to be owned by the current
//user or TIME_INVOICE_TIMESHEETS
//project managers may not do this
if (!($this->get_value("personID") == $current_user->get_id() || $this->have_perm(PERM_TIME_INVOICE_TIMESHEETS))) {
alloc_error("You do not have permission to change this timesheet.");
}
$this->set_value("dateSubmittedToManager", date("Y-m-d"));
$this->set_value("dateRejected", "");
// Check for time overrun
$overrun_tasks = array();
$db = new db_alloc();
$task_id_query = prepare("SELECT DISTINCT taskID FROM timeSheetItem WHERE timeSheetID=%d ORDER BY dateTimeSheetItem, timeSheetItemID", $this->get_id());
$db->query($task_id_query);
while ($db->next_record()) {
$task = new task();
$task->read_db_record($db);
$task->select();
if ($task->get_value('timeLimit') > 0) {
$total_billed_time = $task->get_time_billed(false) / 3600;
if ($total_billed_time > $task->get_value('timeLimit')) {
$overrun_tasks[] = sprintf(" * %d %s (limit: %.02f hours, billed so far: %.02f hours)", $task->get_id(), $task->get_value('taskName'), $task->get_value('timeLimit'), $total_billed_time);
}
}
$hasItems = true;
}
if (!$hasItems) {
return alloc_error('Unable to submit time sheet, no items have been added.');
}
if (count($overrun_tasks)) {
$overrun_notice = "\n\nThe following tasks billed on this timesheet have exceeded their time estimates:\n";
$overrun_notice .= implode("\n", $overrun_tasks);
}
foreach ($info["projectManagers"] as $pm) {
$email = array();
$email["type"] = "timesheet_submit";
$email["to"] = $info["people_cache"][$pm]["emailAddress"];
$email["subject"] = commentTemplate::populate_string(config::get_config_item("emailSubject_timeSheetToManager"), "timeSheet", $this->get_id());
$email["body"] = <<<EOD
To Manager: {$info["people_cache"][$pm]["name"]}
Time Sheet: {$info["url"]}
Submitted By: {$info["timeSheet_personID_name"]}
For Project: {$info["projectName"]}
A timesheet has been submitted for your approval. If it is satisfactory,
submit the timesheet to the Administrator. If not, make it editable again for
re-submission.{$overrun_notice}
EOD;
$this->get_value("billingNote") and $email["body"] .= "\n\nBilling Note: " . $this->get_value("billingNote");
$msg[] = $this->shootEmail($email);
}
// Can get backwards to "manager" only from "admin"
} else {
if ($direction == "backwards") {
//admin->manager requires APPROVE_TIMESHEETS
if (!$this->have_perm(PERM_TIME_INVOICE_TIMESHEETS)) {
//no permission, go away
alloc_error("You do not have permission to change this timesheet.");
}
$email = array();
$email["type"] = "timesheet_reject";
$email["to"] = $info["approvedByManagerPersonID_email"];
$email["subject"] = commentTemplate::populate_string(config::get_config_item("emailSubject_timeSheetFromAdministrator"), "timeSheet", $this->get_id());
$email["body"] = <<<EOD
To Manager: {$info["approvedByManagerPersonID_name"]}
Time Sheet: {$info["url"]}
Submitted By: {$info["timeSheet_personID_name"]}
For Project: {$info["projectName"]}
Rejected By: {$info["people_cache"][$current_user->get_id()]["name"]}
EOD;
$this->get_value("billingNote") and $email["body"] .= "Billing Note: " . $this->get_value("billingNote");
$msg[] = $this->shootEmail($email);
$this->set_value("dateRejected", date("Y-m-d"));
}
}
$this->set_value("status", "manager");
$this->set_value("dateSubmittedToAdmin", "");
$this->set_value("approvedByAdminPersonID", "");
return $msg;
}
示例8: singleton
function populate_string($str, $entity, $entityID = false)
{
// Actually do the text substitution
$current_user =& singleton("current_user");
is_object($current_user) and $swap["cu"] = person::get_fullname($current_user->get_id());
if ($entity == "timeSheet" && $entityID) {
$timeSheet = new timeSheet();
$timeSheet->set_id($entityID);
$timeSheet->select();
$timeSheet->load_pay_info();
foreach ($timeSheet->pay_info as $k => $v) {
$swap[$k] = $v;
}
if ($timeSheet->get_value("approvedByManagerPersonID")) {
$swap["tm"] = person::get_fullname($timeSheet->get_value("approvedByManagerPersonID"));
} else {
$project = $timeSheet->get_foreign_object("project");
$projectManagers = $project->get_timeSheetRecipients();
if (is_array($projectManagers) && count($projectManagers)) {
$people =& get_cached_table("person");
foreach ($projectManagers as $pID) {
$swap["tm"] .= $commar . $people[$pID]["name"];
$commar = ", ";
}
}
}
if ($timeSheet->get_value("approvedByAdminPersonID")) {
$swap["tc"] = person::get_fullname($timeSheet->get_value("approvedByAdminPersonID"));
} else {
$people =& get_cached_table("person");
$timeSheetAdministrators = config::get_config_item('defaultTimeSheetAdminList');
if (count($timeSheetAdministrators)) {
$swap["tc"] = "";
$comma = "";
foreach ($timeSheetAdministrators as $adminID) {
$swap["tc"] .= $comma . $people[$adminID]["name"];
$comma = ", ";
}
} else {
$swap["tc"] = 'no-one';
}
}
$swap["ti"] = $timeSheet->get_id();
$swap["to"] = person::get_fullname($timeSheet->get_value("personID"));
$swap["ta"] = person::get_fullname($timeSheet->get_value("personID"));
$swap["tf"] = $timeSheet->get_value("dateFrom");
$swap["tt"] = $timeSheet->get_value("dateTo");
$swap["ts"] = $timeSheet->get_timeSheet_status();
$swap["tu"] = config::get_config_item("allocURL") . "time/timeSheet.php?timeSheetID=" . $timeSheet->get_id();
$projectID = $timeSheet->get_value("projectID");
}
if ($entity == "task" && $entityID) {
$task = new task();
$task->set_id($entityID);
$task->select();
$swap["ti"] = $task->get_id();
$swap["to"] = person::get_fullname($task->get_value("creatorID"));
$swap["ta"] = person::get_fullname($task->get_value("personID"));
$swap["tm"] = person::get_fullname($task->get_value("managerID"));
$swap["tc"] = person::get_fullname($task->get_value("closerID"));
$swap["tn"] = $task->get_value("taskName");
$swap["td"] = $task->get_value("taskDescription");
$swap["tu"] = config::get_config_item("allocURL") . "task/task.php?taskID=" . $task->get_id();
$swap["tp"] = $task->get_priority_label();
$swap["ts"] = $task->get_task_status("label");
$swap["teb"] = $task->get_value("timeBest");
$swap["tem"] = $task->get_value("timeExpected");
$swap["tew"] = $task->get_value("timeWorst");
$swap["tep"] = person::get_fullname($task->get_value("estimatorID"));
//time estimate person, when it's implemented
$projectID = $task->get_value("projectID");
}
if ($entity == "project" && $entityID || $projectID) {
$project = new project();
if ($projectID) {
$project->set_id($projectID);
} else {
$project->set_id($entityID);
}
$project->select();
$swap["pn"] = $project->get_value("projectName");
$swap["pi"] = $project->get_id();
$clientID = $project->get_value("clientID");
}
if ($entity == "client" && $entityID || $clientID) {
$client = new client();
if ($clientID) {
$client->set_id($clientID);
} else {
$client->set_id($entityID);
}
$client->select();
$swap["li"] = $client->get_id();
$swap["cc"] = $client->get_value("clientName");
}
$swap["cd"] = config::get_config_item("companyContactAddress");
$swap["cd"] .= " " . config::get_config_item("companyContactAddress2");
$swap["cd"] .= " " . config::get_config_item("companyContactAddress3");
$swap["cd"] .= "\nP: " . config::get_config_item("companyContactPhone");
$swap["cd"] .= "\nF: " . config::get_config_item("companyContactFax");
//.........这里部分代码省略.........
示例9: import_planner_tasks
function import_planner_tasks($parentNode, $parentTaskId, $depth, $task_allocation, $resource_people, $project_manager_ID)
{
//Recursively imports tasks from GNOME Planner, given the parentNode.
global $projectID;
$current_user =& singleton("current_user");
$result = array();
// our dodgy DOM_NodeList doesn't support foreach....
for ($i = 0; $i < $parentNode->childNodes->length; $i++) {
$taskXML = $parentNode->childNodes->item($i);
if ($taskXML->nodeType == XML_ELEMENT_NODE && $taskXML->tagName == "task") {
$task = new task();
$task->set_value('taskName', trim($taskXML->getAttribute("name")));
$task->set_value('projectID', $projectID);
// We can find the task assignee's id in the $task_allocation array, and that person's Person record in the $resource_people array
$planner_taskid = $taskXML->getAttribute("id");
// Dates we guess at (i.e., set to now)
$task->set_value('dateCreated', date("Y-m-d H:i:s"));
$task->set_value('dateAssigned', date("Y-m-d H:i:s"));
if ($taskXML->hasAttribute("work-start")) {
$task->set_value('dateTargetStart', import_planner_date($taskXML->getAttribute("work-start")));
} else {
$task->set_value('dateTargetStart', import_planner_date($taskXML->getAttribute("start")));
$result[] = "Resorting to work value for " . $task->get_value('taskName');
}
$task->set_value('dateTargetCompletion', import_planner_date($taskXML->getAttribute("end")));
if ($taskXML->hasAttribute("note")) {
$task->set_value('taskDescription', $taskXML->getAttribute("note"));
}
$task->set_value('creatorID', $current_user->get_id());
$task->set_value('managerID', $project_manager_ID);
if ($taskXML->hasAttribute("type") and $taskXML->getAttribute("type") == "milestone") {
$task->set_value('taskTypeID', 'Milestone');
} else {
$task->set_value('taskTypeID', 'Task');
}
$task->set_value('taskStatus', 'open_notstarted');
$task->set_value('priority', '3');
$task->set_value('parentTaskID', $parentTaskId == 0 ? "" : $parentTaskId);
// The following fields we leave at their default values: duplicateTaskID, dateActualCompletion, dateActualStart, closerID, timeExpected, dateClosed, parentTaskID, taskModifiedUser
// Handle task assignment
if (isset($task_allocation[$planner_taskid])) {
if (is_array($task_allocation[$planner_taskid])) {
// This task was assigned to more than one person. Assign it to the project manager and make a comment about it.
$task->set_value('personID', $project_manager_ID);
// Save the task so we have a task ID
$task->save();
// Make a comment about this task
$comment = new comment();
$comment->set_value("commentType", "task");
$comment->set_value("commentLinkID", $task->get_id());
$comment->set_value("commentCreatedTime", date("Y-m-d H:i:s"));
// The user doing the import is (implicitly) the user creating the comment
$comment->set_value("commentCreatedUser", $current_user->get_id());
// Get the relevant usernames
$names = array();
foreach ($task_allocation[$planner_taskid] as $assignee) {
$names[] = person::get_fullname($assignee);
}
$comment->set_value("comment", "Import notice: This task was originally assigned to " . implode($names, ', ') . ".");
$comment->save();
$result[] = sprintf("<li>Note: multiple people were assigned to the task %d %s</li>", $task->get_id(), $task->get_value("taskName"));
} else {
$task->set_value('personID', $resource_people[$task_allocation[$taskXML->getAttribute("id")]]->get_id());
}
} else {
// Task not assigned to anyone, assign the task to the nominated manager
$task->set_value('personID', $project_manager_ID);
}
$task->save();
$result[] = sprintf('<li>%sCreated task <a href="%s">%d %s</a>.</li>', str_repeat(">", $depth), $task->get_url(), $task->get_id(), $task->get_value('taskName'));
// Do child nodes
if ($taskXML->hasChildNodes()) {
$result = array_merge($result, import_planner_tasks($taskXML, $task->get_id(), $depth + 1, $task_allocation, $resource_people, $project_manager_ID));
}
}
}
return $result;
}
示例10: unset
//.........这里部分代码省略.........
foreach ($commands as $k => $v) {
// transform from username to personID
if ($k == "assign") {
$changes[$k] = "personID";
$v = $people_by_username[$v]["personID"];
$v or alloc_error("Unrecognized username.");
}
if ($k == "manage") {
$changes[$k] = "managerID";
$v = $people_by_username[$v]["personID"];
$v or alloc_error("Unrecognized username.");
}
if ($k == "estimator") {
$changes[$k] = "estimatorID";
$v = $people_by_username[$v]["personID"];
$v or alloc_error("Unrecognized username.");
}
// transform from priority label to priority ID
if ($k == "priority" && !in_array($v, array(1, 2, 3, 4, 5))) {
$v = $priorities[strtolower($v)];
}
// so that --type parent becomes --type Parent
// mysql's referential integrity is case-insensitive :(
if ($k == "type") {
$v = ucwords($v);
}
// Plug the value in
if ($task_fields[$k][0]) {
$changes[$k] = $task_fields[$k][0];
$task->set_value($task_fields[$k][0], sprintf("%s", $v));
}
}
if (isset($commands["pend"])) {
$changes["pend"] = implode(",", (array) $task->get_pending_tasks());
}
if (isset($commands["reopen"])) {
$reopen_rows = $task->get_reopen_reminders();
unset($rr_bits);
foreach ($reopen_rows as $rr) {
$rr_bits[] = $rr["reminderTime"];
}
$changes["reopen"] = implode(",", (array) $rr_bits);
}
if (isset($commands["tags"])) {
$changes["tags"] = implode(",", $task->get_tags());
}
if (strtolower($commands["task"]) == "new") {
if (!$commands["desc"] && is_object($email_receive)) {
$task->set_value("taskDescription", $email_receive->get_converted_encoding());
}
}
$after_label = "After: ";
if (strtolower($commands["task"]) != "new") {
$str = $this->condense_changes($changes, $task->row());
$str and $status[] = "msg";
$str and $message[] = "Before: " . $str;
} else {
$after_label = "Fields: ";
}
// Save task
$err = $task->validate();
if (!$err && $task->save()) {
$task->select();
if (isset($commands["pend"])) {
$task->add_pending_tasks($commands["pend"]);
$changes["pend"] = implode(",", (array) $task->get_pending_tasks());
}
if (isset($commands["reopen"])) {
$task->add_reopen_reminder($commands["reopen"]);
$reopen_rows = $task->get_reopen_reminders();
unset($rr_bits);
foreach ($reopen_rows as $rr) {
$rr_bits[] = $rr["reminderTime"];
}
$changes["reopen"] = implode(",", (array) $rr_bits);
}
if (isset($commands["tags"])) {
$task->add_tags(array($commands["tags"]));
$changes["tags"] = implode(",", $task->get_tags());
}
$str = $this->condense_changes($changes, $task->row());
$str and $status[] = "msg";
$str and $message[] = $after_label . $str;
if ($commands["dip"]) {
interestedParty::add_remove_ips($commands["dip"], "task", $task->get_id(), $task->get_value("projectID"));
}
if (strtolower($commands["task"]) == "new") {
$status[] = "yay";
$message[] = "Task " . $task->get_id() . " created.";
} else {
$status[] = "yay";
$message[] = "Task " . $task->get_id() . " updated.";
}
// Problems
} else {
alloc_error("Problem updating task: " . implode("\n", (array) $err));
}
}
return array($status, $message);
}
示例11: singleton
function convert_email_to_new_task($email_receive, $change_user = false)
{
global $TPL;
$current_user =& singleton("current_user");
$orig_current_user =& $current_user;
if ($change_user) {
inbox::change_current_user($email_receive->mail_headers["from"]);
$current_user =& singleton("current_user");
if (is_object($current_user) && method_exists($current_user, "get_id") && $current_user->get_id()) {
$personID = $current_user->get_id();
}
}
$email_receive->save_email();
// Subject line is name, email body is body
$task = new task();
$task->set_value("taskName", $email_receive->mail_headers["subject"]);
$task->set_value("taskDescription", $email_receive->mail_text);
$task->set_value("priority", "3");
$task->set_value("taskTypeID", "Task");
$task->save();
if (!$TPL["message"] && $task->get_id()) {
$dir = ATTACHMENTS_DIR . DIRECTORY_SEPARATOR . "task" . DIRECTORY_SEPARATOR . $task->get_id();
if (!is_dir($dir)) {
mkdir($dir);
foreach ((array) $email_receive->mimebits as $file) {
$fh = fopen($dir . DIRECTORY_SEPARATOR . $file["name"], "wb");
fputs($fh, $file["blob"]);
fclose($fh);
}
}
rmdir_if_empty(ATTACHMENTS_DIR . DIRECTORY_SEPARATOR . "task" . DIRECTORY_SEPARATOR . $task->get_id());
$msg = "Created task " . $task->get_task_link(array("prefixTaskID" => true)) . " and moved the email to the task's mail folder.";
$mailbox = "INBOX/task" . $task->get_id();
$email_receive->create_mailbox($mailbox) and $msg .= "\nCreated mailbox: " . $mailbox;
$email_receive->archive($mailbox) and $msg .= "\nMoved email to " . $mailbox;
$msg and $TPL["message_good_no_esc"][] = $msg;
list($from_address, $from_name) = parse_email_address($email_receive->mail_headers["from"]);
$ip["emailAddress"] = $from_address;
$ip["name"] = $from_name;
$ip["personID"] = $personID;
$ip["entity"] = "task";
$ip["entityID"] = $task->get_id();
interestedParty::add_interested_party($ip);
}
// Put current_user back to normal
$current_user =& $orig_current_user;
singleton("current_user", $current_user);
}