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(); }
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 ..."); }
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); }
/** * 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(); }
/** * 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; }