Ejemplo n.º 1
0
 function process(Mobile_API_Request $request)
 {
     $values = Zend_Json::decode($request->get('values'));
     $relatedTo = $values['related_to'];
     $commentContent = $values['commentcontent'];
     $user = $this->getActiveUser();
     $targetModule = '';
     if (!empty($relatedTo) && Mobile_WS_Utils::detectModulenameFromRecordId($relatedTo) == 'HelpDesk') {
         $targetModule = 'HelpDesk';
     } else {
         $targetModule = 'ModComments';
     }
     $response = false;
     if ($targetModule == 'HelpDesk') {
         $response = $this->saveCommentToHelpDesk($commentContent, $relatedTo, $user);
     } else {
         if (vtlib_isModuleActive($targetModule)) {
             $request->set('module', $targetModule);
             $values['assigned_user_id'] = sprintf('%sx%s', Mobile_WS_Utils::getEntityModuleWSId('Users'), $user->id);
             $request->set('values', Zend_Json::encode($values));
             $response = parent::process($request);
         }
     }
     return $response;
 }
Ejemplo n.º 2
0
function mobile_ws_queryWithGrouping($module, $query, $page, $user)
{
    $request = new Mobile_API_Request();
    $request->set('module', $module);
    $request->set('query', $query);
    $request->set('page', $page);
    return Mobile_WS_API::process($request, $user, 'Mobile_WS_QueryWithGrouping', 'ws/QueryWithGrouping.php');
}
 function process(Mobile_API_Request $request)
 {
     global $current_user, $adb, $currentModule;
     $current_user = $this->getActiveUser();
     $response = new Mobile_API_Response();
     $record = $request->get('record');
     $relatedmodule = $request->get('relatedmodule');
     $currentPage = $request->get('page', 0);
     // Input validation
     if (empty($record)) {
         $response->setError(1001, 'Record id is empty');
         return $response;
     }
     $recordid = vtws_getIdComponents($record);
     $recordid = $recordid[1];
     $module = Mobile_WS_Utils::detectModulenameFromRecordId($record);
     // Initialize global variable
     $currentModule = $module;
     $functionHandler = Mobile_WS_Utils::getRelatedFunctionHandler($module, $relatedmodule);
     if ($functionHandler) {
         $sourceFocus = CRMEntity::getInstance($module);
         $relationResult = call_user_func_array(array($sourceFocus, $functionHandler), array($recordid, getTabid($module), getTabid($relatedmodule)));
         $query = $relationResult['query'];
         $querySEtype = "vtiger_crmentity.setype as setype";
         if ($relatedmodule == 'Calendar') {
             $querySEtype = "vtiger_activity.activitytype as setype";
         }
         $query = sprintf("SELECT vtiger_crmentity.crmid, {$querySEtype} %s", substr($query, stripos($query, 'FROM')));
         $queryResult = $adb->query($query);
         // Gather resolved record id's
         $relatedRecords = array();
         while ($row = $adb->fetch_array($queryResult)) {
             $targetSEtype = $row['setype'];
             if ($relatedmodule == 'Calendar') {
                 if ($row['setype'] != 'Task' && $row['setype'] != 'Emails') {
                     $targetSEtype = 'Events';
                 } else {
                     $targetSEtype = $relatedmodule;
                 }
             }
             $relatedRecords[] = sprintf("%sx%s", Mobile_WS_Utils::getEntityModuleWSId($targetSEtype), $row['crmid']);
         }
         // Perform query to get record information with grouping
         $wsquery = sprintf("SELECT * FROM %s WHERE id IN ('%s');", $relatedmodule, implode("','", $relatedRecords));
         $newRequest = new Mobile_API_Request();
         $newRequest->set('module', $relatedmodule);
         $newRequest->set('query', $wsquery);
         $newRequest->set('page', $currentPage);
         $response = parent::process($newRequest);
     }
     return $response;
 }
Ejemplo n.º 4
0
 function process(Mobile_API_Request $request)
 {
     global $app_strings, $mod_strings;
     $wsResponse = parent::process($request);
     $response = false;
     if ($wsResponse->hasError()) {
         $response = $wsResponse;
     } else {
         $wsResponseResult = $wsResponse->getResult();
         $current_user = $this->getActiveUser();
         $current_language = $this->sessionGet('language');
         $app_strings = return_application_language($current_language);
         $relatedlistsmodule = array_keys($wsResponseResult);
         $relatedresponse = new Mobile_API_Response();
         foreach ($relatedlistsmodule as $module) {
             $moduleWSId = Mobile_WS_Utils::getEntityModuleWSId($module);
             if ($module == 'Events' || $module == 'Calendar') {
                 $fieldnames = Mobile_WS_Utils::getEntityFieldnames('Calendar');
             } else {
                 $fieldnames = Mobile_WS_Utils::getEntityFieldnames($module);
             }
             foreach ($wsResponseResult[$module] as $key => $shortrecordid) {
                 $recordid = $moduleWSId . 'x' . $shortrecordid;
                 $detailrequest = new Mobile_API_Request();
                 $detailrequest->set('record', $recordid);
                 $detailrequest->set('_operation', 'fetchRecordWithGrouping');
                 $detailrequest->set('module', $module);
                 $detailresponse = Mobile_WS_FetchRecordWithGrouping::process($detailrequest);
                 $detailresponse_record[$module][$key] = $detailresponse->getResult();
             }
         }
         $relatedresponse->setResult($detailresponse_record);
         $response = new Mobile_API_Response();
         $current_language = $this->sessionGet('language');
         include_once dirname(__FILE__) . '/../language/' . $current_language . '.lang.php';
         $viewer = new Mobile_UI_Viewer();
         $viewer->assign('LANGUAGE', $current_language);
         $viewer->assign('MOD', $mod_strings);
         $viewer->assign('_MODULE', $module);
         $viewer->assign('_RECORDS', $relatedresponse);
         $response = $viewer->process('generic/getRelatedLists.tpl');
     }
     return $response;
 }