Phprojekt > Helpdesk / Helpdesk Data.php

Questions? Need Help? Want to share? » PHP Forum
Script Name:
Phprojekt

Download:
phprojekt.zip

Category:
Groupware Tools

Archive Content:

Helpdesk

Img

Lang

Layout > Default

Layout > Default > Img

Layout > Merkur > Img

Layout > Merkur

Layout > Neptun > Img

Layout > Neptun

Lib

Lib > Chart > Src

Lib

Lib > Db

Lib

Lib > Editor > Css > Behaviors

Lib > Editor > Css

Lib > Editor > Dialog > Behaviors

Lib > Editor > Dialog > Common

Lib > Editor > Dialog > Common > Images

Lib > Editor > Dialog

Lib > Editor > Dialog > Fck Universalkey

Lib > Editor > Dialog

Lib > Editor

Lib > Editor > Images

Lib > Editor > Js

Lib > Editor > Lang

Lib > Editor > Skins > Default

Lib > Editor > Skins > Default > Images

Lib > Editor > Skins > Default > Toolbar

Lib

Lib > Pdf

Lib > Pdf > Fonts

Lib

Lib > Selector

Lib

Links

Mail

Misc

Notes

Options

Projects

Search

Settings

Setup

Summary

Sync > Soap

Timecard

Todo

Votum

Content:

Addons

Admin

Bookmarks

Calendar

Calendar > Holiday Files

Calendar

Chat

Contacts

Extern

Filemanager

Filemanager > Images

Forum

Help

Helpdesk Data.php:


<?php

// helpdesk_data.php - PHProjekt Version 5.0
// copyright  ©  2000-2005 Albrecht Guenther  ag <at> phprojekt <dot> com
// www.phprojekt.com
// Author: Albrecht Guenther,  $Author: fgraf $
// $Id: helpdesk_data.php, v 1.23.2.2 2005/09/07 09:19:18 fgraf Exp $

// check whether the lib has been included - authentication!
if (!defined("lib_included")) { die("Please use index.php!"); }

// check role
if (check_role("helpdesk") < 2) { die("You are not allowed to do this!"); }

use_mail('1');

// fetch permission routine
include_once("$lib_path/permission.inc.php");
$include_path3 $path_pre."lib/access.inc.php";
include_once 
$include_path3;
$acc_read assign_acc($acc_read,  'helpdesk');

// delete request
if ($delete_b) {
  if (
$ID 0manage_delete_records($ID, $module);
  elseif( 
$ID_s <> ''manage_delete_records($ID_s, $module);
}


// delete a file attached to a record
elseif ($delete_file) {delete_attached_file($file_field_name,  $ID,  'helpdesk'); }

// insert new request
elseif  (!$ID && isset($_REQUEST['name'])) {
  if (
$acc_write <> '') { $acc_write 'w'; }
  
sqlstrings_create();
  
$status $helpdesk_states[0]['key'];
  
$result db_query(xss("insert into ".DB_PREFIX."rts
           (ID,         gruppe,         parent,   von,        acc,   acc_read,    acc_write , status,    "
.$sql_fieldstring." )
    values ($dbIDnull, '$user_group', '$parent', '$user_ID', '$acc', '$acc_read', '$acc_write', '$status',       "
.$sql_valuestring.")")) or db_die();
}

// update request
elseif ($ID && isset($_REQUEST['name'])) {
  
// check permission
  
$result db_query("select ID,  assigned,  acc_write,  von,  status
                        from "
.DB_PREFIX."rts
                       where ID = '$ID' and
                             (acc_read like 'system' or ((von = '$user_ID' or assigned = '$user_ID' or acc_read like 'group' or acc_read like '%\"$user_kurz\"%') and $sql_user_group))"
) or db_die();
  
$row db_fetch_row($result);
  if (!
$row[0] or ($row[1] <> $user_ID and $row[3] <> $user_ID and $row[2] <> 'w')) { die("You are not allowed to do this"); }

  
// check whether this record is assigned to this user - if yes,  allow him to change the permission status
  // otherwise don't change this field
  
if ($row[1] == $user_ID ) {
    
$accessstring "acc_read = '$acc_read', ";
    if (
$acc_write <> ''$accesswritestring "acc_write = 'w', ";
    else 
$accesswritestring "acc_write = '', ";
  }
  else {
    
$accessstring '';
    
$accesswritestring '';
  }
  
// end check permission

  //keep history
  
if (PHPR_HISTORY_LOG) {
    
sqlstrings_create();
    
history_keep('rts', 'acc_read, acc_write, '.$sql_fieldstring, $ID);
  }
  
//These options aren't available anymore!
  /**
  if ($action == 'solve') { $rts_normal ? $status = 2 : $status = 4; }
  if ($action == 'stall') $status = 20;
  if ($action == 'moveto') $status = 21;
  */    
  // include the library from lib
  
include_once("$lib_path/email_notification.inc.php");
  
$change_userslookup('users', 'nachname, vorname', 'ID', $user_ID);

  
// notify if the assigned user has been changed
  
if ($assigned <> $row[1]) { email_notification('rts',  $acc_read, $change_user." ".__("has reassigned the following request").": ".$name,  $add_mail); }

  
// notify if the status has been changed
  
if ($status <> $row[4]) { email_notification('rts',  $acc_read,  $name.": ".__("Ticket status changed")."(".$helpdesk_states[$status-1]["label"].")",  $add_mail); }
   
//isn't needed!
  //$status = $helpdesk_states[$status-1]['key'];

  
$sql_string sqlstrings_modify();
  
// update record in db
  
$result db_query(xss("update ".DB_PREFIX."rts
                         set $sql_string
                             $accessstring
                             $accesswritestring
                             parent = '$parent',
                             status = '$status',
                             acc = '$acc'    
                       where ID = '$ID'"
)) or db_die();
  
// ********
  // solve request,  mail to customer,  set access
  
if(($status=='solved' or $status==5)&&$status <> $row[4]){
  
//if ($action == 'solve') {
    
$result db_query(xss("update ".DB_PREFIX."rts
                            set solved = '$user_ID',
                                solve_time = '$dbTSnull'
                            where ID = '$ID'"
)) or db_die();

    
// fetch original question
    
$result db_query("select name,  note
                          from "
.DB_PREFIX."rts
                         where ID = '$ID'"
) or db_die();
    
$row db_fetch_row($result);

    
// body of the mail consists of: "has been answered by NN,  question: xyz,  answer: xyz ...
    
$body __('Your request was solved by')." $user_firstname $user_name\n ".__('Request').": $row[0]\n $row[1]\n ".__('Solution').": $solution";
    
// fetch mail adress

    
if (PHPR_RTS_CUST_ACC and PHPR_CONTACTS) {
      
$result2 db_query("select email
                             from "
.DB_PREFIX."contacts
                            where ID = '$row[0]'"
) or db_die();
      
$row2 db_fetch_row($result2);
      
$cust_mail $row2[0];
    }
    if(empty(
$cust_mail)) {
      
$result db_query("select contact,  email
                            from "
.DB_PREFIX."rts
                           where ID = '$ID'"
) or db_die();
      
$row db_fetch_row($result);
      
$cust_mail $row[1];
    }
    
// mail to the customer with the solution
    
$success $mail->go($cust_mail,  __('Answer to your request Nr.')." $ID",  $body,  $user_email);
    
// confirmation screen for the author
    
message_stack_in(__('Your solution was mailed to the customer and taken into the database'), "helpdesk", "notice");
  }

  
// ********
  // move request
  
elseif ($action == 'moveto') {
    
$result db_query("select ID,  name,  note,  remark
                          from "
.DB_PREFIX."rts
                         where ID = '$ID'"
) or db_die();
    
$row db_fetch_row($result);
    
$result2 db_query("select ID,  name,  note,  remark
                           from "
.DB_PREFIX."rts
                          where ID = '$moveto'"
) or db_die();
    
$row2 db_fetch_row($result2);
    
$name quote_runtime($row2[1]."\n+ Nr. $row[0]:\n ".$row[1]);
    
$note quote_runtime($row2[2]."\n+ Nr. $row[0]:\n ".$row[2]);
    
$remark quote_runtime($row2[3]."\n+ Nr. $row[0]:\n ".$row[3]);
    
// update new record
    
$result db_query(xss("update ".DB_PREFIX."rts
                           set remark = '$remark',
                               note='$note',
                               name = '$name'
                         where ID = '$moveto'"
)) or db_die();
    
// put a remark into the old record that it has moved
    
$result db_query(xss("update ".DB_PREFIX."rts
                           set remark = 'moved to $moveto'
                         where ID = '$ID'"
)) or db_die();
  }
}

// show the helpdesk list :-)
$fields build_array('helpdesk',  $ID,  'view');
include_once(
"./helpdesk_view.php");

function 
delete_record($ID) {
  global 
$fields,  $user_ID;
    
// check permission
  
$result db_query("select assigned,  acc_write, ID, von
                        from "
.DB_PREFIX."rts
                       where ID = '$ID'"
) or db_die();
  
$row db_fetch_row($result);
  if (
$row[2] == 0) { die("no entry found."); }
  if (
$row[0] <> $user_ID and !$row[1] and (!(($row[0]==or $row[0]=='')and $row[3]==$user_ID ))) { die("You are not privileged to do this!"); }

  
// delete all files associated with this record
  
foreach($fields as $field_name => $field) {
    if (
$field['form_type'] == 'upload' ) {
      
$sql_value upload_file_delete($field_name,  $ID,  'helpdesk');
    }
  }
  
// delete record in db
  
$result db_query("delete from ".DB_PREFIX."rts
                       where ID = '$ID'"
) or db_die();
  
// delete corresponding entry from db_record
  
$result db_query("delete from ".DB_PREFIX."db_records
                            where t_record = '$ID' and t_module = 'rts'"
) or db_die();

  
// delete history for this db entry
  
if (PHPR_HISTORY_LOG) { history_delete('rts', $ID); }
}

?>

</body>
</html>


Other Groupware Tools Scripts:

WebMaster Resources Home

©RingsWorld.com