本文整理汇总了PHP中Ticket::add方法的典型用法代码示例。如果您正苦于以下问题:PHP Ticket::add方法的具体用法?PHP Ticket::add怎么用?PHP Ticket::add使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Ticket
的用法示例。
在下文中一共展示了Ticket::add方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testCreateTicketWithActors
/**
* @dataProvider ticketProvider
*/
public function testCreateTicketWithActors($ticketActors)
{
$ticket = new Ticket();
$ticket->add(array('name' => 'ticket title', 'description' => 'a description') + $ticketActors);
$this->assertFalse($ticket->isNewItem());
$ticketId = $ticket->getID();
foreach ($ticketActors as $actorType => $actorsList) {
// Convert single actor (scalar value) to array
if (!is_array($actorsList)) {
$actorsList = array($actorsList);
}
// Check all actors are assigned to the ticket
foreach ($actorsList as $index => $actor) {
$notify = isset($actorList['_users_id_requester_notif']['use_notification'][$index]) ? $actorList['_users_id_requester_notif']['use_notification'][$index] : 1;
$alternateEmail = isset($actorList['_users_id_requester_notif']['use_notification'][$index]) ? $actorList['_users_id_requester_notif']['alternative_email'][$index] : '';
switch ($actorType) {
case '_users_id_assign':
$this->_testTicketUser($ticket, $actor, CommonITILActor::REQUESTER, $notify, $alternateEmail);
break;
case '_users_id_observer':
$this->_testTicketUser($ticket, $actor, CommonITILActor::OBSERVER, $notify, $alternateEmail);
break;
case '_users_id_assign':
$this->_testTicketUser($ticket, $actor, CommonITILActor::ASSIGN, $notify, $alternateEmail);
break;
}
}
}
}
示例2: explode
Html::header(__('Simplified interface'), '', $_SESSION["glpiname"], "helpdesk", "tracking");
}
}
if (isset($_POST["my_items"]) && !empty($_POST["my_items"])) {
$splitter = explode("_", $_POST["my_items"]);
if (count($splitter) == 2) {
$_POST["itemtype"] = $splitter[0];
$_POST["items_id"] = $splitter[1];
}
}
if (!isset($_POST["itemtype"]) || empty($_POST["items_id"]) && $_POST["itemtype"] != 0) {
$_POST["itemtype"] = '';
$_POST["items_id"] = 0;
}
if (isset($_POST['add'])) {
if ($newID = $track->add($_POST)) {
if (isset($_POST["_type"]) && $_POST["_type"] == "Helpdesk") {
echo "<div class='center spaced'>" . __('Your ticket has been registered, its treatment is in progress.');
Html::displayBackLink();
echo "</div>";
} else {
echo "<div class='center b spaced'>";
echo "<img src='" . $CFG_GLPI["root_doc"] . "/pics/ok.png' alt='" . __s('OK') . "'>";
Session::addMessageAfterRedirect(__('Thank you for using our automatic helpdesk system.'));
Html::displayMessageAfterRedirect();
echo "</div>";
}
} else {
echo "<div class='center'>";
echo "<img src='" . $CFG_GLPI["root_doc"] . "/pics/warning.png' alt='" . __s('Warning') . "'><br>";
Html::displayMessageAfterRedirect();
示例3: save
public function save($form, $input)
{
$datas = array();
$ticket = new Ticket();
$docItem = new Document_Item();
// Get default request type
$query = "SELECT id FROM `glpi_requesttypes` WHERE `name` LIKE 'Formcreator';";
$result = $GLOBALS['DB']->query($query) or die($DB->error());
list($requesttypes_id) = $GLOBALS['DB']->fetch_array($result);
$datas['requesttypes_id'] = $requesttypes_id;
// Get predefined Fields
$ttp = new TicketTemplatePredefinedField();
$predefined_fields = $ttp->getPredefinedFields($this->fields['tickettemplates_id'], true);
$datas = array_merge($datas, $predefined_fields);
$datas['name'] = $this->parseTags($this->fields['name'], $form, $input);
$datas['content'] = $this->parseTags($this->fields['comment'], $form, $input);
$datas['entities_id'] = isset($_SESSION['glpiactive_entity']) ? $_SESSION['glpiactive_entity'] : $form->fields['entities_id'];
$ticketID = $ticket->add($datas);
if (!empty($_SESSION['formcreator_documents'])) {
foreach ($_SESSION['formcreator_documents'] as $docID) {
$docItem->add(array('documents_id' => $docID, 'itemtype' => 'Ticket', 'items_id' => $ticketID));
}
}
}
示例4: createTicket
/**
* Create a ticket based on ticket recurrent infos
*
* @param $data array data of a entry of glpi_ticketrecurrents
*
* @return boolean
**/
static function createTicket($data)
{
$result = false;
$tt = new TicketTemplate();
// Create ticket based on ticket template and entity information of ticketrecurrent
if ($tt->getFromDB($data['tickettemplates_id'])) {
// Get default values for ticket
$input = Ticket::getDefaultValues($data['entities_id']);
// Apply tickettemplates predefined values
$ttp = new TicketTemplatePredefinedField();
$predefined = $ttp->getPredefinedFields($data['tickettemplates_id'], true);
if (count($predefined)) {
foreach ($predefined as $predeffield => $predefvalue) {
$input[$predeffield] = $predefvalue;
}
}
// Set date to creation date
$createtime = strtotime($data['next_creation_date']) + $data['create_before'];
$input['date'] = date('Y-m-d H:i:s', $createtime);
if (isset($predefined['date'])) {
$input['date'] = Html::computeGenericDateTimeSearch($predefined['date'], false, $createtime);
}
// Compute due_date if predefined based on create date
if (isset($predefined['due_date'])) {
$input['due_date'] = Html::computeGenericDateTimeSearch($predefined['due_date'], false, $createtime);
}
// Set entity
$input['entities_id'] = $data['entities_id'];
$input['_auto_import'] = true;
$ticket = new Ticket();
$input = Toolbox::addslashes_deep($input);
if ($tid = $ticket->add($input)) {
$msg = sprintf(__('Ticket %d successfully created'), $tid);
$result = true;
} else {
$msg = __('Ticket creation failed (check mandatory fields)');
}
} else {
$msg = __('Ticket creation failed (no template)');
}
$changes[0] = 0;
$changes[1] = '';
$changes[2] = addslashes($msg);
Log::history($data['id'], __CLASS__, $changes, '', Log::HISTORY_LOG_SIMPLE_MESSAGE);
// Compute next creation date
$tr = new self();
if ($tr->getFromDB($data['id'])) {
$input = array();
$input['id'] = $data['id'];
$input['next_creation_date'] = $tr->computeNextCreationDate($data['begin_date'], $data['end_date'], $data['periodicity'], $data['create_before'], $data['calendars_id']);
$tr->update($input);
}
return $result;
}
示例5: generateNewItem
public function generateNewItem($params)
{
global $DB;
// Retrieve plugin configuration
$config = new PluginOrderConfig();
$reference = new PluginOrderReference();
foreach ($params["id"] as $tmp => $values) {
//If itemtype cannot be generated, go to the new occurence
if (in_array($values['itemtype'], self::getTypesThanCannotBeGenerared())) {
continue;
}
$entity = $values["entities_id"];
//------------- Template management -----------------------//
//Look for a template in the entity
$templateID = $reference->checkIfTemplateExistsInEntity($values["id"], $values["itemtype"], $entity);
$item = new $values["itemtype"]();
if ($values['itemtype']) {
$order = new PluginOrderOrder();
}
$order->getFromDB($values["plugin_order_orders_id"]);
$reference->getFromDB($params["plugin_order_references_id"]);
if ($templateID) {
$item->getFromDB($templateID);
unset($item->fields["is_template"]);
unset($item->fields["date_mod"]);
$fields = array();
foreach ($item->fields as $key => $value) {
if ($value != '' && (!isset($fields[$key]) || $fields[$key] == '' || $fields[$key] == 0)) {
$input[$key] = $value;
}
}
if ($config->getGeneratedAssetState()) {
$input["states_id"] = $config->getGeneratedAssetState();
}
$input["entities_id"] = $entity;
$input["serial"] = $values["serial"];
if ($item->fields['name']) {
$input["name"] = autoName($item->fields["name"], "name", $templateID, $values["itemtype"], $entity);
} else {
$input["name"] = $values["name"];
}
if ($item->getField('otherserial') != NOT_AVAILABLE) {
if ($item->fields['otherserial']) {
$input["otherserial"] = autoName($item->fields["otherserial"], "otherserial", $templateID, $values["itemtype"], $entity);
} else {
$input["otherserial"] = $values["otherserial"];
}
}
if ($config->canAddLocation()) {
$input['locations_id'] = $order->fields['locations_id'];
}
} elseif ($values["itemtype"] == 'Contract') {
$input["name"] = $values["name"];
$input["entities_id"] = $entity;
$input['contracttypes_id'] = $reference->fields['types_id'];
} else {
if ($config->getGeneratedAssetState()) {
$input["states_id"] = $config->getGeneratedAssetState();
} else {
$input["states_id"] = 0;
}
$input["entities_id"] = $entity;
$input["serial"] = $values["serial"];
$input["otherserial"] = $values["otherserial"];
$input["name"] = $values["name"];
// Get bill data
if ($config->canAddLocation()) {
$input['locations_id'] = $order->fields['locations_id'];
}
$input["manufacturers_id"] = $reference->fields["manufacturers_id"];
$typefield = getForeignKeyFieldForTable(getTableForItemType($values["itemtype"] . "Type"));
$input[$typefield] = $reference->fields["types_id"];
$modelfield = getForeignKeyFieldForTable(getTableForItemType($values["itemtype"] . "Model"));
$input[$modelfield] = $reference->fields["models_id"];
}
$input = Toolbox::addslashes_deep($input);
$newID = $item->add($input);
// Attach new ticket if option is on
if (isset($params['generate_ticket'])) {
$tkt = new TicketTemplate();
if ($tkt->getFromDB($params['generate_ticket']['tickettemplates_id'])) {
$input = array();
$input = Ticket::getDefaultValues($entity);
$ttp = new TicketTemplatePredefinedField();
$predefined = $ttp->getPredefinedFields($params['generate_ticket']['tickettemplates_id'], true);
if (count($predefined)) {
foreach ($predefined as $predeffield => $predefvalue) {
$input[$predeffield] = $predefvalue;
}
}
$input['entities_id'] = $entity;
$input['_users_id_requester'] = empty($order->fields['users_id']) ? Session::getLoginUserID() : $order->fields['users_id'];
$input['items_id'] = $newID;
$input['itemtype'] = $values["itemtype"];
$ticket = new Ticket();
$ticketID = $ticket->add($input);
}
}
//-------------- End template management ---------------------------------//
$result = $this->createLinkWithItem($values["id"], $newID, $values["itemtype"], $values["plugin_order_orders_id"], $entity, $templateID, false, false);
//.........这里部分代码省略.........
示例6: createSubTicket
/**
*
* @param type $items_id id of the ticket
*/
static function createSubTicket($items_id)
{
global $CFG_GLPI;
if ($_POST['slas_id'] == 0 || $_POST['groupsubticket'] == 0) {
// return;
}
$ticket = new Ticket();
$ticketFollowup = new TicketFollowup();
$ticketTask = new TicketTask();
$document_Item = new Document_Item();
$ticket_User = new Ticket_User();
$group_Ticket = new Group_Ticket();
// Disable send notification
$use_mailing = $CFG_GLPI["use_mailing"];
$CFG_GLPI["use_mailing"] = false;
$ticket->getFromDB($items_id);
unset($ticket->fields['id']);
$ticket->fields['_link']['link'] = 1;
$ticket->fields['_link']['tickets_id_1'] = 0;
$ticket->fields['_link']['tickets_id_2'] = $items_id;
$ticket->fields['bypassgrouponadd'] = true;
$ticket->fields['slas_id'] = $_POST['slas_id'];
$ticket->fields['date'] = date("Y-m-d H:i:s");
$ticket->fields = Toolbox::addslashes_deep($ticket->fields);
foreach ($ticket->fields as $key => $value) {
if ($value == '') {
unset($ticket->fields[$key]);
}
}
$new_tickets_id = $ticket->add($ticket->fields);
$a_followups = $ticketFollowup->find("`tickets_id`='" . $items_id . "'", "`id`");
foreach ($a_followups as $data) {
unset($data['id']);
$data = Toolbox::addslashes_deep($data);
$data['tickets_id'] = $new_tickets_id;
$ticketFollowup->add($data);
}
$a_tasks = $ticketTask->find("`tickets_id`='" . $items_id . "'", "`id`");
foreach ($a_tasks as $data) {
unset($data['id']);
$data = Toolbox::addslashes_deep($data);
$data['tickets_id'] = $new_tickets_id;
foreach ($data as $key => $value) {
if ($value == '') {
unset($data[$key]);
}
}
$ticketTask->add($data);
}
$a_documents = $document_Item->find("`items_id`='" . $items_id . "'\n AND `itemtype`='Ticket'", "`id`");
foreach ($a_documents as $data) {
unset($data['id']);
$data = Toolbox::addslashes_deep($data);
$data['items_id'] = $new_tickets_id;
$document_Item->add($data);
}
$a_ticketusers = $ticket_User->find("`tickets_id`='" . $items_id . "'\n AND `type`='1'", "`id`");
foreach ($a_ticketusers as $data) {
unset($data['id']);
$data = Toolbox::addslashes_deep($data);
$data['tickets_id'] = $new_tickets_id;
$ticket_User->add($data);
}
$a_ticketgroups = $group_Ticket->find("`tickets_id`='" . $items_id . "'\n AND `type`='1'", "`id`");
foreach ($a_ticketgroups as $data) {
unset($data['id']);
$data = Toolbox::addslashes_deep($data);
$data['tickets_id'] = $new_tickets_id;
$group_Ticket->add($data);
}
$CFG_GLPI["use_mailing"] = $use_mailing;
$input = array();
$input['tickets_id'] = $new_tickets_id;
$input['groups_id'] = $_POST['groupsubticket'];
$input['type'] = 2;
$group_Ticket->add($input);
}
示例7: Ticket
You should have received a copy of the GNU General Public License
along with GLPI. If not, see <http://www.gnu.org/licenses/>.
--------------------------------------------------------------------------
*/
/** @file
* @brief
*/
include '../inc/includes.php';
Session::checkLoginUser();
$track = new Ticket();
if (!isset($_GET['id'])) {
$_GET['id'] = "";
}
if (isset($_POST["add"])) {
$track->check(-1, CREATE, $_POST);
if ($id = $track->add($_POST)) {
if ($_SESSION['glpibackcreated']) {
Html::redirect($track->getFormURL() . "?id=" . $id);
}
}
Html::back();
} else {
if (isset($_POST['update'])) {
$track->check($_POST['id'], UPDATE);
$track->update($_POST);
Event::log($_POST["id"], "ticket", 4, "tracking", sprintf(__('%s updates an item'), $_SESSION["glpiname"]));
if ($track->can($_POST["id"], READ)) {
$toadd = '';
// Copy solution to KB redirect to KB
if (isset($_POST['_sol_to_kb']) && $_POST['_sol_to_kb']) {
$toadd = "&_sol_to_kb=1";
示例8: addTracking
/** Generate bigdump : add tickets to an item
*
* @param $type item type
* @param $ID item ID
* @param $ID_entity entity ID
**/
function addTracking($type, $ID, $ID_entity) {
global $percent, $DB, $MAX, $FIRST, $LAST;
$current_year = date("Y");
while (mt_rand(0,100)<$percent['tracking_on_item']) {
// ticket closed ?
$status = CommonITILObject::CLOSED;
$closedate = "";
$solvedate = "";
$opendate = time() - mt_rand(0, 365)*DAY_TIMESTAMP - mt_rand(0, 10)*HOUR_TIMESTAMP
- mt_rand(0, 60)*MINUTE_TIMESTAMP - mt_rand(0, 60);
if (mt_rand(0,100)<$percent['closed_tracking']) {
$rtype = mt_rand(0, 100);
if ($rtype<20) {
$status = CommonITILObject::SOLVED;
} else {
$status = CommonITILObject::CLOSED;
}
} else {
$rtype = mt_rand(0, 100);
if ($rtype<20) {
$status = CommonITILObject::INCOMING;
} else if ($rtype<40) {
$status = CommonITILObject::WAITING;
} else if ($rtype<80) {
$status = CommonITILObject::PLANNED;
$date3 = $opendate+mt_rand(10800, 7776000); // + entre 3 heures et 3 mois
$date4 = $date3+10800; // + 3 heures
} else {
$status = CommonITILObject::ASSIGNED;
}
}
// Author
$users[0] = mt_rand($FIRST['users_normal'], $LAST['users_postonly']);
// Assign user
$users[1] = 0;
if ($status != CommonITILObject::INCOMING) {
$users[1] = mt_rand($FIRST['users_sadmin'], $LAST['users_admin']);
}
$enterprise = 0;
if (mt_rand(0,100)<20) {
$enterprise = mt_rand($FIRST["enterprises"], $LAST['enterprises']);
}
$firstactiontime = mt_rand(0, 10)*DAY_TIMESTAMP+mt_rand(0, 10)*HOUR_TIMESTAMP
+mt_rand(0, 60)*MINUTE_TIMESTAMP;
$solvetime = 0;
$closetime = 0;
$actiontime = 0;
$solution = "";
$solutiontype = 0;
$due_date = $opendate + $firstactiontime+mt_rand(0, 10)*DAY_TIMESTAMP+
mt_rand(0, 10)*HOUR_TIMESTAMP+mt_rand(0, 60)*MINUTE_TIMESTAMP;
$duedatetoadd = date("Y-m-d H:i:s", intval($due_date));
if (($status == CommonITILObject::CLOSED) || ($status == CommonITILObject::SOLVED)) {
$solvetime = $firstactiontime+mt_rand(0, 10)*DAY_TIMESTAMP+mt_rand(0, 10)*HOUR_TIMESTAMP+
mt_rand(0, 60)*MINUTE_TIMESTAMP;
$solvedate = $opendate+$solvetime;
$closedate = $opendate+$solvetime;
$actiontime = mt_rand(0, 10)*HOUR_TIMESTAMP+
mt_rand(0, 60)*MINUTE_TIMESTAMP;
if ($status == CommonITILObject::CLOSED) {
$closetime = $solvetime+mt_rand(0, 5)*DAY_TIMESTAMP+mt_rand(0, 10)*HOUR_TIMESTAMP+
mt_rand(0, 60)*MINUTE_TIMESTAMP;
$closedate = $opendate+$closetime;
}
$solutiontype = mt_rand($FIRST['solutiontypes'], $LAST['solutiontypes']);
$solution = "Solution '".Toolbox::getRandomString(20);
}
$updatedate = $opendate+max($firstactiontime, $solvetime, $closetime);
$hour_cost = 100;
$closedatetoadd = 'NULL';
if (!empty($closedate)) {
$closedatetoadd = date("Y-m-d H:i:s", intval($closedate));
}
$solvedatetoadd = 'NULL';
//.........这里部分代码省略.........
示例9: add_ticket
public function add_ticket()
{
if (!Visitor::current()->group->can("add_ticket")) {
show_403(__("Access Denied"), __("You do not have sufficient privileges to create tickets.", "progress"));
}
if (empty($_POST['title'])) {
Flash::warning(__("Please provide a summary of the ticket in the form of a title.", "progress"));
}
if (empty($_POST['milestone_id'])) {
Flash::warning(__("No milestone selected.", "progress"));
}
$milestone = new Milestone($_POST['milestone_id']);
if ($milestone->no_results) {
error(__("Error"), __("Invalid milestone.", "progress"));
}
if (Flash::exists()) {
redirect($milestone->url());
}
$ticket = Ticket::add($_POST['title'], $_POST['description'], "new", $_POST['milestone_id'], $_POST['owner_id']);
$files = array();
foreach ($_FILES['attachment'] as $key => $val) {
foreach ($val as $file => $attr) {
$files[$file][$key] = $attr;
}
}
foreach ($files as $attachment) {
if ($attachment['error'] != 4) {
$path = upload($attachment, null, "attachments");
Attachment::add(basename($path), $path, "ticket", $ticket->id);
}
}
$domain = parse_url(Config::current()->url, PHP_URL_HOST);
if (!empty($ticket->owner->email) and Visitor::current()->id != $ticket->owner->id) {
mail($ticket->owner->email, _f("Ticket #%d Created! (%s)", array($ticket->id, $ticket->title), "progress"), _f("%s has created the ticket \"%s\" and assigned the owner to you. Description:<br />\n<br />\n%s", array(oneof($ticket->user->full_name, $ticket->user->login), $ticket->title, $ticket->description)), "MIME-Version: 1.0\r\n" . "Content-type: text/html; charset=utf-8\r\n" . "From: no-reply@" . $domain);
}
Flash::notice(__("Ticket added.", "progress"), $ticket->url());
}
示例10: cloneAndLink
/**
* CLone a ticket and his relations
* @param integer $tickets_id id of the ticket to clone
* @return print a json response (return nothing)
*/
static function cloneAndLink($tickets_id)
{
global $DB;
//get old ticket
$ticket = new Ticket();
if (!$ticket->getFromDB($tickets_id)) {
echo "{\"success\":false, \"message\":\"" . __("Error : get old ticket", "escalade") . "\"}";
exit;
}
//set fields
$fields = $ticket->fields;
$fields = array_map(array('Toolbox', 'addslashes_deep'), $fields);
$fields['id'] = 0;
$fields['_users_id_requester'] = 0;
$fields['status'] = CommonITILObject::INCOMING;
/*var_dump($fields);
exit;*/
//create new ticket (duplicate from previous)
if (!($newID = $ticket->add($fields))) {
echo "{\"success\":false, \"message\":\"" . __("Error : adding new ticket", "escalade") . "\"}";
exit;
}
//add link between them
$ticket_ticket = new Ticket_Ticket();
if (!$ticket_ticket->add(array('tickets_id_1' => $tickets_id, 'tickets_id_2' => $newID, 'link' => Ticket_Ticket::LINK_TO))) {
echo "{\"success\":false, \"message\":\"" . __("Error : adding link between the two tickets", "escalade") . "\"}";
exit;
}
//add a followup to indicate duplication
$followup = new TicketFollowup();
if (!$followup->add(array('tickets_id' => $newID, 'users_id' => Session::getLoginUserID(), 'content' => __("This ticket has been from the ticket num", "escalade") . " " . $tickets_id, 'is_private' => true, 'requesttypes_id' => 6))) {
echo "{\"success\":false, \"message\":\"" . __("Error : adding followups", "escalade") . "\"}";
exit;
}
//add actors to the new ticket (without assign)
//users
$query_users = "INSERT INTO glpi_tickets_users\n SELECT '' AS id, {$newID} as tickets_id, users_id, type, use_notification, alternative_email\n FROM glpi_tickets_users\n WHERE tickets_id = {$tickets_id} AND type != 2";
if (!($res = $DB->query($query_users))) {
echo "{\"success\":false, \"message\":\"" . __("Error : adding actors (user)", "escalade") . "\"}";
exit;
}
//groups
$query_groups = "INSERT INTO glpi_groups_tickets\n SELECT '' AS id, {$newID} as tickets_id, groups_id, type\n FROM glpi_groups_tickets\n WHERE tickets_id = {$tickets_id} AND type != 2";
if (!($res = $DB->query($query_groups))) {
echo "{\"success\":false, \"message\":\"" . __("Error : adding actors (group)", "escalade") . "\"}";
exit;
}
//add documents
$query_docs = "INSERT INTO glpi_documents_items (documents_id, items_id, itemtype, entities_id, is_recursive, date_mod)\n SELECT documents_id, {$newID}, 'Ticket', entities_id, is_recursive, date_mod\n FROM glpi_documents_items\n WHERE items_id = {$tickets_id} AND itemtype = 'Ticket'";
if (!($res = $DB->query($query_docs))) {
echo "{\"success\":false, \"message\":\"" . __("Error : adding documents", "escalade") . "\"}";
exit;
}
//add history to the new ticket
$changes[0] = '0';
$changes[1] = __("This ticket has been from the ticket num", "escalade") . " " . $tickets_id;
$changes[2] = "";
Log::history($newID, 'Ticket', $changes, 'Ticket');
//add message (ticket cloned) after redirect
Session::addMessageAfterRedirect(__("This ticket has been from the ticket num", "escalade") . " " . $tickets_id);
//all ok
echo "{\"success\":true, \"newID\":{$newID}}";
}
示例11: die
$fields['items_id'] = $_POST['items_id'];
// $fields['slas_id'] = $_POST['slas_id'];
$fields['entities_id'] = $_POST['entities_id'];
// $fields['type'] = $_POST['type'];
$fields['itilcategories_id'] = $_POST['itilcategories_id'];
$fields['locations_id'] = $_POST['locations_id'];
$fields['name'] = $track_name;
$fields['content'] .= "\n-----\n" . $_POST['comment'];
/*
echo "<pre>";
print_r($fields);
echo "</pre>";
die('test');
*/
// Create a new ticket ...
$_POST['tickets_id'] = $track->add($fields);
// Create new downtime with associated ticket ...
$pmDowntime->add($_POST);
// Redirect to new ticket form if required
if (isset($_POST["redirect"])) {
Html::redirect($_POST["redirect"] . "?id=" . $_POST['tickets_id']);
} else {
$pmDowntime->redirectToList();
}
} else {
// Create new downtime without associated ticket ...
$pmDowntime->add($_POST);
$pmDowntime->redirectToList();
}
} else {
if (isset($_POST["update"])) {
示例12: RuleTicketCollection
$input["itemtype"] = "PluginResourcesResource";
$input["items_id"] = $checklist->fields["plugin_resources_resources_id"];
$input["requesttypes_id"] = "6";
$input["urgency"] = "3";
$input["_users_id_assign"] = 0;
$input['_groups_id_assign'] = 0;
$input["entities_id"] = $checklist->fields["entities_id"];
if ($cat->getfromDB(1)) {
$input["itilcategories_id"] = $cat->fields["ticketcategories_id"];
} else {
$input["itilcategories_id"] = 0;
}
$rules = new RuleTicketCollection();
$input = $rules->processAllRules($input, $input);
$Ticket = new Ticket();
$Ticket->add($input);
}
}
}
}
Html::redirect(Toolbox::getItemTypeFormURL('PluginResourcesResource') . "?id=" . $_POST["plugin_resources_resources_id"]);
} else {
if (isset($_POST["report"])) {
$restrict = "`itemtype` = 'User' AND `plugin_resources_resources_id` = '" . $_POST["id"] . "'";
$linkeduser = getAllDatasFromTable('glpi_plugin_resources_resources_items', $restrict);
if (!empty($linkeduser)) {
$resource->sendReport($_POST);
Session::addMessageAfterRedirect(__('Creation report sent', 'resources'), true);
} else {
Session::addMessageAfterRedirect(__('The report is not sent because the resource is not linked with a user', 'resources'), true, ERROR);
}
示例13: User
}
if (isset($predefined['suppliers_id_assign'])) {
$ticket['suppliers_id_assign'] = $predefined['suppliers_id_assign'];
}
if (isset($predefined['requesttypes_id'])) {
$ticket['requesttypes_id'] = $predefined['requesttypes_id'];
}
// **********fin modif yt pour prendre en compte valeurs prédéfinies du gabarit**********;
$user = new User();
$user->getFromDB(Session::getLoginUserID());
$ticket['users_id_recipient'] = $user->fields['id'];
$ticket['users_id_lastupdater'] = $user->fields['id'];
$ticket['type'] = $target_value['type'];
$ticket['name'] = str_replace("'", "\\'", $ticket['name']);
$track = new Ticket();
$ticketID = $track->add($ticket);
if ($validation_exist) {
for ($cpt_valid = 0; $cpt_valid < count($validationTab); $cpt_valid++) {
$validationTab[$cpt_valid]['tickets_id'] = $ticketID;
$validation = new Ticketvalidation();
$validation->add($validationTab[$cpt_valid]);
}
}
$sections = new PluginFormcreatorSection();
$sections = $sections->find("plugin_formcreator_targets_id = '{$target_id}'");
foreach ($sections as $section_id => $section_value) {
$questions = $helpdesk->getQuestionBySectionTypeFile($section_id);
foreach ($questions as $question_id => $question_value) {
$question_name = "question_" . $question_id;
if (array_key_exists($question_name, $_FILES)) {
if ($_FILES[$question_name]['error'] != 4) {
示例14: createTicket
static function createTicket($data)
{
$result = false;
$tt = new TicketTemplate();
// Create ticket based on ticket template and entity informations of ticketrecurrent
if ($tt->getFromDB($data['tickettemplates_id'])) {
// Get default values for ticket
$input = Ticket::getDefaultValues($data['entities_id']);
// Apply tickettemplates predefined values
$ttp = new TicketTemplatePredefinedField();
$predefined = $ttp->getPredefinedFields($data['tickettemplates_id'], true);
if (count($predefined)) {
foreach ($predefined as $predeffield => $predefvalue) {
$input[$predeffield] = $predefvalue;
}
}
// Set date to creation date
$createtime = date('Y-m-d H:i:s');
$input['date'] = $createtime;
// Compute due_date if predefined based on create date
if (isset($predefined['due_date'])) {
$input['due_date'] = Html::computeGenericDateTimeSearch($predefined['due_date'], false, $createtime);
}
// Set entity
$input['entities_id'] = $data['entities_id'];
$input['actiontime'] = $data['actiontime'];
$res = new PluginResourcesResource();
if ($res->getFromDB($data['plugin_resources_resources_id'])) {
$input['users_id_recipient'] = $res->fields['users_id_recipient'];
$input['_users_id_requester'] = $res->fields['users_id_recipient'];
if (isset($res->fields['users_id'])) {
$input['_users_id_observer'] = $res->fields['users_id'];
}
$input['_users_id_assign'] = Session::getLoginUserID();
$input["itemtype"] = "PluginResourcesResource";
$input["items_id"] = $data['plugin_resources_resources_id'];
$input["name"] .= addslashes(" " . PluginResourcesResource::getResourceName($data['plugin_resources_resources_id']));
}
//TODO : ADD checklist lists or add config into plugin ?
$input["content"] .= addslashes("\n\n");
$input['status'] = Ticket::CLOSED;
$ticket = new Ticket();
$input = Toolbox::addslashes_deep($input);
if ($tid = $ticket->add($input)) {
$msg = __('Create a end treatment ticket', 'resources') . " OK - ({$tid})";
// Success
$result = true;
} else {
$msg = __('Failed operation');
// Failure
}
} else {
$msg = __('No selected element or badly defined operation');
// Not defined
}
if ($tid) {
$changes[0] = 0;
$changes[1] = '';
$changes[2] = addslashes($msg);
Log::history($data['plugin_resources_resources_id'], "PluginResourcesResource", $changes, '', Log::HISTORY_LOG_SIMPLE_MESSAGE);
}
return $result;
}
示例15: collect
/**
* Constructor
*
* @param $mailgateID ID of the mailgate
* @param $display display messages in MessageAfterRedirect or just return error
*
* @return if $display = false return messages result string
**/
function collect($mailgateID, $display = 0)
{
global $LANG, $CFG_GLPI;
if ($this->getFromDB($mailgateID)) {
$this->mid = -1;
$this->fetch_emails = 0;
//Connect to the Mail Box
$this->connect();
$rejected = new NotImportedEmail();
// Clean from previous collect (from GUI, cron already truncate the table)
$rejected->deleteByCriteria(array('mailcollectors_id' => $this->fields['id']));
if ($this->marubox) {
// Get Total Number of Unread Email in mail box
$tot = $this->getTotalMails();
//Total Mails in Inbox Return integer value
$error = 0;
$refused = 0;
for ($i = 1; $i <= $tot && $this->fetch_emails < $this->maxfetch_emails; $i++) {
$tkt = $this->buildTicket($i, array('mailgates_id' => $mailgateID, 'play_rules' => true));
//Indicates that the mail must be deleted from the mailbox
$delete_mail = false;
//If entity assigned, or email refused by rule, or no user associated with the email
$user_condition = $CFG_GLPI["use_anonymous_helpdesk"] || isset($tkt['_users_id_requester']) && $tkt['_users_id_requester'] > 0;
// Manage blacklisted emails
if (isset($tkt['_blacklisted']) && $tkt['_blacklisted']) {
$this->deleteMails($i);
// entities_id set when new ticket / tickets_id when new followup
} else {
if ((isset($tkt['entities_id']) || isset($tkt['tickets_id'])) && $user_condition || isset($tkt['_refuse_email_no_response']) || isset($tkt['_refuse_email_with_response'])) {
if (isset($tkt['_refuse_email_with_response'])) {
$this->sendMailRefusedResponse($tkt['_head']['from'], $tkt['name']);
$delete_mail = true;
$refused++;
} else {
if (isset($tkt['_refuse_email_no_response'])) {
$delete_mail = true;
$refused++;
} else {
if (isset($tkt['entities_id']) || isset($tkt['tickets_id'])) {
$tkt['_mailgate'] = $mailgateID;
$result = imap_fetchheader($this->marubox, $i);
// Is a mail responding of an already existgin ticket ?
if (isset($tkt['tickets_id'])) {
// Deletion of message with sucess
if (false === is_array($result)) {
$fup = new TicketFollowup();
if ($fup->add($tkt)) {
$delete_mail = true;
}
} else {
$error++;
}
} else {
// New ticket
// Deletion of message with sucess
if (false === is_array($result)) {
$track = new Ticket();
if ($track->add($tkt)) {
$delete_mail = true;
}
} else {
$error++;
}
}
} else {
// Case never raise
$delete_mail = true;
$refused++;
}
}
}
//Delete Mail from Mail box if ticket is added successfully
if ($delete_mail) {
$this->deleteMails($i);
}
} else {
$input = array();
$input['mailcollectors_id'] = $mailgateID;
$input['from'] = $tkt['_head']['from'];
$input['to'] = $tkt['_head']['to'];
if (!$tkt['_users_id_requester']) {
$input['reason'] = NotImportedEmail::USER_UNKNOWN;
} else {
$input['reason'] = NotImportedEmail::MATCH_NO_RULE;
}
$input['users_id'] = $tkt['_users_id_requester'];
$input['subject'] = $this->textCleaner($tkt['_head']['subject']);
$input['messageid'] = $tkt['_head']['message_id'];
$input['date'] = $_SESSION["glpi_currenttime"];
$rejected->add($input);
}
}
//.........这里部分代码省略.........