Пример #1
0
 function fetchEntity($moduleName, $recordId)
 {
     $adb = PearDatabase::getInstance();
     $entityData = VTEntityData::fromEntityId($adb, $recordId);
     if ($moduleName == 'HelpDesk') {
         $entityData->set('comments', getTicketComments($recordId));
     }
     self::$newEntity[$moduleName][$recordId] = $entityData;
 }
Пример #2
0
 public static function getTicketEmailContents($entityData)
 {
     $adb = PearDatabase::getInstance();
     $moduleName = $entityData->getModuleName();
     $wsId = $entityData->getId();
     $parts = explode('x', $wsId);
     $entityId = $parts[1];
     $isNew = $entityData->isNew();
     if (!$isNew) {
         $reply = getTranslatedString("replied", $moduleName);
         $temp = getTranslatedString("Re", $moduleName);
     } else {
         $reply = getTranslatedString("created", $moduleName);
         $temp = " ";
     }
     $wsParentId = $entityData->get('parent_id');
     $parentIdParts = explode('x', $wsParentId);
     $parentId = $parentIdParts[1];
     $desc = getTranslatedString('Ticket ID', $moduleName) . ' : ' . $entityId . '<br>' . getTranslatedString('Ticket Title', $moduleName) . ' : ' . $temp . ' ' . $entityData->get('ticket_title');
     $desc .= "<br><br>" . getTranslatedString('Hi', $moduleName) . " " . getParentName($parentId) . ",<br><br>" . getTranslatedString('LBL_PORTAL_BODY_MAILINFO', $moduleName) . " " . $reply . " " . getTranslatedString('LBL_DETAIL', $moduleName) . "<br>";
     $desc .= "<br>" . getTranslatedString('Ticket No', $moduleName) . " : " . $entityData->get('ticket_no');
     $desc .= "<br>" . getTranslatedString('Status', $moduleName) . " : " . $entityData->get('ticketstatus');
     $desc .= "<br>" . getTranslatedString('Category', $moduleName) . " : " . $entityData->get('ticketcategories');
     $desc .= "<br>" . getTranslatedString('Severity', $moduleName) . " : " . $entityData->get('ticketseverities');
     $desc .= "<br>" . getTranslatedString('Priority', $moduleName) . " : " . $entityData->get('ticketpriorities');
     $desc .= "<br><br>" . getTranslatedString('Description', $moduleName) . " : <br>" . $entityData->get('description');
     $desc .= "<br><br>" . getTranslatedString('Solution', $moduleName) . " : <br>" . $entityData->get('solution');
     $desc .= getTicketComments($entityId);
     $sql = "SELECT * FROM vtiger_ticketcf WHERE ticketid = ?";
     $result = $adb->pquery($sql, array($entityId));
     $cffields = $adb->getFieldsArray($result);
     foreach ($cffields as $cfOneField) {
         if ($cfOneField != 'ticketid') {
             $cfData = $adb->query_result($result, 0, $cfOneField);
             $sql = "SELECT fieldlabel FROM vtiger_field WHERE columnname = ? and vtiger_field.presence in (0,2)";
             $cfLabel = $adb->query_result($adb->pquery($sql, array($cfOneField)), 0, 'fieldlabel');
             $desc .= '<br><br>' . $cfLabel . ' : <br>' . $cfData;
         }
     }
     // end of contribution
     $desc .= '<br><br><br>';
     $desc .= '<br>' . getTranslatedString("LBL_REGARDS", $moduleName) . ',<br>' . getTranslatedString("LBL_TEAM", $moduleName) . '.<br>';
     return $desc;
 }
Пример #3
0
 public static function getTicketEmailContents($entityData, $toOwner = false)
 {
     global $HELPDESK_SUPPORT_NAME;
     $adb = PearDatabase::getInstance();
     $moduleName = $entityData->getModuleName();
     $wsId = $entityData->getId();
     if (strpos($wsId, 'x')) {
         $parts = explode('x', $wsId);
         $entityId = $parts[1];
     } else {
         $entityId = $wsId;
     }
     $isNew = $entityData->isNew();
     if (!$isNew) {
         $reply = getTranslatedString("replied", $moduleName);
         $temp = getTranslatedString("Re", $moduleName);
     } else {
         $reply = getTranslatedString("created", $moduleName);
         $temp = " ";
     }
     $wsParentId = $entityData->get('contact_id');
     $parentIdParts = explode('x', $wsParentId);
     // If this function is being triggered as part of Eventing API
     // Then the reference field ID will not matching the webservice format.
     // Regardless of the entry we need just the ID
     $parentId = array_pop($parentIdParts);
     $desc = getTranslatedString('Ticket ID', $moduleName) . ' : ' . $entityId . '<br>' . getTranslatedString('Ticket Title', $moduleName) . ' : ' . $temp . ' ' . $entityData->get('ticket_title');
     $name = !$toOwner ? getParentName($parentId) : '';
     $desc .= "<br><br>" . getTranslatedString('Hi', $moduleName) . " " . $name . ",<br><br>" . getTranslatedString('LBL_PORTAL_BODY_MAILINFO', $moduleName) . " " . $reply . " " . getTranslatedString('LBL_DETAIL', $moduleName) . "<br>";
     $desc .= "<br>" . getTranslatedString('Ticket No', $moduleName) . " : " . $entityData->get('ticket_no');
     $desc .= "<br>" . getTranslatedString('Status', $moduleName) . " : " . $entityData->get('ticketstatus');
     $desc .= "<br>" . getTranslatedString('Category', $moduleName) . " : " . $entityData->get('ticketcategories');
     $desc .= "<br>" . getTranslatedString('Severity', $moduleName) . " : " . $entityData->get('ticketseverities');
     $desc .= "<br>" . getTranslatedString('Priority', $moduleName) . " : " . $entityData->get('ticketpriorities');
     $desc .= "<br><br>" . getTranslatedString('Description', $moduleName) . " : <br>" . $entityData->get('description');
     $desc .= "<br><br>" . getTranslatedString('Solution', $moduleName) . " : <br>" . $entityData->get('solution');
     $desc .= getTicketComments($entityId);
     $sql = "SELECT * FROM vtiger_ticketcf WHERE ticketid = ?";
     $result = $adb->pquery($sql, array($entityId));
     $cffields = $adb->getFieldsArray($result);
     foreach ($cffields as $cfOneField) {
         if ($cfOneField != 'ticketid' && $cfOneField != 'from_portal') {
             $cfData = $adb->query_result($result, 0, $cfOneField);
             $sql = "SELECT fieldlabel FROM vtiger_field WHERE columnname = ? and vtiger_field.presence in (0,2)";
             $cfLabel = $adb->query_result($adb->pquery($sql, array($cfOneField)), 0, 'fieldlabel');
             $desc .= '<br>' . $cfLabel . ' : ' . $cfData;
         }
     }
     $desc .= '<br><br>' . getTranslatedString("LBL_REGARDS", $moduleName) . ',<br>' . $HELPDESK_SUPPORT_NAME;
     return $desc;
 }
Пример #4
0
function getTicket($id)
{
    global $db;
    $query_ticket = "SELECT\r\n                        `access`,\r\n                        `area`,\r\n                        `changed`,\r\n                        `changer`,\r\n                        `created`,\r\n                        `creator`,\r\n                        `comments` AS `comments_id`,\r\n                        `contractor`,\r\n                        `deadline`,\r\n                        `description`,\r\n                        `id`,\r\n                        `parent`,\r\n                        `performers`,\r\n                        `status`,\r\n                        `tags`,\r\n                        `title`,\r\n                        `rate`\r\n                            FROM helpdesk WHERE `id`={$id}";
    if ($query_ticket_res = $db->query($query_ticket)) {
        $result = $db->fetch_assoc($query_ticket_res);
        $result['tags'] = $result['tags'] > 0 ? explode(",", $result['tags']) : 0;
    }
    $result['comments'] = getTicketComments($id, $result['comments_id']);
    return $result;
}
Пример #5
0
function getTicketDetails($id, $whole_date)
{
    global $adb, $mod_strings;
    if ($whole_date['mode'] == 'edit') {
        $reply = $mod_strings["replied"];
        $temp = $mod_strings["Re"];
    } else {
        $reply = $mod_strings["created"];
        $temp = " ";
    }
    $desc = $mod_strings['Ticket ID'] . ' : ' . $id . '<br>' . $mod_strings['Ticket Title'] . ' : ' . $temp . ' ' . $whole_date['sub'];
    $desc .= "<br><br>" . $mod_strings['Hi'] . " " . $whole_date['parent_name'] . ",<br><br>" . $mod_strings['LBL_PORTAL_BODY_MAILINFO'] . " " . $reply . " " . $mod_strings['LBL_DETAIL'] . "<br>";
    $desc .= "<br>" . $mod_strings['Ticket No'] . " : " . $whole_date['ticketno'];
    $desc .= "<br>" . $mod_strings['Status'] . " : " . $whole_date['status'];
    $desc .= "<br>" . $mod_strings['Category'] . " : " . $whole_date['category'];
    $desc .= "<br>" . $mod_strings['Severity'] . " : " . $whole_date['severity'];
    $desc .= "<br>" . $mod_strings['Priority'] . " : " . $whole_date['priority'];
    $desc .= "<br><br>" . $mod_strings['Description'] . " : <br>" . $whole_date['description'];
    $desc .= "<br><br>" . $mod_strings['Solution'] . " : <br>" . $whole_date['solution'];
    $desc .= getTicketComments($id);
    $sql = "SELECT * FROM vtiger_ticketcf WHERE ticketid = ?";
    $result = $adb->pquery($sql, array($id));
    $cffields = $adb->getFieldsArray($result);
    foreach ($cffields as $cfOneField) {
        if ($cfOneField != 'ticketid') {
            $cfData = $adb->query_result($result, 0, $cfOneField);
            $sql = "SELECT fieldlabel FROM vtiger_field WHERE columnname = ? and vtiger_field.presence in (0,2)";
            $cfLabel = $adb->query_result($adb->pquery($sql, array($cfOneField)), 0, 'fieldlabel');
            $desc .= '<br><br>' . $cfLabel . ' : <br>' . $cfData;
        }
    }
    // end of contribution
    $desc .= '<br><br><br>';
    $desc .= '<br>' . $mod_strings["LBL_REGARDS"] . ',<br>' . $mod_strings["LBL_TEAM"] . '.<br>';
    return $desc;
}
Пример #6
0
            $rating = check_string($_REQUEST['rating'], 'digits');
            $result = rateTicket($admin_login["uid"], $ticket, $rating);
            break;
        case "changeTicketStatus":
            $ticket = check_string($_REQUEST['ticket'], 'digits');
            $status = check_string($_REQUEST['status'], 'digits');
            $result = changeTicketStatus($admin_login["uid"], $ticket, $status);
            break;
        case 'reloadComments':
            require_once "../vendor/autoload.php";
            Twig_Autoloader::register();
            $loader = new Twig_Loader_Filesystem("../templates/helpdesk");
            $twig = new Twig_Environment($loader, array("cache" => ""));
            $c['users'] = getUsers();
            $c['uid'] = $admin_id;
            $ticket_id = check_string($_REQUEST['ticket_id'], 'digits');
            $hide_autocomments = check_string($_REQUEST['hide_autocomments'], 'text');
            $c['ticket']['comments'] = getTicketComments($ticket_id);
            $template = $hide_autocomments == 0 ? 'ticket_edit_comments.twig' : 'client/ticket_view_comments.twig';
            $result['comments_block'] = $twig->render($template, $c);
            $result['success'] = true;
            unset($result['msg']);
            break;
    }
}
/*  Возвращаем результат также в виде JSON-объекта.
 *  В случае безошибочного получения результата,
 *  Делаем $result['success'] = true;
 *  Остальные параметры - опциональные
 *  */
print_r(json_encode($result));