Exemple #1
0
 // if Forward ticket
 if (isset($_POST['forward'])) {
     //Create update message for db
     $reason = "<div class=update><h3>Ticket forwarded by " . $_SESSION['sAMAccountName'] . " (" . date("d/m/Y H:i:s") . ")</h3>" . htmlspecialchars($_POST['details']) . "</div>";
     //PDO Update ticket
     $STH = $DBH->Prepare("UPDATE calls SET helpdesk = :helpdesk, status=1, assigned = :assigned, lastupdate = :lastupdate, details = CONCAT(details, :details) WHERE callid = :callid");
     $STH->bindParam(':helpdesk', $_POST['fwdhelpdesk'], PDO::PARAM_STR);
     $nullvalue = NULL;
     $STH->bindParam(':assigned', $nullvalue, PDO::PARAM_STR);
     $STH->bindParam(':lastupdate', date("c"), PDO::PARAM_STR);
     $STH->bindParam(':details', $reason, PDO::PARAM_STR);
     $STH->bindParam(':callid', $_POST['id'], PDO::PARAM_STR);
     $STH->execute();
     //PDO Update engineers assignment
     $STH = $DBH->Prepare("UPDATE assign_engineers SET engineerId = :engineerid WHERE id = :id");
     $STH->bindParam(':engineerid', next_engineer($_POST['fwdhelpdesk']), PDO::PARAM_STR);
     $STH->bindParam(':id', $_POST['fwdhelpdesk'], PDO::PARAM_STR);
     $STH->execute();
     //Email Managers to let them know ticket forwarded.
     // Get engineers emails
     $STHemail = $DBH->Prepare('SELECT engineerEmail FROM engineers WHERE helpdesk = :helpdesk AND engineerLevel=2');
     $STHemail->bindParam(':helpdesk', $_POST['fwdhelpdesk'], PDO::PARAM_INT);
     $STHemail->setFetchMode(PDO::FETCH_OBJ);
     $STHemail->execute();
     while ($rowemail = $STHemail->fetch()) {
         //Construct message
         $to = $rowemail->engineerEmail;
         $message = "<span style='font-family: arial;'><p>Helpdesk ticket (#" . $_POST['id'] . ") has been forwarded to your helpdesk.</p>";
         $message .= "<p>To view the details of this ticket please <a href='" . HELPDESK_LOC . "'>Visit " . CODENAME . "</a></p>";
         $message .= "<p>This is an automated message please do not reply</p>";
         $msgtitle = "New Helpdesk ticket (#" . $_POST['id'] . ")";
Exemple #2
0
function increment_engineer($data)
{
    // Check helpdesk call is for
    $helpdeskid = $data;
    // find last engineer assigned
    global $DBH;
    // Update engineers asignment (need to do check if should round robin or fixed assignment)
    $STH = $DBH->Prepare("UPDATE assign_engineers SET engineerId = :engineerid WHERE id = :id");
    $STH->bindParam(':engineerid', next_engineer($helpdeskid), PDO::PARAM_STR);
    $STH->bindParam(':id', $helpdeskid, PDO::PARAM_STR);
    $STH->execute();
    return;
}
include '/var/www/html/helpdesk/includes/functions.php';
// Process Scheduled Tickets
echo "\n-- Starting Process Scheduled Tickets : " . date("h:i:s") . "\n";
//TODO check scheduled tickets and according to frequency create new tickets for the following day
// List all scheduled tickets
echo "* Scheduled tickets in database \n";
$STH = $DBH->Prepare("SELECT * FROM scheduled_calls");
$STH->setFetchMode(PDO::FETCH_OBJ);
$STH->execute();
if ($STH->rowCount() == 0) {
    echo "0 items scheduled\n";
}
while ($row = $STH->fetch()) {
    // who to assign
    if ($row->assigned == -1) {
        $assigned = next_engineer($row->helpdesk);
    } else {
        $assigned = $row->assigned;
    }
    // assigned engineer (int)
    // increment engineer so tickets are round robbin
    increment_engineer($row->helpdesk);
    // cleanup ticket objects
    unset($createticket);
    // create ticket from scheduled_calls table
    $createticket = new ticket($row->name, $row->email, $row->tel, $row->details, $assigned, date("c"), date("c"), $row->status, $row->closed, $row->closeengineerid, $row->urgency, $row->location, $row->room, $row->category, $row->owner, $row->helpdesk, $row->invoicedate, $row->callreason, $row->title, $row->lockerid, 1);
    // prep PDO statment
    $STHloop = $DBH->Prepare("INSERT INTO calls (name, email, tel, details, assigned, opened, lastupdate, status, closed, closeengineerid, urgency, location, room, category, owner, helpdesk, invoicedate, callreason, title, lockerid, pm) VALUES (:name, :email, :tel, :details, :assigned, :opened, :lastupdate, :status, :closed, :closeengineerid, :urgency, :location, :room, :category, :owner, :helpdesk, :invoicedate, :callreason, :title, :lockerid, :pm)");
    // set start date
    $startdate = date("Y-m-d", strtotime($row->startschedule));
    // Process each ticket checking frequency