$description = get_parameter('description'); $group_id = get_parameter('group_id'); // Get default variables $id_creator = $config["id_user"]; $sla_disabled = 0; $id_task = 0; // N/A $estado = 1; // New $resolution = 0; // None $email_copy = ''; $email_notify = get_db_value("forced_email", "tgrupo", "id_grupo", $group_id); $id_parent = 0; $epilog = ''; $user_responsible = get_group_default_user($group_id); $id_user_responsible = $user_responsible['id_usuario']; $id_inventory = get_group_default_inventory($group_id, true); if ($id_parent == 0) { $idParentValue = 'NULL'; } else { $idParentValue = sprintf('%d', $id_parent); } // DONT use MySQL NOW() or UNIXTIME_NOW() because // Integria can override localtime zone by a user-specified timezone. $timestamp = print_mysql_timestamp(); $sql = sprintf('INSERT INTO tincidencia (inicio, actualizacion, titulo, descripcion, id_usuario, estado, prioridad, id_grupo, id_creator, notify_email, id_task, resolution, id_incident_type, sla_disabled, email_copy, epilog)
public function insertIncident($title, $description, $group_id, $id_creator = "", $status = 1, $priority = 2, $resolution = 0, $id_task = 0, $sla_disabled = 0, $id_incident_type = 0, $email_copy = "", $email_notify = -1, $id_parent = 0, $epilog = "") { $system = System::getInstance(); if ($id_creator == "") { $id_creator = $system->getConfig('id_user'); } if ($email_notify == -1) { $email_notify = get_db_value("forced_email", "tgrupo", "id_grupo", $group_id); } if ($id_parent == 0) { $idParentValue = 'NULL'; } else { $idParentValue = sprintf('%d', $id_parent); } $user_responsible = get_group_default_user($group_id); $id_user_responsible = $user_responsible['id_usuario']; if ($id_user_responsible === false) { $id_user_responsible = $system->getConfig('id_user'); } $id_inventory = get_group_default_inventory($group_id, true); // DONT use MySQL NOW() or UNIXTIME_NOW() because // Integria can override localtime zone by a user-specified timezone. $timestamp = print_mysql_timestamp(); $sql = "INSERT INTO tincidencia\n\t\t\t\t(inicio, actualizacion, titulo, descripcion, id_usuario,\n\t\t\t\testado, prioridad, id_grupo, id_creator, notify_email, id_task,\n\t\t\t\tresolution, id_incident_type, sla_disabled, email_copy, epilog)\n\t\t\t\tVALUES ('{$timestamp}', '{$timestamp}', '{$title}', '{$description}',\n\t\t\t\t'{$id_user_responsible}', {$status}, {$priority}, {$group_id}, '{$id_creator}',\n\t\t\t\t{$email_notify}, {$id_task}, {$resolution}, {$id_incident_type}, {$sla_disabled},\n\t\t\t\t'{$email_copy}', '{$epilog}')"; $id_incident = process_sql($sql, 'insert_id'); if ($id_incident !== false) { if (include_once $system->getConfig('homedir') . "/include/functions_incidents.php") { /* Update inventory objects in incident */ update_incident_inventories($id_incident, array($id_inventory)); } audit_db($config["id_user"], $config["REMOTE_ADDR"], "Ticket created", "User " . $config['id_user'] . " created ticket #" . $id_incident); incident_tracking($id_incident, INCIDENT_CREATED); // Email notify to all people involved in this incident if ($email_notify) { mail_incident($id_incident, $usuario, "", 0, 1); } // Insert data of incident type fields if ($id_incident_type > 0) { $sql_label = "SELECT `label` FROM `tincident_type_field` WHERE id_incident_type = {$id_incident_type}"; $labels = get_db_all_rows_sql($sql_label); if ($labels === false) { $labels = array(); } foreach ($labels as $label) { $id_incident_field = get_db_value_filter('id', 'tincident_type_field', array('id_incident_type' => $id_incident_type, 'label' => $label['label']), 'AND'); $values_insert['id_incident'] = $id_incident; $values_insert['data'] = $system->getRequest(base64_encode($label['label'])); $values_insert['id_incident_field'] = $id_incident_field; $id_incident_field = get_db_value('id', 'tincident_type_field', 'id_incident_type', $id_incident_type); process_sql_insert('tincident_field_data', $values_insert); } } return $id_incident; } }