Exemplo n.º 1
0
 public function updateConfig(Vtiger_Request $request)
 {
     $param = $request->get('param');
     $moduleModel = Settings_SupportProcesses_Module_Model::getCleanInstance();
     $response = new Vtiger_Response();
     $response->setResult(array('success' => $moduleModel->updateTicketStatusNotModify($param), 'message' => vtranslate('LBL_SAVE_CONFIG', $request->getModule(false))));
     $response->emit();
 }
Exemplo n.º 2
0
 public function process(Vtiger_Request $request)
 {
     $log = vglobal('log');
     $log->debug("Entering Settings_SupportProcesses_Index_View::process() method ...");
     $qualifiedModule = $request->getModule(false);
     $viewer = $this->getViewer($request);
     $ticketStatus = Settings_SupportProcesses_Module_Model::getTicketStatus();
     $ticketStatusNotModify = Settings_SupportProcesses_Module_Model::getTicketStatusNotModify();
     $viewer->assign('TICKETSTATUSNOTMODIFY', $ticketStatusNotModify);
     $viewer->assign('TICKETSTATUS', $ticketStatus);
     $viewer->assign('QUALIFIED_MODULE', $request->getModule(false));
     $viewer->view('Index.tpl', $qualifiedModule);
     $log->debug("Exiting Settings_SupportProcesses_Index_View::process() method ...");
 }
Exemplo n.º 3
0
 function getSearchParams($value)
 {
     $openTicketsStatus = Settings_SupportProcesses_Module_Model::getOpenTicketStatus();
     if ($openTicketsStatus) {
         $openTicketsStatus = implode(',', $openTicketsStatus);
     } else {
         $allTicketStatus = Settings_SupportProcesses_Module_Model::getAllTicketStatus();
         $openTicketsStatus = implode(',', $allTicketStatus);
     }
     $listSearchParams = array();
     $conditions = array(array('assigned_user_id', 'e', $value));
     array_push($conditions, array('ticketstatus', 'e', "{$openTicketsStatus}"));
     $listSearchParams[] = $conditions;
     return '&search_params=' . json_encode($listSearchParams);
 }
Exemplo n.º 4
0
 /**
  * Save date
  * @param <array> $ticketStatus
  * @return true if saved, false otherwise
  */
 public function save(Vtiger_Request $request)
 {
     $response = new Vtiger_Response();
     $ticketStatus = $request->get('status');
     $moduleName = 'Settings:SupportProcesses';
     try {
         if (Settings_SupportProcesses_Module_Model::updateTicketStatusNotModify($ticketStatus)) {
             $response->setResult(array('success' => true, 'message' => vtranslate('LBL_SAVE_CONFIG_OK', $moduleName)));
         } else {
             $response->setResult(array('success' => false, 'message' => vtranslate('LBL_SAVE_CONFIG_ERROR', $moduleName)));
         }
     } catch (Exception $e) {
         $response->setError($e->getCode(), $e->getMessage());
     }
     $response->emit();
 }
Exemplo n.º 5
0
    /**
     * Function returns Tickets grouped by Status
     * @param type $data
     * @return <Array>
     */
    public function getTicketsByStatus($owner)
    {
        $db = PearDatabase::getInstance();
        $module = 'HelpDesk';
        $moduleModel = Vtiger_Module_Model::getInstance($module);
        $ownerSql = $moduleModel->getOwnerWhereConditionForDashBoards($owner);
        $ticketStatus = Settings_SupportProcesses_Module_Model::getTicketStatusNotModify();
        $params = array();
        $currentUser = Users_Record_Model::getCurrentUserModel();
        $instance = CRMEntity::getInstance($module);
        $securityParameter = $instance->getUserAccessConditionsQuerySR($module, $currentUser);
        $sql = 'SELECT COUNT(*) as count
					, priority, vtiger_ticketpriorities.color,
					CASE WHEN vtiger_troubletickets.status IS NULL OR vtiger_troubletickets.status = "" THEN "" ELSE vtiger_troubletickets.status END AS statusvalue 
				FROM
					vtiger_troubletickets
				INNER JOIN vtiger_crmentity
					ON vtiger_troubletickets.ticketid = vtiger_crmentity.crmid AND vtiger_crmentity.deleted=0
				INNER JOIN vtiger_ticketstatus
					ON vtiger_troubletickets.status = vtiger_ticketstatus.ticketstatus
				INNER JOIN vtiger_ticketpriorities
					ON vtiger_ticketpriorities.`ticketpriorities` = vtiger_troubletickets.`priority`
				WHERE
					vtiger_crmentity.`deleted` = 0';
        if (!empty($ownerSql)) {
            $sql .= ' AND ' . $ownerSql;
        }
        if (!empty($ticketStatus)) {
            $ticketStatusSearch = implode("','", $ticketStatus);
            $sql .= " AND vtiger_troubletickets.status NOT IN ('{$ticketStatusSearch}')";
        }
        if ($securityParameter != '') {
            $sql .= $securityParameter;
        }
        $sql .= ' GROUP BY 
					statusvalue, priority 
				ORDER BY
				vtiger_ticketstatus.sortorderid';
        $result = $db->query($sql);
        $response = array();
        $priorities = [];
        $status = [];
        $counter = 0;
        $colors = [];
        $numRows = $db->num_rows($result);
        for ($i = 0; $i < $numRows; $i++) {
            $row = $db->query_result_rowdata($result, $i);
            $tickets[$row['statusvalue']][$row['priority']] = $row['count'];
            if (!array_key_exists($row['priority'], $priorities)) {
                $priorities[$row['priority']] = $counter++;
                $colors[$row['priority']] = $row['color'];
            }
            if (!in_array($row['statusvalue'], $status)) {
                $status[] = $row['statusvalue'];
            }
        }
        if ($numRows > 0) {
            $counter = 0;
            $result = array();
            foreach ($tickets as $ticketKey => $ticketValue) {
                foreach ($priorities as $priorityKey => $priorityValue) {
                    $result[$priorityValue]['data'][$counter][0] = $counter;
                    $result[$priorityValue]['label'] = vtranslate($priorityKey, 'HelpDesk');
                    $result[$priorityValue]['color'] = $colors[$priorityKey];
                    if ($ticketValue[$priorityKey]) {
                        $result[$priorityValue]['data'][$counter][1] = $ticketValue[$priorityKey];
                    } else {
                        $result[$priorityValue]['data'][$counter][1] = 0;
                    }
                }
                $counter++;
            }
            $ticks = [];
            foreach ($status as $key => $value) {
                $newArray = [$key, vtranslate($value, 'HelpDesk')];
                array_push($ticks, $newArray);
                $name[] = $value;
            }
            $response['chart'] = $result;
            $response['ticks'] = $ticks;
            $response['name'] = $name;
        }
        return $response;
    }